Örnek bloklanacak ip 138.121.*.*
1) Hemen — sadece HTTPS (443) hedefli /22 bloklama (önerilen, daha güvenli)
iptables -I INPUT -p tcp -s 138.121.244.0/22 --dport 443 -j DROP
2) Alternatif: tüm portları kapat (daha geniş, kesin çözüm)
iptables -I INPUT -s 138.121.244.0/22 -j DROP
3) Mevcut yarım bağlantıları temizle (opsiyonel, ban ile birlikte hemen etkili olur)
# kurulu değilse
dnf install -y conntrack-tools
#centos , almalinux
yum install conntrack-tools -y
# sonra banlı subnet için conntrack entriylerini temizle
for ip in $(seq 244 247); do conntrack -D -s 138.121.$ip.0/24; done
4) SYN flood kernel ve firewall sertleştirmeleri (hemen uygula)
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_max_syn_backlog=65535
sysctl -w net.core.somaxconn=65535
sysctl -w net.ipv4.tcp_synack_retries=2
sysctl -w net.netfilter.nf_conntrack_max=524288
5) Per-IP hız sınırlama (hashlimit) — dağıtık saldırılara karşı
iptables -I INPUT -p tcp --syn -m hashlimit --hashlimit-name synlimit --hashlimit-above 20/sec --hashlimit-burst 40 --hashlimit-mode srcip --hashlimit-htable-size 8192 -j DROP
6) Kaldırma komutları (sonradan geri almak istersen)
HTTPS-only /22 banını kaldırmak için:
iptables -D INPUT -p tcp -s 138.121.244.0/22 --dport 443 -j DROP
Tüm porta /22 banını kaldırmak için:
iptables -D INPUT -s 138.121.244.0/22 -j DROP
Hashlimit kuralını kaldırmak istersen (aynı exact rule varsa):
iptables -D INPUT -p tcp --syn -m hashlimit --hashlimit-name synlimit --hashlimit-above 20/sec --hashlimit-burst 40 --hashlimit-mode srcip --hashlimit-htable-size 8192 -j DROP
7) Hızlı kontrol komutları
netstat -an | grep SYN_RECV | wc -l
netstat -ant | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
iptables -L -n --line-numbers | head -40
8) Kalıcı yapmak
iptables-save > /etc/sysconfig/iptables