DDoS болон бусад халдлагууд iptables (iptables дахь DDoS-ийн эсрэг хамгаалалт)

Довтолгооноос зайлсхий DDOS шийдэлийг iptables Энэ нь пакетын хэмжээ, холболтын хязгаар гэх мэт олон арга замтай. Энд бид зорилгодоо хүрэхийн тулд хялбар, зөн совинтой, сайн тайлбарласан аргаар, мөн бусад серверүүд рүү залхмаар довтолгоог хэрхэн зогсоохыг харах болно.

# 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

Энэ нь SYN пакетуудын тоог тоолох явдал юм (TCP холболт эхлэв) сүүлийн 10 секундын IP хаяг бүрийн хувьд. Хэрэв 30 хүрвэл тухайн пакетийг хаях тул холболт хийгдэхгүй болно (TCP нь тохируулж болох хязгаараас доош унахад хэд хэдэн удаа дахин оролдох болно).

#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

Манай Paste дээрх скрипт энд байна: Paste.FromLinux.net (Өмнөх скрипт)

Ашигласан материал:

 


Нийтлэлийн агуулга нь бидний зарчмуудыг баримталдаг редакцийн ёс зүй. Алдааны талаар мэдээлэхийн тулд товшино уу энд байна.

14 сэтгэгдэл, үлдээгээрэй

Сэтгэгдэлээ үлдээгээрэй

Таны и-мэйл хаяг хэвлэгдсэн байх болно.

*

