SSH 서버 보안 설정

SSH 암호 접속은 보안에 취약합니다. SSH 키 접속만 허용하는 것을 추천합니다.

SSH를 암호로만 접속하던 사용자에게 갑자기 KEY 접속만을 강요하면 불편할 수 있습니다.
이 경우, 안전하다고 확인된 신뢰할 수 있는 호스트에 한해서 암호접속을 허용할 수 있습니다.

마찬가지의 이유로 root 계정의 SSH 접속을 허용하는 것은 위험합니다만, 
특정 호스트에 한해서는 접속을 허용하도록 설정할 수 있습니다.


SSH 키 접속만 허용

원격 루트 접속 비허용

/etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no


특정 HOST의 암호접속 허용

특정 신뢰할 수 있는 컴퓨터에서는 암호 접속을 허용하고, 그 외에서는 키 접속만 허용하기

/etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no
Match Address 192.168.0.0/24 User gdhong
    PasswordAuthentication yes
Match Address 172.12.0.0/24 User gdhong
    PasswordAuthentication yes
Match all

참고) 192.168.0.0/24 는 192.168.0.1~255 를 의미함. 서브넷 계산기를 통해 확인된 값을 넣을 것


임의 IP에서 암호접속을 허용

피치 못한 사정으로, 모든 IP에 대해 SSH 암호 접속을 허용하는 경우, 1) SSH 포트를 다른 포트로 변경하고, 2) 해당 컴퓨터의 방화벽에서 해당 포트를 OPEN 합니다.

공격이 들어오는 IP에 한해서 리눅스 호스트의 방화벽을 통해 deny list (black list)를 설정합니다.