DDoS dan serangan lain vs iptables (Keselamatan Anti-DDoS di iptables)

Elakkan serangan DDoS dengan iptables Ia mempunyai banyak cara untuk melakukannya, mengikut ukuran paket, dengan had sambungan, dll. Di sini kita akan melihat bagaimana, dengan cara yang mudah, intuitif dan dijelaskan dengan baik kita akan mencapai objektif, dan juga menghentikan serangan lain yang menjengkelkan pada pelayan kita.

# 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

Apa yang dilakukannya ialah mengira bilangan paket SYN (Permulaan sambungan TCP) untuk setiap alamat IP dalam 10 saat terakhir. Sekiranya mencapai 30, ia akan membuang paket tersebut sehingga sambungan tidak akan terjalin (TCP akan mencuba semula beberapa kali, apabila jatuh di bawah had yang dapat ditetapkan).

#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

Inilah skrip dalam Tampal kami: Tampal.DesdeLinux.net (Skrip sebelumnya)

Rujukan:


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.

  1.   KZKG ^ Gaara kata

    Dan inilah sebabnya saya meletakkan tutorial sebelum serangan DDoS 😉
    Untuk meletakkan / menjelaskan alasan atau masalah (tutorial sebelumnya), dan juga memberi anda penyelesaian (tutorial ini) 🙂

    1.    diazepam kata

      perfecto.

  2.   koratsuki kata

    Gula-gula kanak-kanak ...

  3.   Hugo kata

    Artikel yang bagus.

    Dua sen saya:

    Dalam kes paket UDP, bendera SYN tidak wujud kerana merupakan protokol tanpa kawalan keadaan. Walau bagaimanapun, secara paradoks, keadaan BARU dan DITETAPKAN wujud kerana iptables secara dalaman membawa jadual untuk tujuan ini.

    Sebaliknya, pada pendapat saya, lebih baik menggunakan destinasi DROP dan bukannya REJECT, kerana dua sebab: pertama, dengan menolak seseorang memberi maklumat kepada kemungkinan penyerang, dan juga komputer menggunakan sebahagian dari sambungannya untuk menghantar pemberitahuan kepada pasukan penyerang.

    Perkara lain adalah bahawa dalam kasus protokol ICMP (dan secara umum) lebih mudah mengatur permintaan dan respons, kerana kita mungkin tertarik pada suatu ketika untuk melakukan ping pada diri kita sendiri, dan dengan mengaktifkan fungsi ini, seseorang dapat menggunakan botnet dan memalsukan alamat sumber ping banyak PC yang dikompromikan ini tanpa henti, dan respons akan masuk ke pelayan kami, runtuh jika tidak ada had yang dikenakan.

    Saya biasanya membenarkan jenis ICMP 0,3,8,11 dan 12 dengan had input satu saat dan ledakan maksimum dua atau empat maksimum, dan semua yang lain diserahkan kepada DROP.

    Kenyataannya, kecuali protokol TCP yang dapat diatur dengan lebih baik, semua protokol yang lain harus dilindungi dengan tindakan anti-DDoS melalui pertandingan jenis baru-baru ini. Mengenai hal ini, sebagai rasa ingin tahu, pengarang modul ini suka meletakkan kemas kini terlebih dahulu dan kemudian set.

    Iptables benar-benar sangat fleksibel dan kuat, setakat ini satu-satunya perkara yang saya cadangkan untuk dilakukan dan saya belum berjaya (walaupun saya hampir mencapainya), adalah untuk membolehkan modul psd untuk mengelakkan portcans, tetapi walaupun dengan semua yang telah saya pelajari alat, saya rasa saya belum menggaru permukaannya. 😉

    Bagaimanapun, di dunia ini anda mesti selalu belajar.

  4.   koratsuki kata

    Titik bagus Hugo, yang ada dalam daftar untuk glosari kami: D, seperti biasa, belajar ...

    1.    Hugo kata

      Ngomong-ngomong, saya sudah dapat modul psd untuk saya. Masalahnya ialah ia pada awalnya bergantung pada fungsi kernel yang tidak digunakan lagi bersama dengan patch-o-matic, jadi ia dikeluarkan dari modul bawaan di netfilter secara lalai. Jadi sekarang di Debian untuk menggunakan pelanjutan psd, pertama anda harus melakukan ini:


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

      Kemudian dapat digunakan secara normal, sesuai dengan petunjuk:

      man xtables-addons

      1.    jauh kata

        Hugo, mengapa anda tidak menerbitkan iptables.sh dengan cadangan anda untuk memperbaiki skrip siaran ini (yang bagus) termasuk psd

        Terima kasih

  5.   nelson kata

    Artikel yang sangat baik, iptables yang sangat baik dan penjelasan yang sangat baik dari @hugo. Saya semakin yakin bahawa masih banyak yang perlu saya pelajari.

  6.   koratsuki kata

    Bukan anda sahaja, sekurang-kurangnya saya ... saya kehilangan satu juta ... 😀

  7.   Malaikat Miguel kata

    Halo semua, dan terima kasih atas sumbangannya, tetapi yang sebenarnya adalah bahawa kami putus asa, kami tidak tahu apa yang harus dilakukan sekarang, dan kami datang kepada anda untuk mengetahui jenis iptables yang kami tahu bahawa anda adalah pakar dalam sistem.
    Saya adalah pemimpin sebuah komuniti di Sepanyol sumber serangan balas dan kami adalah salah satu dari sedikit yang masih hampir tidak berdiri, kami menerima serangan berterusan dari mesin dan serangan lain pada selang masa, yang berterusan menghilangkan sedikit tetapi mengecewakan pelayan sedikit tetapi yang memerlukan masa lebih banyak kerosakan. Mesin kami dipasang pada jarak 6.2 centos
    dan kami mempunyai tcadmin untuk mengawal pelayan. Anda boleh membuat kita konfigurasi yang dapat menghentikan serangan semacam ini walaupun sedikit, kita sudah putus asa,
    dan kita tidak tahu untuk berpaling, kita tahu bahawa ada dua botnet, satu buatan sendiri dan yang lain dibayar untuk masa dan tenaga. Oleh itu, kami telah melakukan serangan kejam seperti ini selama hampir satu tahun, jika anda dapat menolong kami, kami akan terus bersyukur kerana sekarang ini tidak berkekalan, saya gemar mengkonfigurasi pelayan seperti hoobie, dan saya bukan anak yang saya jamin tetapi ini banyak bagi saya. Sekiranya anda mahu ts3 saya bercakap atau apa-apa, saya ingin anda membantu kami, jadi kami akan menghantar hasilnya dan semua perkara yang diselesaikan untuk kebaikan banyak orang, ini akan menjadi blog paling banyak dikunjungi pada tahun ini yang saya jamin kepada anda kerana luar biasa bagaimana ia mengganggu serangan ini ddos. Oleh kerana kami cuba mengkonfigurasinya sendiri dan menyekat akses ke mesin, kami harus memformatnya dari bios jadi bayangkan bagaimana keadaan kami.
    Saya menghantar ucapan mesra. Dan tahniah saya untuk blog yang hilang, banyak orang mempunyai yang dikemas kini dengan yang satu ini. -Miguel Angel-

    1.    KZKG ^ Gaara kata

      Helo apa khabar 🙂
      Tulis ke e-mel saya, kami dengan senang hati akan membantu anda 😀 -» kzkggaara[@]desdelinux[.]bersih

  8.   ArthurShelby kata

    Halo kawan-kawan, sehingga sekarang saya bekerja, ambil skrip ini, bagus sekali ... hanya satu keraguan: Adakah modul "baru-baru ini" tidak mengurangkan prestasi?

    Salam - Terima kasih / Siapa yang menyukai anda?

  9.   Jose tapia kata

    Sumbangan yang sangat baik rakan saya, saya akan memasukkan anda dalam rujukan video tutorial yang sedang kami pasang, pelukan dari Costa Rica

  10.   Cristian Ivory Reinoso kata

    Hello,

    Tidak boleh menggunakan skrip di beberapa port?
    Saya mempunyai pelayan permainan dan saya menyerang kedua-dua web dan port pelayan permainan.

    Sesuatu ucapan.