Hoş Geldin, Ziyaretçi!

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

IpTables AntiDDoS Kuralları

  • Konbuyu başlatan Celil
  • Başlangıç tarihi
Celil

Celil

Server Administrator 🌍
Yönetici
Moderatör
Katılım
28 Şub 2022
Mesajlar
177
Konum
Amsterdam
Ticaret: 0 / 0 / 0
Bu makalemizde IpTables e sadece firewall olarak nasıl kullanabilceğimizi göstericeğiz girdiğimiz kurallarla sunucunun güvenliğini (anti-ddos firewall) sağlıcağız.

(ÖNEMLİ NOT: VDS/VPS Sahibi iseniz yani elinizdeki makine paylaşımlı ise yazılımsal firewall’lar bi yere kadar korur nedeni ise size değil makinenin alt ip sine [sizin class 24 le bitiyorsa 25 le bitene] yani aynı network ve cpu-ram… paylaştığınız makineye gelen bir saldırıda o makinenin down/düşmesi ile etkileri sizde de gözlemlenebilir hatta sizde düşebilirsiniz. Bu yüzden firewall konusunda sağlam bir makine sahibi olmak istiyorsanız Dedicated/Dedike server/makina sahibi olmalısınız. )

Iptables Anti-DDoS Kuralları/Rules​

Iptables yazılımını genellikle engelleme (drop) işleminde kullanmaktayız ancak doğru kurallarla dedicated’inizi saldırıların çoğundan korunur hale getirebilirsiniz.

Geçersiz Paketleri Engellemek​

Kod:
iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP
Bu kural, SYN paketi olmayan ve yerleşik bir TCP bağlantısına ait olmayan tüm paketleri engeller.

SYN Olmayan Yeni Paketleri Engellemek​

Kod:
iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP

Bu, yeni (yerleşik bir bağlantıya ait olmayan) ve SYN bayrağını kullanmayan tüm paketleri engeller. Bu kural “Geçersiz Paketleri Engelle” kuralına benzer, ancak diğer paketin almadığı bazı paketleri yakaladığı gözlemlenmiştir.

Yaygın olmayan MSS Değerlerini Engellemek​

Kod:
iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP

Yukarıdaki iptables kuralı, yaygın olmayan bir TCP MSS değeri kullanan yeni paketleri engeller (yalnızca önceki iki kurala göre yalnızca SYN paketleri yeni paketler olabilir). Bu aptal SYN taşkınlarını engellemeye yardımcı olur.

Spoof (Sahte Ip) Paketlerini Engellemek​

Kod:
iptables -t mangle -A PREROUTING -s 224.0.0.0/3 -j DROP
iptables -t mangle -A PREROUTING -s 169.254.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 172.16.0.0/12 -j DROP
iptables -t mangle -A PREROUTING -s 192.0.2.0/24 -j DROP
iptables -t mangle -A PREROUTING -s 192.168.0.0/16 -j DROP
iptables -t mangle -A PREROUTING -s 10.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 0.0.0.0/8 -j DROP
iptables -t mangle -A PREROUTING -s 240.0.0.0/5 -j DROP
iptables -t mangle -A PREROUTING -s 127.0.0.0/8 ! -i lo -j DROP

Olası Spoof/List saldırılarında genel olarak kullanılan class ları drop/engelleme işlemini yaptık.

Bağlantıları Limitlemek(FIN,SYN,RST,ACK,SYN)​

Kod:
iptables -A INPUT -p tcp -m tcp --dport 22 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 20 --connlimit-mask 32 -j REJECT --reject-with tcp-reset

22 Portundan yapılıcak saldırıları limitleyip süzgeçten geçirerek flood geldiği an drop/engelleme işlemini yapar. “–dport 22” 22 yerine istediğiniz bir servisinizin portunu yazabilirsiniz.

Tüm Bağlantıları Limitlemek​

Kod:
iptables -A FORWARD -p tcp --syn -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p udp -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp -m tcp --tcp-flags RST RST -m limit --limit 2/second --limit-burst 2 -j ACCEPT

TCP,UDP olarak tüm connection/bağlantı ları limitleyerek gelen bağlantıyı somut örnekle vericek olursak kapıdan(porttan) tek sıra halinde izdiham olmadan geçmesini sağlarsınız.

Bonus Kısım

SSH brute-force koruması


Kod:
iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --set
iptables -A INPUT -p tcp --dport ssh -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 10 -j DROP

Saldırganların makinenize wordlist saldırısı yapmasına engel olur spam/flood bir şekilde ssh portunu login isteklerinden korur.

Port Taraması Koruması

Kod:
iptables -N port-scanning
iptables -A port-scanning -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s --limit-burst 2 -j RETURN
iptables -A port-scanning -j DROP

Olası saldırganların makine ip adresine yapıcağı scan/tarama işlemlerini bloke/engelleme işlemini gerçekleştirir.

İyi Forumlar, Güvenle Kalın :)