Šis raksts ir mašīntulkošanas spoguļraksts, lūdzu, noklikšķiniet šeit, lai pārietu uz oriģinālo rakstu.

Skats: 12603|Atbildi: 2

[Linux] Uzziniet, kā mans linux aizsargā pret SYN uzbrukumiem

[Kopēt saiti]
Publicēts 12.12.2015 00:04:58 | | | |

Kad es šorīt ierados uzņēmumā, es jutos diezgan lēns, kad pieteicos uzņēmuma oficiālajā vietnē, pieteicos serverī, lai pārbaudītu oficiālās vietnes piekļuves statusu:

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

     172 IZVEIDOTS

     59 SAVIENOTS

    589 SYN_RECV

     15 STRAUME

SYN faktiski ir tik augsts, turpiniet izsekot šo IP sūtīto SYN:

[root@tweb ~]# netstat -an | grep SYN | awk '{drukāt $5}' | awk -F: '{drukāt $1}' | kārtot | uniq -c | kārtot -nr | vairāk

570 x.x.x.x   

(IP nav rakstīts, tas ir Shandong Zaozhuang Unicom IP), bet šis viens IP ir nosūtījis tik daudz SYN pieprasījumu savienojumu, un mūsu tīmekļa servera vienlaicīgums nav ļoti augsts, tāpēc nevar izpildīt parastos lietotāju pieprasījumus un lapu nevar atvērt. Tā kā aparatūras ugunsmūri pārvalda grupas IT nodaļa, man nav pilnvaru, tāpēc es varu veikt tikai dažus pasākumus vietējā serverī, lai daļēji mazinātu SYN uzbrukumu.

Pirmkārt, runāsim par SYN uzbrukuma principu:

TCP/IP protokolā TCP protokols nodrošina uzticamus savienojuma pakalpojumus, izmantojot trīsvirzienu rokasspiedienu, lai izveidotu savienojumu.

Pirmais rokasspiediens: Izveidojot savienojumu, klients nosūta syn paketi (syn=j) uz serveri un nonāk SYN_SEND stāvoklī, gaidot, kamēr serveris apstiprina.

Otrais rokasspiediens: Kad serveris saņem SYN paketi, tam ir jāapstiprina klienta SYN (ack=j+1), kā arī jānosūta SYN pakete (syn=k), tas ir, SYN+ACK pakete, kurā serveris nonāk SYN_RECV stāvoklī.

Trešais rokasspiediens: klients saņem SYN+ACK paketi no servera un nosūta apstiprinājuma paketi ACK (ack=k+1) uz serveri. Pēc trim rokasspiedieniem klients un serveris sāk pārraidīt datus.


Ja lietotājs uzsāk savienojuma pieprasījumu ar serveri, lai otro reizi paspiest roku un neatbild serverim, serveris turpinās gaidīt lietotāja apstiprinājumu. Tātad mēs veicam šādas izmaiņas tieši no SYN savienojuma:

Pārbaudiet noklusējuma SYN konfigurāciju operētājsistēmā 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 ir SYN rindas garums, un, palielinot SYN rindas garumu, var uzņemt vairāk tīkla savienojumu, kas gaida savienojumu. tcp_syncookies ir slēdzis, lai ieslēgtu SYN sīkfailu funkciju, kas var novērst daļējus SYN uzbrukumus. tcp_synack_retries un tcp_syn_retries definē SYN atkārtotu savienojumu skaitu un samazina noklusējuma parametrus, lai pēc iespējas kontrolētu SYN savienojumu skaitu.

Tālāk ir norādīti parametri, kurus esmu modificējis, kurus var mainīt atbilstoši mana servera faktiskajai situācijai:

[root@web ~]# vairāk /etc/rc.d/rc.local

#!/bin/sh

# Šis scrip{filter}t tiks izpildīts *pēc* visiem pārējiem init scrip{filter}ts.

# Jūs varat ievietot savas inicializācijas lietas šeit, ja to nedarāt

# vēlaties darīt pilnu Sys V stila init lietas.

pieskarieties /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

Lai konfigurācija stātos spēkā nekavējoties, nerestartējot serveri, to var veikt

#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žiem cilvēkiem patīk izmantot piekļuves kontroles sarakstus, lai novērstu SYN uzbrukumus, kas zināmā mērā palēnina SYN uzbrukumus:

Syn plūdu uzbrukums

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

--limit 1/s ierobežot syn vienlaicīguma skaitu līdz 1 reizi sekundē

Anti-portu skenēšana

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

Nāves ping

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

#>iptables-saglabāt >/etc/sysconfig/iptables

Lai apskatītu, #iptables -L

ACCEPT tcp -- jebkurā vietā jebkur tcp karodziņi:FIN,SYN,RST,ACK/SYN robeža: vidēji 1/sek pārrāvums 5

ACCEPT tcp - jebkurā vietā tcp karodziņi: FIN, SYN, RST, ACK / RST robeža: vidēji 1 / sek pārrāvums 5

AKCEPTĒT icmp - jebkurā vietā icmp atbalss pieprasījuma ierobežojums: vidēji 1 / sek pārrāvums 5

Vēlreiz pārbaudiet syn savienojumu:

[root@web ~]# netstat -an | grep SYN | awk '{drukāt $5}' | awk -F: '{drukāt $1}' | kārtot | uniq -c | kārtot -nr | vairāk

     20 10.92.10.220

      1 125.43.36.199

Acīmredzot SYN savienojumu skaits ir samazinājies.






Iepriekšējo:Risinājums "Diemžēl jūs neinstalējat oriģinālu programmu, instalētājs nevar turpināt veikt discuz"
Nākamo:SC Create izveido Windows sistēmas pakalpojumu
Publicēts 13.12.2015 10:53:04 |
Kāds spēcīgs izskats
Publicēts 14.12.2015 15:55:43 |
Atruna:
Visa programmatūra, programmēšanas materiāli vai raksti, ko publicē Code Farmer Network, ir paredzēti tikai mācību un pētniecības mērķiem; Iepriekš minēto saturu nedrīkst izmantot komerciāliem vai nelikumīgiem mērķiem, pretējā gadījumā lietotājiem ir jāuzņemas visas sekas. Informācija šajā vietnē nāk no interneta, un autortiesību strīdiem nav nekāda sakara ar šo vietni. Iepriekš minētais saturs ir pilnībā jāizdzēš no datora 24 stundu laikā pēc lejupielādes. Ja jums patīk programma, lūdzu, atbalstiet oriģinālu programmatūru, iegādājieties reģistrāciju un iegūstiet labākus oriģinālus pakalpojumus. Ja ir kādi pārkāpumi, lūdzu, sazinieties ar mums pa e-pastu.

Mail To:help@itsvse.com