시스템에 무차별 SSH 공격을 실행하는 IP를 차단할 수 있는 다양한 소프트웨어 패키지가 있습니다. 예를 들어:
이러한 장점/단점은 무엇입니까?
현재 해결책은 이메일을 받는 것입니다.로그 관찰매일 엄청난 양의 IP 주소가 생성되어 텍스트 파일에 덤프되며, 이를 스크립트에 입력한 다음 iptables를 다시 작성합니다. 이는 번거롭고 시간 소모적이며 수동적이며 더 나은 방법을 원합니다.
(아무것도 할 수 있는 "최선의" 방법이 없기 때문에 문제를 해결하는 "최선의" 방법이 무엇인지 묻지 않았습니다.)
답변1
다른 하나는실패 2 금지, 이는 iptables에 의존합니다(따라서 ssh뿐만 아니라 모든 서비스에서 작동합니다). Fail2ban을 사용하면 다음을 수행할 수 있습니다.
- 모든 로그 파일(apache, ssh, nginx, 메일 서버...)의 경로를 지정합니다.
- 공격 패턴을 지정하는 정규 표현식(예: 동일한 IP에 대해 6초 이내에 nginx 액세스 로그에 '404 오류'가 10개 이상 나타남)
- 특정 패턴을 무시하는 정규식을 지정합니다(매우 유용합니다!)
- 음소거 시간 지정
- 이메일(또는 기타 알림...) 보내기
- 완전히 사용자 정의 가능(알림 및 필터를 직접 작성할 수 있음)
DenyHosts의 "단점" 중 하나는 tcp 래퍼가 필요하므로 /etc/hosts.deny 파일을 확인하는 서비스에서만 사용할 수 있다는 것입니다. 그러나 DenyHosts를 공정하게 고려하면 sshd는 대부분의 Linux 배포판에서 TCP Wrappers를 사용하도록 컴파일됩니다. 또한 DenyHost는 fall2ban보다 구성하기가 더 쉽지만 강력하지는 않습니다.
답변2
저는 DenyHosts를 사용하여 최소한 다음 질문에 답할 수 있습니다.
이점
- 완전 자동화
- 구성 가능합니다(블랙리스트에 올리기 전 실패한 시도 횟수, 존재하지 않는 사용자 이름, 존재하는 사용자 이름 및 루트에 대한 특수 항목).
- 새로 블랙리스트에 오른 호스트 목록을 정기적으로 이메일로 보내거나 새 호스트가 블랙리스트에 등록될 때마다 특정 프로그램을 실행할 수 있습니다.
- 일정 기간 후 호스트의 자동 블랙리스트 지원
결점
올바르게 사용하는 한 복구할 수 없는 단점은 없습니다.
- 기본 구성에서는 새로 블랙리스트에 등록된 호스트에 대해 경고하지 않으므로 누군가 수백 개의 다른 주소에서 네트워크를 공격하는 경우 로그를 수동으로 모니터링하는 것만큼 즉시 알아차리지 못할 수도 있지만( 장점 섹션) 새 호스트가 추가되면 알림을 보내기 위해 이메일을 보내거나 실행 파일을 실행할 수 있습니다.
- 기본적으로 다른 호스트처럼 귀하의 호스트를 블랙리스트에 추가하므로 에 추가하고 싶을 수도 있습니다
/etc/hosts.allow
. 한번은 비밀번호를 입력하지 않아서 잠긴 적이 있고, 직장에서 누군가가 농담으로 내 루트 계정에 로그인하고 내 회사 IP를 블랙리스트에 등록하려고 시도한 적이 있습니다. 갑자기 연결할 수 없고 더 이상 직장에서 네트워크에 연결되지 않는 이유를 알아내는 데 며칠이 걸렸습니다.
답변3
스캔 기반 공격에 대한 간단하고 실제로 효과적인 보호는 표준 포트를 사용하지 않는 것입니다. 443(https 포트)은 취약한 비밀번호를 해독하지 못하고 기본 포트(22)보다 더 많은 방화벽을 통과할 수 있는 다양한 무차별 대입 공격에 노출됩니다.
SSH 무차별 대입 공격을 방지하는 대부분의 방법은 자체 DoS(이런, 구성을 망쳤습니다! 이런, 빠른 rsync를 여러 번 수행했는데 이제 금지되었습니다!) 또는 보조 자체 DoS(이런)를 수행하는 좋은 방법입니다. 공격자는 나와 동일한 서브넷(동적 IP 범위, 대학 네트워크...)에 있는 컴퓨터를 파괴했으므로 나도 차단되었습니다! ).
몇몇 장소에서만 로그인하는 경우 소스 IP 주소를 화이트리스트에 추가하세요. 이동 중에 노트북이나 휴대폰에서 SSH를 사용하려는 경우 이는 분명히 좋지 않습니다.
IPv6 연결만 수신하는 SSH 데몬을 사용하면 몇 년 동안 검색으로부터 보호받을 수 있습니다. 그러나 많은 방화벽에서는 합리적인 방식으로 IPv6 전송을 허용하지 않습니다.
언급하지 않은 또 다른 방법은포트 노크. 자체 DoS 문제(잘못된 구성 제외)는 발생하지 않지만 방화벽을 잘 통과하지 못하며 연결 설정에 몇 초의 지연이 추가될 수 있습니다.
좋은 비밀번호가 있거나 비밀번호 인증 없이도 생활이 가능하다면 비밀번호 인증을 비활성화하세요. (대부분의 사용 사례에서는 키와 일회용 비밀번호로 충분합니다. 클라이언트 시스템이 SSH 키를 저장하는 것을 신뢰하지 않는다면 키로거 없이도 신뢰하지 않습니다.) 그런 다음 무차별 대입 공격은 약간의 CPU와 대역폭을 소비하지만 침입에 노출되지는 않습니다(키가 다른 사람에게서 온 것이 아니라는 것을 확인한 한).데비안 저엔트로피 OpenSSL).
대체로 포트를 변경해도 노출이 크게 줄어들지는 않습니다. 당신은 덜 얻을 것입니다스캐닝, 그러나 차단할 수 있는 것은 오래된 취약점과 취약한 비밀번호를 악용하려는 노력의 결과입니다. 데몬을 최신 상태로 유지하고 합리적인 비밀번호나 합리적인 시도 속도 제한을 적용하는 한 포트 전환은 보안 조치라기보다는 책임처럼 느껴집니다.