Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12603|Atsakyti: 2

[Linux] Pažiūrėkite, kaip mano Linux apsaugo nuo SYN atakų

[Kopijuoti nuorodą]
Paskelbta 2015-12-12 00:04:58 | | | |

Kai šį rytą atvykau į įmonę, jaučiausi gana lėtai, kai prisijungiau prie oficialios įmonės svetainės, prisijungiau prie serverio, kad patikrinčiau oficialios svetainės prieigos būseną:

[root@web ~]# netstat -anp |awk '{print $6}'|sort|uniq -c |sort -rn

     172 ĮSTEIGTA

     59 PRIJUNGTAS

    589 SYN_RECV

     15 SRAUTAS

SYN iš tikrųjų yra toks didelis, toliau sekti SYN siunčiamas šių IP:

[root@tweb ~]# netstat -an | grep SYN | awk '{spausdinti $5}' | awk -F: '{spausdinti $1}' | rūšiuoti | uniq -c | rūšiuoti -nr | daugiau

570 x.x.x.x   

(IP nėra parašytas, tai yra Shandong Zaozhuang Unicom IP), tačiau šis vienas IP išsiuntė tiek daug SYN užklausų ryšių, o mūsų žiniatinklio serverio sutapimas nėra labai didelis, todėl negalima atitikti įprastų vartotojų užklausų ir puslapio atidaryti negalima. Kadangi aparatūros ugniasienę valdo grupės IT skyrius, aš neturiu įgaliojimų, todėl galiu imtis tik kai kurių priemonių vietiniame serveryje, kad iš dalies sušvelninčiau SYN ataką.

Visų pirma, pakalbėkime apie SYN atakos principą:

TCP/IP protokole TCP protokolas teikia patikimas ryšio paslaugas, naudodamas trijų krypčių rankos paspaudimą, kad užmegztų ryšį.

Pirmasis rankos paspaudimas: Užmezgdamas ryšį, klientas siunčia syn paketą (syn=j) į serverį ir pereina į SYN_SEND būseną, laukdamas, kol serveris patvirtins.

Antrasis rankos paspaudimas: Kai serveris gauna SYN paketą, jis turi patvirtinti kliento SYN (ack=j+1), taip pat išsiųsti SYN paketą (syn=k), tai yra SYN+ACK paketą, tuo metu serveris pereina į SYN_RECV būseną.

Trečias rankos paspaudimas: klientas gauna SYN+ACK paketą iš serverio ir siunčia patvirtinimo paketą ACK (ack=k+1) į serverį. Po trijų rankų paspaudimų klientas ir serveris pradeda perduoti duomenis.


Jei vartotojas inicijuoja prisijungimo prie serverio užklausą tik tam, kad antrą kartą paspaustų ranką ir neatsako serveriui, serveris ir toliau laukia vartotojo patvirtinimo. Taigi mes atliekame šiuos pakeitimus tiesiai iš SYN ryšio:

Patikrinkite numatytąją SYN konfigūraciją sistemoje Linux:

[root@web ~]# sysctl -a | grep _syn

net.ipv4.tcp_max_syn_backlog = 1024

net.ipv4.tcp_syncookies = 1

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_syn_retries = 5

tcp_max_syn_backlog yra SYN eilės ilgis, o padidinus SYN eilės ilgį galima sutalpinti daugiau tinklo ryšių, laukiančių prisijungimo. tcp_syncookies yra jungiklis, skirtas įjungti SYN slapukų funkciją, kuri gali užkirsti kelią dalinėms SYN atakoms. tcp_synack_retries ir tcp_syn_retries apibrėžti pakartotinių SYN ryšių skaičių ir sumažinti numatytuosius parametrus, kad būtų galima kiek įmanoma kontroliuoti SYN ryšių skaičių.

Toliau pateikiami mano modifikuoti parametrai, kuriuos galima keisti atsižvelgiant į faktinę mano serverio situaciją:

[root@web ~]# daugiau /etc/rc.d/rc.local

#!/bin/sh

# Šis scrip{filter}t bus vykdomas *po* visų kitų init scrip{filter}ts.

# Galite įdėti savo inicijavimo stuff čia, jei ne

# nori padaryti visą Sys V stiliaus init stuff.

palieskite /var/lock/subsys/local

ulimit -HSn 65535

/usr/local/apache2/bin/apachectl start

#####

sysctl -w net.ipv4.tcp_max_syn_backlog=2048

sysctl -w net.ipv4.tcp_syncookies=1

sysctl -w net.ipv4.tcp_synack_retries=3

sysctl -w net.ipv4.tcp_syn_retries=3

Kad konfigūracija įsigaliotų iš karto, iš naujo nepaleidus serverio, ją galima atlikti

#sysctl -w net.ipv4.tcp_max_syn_backlog=2048

#sysctl -w net.ipv4.tcp_syncookies=1

#sysctl -w net.ipv4.tcp_synack_retries=3

#sysctl -w net.ipv4.tcp_syn_retries=3

Kai kurie žmonės mėgsta naudoti prieigos kontrolės sąrašus, kad užkirstų kelią SYN atakoms, o tai tam tikru mastu sulėtina SYN atakas:

Syn potvynio ataka

#iptables -A INPUT -p tcp --syn -m riba --limit 1/s -j ACCEPT

--limit 1/s apriboti syn sutapimų skaičių iki 1 karto per sekundę

Anti-prievadų nuskaitymas

# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

Mirties ping

# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

#>iptables-save >/etc/sysconfig/iptables

Norėdami peržiūrėti, #iptables -L

PRIIMTI TCP - bet kur bet kur TCP vėliavos: FIN, SYN, RST, ACK / SYN riba: vid. 1 / sek sprogo 5

PRIIMTI TCP - bet kur bet kur TCP vėliavos: FIN, SYN, RST, ACK / RST riba: vid. 1 / sek sprogo 5

PRIIMTI ICMP - bet kur icmp aido užklausos riba: vid. 1 / sek pliūpsnis 5

Dar kartą patikrinkite syn ryšį:

[root@web ~]# netstat -an | grep SYN | awk '{spausdinti $5}' | awk -F: '{spausdinti $1}' | rūšiuoti | uniq -c | rūšiuoti -nr | daugiau

     20 10.92.10.220

      1 125.43.36.199

Akivaizdu, kad SYN jungčių skaičius sumažėjo.






Ankstesnis:"Atsiprašome, nediegiate autentiškos programos, diegimo programa negali toliau vykdyti discuz" sprendimo būdas
Kitą:"SC Create" sukuria "Windows" sistemos paslaugą
Paskelbta 2015-12-13 10:53:04 |
Kokia galinga išvaizda
Paskelbta 2015-12-14 15:55:43 |
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com