DDoS ve iptables'a karşı diğer saldırılar (iptables'da Anti-DDoS güvenliği)

Saldırıdan kaçının DDoS ile iptables Paket boyutuna, bağlantı sınırına vb. Göre bunu yapmanın birçok yolu vardır. Burada, kolay, sezgisel ve iyi açıklanmış bir şekilde hedefe nasıl ulaşacağımızı ve sunucularımıza yapılan diğer sinir bozucu saldırıları nasıl durduracağımızı göreceğiz.

# Iptables

IPT="/sbin/iptables"
ETH="eth0"

#Todo el tráfico syn
$IPT -P INPUT DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A INPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A INPUT -m state --state INVALID -j DROP
$IPT -P OUTPUT DROP
$IPT -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A OUTPUT -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A OUTPUT -m state --state INVALID -j DROP
$IPT -P FORWARD DROP
$IPT -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -p tcp ! --syn -j REJECT --reject-with tcp-reset
$IPT -A FORWARD -m state --state INVALID -j DROP
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
$IPT -A FORWARD -i lo -o lo -j ACCEPT

#Cuando sube la carga
$IPT -A INPUT -p tcp --syn -j REJECT --reject-with icmp-port-unreachable

#La que mejor va
$IPT -N syn-flood
$IPT -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
$IPT -A syn-flood -j LOG --log-prefix "SYN flood: "
$IPT -A syn-flood -j DROP

#Igual que el de arriba pero muy raw
$IPT -N syn-flood
$IPT -A INPUT -i eth0:2 -p tcp --syn -j syn-flood
$IPT -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPT -A syn-flood -j DROP
$IPT -A INPUT -p tcp -m tcp --tcp-flags SYN,RST,ACK SYN -m limit --limit 1/sec -j ACCEPT
$IPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j ACCEPT

#Descartar paquetes mal formados
$IPT -N PKT_FAKE
$IPT -A PKT_FAKE -m state --state INVALID -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags ALL ACK,RST,SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,FIN SYN,FIN -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 --tcp-flags SYN,RST SYN,RST -j DROP
$IPT -A PKT_FAKE -p tcp --dport 80 ! --syn -m state --state NEW -j DROP
$IPT -A PKT_FAKE -f -j DROP
$IPT -A PKT_FAKE -j RETURN

#Syn-flood
$IPT -N syn-flood
$IPT -A INPUT -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A FORWARD -i eth+ -p tcp --tcp-flags SYN,ACK,FIN,RST RST -j syn-flood
$IPT -A syn-flood -m limit --limit 4/s --limit-burst 16 -j RETURN
$IPT -A syn-flood -m limit --limit 75/s --limit-burst 100 -j RETURN -A syn-flood -j LOG --log-prefix "SYN FLOOD " --log-tcp-sequence --log-tcp-options --log-ip-options -m limit --limit 1/second
$IPT -A syn-flood -j DROP

#Requiere módulo "recent"
modprobe ipt_recent
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
$IPT -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 10 --hitcount 10 -j DROP

# explicación:
# Se añade cada ip que se conecte a la tabla de recent
# Por por cada ip en la tabla de recent si hace mas de x hits en x segundos, se dropea.
$IPT -I INPUT -p tcp --syn -m recent --set
$IPT -I INPUT -p tcp --syn -m recent --update --seconds 10 --hitcount 30 -j DROP

#UDP Flood
$IPT -A OUTPUT -p udp -m state --state NEW -j ACCEPT
$IPT -A OUTPUT -p udp -m limit --limit 100/s -j ACCEPT
$IPT -A OUTPUT -p udp -j DROP

Yaptığı şey, SYN paketlerinin sayısını saymaktır (TCP bağlantısı başlangıcı) son 10 saniyedeki her IP adresi için. 30'a ulaşırsa, bu paketi atar, böylece bağlantı kurulmaz (TCP birkaç kez yeniden deneyecek, sınırın altına düştüğünde ayarlanabilir).

#Evitando Layer7 DoS limitando a 80 la máxima cantidad de conexiones
$IPT -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit-upto 50/min --hashlimit-burst 80 --hashlimit-mode srcip --hashlimit-name http -j ACCEPT
$IPT -A INPUT -p tcp --dport 80 -j DROP

