SSH 공격 방지


9

SSH를 통해 servir에 연결하기 위해 분당 IP로 3 번만 시도하도록 iptables 규칙을 설정하고 SSH 공격을 막은 후 모든 연결을 끊습니다. 하지만 내가 잘못하고있는 것 같습니다!

-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 --name DEFAULT --rsource -j DROP
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

감사

답변:


10

fail2banipfilter 규칙이 합법적 인 연결을 차단하기 때문에을 사용해야하는 것이 좋습니다 . fail2ban연결이 실패한 후에 만 ​​IP를 차단합니다.

다음으로 일반적인 방법은 IP가 포트 22에 연결하려고 할 때 IP를 금지하고 ssh 서버를 다른 포트에 바인딩하는 것입니다. 컴퓨터가 잘 알려진 대상이 아닌 경우 매주 몇 개의 불법 연결 만하게됩니다.

정확한 질문을 위해 :

iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP

1
서버는 저급 vps이므로 가능한 한 안전하게 유지하면서 리소스 소비를 최소로 유지하려고합니다. 이미 ssh 서버 포트를 변경했습니다. 위의 규칙을 새 포트에 유지하고 기본 규칙 (22)을 금지해야합니까?
MGP

Fail2ban은 실제로 VPS가 낮은 경우에도 최상의 솔루션입니다.
MGP

7

다음 두 가지 규칙으로 원하는 것을 구현할 수 있습니다

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 3 -j DROP

-A체인 끝에 끝에 규칙을 추가하는를 사용 하면 iptables 규칙이 처리되는 방식에 위배 될 수 있습니다. 즉, 일반적인 DROP 또는 허용 규칙이있는 경우 규칙에 도달하기 전에는 조치를 취하지 않습니다.

fail2ban 이 이러한 종류의 블록을 구현하는 더 좋은 방법 이라고도 말할 수 있습니다 .


해당 규칙을 추가하려고하면 오류 메시지가 나타납니다. iptables : 해당 이름의 체인 / 대상 / 일치 없음.
MGP

fail2ban에 대한 찬성.
Michael B

4

LIMIT 모듈을 시도 할 수 있습니다.

iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/minute -j ACCEPT
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.