로그인 제한 속도 시도는 일부 고속 암호 추측 공격을 방지하는 쉬운 방법입니다. 그러나 분산 공격을 제한하기는 어렵고 많은 주 또는 몇 달에 걸쳐 낮은 속도로 실행됩니다. 저는 개인적으로 fail2ban과 같은 자동 응답 도구를 사용하지 않는 것을 선호합니다. 그리고 이것은 두 가지 이유 때문입니다.
- 합법적 인 사용자는 때때로 자신의 암호를 잊어 버립니다. 서버에서 합법적 인 사용자를 금지하고 싶지 않으므로 수동으로 계정을 다시 활성화해야합니다 (또는 더 나쁜 경우 100/1000의 금지 된 IP 주소 중 자신의 IP 주소를 파악하려고 시도).
- IP 주소는 사용자에게 좋은 식별자가 아닙니다. 단일 IP 뒤에 여러 명의 사용자가있는 경우 (예 : 500 대의 학생 컴퓨터에서 NAT를 실행하는 학교) 약간의 추측 만해도 한 명의 사용자가 고통의 세계에 빠질 수 있습니다. 동시에 내가 본 암호 추측 시도의 대부분은 배포됩니다.
따라서 fail2ban (및 유사한 자동 응답 도구)을 무차별 대입 공격으로부터 서버를 보호하는 데 매우 적합한 방법이라고 생각하지 않습니다. 로그 스팸을 줄이기 위해 설정 한 간단한 IPTables 규칙 (대부분의 Linux 서버에 있음)은 다음과 같습니다.
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
60 초 동안 단일 IP에서 ssh 로의 4 회 이상의 연결 시도를 방지합니다. 나머지는 암호가 합리적으로 강화되어 처리 할 수 있습니다. 보안 수준이 높은 서버에서는 사용자가 공개 키 인증을 사용하도록하는 것이 추측을 멈추는 또 다른 방법입니다.