#Permitir el ping, pero a 1 paquete por segundo, para evitar un ataque ICMP Flood
$IPT -A INPUT -p icmp -m state --state NEW --icmp-type echo-request -m limit --limit 1/s --limit-burst 1 -j ACCEPT
$IPT -A INPUT -p icmp -j DROP

#Evitando que escaneen la máquina
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,FIN SYN,FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags SYN,RST SYN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags FIN,RST FIN,RST –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,FIN FIN –j DROP
$IPT -A INPUT -i $ETH -p tcp -m tcp --tcp-flags ACK,URG URG –j DROP

İşte Yapıştır'ımızdaki komut dosyası: Yapıştırmak.DesdeLinux.net (Önceki komut dosyası)

Referanslar:


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.

  1.   KZKG ^ Gaara dijo

    İşte bu yüzden DDoS saldırılarından önce bir öğretici koydum 😉
    Nedeni veya sorunu (önceki eğitim) koymak / açıklamak ve ayrıca size çözümü vermek (bu eğitim) 🙂

    1.    Diazepan dijo

      perfecto.

  2.   koratsuki dijo

    Çocuk şekeri ...

  3.   Hugo dijo

    İyi makale

    Benim görüşüm:

    UDP paketleri söz konusu olduğunda, SYN bayrağı yoktur çünkü bu durum kontrolü olmayan bir protokoldür. Bununla birlikte, paradoksal olarak, YENİ ve KURULUŞ durumları mevcuttur çünkü iptables dahili olarak bu amaç için tablolar taşır.

    Öte yandan, bana göre, iki nedenden dolayı, REDDETMEK yerine bir DROP hedefi kullanmak daha iyidir: Birincisi, reddedilen biri olası bir saldırgana bilgi vermektir ve ayrıca bilgisayar, göndermek için bağlantısının bir kısmını kullanmaktadır. saldıran takıma bildirim.

    Başka bir şey de, ICMP protokolü durumunda (ve genel olarak) hem istekleri hem de yanıtları düzenlemenin uygun olmasıdır, çünkü muhtemelen bir noktada kendimize ping atmakla ilgileniyoruz ve bu işlevi etkinleştirerek birileri bir botnet ve kaynak adresini tahrif ederek tehlikeye atılan bu bilgisayarların çoğuna uçsuz bucaksız ping attı ve yanıtlar sunucumuza gidecek ve herhangi bir sınır getirilmediği takdirde onu çökertecek.

    Genellikle 0,3,8,11 ve 12 ICMP türlerine saniyede bir giriş limiti ve maksimum iki veya dört patlama ile izin veririm ve diğer her şey DROP'a bırakılır.

    Aslında, daha iyi düzenlenebilen TCP protokolü haricinde, diğerlerinin tümü, yakın tarihli bir tesadüf türü vasıtasıyla bir anti-DDoS önlemi ile korunmalıdır. Bununla ilgili olarak, merak olarak, bu modülün yazarı önce güncellemeyi sonra seti yerleştirmeyi seviyor.

    Iptables gerçekten çok esnek ve güçlü, şimdiye kadar yapmayı önerdiğim ve henüz başaramadığım tek şey (başarmaya yakın olsam da), psd modülünün portcanlardan kaçınmasını sağlamak, hatta her şeyle Bu aracı öğrendim, henüz yüzeyi çizdiğimi bile sanmıyorum. 😉

    Her neyse, bu dünyada her zaman çalışmak zorundasın.

  4.   koratsuki dijo

    Sözlüğümüz için dosyada güzel noktalar Hugo: D, her zaman olduğu gibi, öğreniyor ...

    1.    Hugo dijo

      Bu arada, psd modülünün benim için çalışmasına zaten sahibim. Sorun, başlangıçta yama-o-matic ile birlikte kullanımdan kaldırılan bir çekirdek işlevine bağlı olmasıydı, bu nedenle varsayılan olarak netfilter'daki yerleşik modüllerden kaldırıldı. Şimdi Debian'da psd uzantısını kullanmak için önce şunu yapmanız gerekir:


      aptitude -RvW install iptables-dev xtables-addons-{common,source} module-assistant
      module-assistant auto-install xtables-addons-source

      Daha sonra talimat verildiği gibi normal şekilde kullanılabilir:

      man xtables-addons

      1.    uzakta dijo

        Hugo, psd dahil olmak üzere bu yazının (ki bu iyi) senaryosunu geliştirmek için önerilerinizle neden bir iptables.sh yayınlamıyorsunuz?

        teşekkürler

  5.   nelson dijo

    Mükemmel makale, mükemmel iptables ve @hugo'dan mükemmel açıklama. Hâlâ öğrenecek çok şeyim olduğuna giderek daha fazla ikna oluyorum.

  6.   koratsuki dijo

    Yalnız sen değilsin, en azından ben ... Bir milyonu kaçırıyorum ... 😀

  7.   Miguel Angel dijo

    Herkese merhaba, katkılarınız için teşekkürler ama gerçek şu ki çaresiziz, şu anda ne yapacağımızı bilmiyoruz ve bunun için size sistemlerde uzman olduğunuzu bildiğimiz iptable'lar için geliyoruz.
    İspanya'da bir counter strike kaynağı topluluğunun lideriyim ve hala güçlükle ayakta duran birkaç kişiden biriyiz, makineden sürekli saldırılar ve zaman aralıklarında diğer saldırılar alıyoruz, sürekli çok az şey kaldırıyor ancak sunucuyu geciktiriyor biraz ama zamanı olan daha fazla zarar verir. Makinemiz 6.2 santimetre üzerine monte edilmiştir.
    ve sunucuları kontrol edecek tcadmin'e sahibiz. Bizi bu tür saldırıları biraz da olsa durdurabilecek bir konfigürasyon yapabilirsiniz, zaten çaresiz olduğumuz için,
    ve kime başvuracağımızı bilmiyoruz, biri ev yapımı, diğeri zaman ve güç için ödenen iki botnet olduğunu biliyoruz. Neredeyse bir yıldır bu tür vahşi saldırılara katlanıyoruz, bize yardım edebilirseniz sonsuza dek minnettar oluruz çünkü artık sürdürülemez, hoobie gibi sunucuları yapılandırmayı seviyorum ve sizi temin ederim ki bir çocuk değilim ama bu benim için çok fazla. Eğer ts3'ümün konuşmasını veya bize yardım ederseniz çok seveceğim herhangi bir şey istiyorsanız, sonuçları ve birçok insanın iyiliği için çözülen her şeyi burada yayınlayacağız, sizi temin ederim ki yılın en çok ziyaret edilen blogu olurdu çünkü bu saldırıların ddos'u nasıl sinirlendirdiği inanılmaz. Kendi başımıza yapılandırmaya çalıştığımız ve makineye erişimi engellediğimiz için, onu bios'tan biçimlendirmek zorunda kaldık, bu yüzden nasıl olduğumuzu hayal edin.
    İçten bir selam gönderiyorum. Kayıp blog için tebriklerimi sunarım, birçok insanın bununla güncellenmiş bir tane var. -Miguel Angel-

    1.    KZKG ^ Gaara dijo

      Merhaba nasılsın 🙂
      E-posta adresime yazın, size yardımcı olmaktan mutluluk duyarız 😀 -» kzkggaara[@]desdelinux[.]açık

  8.   arthur shelby dijo

    Merhaba arkadaşlar, şimdiye kadar çalıştığıma göre, bu senaryoyu ele alalım, bu arada çok iyi ... sadece bir şüphe: «yeni» modül performansı düşürmüyor mu?

    Selamlar - Teşekkürler / Senden kim hoşlanıyor?

  9.   Jose tapia dijo

    Mükemmel bir katkı dostum, sizi Kosta Rika'dan bir kucaklayacak şekilde monte ettiğimiz bir öğretici videonun referanslarına koyacağım

  10.   Cristian Fildişi Reinoso dijo

    Merhaba,

    Komut dosyasını birden çok bağlantı noktasında kullanamıyor musunuz?
    Bir oyun sunucum var ve hem web hem de oyun sunucusu bağlantı noktalarına saldırılar alıyorum.

    Bir tebrik.