*

  1. Мэдээллийг хариуцах: Мигель Анхель Гатан
  2. Мэдээллийн зорилго: СПАМ-ыг хянах, сэтгэгдлийн менежмент.
  3. Хууль ёсны байдал: Таны зөвшөөрөл
  4. Мэдээллийн харилцаа холбоо: Хуулийн үүргээс бусад тохиолдолд мэдээллийг гуравдагч этгээдэд дамжуулахгүй.
  5. Өгөгдөл хадгалах: Occentus Networks (ЕХ) -с зохион байгуулсан мэдээллийн сан
  6. Эрх: Та хүссэн үедээ мэдээллээ хязгаарлаж, сэргээж, устгаж болно.

  1.   KZKG ^ Гаара гэж хэлэв

    Тиймээс би DDoS халдлагын өмнө гарын авлага оруулав
    Шалтгаан, асуудлыг тавьж / тайлбарлах (өмнөх заавар), бас шийдлийг нь өгөх (энэ заавар) 🙂

    1.    диазепан гэж хэлэв

      төгс төгөлдөр.

  2.   Корацуки гэж хэлэв

    Хүүхдийн чихэр ...

  3.   Хюго гэж хэлэв

    Буэн артикуло.

    Миний хоёр цент:

    UDP пакетуудын хувьд SYN туг нь төрийн хяналтгүй протокол тул байдаггүй. Гэсэн хэдий ч iptables нь хүснэгтийг дотроо авч явдаг тул хачирхалтай нь ШИНЭ ба ТОМИЛСОН төлөвүүд байдаг.

    Нөгөөтэйгүүр, миний бодлоор, татгалзах оронд DROP очих газрыг ашиглах нь дээр гэсэн хоёр шалтгаанаар ашиглах нь зүйтэй юм. Нэгдүгээрт, татгалзсан тохиолдолд халдлагад өртөж болзошгүй этгээдэд мэдээлэл өгөх, мөн компьютер холболтынхоо хэсгийг ашиглаж илгээх болно. довтлогч багт мэдэгдэл.

    Өөр нэг зүйл бол ICMP протоколын хувьд (мөн ерөнхийдөө) хүсэлт, хариуг хоёуланг нь зохицуулах нь тохиромжтой байдаг, учир нь бид өөрсдийгөө цоолохыг хэзээ нэгэн цагт сонирхож магадгүй бөгөөд энэ функцийг идэвхжүүлснээр хэн нэгэн нь ботнет ашиглаж хуурамчаар үйлдэж болно. Эдгээр олон эвдэрсэн компьютеруудыг төгсгөлгүйгээр пинг хийх эх хаяг, хариу нь манай сервер рүү орж, хязгаарлалт тогтоогоогүй тохиолдолд нурж унах болно.

    Би ихэвчлэн ICMP төрлийн 0,3,8,11 ба 12-ийг оролтын хязгаар нь секундэд нэг, хамгийн ихдээ хоёроос дөрвөн удаагийн тэсрэлттэй байхыг зөвшөөрдөг бөгөөд бусад бүх зүйлийг DROP дээр үлдээдэг.

    Үнэндээ илүү сайн зохицуулж болох TCP протоколоос бусад нь DDoS-ийн эсрэг хамгаалалттай байх ёстой. Үүнтэй холбогдуулан энэ модулийг зохиогч нь сониуч зангаараа эхлээд шинэчлэлтийг дараа нь багцыг байрлуулах дуртай байдаг.

    Iptables нь үнэхээр уян хатан бөгөөд хүчирхэг тул одоогоор миний санал болгоод амжаагүй байгаа цорын ганц зүйл бол (хүрэхэд ойрхон байгаа ч гэсэн) psd модулийг порцкануудаас зайлсхийх боломжийг олгох явдал юм. хэрэгсэл, би гадаргууг зурж амжаагүй байгаа гэж бодож байна. 😉

    Ямартай ч энэ ертөнцөд та үргэлж суралцах хэрэгтэй.

  4.   Корацуки гэж хэлэв

    Манай толь бичгийн толь бичигт байгаа Хюго сайн зүйлүүд: D, үргэлж сурч мэдсэн шиг ...

    1.    Хюго гэж хэлэв

      Дашрамд хэлэхэд би psd модулийг өөртөө зориулж ажиллуулах боломжтой болсон. Асуудал нь анхандаа patch-o-matic-тэй хамт хуучирсан цөмийн ажиллагаанаас хамаардаг байсан тул анхдагчаар netfilter доторх суулгагдсан модулиас хасагдсан болно. Тэгэхээр одоо Debian дээр psd өргөтгөлийг ашиглахын тулд эхлээд үүнийг хийх хэрэгтэй:


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

      Үүнийг зааврын дагуу ердийн үед ашиглаж болно.

      man xtables-addons

      1.    хол гэж хэлэв

        Хюго, та яагаад энэ бичлэгийн скриптийг сайжруулах саналтай хамт iptables.sh нийтлэхгүй байгаа юм бэ (энэ нь сайн), psd

        баярлалаа

  5.   Нелсон гэж хэлэв

    @Hugo-ийн маш сайн нийтлэл, маш сайн iptables болон маш сайн тайлбар. Надад сурах зүйл их байгаа гэдэгт улам бүр итгэж байна.

  6.   Корацуки гэж хэлэв

    Чи ганцаараа биш, ядаж би ... Би саяар дутаж байна ... 😀

  7.   Мигель Анхел гэж хэлэв

    Бүгдээрээ сайн байцгаана уу, оруулсан хувь нэмрээ оруулсанд баярлалаа, гэхдээ үнэндээ бид цөхрөнгөө барсан, бид одоо юу хийхээ мэдэхгүй байгаа бөгөөд бид таныг системийн талаар мэргэшсэн гэдгийг мэддэг iptables-ийн төлөө тантай уулзах болно.
    Би бол Испанийн сөрөг цохилтын эх сурвалжийг удирддаг олон нийтийн удирдагч бөгөөд бид одоо хүртэл зогсож байгаа цөөхөн хүмүүсийн нэг юм. Бид машинаас байнга халдлага, бусад халдлагыг цаг хугацааны давтамжтайгаар хүлээн авдаг. бага зэрэг гэхдээ цаг хугацаа нь илүү их хохирол учруулдаг. Манай машиныг 6.2 центост суурилуулсан
    мөн бидэнд серверүүдийг хянах tcadmin байна. Та энэ төрлийн халдлагыг бага ч гэсэн зогсоож чадахуйц тохиргоог хийж болно, энэ нь бид аль хэдийн цөхрөнгөө барсан,
    мөн хэнд хандахаа мэдэхгүй, нэг нь гар хийцийн, нөгөө нь цаг хугацаа, хүчээр мөнгө төлдөг хоёр ботнет байдгийг бид мэднэ. Бид ийм төрлийн харгис хэрцгий довтолгоонуудыг бараг бүтэн жилийн турш тэвчсээр ирсэн. энэ бол миний хувьд маш их зүйл юм. Хэрэв та миний ts3-ийг ярихыг хүсч байвал бид танд туслахыг хүсч байвал үр дүн, олон хүний ​​сайн сайхны төлөө шийдсэн бүх зүйлийг энд байршуулахыг хүсч байгаа бол энэ жилийн хамгийн олон зочилсон блог байх болно. Энэ нь эдгээр халдлагыг хэрхэн залхаадаг нь гайхалтай юм. Бид үүнийг бие даан тохируулахыг оролдож, төхөөрөмжид нэвтрэх эрхийг хаасан тул биосоос форматлах хэрэгтэй болсон тул өөрсдийнхөө байдлыг төсөөлөөрэй.
    Би чин сэтгэлийн мэндчилгээ илгээж байна. Алга болсон блогтоо баяр хүргэе, олон хүн энэ блогоор шинэчилсэн блог олдог. -Мигел Анжел-

    1.    KZKG ^ Гаара гэж хэлэв

      Сайн байцгаана уу?
      Намайг имэйлээр бичээрэй, бид танд баяртай байх болно help - »kzkggaara [@] desdelinux [.] Net

  8.   АртурШелби гэж хэлэв

    Сайн уу залуусаа, одоо болтол би ажиллаж байгаа тул энэ скриптийг маш сайн ашиглаарай ... ганцхан эргэлзээтэй: "Сүүлийн" модуль нь гүйцэтгэлийг бууруулдаггүй гэж үү?

    Мэндчилгээ - Баярлалаа / Та хэнд таалагддаг вэ?

  9.   Хосе Тапиа гэж хэлэв

    Маш сайн хувь нэмэр оруулсан найз минь, бид таныг угсарч байгаа сургалтын видеоны эшлэлүүдэд оруулах болно, Коста Рикагийн тэврэлт

  10.   Кристиан Марфил Рейносо гэж хэлэв

    Сайн байна уу,

    Скриптийг олон порт дээр ашиглаж чадахгүй байна уу?
    Би тоглоомын сервертэй бөгөөд вэб болон тоглоомын серверийн портууд руу халддаг.

    Баярлалаа.