<./>.dev./hood

실패한 SSH 로그인 시도 많은 IP 리스트 뽑기 -

sudo grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr

 

결과 -

150 192.168.0.10 150번 실패
120 203.0.113.5 120번 실패
75  198.51.100.2 75번 실패

 

특정 아이피 차단 -

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.10" drop'
sudo firewall-cmd --reload

 

특정 아이피 대역 차단 -

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="92.118.0.0/16" drop'
sudo firewall-cmd --reload

 

차단 된 아이피 목록 -

sudo firewall-cmd --list-rich-rules

 

 

실패 횟수 기준으로 자동 차단 스크립트 -

#!/bin/bash

THRESHOLD=3

# 실패 로그에서 IP별 시도횟수 뽑기
sudo grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | while read COUNT IP
do
    if [ "$COUNT" -ge "$THRESHOLD" ]; then
        echo "Blocking IP: $IP (Failed attempts: $COUNT)"
        sudo firewall-cmd --permanent --add-rich-rule="rule family=\"ipv4\" source address=\"$IP\" reject"
    fi
done

# 방화벽 적용
sudo firewall-cmd --reload