Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 12603|Odgovoriti: 2

[linux] Poglej, kako moj Linux ščiti pred SYN napadi

[Kopiraj povezavo]
Objavljeno na 12. 12. 2015 00:04:58 | | | |

Ko sem danes zjutraj prispel v podjetje, sem se počutil precej počasnega, ko sem se prijavil na uradno spletno stran podjetja, se prijavil na strežnik, da preverim status dostopa do uradne spletne strani:

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

     USTANOVLJENO 172

     59 CONNECTED

    589 SYN_RECV

     15 STREAM

SYN je dejansko tako visok, da nadaljujte s sledenjem SYN, ki ga pošiljajo ti IP-ji:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | Več

570 x.x.x.x   

(IP ni zapisan, je IP podjetja Shandong Zaozhuang Unicom), vendar je ta en IP poslal toliko povezav s SYN zahtevami, zato sočasnost našega spletnega strežnika ni zelo visoka, zato običajne uporabniške zahteve ni mogoče uskladiti in stran ni mogoče odpreti. Ker strojni požarni zid upravlja IT oddelek skupine, nimam pooblastil, zato lahko na lokalnem strežniku sprejmem le nekatere ukrepe za delno omilitev SYN napada.

Najprej se pogovorimo o načelu napada v SYN:

V protokolu TCP/IP protokol TCP zagotavlja zanesljive povezovalne storitve z uporabo tristranskega handshakea za vzpostavitev povezave.

Prvi stik roke: Pri vzpostavljanju povezave odjemalec pošlje syn paket (syn=j) strežniku in vstopi v stanje SYN_SEND, čaka na potrditev strežnika.

Drugi stik roke: Ko strežnik prejme SYN paket, mora potrditi SYN stranke (ack=j+1) in poslati tudi SYN paket (syn=k), torej paket SYN+ACK, pri čemer strežnik vstopi v stanje SYN_RECV.

Tretji handshake: Odjemalec prejme paket SYN+ACK od strežnika in pošlje potrditveni paket ACK (ack=k+1) strežniku. Po treh rokovanju začneta odjemalec in strežnik prenašati podatke.


Če uporabnik sproži zahtevo za povezavo s strežnikom, nato pa drugič stisne roko in ne odgovori strežniku, bo strežnik še naprej čakal na potrditev uporabnika. Torej naredimo naslednje spremembe neposredno iz SYN povezave:

Preverite privzeto SYN konfiguracijo v Linuxu:

[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 je dolžina SYN vrste, in povečanje dolžine SYN vrste lahko omogoči več omrežnih povezav, ki čakajo na povezavo. tcp_syncookies je stikalo za vklop funkcije SYN piškotkov, ki lahko prepreči delne SYN napade. tcp_synack_retries in tcp_syn_retries določata število ponovnih povezav za SYN in zmanjšujeta privzete parametre za čim večji nadzor števila SYN povezav.

Spodaj so parametri, ki sem jih spremenil in jih je mogoče prilagoditi glede na dejansko stanje mojega strežnika:

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

#!/smeti/šš

# Ta scrip{filter}t bo izveden *po* vseh drugih init scrip{filter}ts.

# Lahko daš svoje inicializacijske stvari sem, če ne

# želim narediti celoten Sys V slog init stvari.

dotakni se /var/zaklep/subsys/lokalno

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

Da bi konfiguracija takoj začela delovati brez ponovnega zagona strežnika, jo je mogoče izvesti

#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

Nekateri ljudje radi uporabljajo sezname nadzora dostopa za preprečevanje SYN napadov, kar do določene mere upočasni SYN napade:

Syn flood napad

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

--omejitev 1/s omejitev števila sinhronizacije na 1 čas na sekundo

Anti-portno skeniranje

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

Ping smrti

# iptables -A NAPREJ -p icmp --icmp-tip echo-request -m limit --limit 1/s -j ACCEPT

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

Za ogled, #iptables -L

ACCEPT tcp -- kjerkoli in kjerkoli tcp zastavice: FIN,SYN,RST,ACK/SYN omejitev: povprečno 1/sekunda burst 5

SPREJMI tcp -- kjerkoli in kjerkoli tcp zastavice: FIN,SYN,RST,ACK/RST omejitev: povprečno 1/sekunda izbruha 5

ACCEPT icmp -- kjerkoli, kjerkoli omejitev echo zahteve: povprečno 1/sec burst 5

Ponovno preveri sinhronizacijo:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | Več

     20 10.92.10.220

      1 125.43.36.199

Očitno se je število SYN povezav zmanjšalo.






Prejšnji:"Oprostite, ne nameščate pristne aplikacije, namestitveni program ne more nadaljevati z izvajanjem DisUza"
Naslednji:SC Create ustvari sistemsko storitev Windows
Objavljeno na 13. 12. 2015 10:53:04 |
Kakšen močan videz
Objavljeno na 14. 12. 2015 15:55:43 |
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com