SSH에서 IP를 차단하는 방법

SSH에서 IP를 차단하는 방법

매우 끈질긴 개인이 지난 며칠 동안 계속해서 내 시스템에 (무단) 액세스 권한을 얻으려고 시도하고 있습니다... 다음과 같이 엄청나게 많은 항목이 있습니다 /var/log/auth.log.

Jun 21 03:55:15 cloudy sshd[32487]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root
Jun 21 03:55:16 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:19 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Failed password for root from 116.31.116.20 port 30629 ssh2
Jun 21 03:55:21 cloudy sshd[32487]: Received disconnect from 116.31.116.20: 11:  [preauth]
Jun 21 03:55:21 cloudy sshd[32487]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=116.31.116.20  user=root

이 개인이 컴퓨터에서 리소스를 소비하지 못하도록 차단하는 방법에 대해 몇 가지 조언을 요청하고 싶습니다. IP가 SSH 연결을 열지 못하도록 "하드 차단"할 가능성이 있습니까? 참고로 저는 Debian 8을 OS로 사용합니다.

답변1

답변2

당신은 또한 사용할 수 있습니다iptables

차단하려는 IP 주소가 포함된 파일을 생성하세요.blocked.ips.txt

이제 다음을 포함하는 스크립트를 생성하고 실행하십시오.

blocked=$(egrep -v -E "^#|^$" ./blocked.ips.txt)
for ip in $blocked
do
    iptables -I INPUT -s $ip -p tcp --dport ssh -j DROP
done

실행하면 iptables -L삭제된 패킷이 출력됩니다.

답변3

iptables 접근 방식이 가장 직접적인 방법입니다. Erik Handriks는 이를 대본으로 제안했습니다.

두 가지 사항: - 다시 시작할 때마다 스크립트를 시작해야 합니다(테이블이 iptables를 사용하여 내부적으로 백업되지 않은 경우). - 스크립트를 있는 그대로 호출하면 항목이 두 번 이상 중복됩니다.

다음과 같이 간단히 나쁜 사람을 잡아내십시오.

iptables -I INPUT -s BAD_IP -p tcp --dport ssh -j DROP

대부분의 배포판에서 iptables에는 자체 규칙-저장-복원 메커니즘이 있습니다. '/var/lib/iptables/rules-save'가 있는지 확인하세요. 배포판의 경우 다른 곳에 있을 수도 있습니다(여기서는 젠투).

모든 BAD IP를 추가한 후 다음을 시도해 보십시오.

iptables-저장 > /var/lib/iptables/rules-save

재시작 후 'iptables -L'로 무엇이 있는지 확인하세요...

답변4

내 서버(Ubuntu 16.04)에서는 iptables를 통한 단순화 계층인 UFW(UncomplicatedFireWall)를 사용합니다. 이는 Ubuntu 서버에서 꽤 표준적인 문제인 것 같습니다(그러나 다른 배포판에서는 사용할 수 있어야 합니다). 이러한 경우에는 다음을 사용합니다.

ufw insert 1 deny from nnn.nnn.nnn.nnn

UFW를 사용하면 연결 수를 제한할 수도 있습니다.

ufw limit ssh/tcp

이는 성공적인 연결에도 적용되므로 여러 ssh 명령을 사용하는 스크립트를 사용하는 경우 다음을 실행하여 IP에 대해 이 제한을 비활성화해야 합니다.

ufw insert 1 allow in from nnn.nnn.nnn.nnn

관련 정보