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.FromLinux.net (Мурунку скрипт)

Шилтемелер:

 


Макаланын мазмуну биздин принциптерге карманат редакциялык этика. Ката жөнүндө кабарлоо үчүн чыкылдатыңыз бул жерде.

14 комментарий, өзүңүздүкүн калтырыңыз

Комментарий калтырыңыз

Сиздин электрондук почта дареги жарыяланбайт.

*

*

  1. Маалыматтар үчүн жооптуу: Мигель Анхель Гатан
  2. Маалыматтын максаты: СПАМды көзөмөлдөө, комментарийлерди башкаруу.
  3. Мыйзамдуулук: Сиздин макулдугуңуз
  4. Маалыматтарды берүү: Маалыматтар үчүнчү жактарга юридикалык милдеттенмелерден тышкары билдирилбейт.
  5. Маалыматтарды сактоо: Occentus Networks (ЕС) тарабынан уюштурулган маалыматтар базасы
  6. Укуктар: Каалаган убакта маалыматыңызды чектеп, калыбына келтирип жана жок кыла аласыз.

  1.   KZKG ^ Gaara ал мындай деди:

    Ошондуктан мен DDoS чабуулдарынан мурун окуу куралын койдум 😉
    Себепти же көйгөйдү коюу / түшүндүрүү (мурунку окуу куралы), ошондой эле сизге чечим (ушул окуу куралы) give

    1.    диазепан ал мындай деди:

      Perfecto.

  2.   Корацуки ал мындай деди:

    Балдардын момпосуй ...

  3.   Уго ал мындай деди:

    Жакшы макала.

    Менин эки центим:

    UDP пакеттеринде SYN желеги жок, анткени ал мамлекеттин көзөмөлүсүз протокол. Бирок, парадоксалдуу түрдө, ЖАҢЫ ЖАНА ТҮЗҮЛГӨН штаттар бар, анткени iptables бул үчүн таблицаларды ичтен алып жүрөт.

    Башка жагынан алганда, менин оюмча, эки себептен улам, Четке кагуунун ордуна, DROP көздөгөн жерин колдонгон оң: биринчиден, четке кагуу менен, мүмкүн болгон чабуулчуга маалымат берип жатат, ошондой эле компьютер өзүнүн туташуу бөлүгүн колдонуп, жөнөтүп жатат чабуулчулар тобуна билдирүү.

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

    Мен адатта ICMP түрлөрүнө 0,3,8,11 жана 12 түрлөрүнө уруксат берем, алардын кирүү чектери секундасына бирден, ал эми максимум эки же төрттөн ашып, калган нерселердин бардыгы DROPке калтырылат.

    Чындыгында, жакшыраак жөнгө салынышы мүмкүн болгон TCP протоколунан башкасы, DDoSке каршы чарасы менен жакында эле дал келген матч аркылуу корголушу керек. Бул жагынан алганда, бул модулдун автору кызыгуу менен алгач жаңыртууну, андан кийин топтомду жайгаштырганды жакшы көрөт.

    Iptables чындыгында абдан ийкемдүү жана күчтүү, азырынча мен сунуш кылган бир нерсе жана ага жете элекмин (бирок ага жетүүгө жакынмын), psd модулун порттордон алыс болууга мүмкүнчүлүк берүү, бирок баары бир Мен бул курал жөнүндө билдим, мен дагы деле жерди тырмап көрө элекмин деп ойлойм. 😉

    Кандай болсо дагы, бул дүйнөдө ар дайым окуу керек.

  4.   Корацуки ал мындай деди:

    Гуго сөздүктөгү файлдагы жакшы ойлор: У, ар дайымкыдай эле ...

    1.    Уго ал мындай деди:

      Баса, мен үчүн PSD модулун иштеп көрдүм. Маселе, ал алгач патч-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 сүйлөшүүмдү кааласаңыз же сизге жардам берүүңүздү кааласам, анда биз натыйжаларды жана көптөгөн адамдардын жыргалчылыгы үчүн чечилген нерселерди ушул жерге жайгаштырмакпыз, бул жылдын эң көп кирген блогу болот деп ишендирем, анткени бул кол салууларды кандайча тажатаары укмуштай. Биз аны өз алдынча конфигурациялаганга аракет кылып, машинага кирүүгө тыюу салгандыктан, аны биостон форматташ керек болчу, андыктан өзүбүздүн абалыбызды элестетип көрүңүз.
    Мен чын жүрөктөн салам жолдойм. Жоголгон блог үчүн куттуктоолорум, көптөгөн адамдар ушул блог менен жаңыланганын табышат. -Miguel Angel-

    1.    KZKG ^ Gaara ал мындай деди:

      Салам кандайсыз 🙂
      Мага электрондук почтама жазыңыз, биз сизге кубаныч менен жардам беребиз 😀 - »kzkggaara [@] desdelinux [.] Net

  8.   Артур Шелби ал мындай деди:

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

    Саламдашуу - Рахмат / Ким сизге жагат?

  9.   Хосе Тапиа ал мындай деди:

    Мыкты салымым, досум, мен сени Коста-Рикадан кучактап жаткан монтаждоочу видеотасмада келтирем.

  10.   Кристиан Марфил Рейносо ал мындай деди:

    салам,

    Скриптти бир нече портто колдоно албай жатасызбы?
    Менде оюн сервери бар жана вебге дагы, оюн серверинин портторуна дагы кол салам.

    А салам.