우리는 프로덕션 서버 중 하나에서 SSH를 켜서 다양한 무차별 대입 공격에 취약하게 만들었습니다. 기본 포트를 22로 변경하여 시도 횟수를 줄였습니다.
.in
특정 국가 지역의 SSH 로그인만 허용하여 보안을 더욱 강화 하고 싶습니다 . 이를 위해 /etc/hosts.deny
또는 을 구성할 수 있습니다 /etc/hosts.allow
.
의 경우 hosts.allow
다음 항목을 추가했습니다.
sshd: in
내가 사용하면 hosts.deny
내 항목은 다음과 같습니다
sshd: !in
위 항목 중 하나를 구성한 후 서버에 연결하는 데 시간이 더 걸리는 것으로 나타났습니다 ssh
.
자세한 내용은 로그인을 시도하기 전에 잠시 동안 여기에 표시됩니다.
ssh -vv 103.8.X.X
OpenSSH_5.9p1 Debian-5ubuntu1.4, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 103.8.X.X [103.8.X.X] port 565.
debug1: Connection established.
debug1: identity file /home/amin/.ssh/id_rsa type -1
debug1: identity file /home/amin/.ssh/id_rsa-cert type -1
debug1: identity file /home/amin/.ssh/id_dsa type -1
debug1: identity file /home/amin/.ssh/id_dsa-cert type -1
debug1: identity file /home/amin/.ssh/id_ecdsa type -1
debug1: identity file /home/amin/.ssh/id_ecdsa-cert type -1 (<-- hangs here for arnd 30 secs)
tcp 래퍼에 대한 규칙을 설정한 후 퍼티를 사용하면 시간이 더 걸립니다.
답변1
hosts.allow
또는 에 호스트 이름을 넣는 것은 hosts.deny
서버가 IP 주소에 대한 도메인 이름을 얻기 위해 역방향 DNS 확인을 수행해야 함을 의미합니다. 이름 확인 시스템이 느리거나 일부 중간 이름 서버의 응답 속도가 느린 경우 로그인 시간에 영향을 미칩니다. 다음과 같이 서브넷의 IP 주소를 파일에 저장하는 것이 더 빠릅니다 man hosts.allow
.
The examples use host and domain names. They can be improved by includ‐
ing address and/or network/netmask information, to reduce the impact of
temporary name server lookup failures.
무차별 로그인 공격을 방지하는 또 다른 방법은실패 2 금지. 프로그램은 실패한 로그인 시도를 추적하고 너무 많은 시도 후에 IP 주소를 일시적으로 차단합니다. 이렇게 하면 더 이상 국가에 따라 로그인을 차단할 필요가 없습니다. 시간당 로그인 시도 실패 횟수를 3~4회만 허용함으로써 대규모 봇넷에 대해서도 무차별 대입 공격이 불가능합니다.