centos7 특정 아이피/아이피 대역 접속 차단
실패한 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