See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 12603|Vastuse: 2

[linux] Vaata, kuidas minu Linux kaitseb SYN-rünnakute eest

[Kopeeri link]
Postitatud 12.12.2015 00:04:58 | | | |

Kui ma täna hommikul ettevõttesse jõudsin, tundsin end üsna aeglaselt, kui logisin sisse ettevõtte ametlikule veebilehele, logisin sisse serverisse, et kontrollida ametliku veebisaidi ligipääsu staatust:

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

     172 ASUTATUD

     59 ÜHENDATUD

    589 SYN_RECV

     15 VOOG

SYN on tegelikult nii kõrge, jätka nende IP-de saadetud SYN-i jälgimist:

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

570 x.x.x.x   

(IP ei ole kirjutatud, see on Shandong Zaozhuang Unicomi IP), kuid see üks IP on saatnud nii palju SYN-päringute ühendusi ning meie veebiserveri paralleelsus pole väga suur, mistõttu tavalisi kasutajapäringuid ei saa vastata ega lehte avada. Kuna riistvaralist tulemüüri haldab grupi IT-osakond, mul puudub volitus, seega saan kohaliku serveri puhul võtta vaid mõningaid meetmeid, et SYN-rünnakut osaliselt leevendada.

Kõigepealt räägime SYN-i rünnakuprintsiibist:

TCP/IP protokollis pakub TCP protokoll usaldusväärseid ühendusteenuseid, kasutades kolmepoolset käepigistust ühenduse loomiseks.

Esimene käepigistus: Ühenduse loomisel saadab klient serverile sün-paketi (syn=j) ja siseneb SYN_SEND olekusse, oodates serveri kinnitust.

Teine käepigistus: Kui server saab SYN-paketi, peab ta kinnitama kliendi SYN-i (ack=j+1) ning saatma ka SYN-paketi (syn=k), st SYN+ACK paketi, mille järel server siseneb SYN_RECV olekusse.

Kolmas käepigistus: Klient saab serverilt SYN+ACK paketi ja saadab kinnituspaketi ACK (ack=k+1) serverile. Pärast kolme käepigistust hakkavad klient ja server andmeid edastama.


Kui kasutaja alustab serveriga ühenduse päringut, kuid annab teist korda kätt ja ei vasta, ootab server endiselt kasutaja kinnitust. Seega teeme järgmised muudatused otse SYN-ühendusest:

Vaata Linuxi vaikimisi SYN konfiguratsiooni:

[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 on SYN-järjekorra pikkus ning SYN-järjekorra pikkuse suurendamine võimaldab rohkem võrguühendusi, mis ootavad ühendamist. tcp_syncookies on lüliti, mis lülitab sisse SYN küpsise funktsiooni, mis võib takistada osalisi SYN rünnakuid. tcp_synack_retries ja tcp_syn_retries määravad SYN-i kordusühenduste arvu ning vähendavad vaikimisi parameetreid, et kontrollida SYN-ühenduste arvu võimalikult palju.

Järgnevad on parameetrid, mida olen muutnud ja mida saab muuta vastavalt minu serveri tegelikule olukorrale:

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

#!/bin/sh

# See scrip{filter}t käivitatakse *pärast* kõiki teisi init scrip{filter}t'e.

# Sa võid oma inisialiseerimise asjad siia panna, kui sa ei tee seda

# tahan teha täisväärtuslikku Sys V stiilis init asju.

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

Selleks, et konfiguratsioon jõustuks kohe ilma serverit taaskäivitamata, saab selle teha

#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

Mõned inimesed eelistavad kasutada juurdepääsukontrolli nimekirju, et vältida SYN-rünnakuid, mis aeglustab SYN-rünnakuid teatud määral:

Syn flood rünnak

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

--limit 1/s piira sünteeride samaaegsuse arvu 1 korrani sekundis

Portivastane skaneerimine

# iptables -A EDASI -p tcp --tcp-lipud SYN,ACK,FIN,RST RST -m piir --piirang 1/s -j NÕUSTU

Surma ping

# iptables -A EDASI -p icmp --icmp-tüüpi kaja-päringu -m piirang --piirang 1/s -j NÕUSTU

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

Vaatamiseks #iptables -L

ACCEPT tcp -- igal pool, kus tcp liputab: FIN, SYN, RST, ACK/SYN piir: keskmine 1/sek, burst 5

ACCEPT tcp -- igal pool tcp lipud:FIN,SYN,RST,ACK/RST piirang: keskmine 1/sek, burst 5

ACCEPT icmp -- igal pool icmp echo-request piirang: keskmine 1/sek, burst 5

Kontrolli sünteesi ühendust uuesti:

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

     20 10.92.10.220

      1 125.43.36.199

Ilmselgelt on SYN-ühenduste arv vähenenud.






Eelmine:"Vabandust, sa ei paigalda ehtsat rakendust, paigaldaja ei saa diskussiooni jätkata" lahendus
Järgmine:SC Create loob Windowsi süsteemiteenuse
Postitatud 13.12.2015 10:53:04 |
Milline võimas välimus
Postitatud 14.12.2015 15:55:43 |
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com