2020. 5. 21. 17:04ㆍ개인 공부/리눅스 공부
- SSH Server 구축하기
1) SSH 서버 설치
- 우분투에 SSH 서버를 구축해야 함
- 다음과 같은 명령어를 이용해 SSH 서버를 설치함
(참고 : 패키지 중 openssh-server와 ssh가 존재하는데 전자가 서버만 설치하는 데 사용되는 것이고, 후자는 클라이언트와 서버를 동시에 설치 또는 업데이트하는 데 사용됨)
$sudo apt-get install ssh |
가뿐하게 y 클릭
- SSH 서버 설정 파일에 접속
$sudo vi /etc/ssh/sshd_config |
- 좌측 숫자 기준으로 5번 줄과 28번 줄을 확인하면 port는 22번을 사용하며 ssh를 사용한 root계정 접근을 허용하도록 설정함
- 8번줄 ListenAddress의 주석을 지우고 특정 IP 주소를 넣게 되면 넣어준 IP주소에서만 접속할 수 있음
default값은 모두 허용임
- 9번줄 Protocol은 2로 되어있지만 SSH프로토콜 1도 존재함
보안 문제로 인해 1을 사용하지 않음
- 33번줄 PubkeyAuthentication은 공개키 인증 방식을 사용하려면 기본값, 아이디와 비밀번호로만 로그인하려면 주석 처리를 하면 됨
- 41번줄 HostbasedAuthentication은 호스트 기반 인증 방식을 사용하려면 yes( 보안적인 문제로 권장하지 않음 )
SSH는 아이디와 비밀번호를 사용하는 패스워드 인증 방식과 공개키 인증방식, 호스트 인증 방식으로 총 3가지임
- 53번줄 PasswordAuthentication은 패스워드 인증방식을 사용하려면 주석을 달아두고 아니면 no로 변경
- 루트계정으로 접속을 가능하게 하기 위해서 29번 줄을 아래와 같이 수정
SSH1 (보안 쉘 버전 1) SSH 프로토콜 버전 1은 1995 년에 발견되었으며 SSH-TRANS, SSH-USERAUTH 및 SSH-CONNECT라는 세 가지 주요 프로토콜로 구성되어 있습니다. SSH-TRANS : 기본적으로 서버 인증, 기밀성 및 무결성을 제공하는 전송 계층 프로토콜 (TCP / IP)입니다. SSH-USERAUTH : 통신 설정에서 사용자 인증에 사용되는 프로토콜입니다. 이 프로토콜은 SSH 서버에서 SSH 클라이언트를 인증합니다. 이 프로토콜은 전송 계층에서도 실행됩니다. SSH-CONNECT : 암호화 된 데이터를 일부 논리 스트림으로 멀티플렉싱하는 연결 프로토콜입니다. 이 프로토콜은 SSH-USERAUTH 프로토콜에서 실행됩니다. 보안 연결을 시작하기 위해 클라이언트는 인증 정보를 128 비트 암호화를 사용하여 SSH 서버로 보냅니다. 각 서버 호스트에는 올바른 클라이언트 서버 통신을 확인하기 위한 호스트 키가 있습니다. 또한 관련 SSH 서버의 공개 키가 있어야 합니다. 전송된 각 데이터 세그먼트는 암호화 알고리즘 (DES, 3 DES, IDEA, Blowfish)을 사용하여 암호화됩니다. 원격 로그인 SSH 이외의 터널링, X11 연결, SFTP (SSH 파일 전송 프로토콜), SCP (보안 복사본) 및 TCP 포트 전달에도 사용할 수 있습니다. TCP 포트 22는 기본적으로 SSH 프로토콜에서 사용됩니다. SSH는 데이터 압축도 지원합니다. 이 기능은 대역폭이 낮은 클라이언트-서버 링크에 유용하며 연결 처리량을 향상하는 데 사용할 수 있습니다. SSH 버전 1.5에서 개발자는 일부 취약점을 식별했습니다. 이 버전에서는 암호화 된 데이터 스트림 중간에 무단으로 데이터를 삽입할 수 있어 데이터 보안에 큰 위험을 초래할 수 있습니다. 또한 인증을 다른 서버로 전달하기 위한 무단 악의적인 인증 서버의 취약점이 2001 년에 확인되었습니다. |
SSH2 (보안 쉘 버전 2) SSH2는 2006 년에 도입되어 SSH1보다 많은 기능이 향상되었습니다. SSH1의 개선이지만 SSH2는 SSH1과 호환되지 않습니다. SSH2는 취약성을 피하기 위해 방어 메커니즘을 추가하여 다시 작성되었습니다. SSH2는 DSA (Digital Signature Algorithm)와 같은 암호화 및 인증을 위해 개선되고 강력한 알고리즘을 사용합니다. SSH2는 더 이상 SSH1과 같은 무료 소프트웨어가 아닙니다. SSH2 개발자는 SSH2의 무료 사용을 제한했습니다. SFTP (Secure File Transfer) 프로그램은 SSH1과 달리 SSH2 패키지에 내장되어 있으며 SSH2에서 사용하는 것과 동일한 암호화 프로토콜을 사용하여 데이터 스트림을 암호화합니다. |
https://ko.mort-sure.com/blog/difference-between-ssh1-and-ssh2/[출처] |
# PermitRootLogin prohibit-password |
2) SSH 서버 실행하기
- 서버 설치가 완료되었으니 서버 실행을 할 것임
$sudo service ssh start |
- 서버의 실행 상태를 알 수 있는 명령어
$service ssh status |
- 실행 중인 프로세스를 확인할 수 있음
ps -ef | grep sshd |
3) 포트 포워딩
4) Putty를 이용한 SSH 접속
- 서버에 접속 후 일정 시간동안 입력이 없으면 세션은 종료됨. 설정창에 들어가서 60초마다 신호를 보내 세션을 유지하도록 설정함
- Putty를 사용해 포트포워딩으로 설정한 192.168.1.6 IP로 SSH 접속을 시도 후 계정(sshtest)접속
5) Windows cmd를 사용한 SSH 접속
'개인 공부 > 리눅스 공부' 카테고리의 다른 글
VirtualBox 포트포워딩이란 (필요성) (0) | 2020.05.22 |
---|---|
Ubuntu16.04에 Telnet 서버 구축 후 putty 접속 (0) | 2020.05.19 |