Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12603|Odpoveď: 2

[linux] Pozrite sa, ako môj Linux chráni pred útokmi SYN

[Kopírovať odkaz]
Zverejnené 12. 12. 2015 0:04:58 | | | |

Keď som dnes ráno prišiel do spoločnosti, cítil som sa dosť pomaly, keď som sa prihlásil na oficiálnu webovú stránku spoločnosti, prihlásil sa na server, aby som skontroloval stav prístupu na oficiálnu stránku:

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

     172 ZALOŽENÝCH

     59 PRIPOJENÝCH

    589 SYN_RECV

     15 STREAM

SYN je vlastne taký vysoký, pokračujte v sledovaní SYN odoslaného týmito IP adresami:

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

570 x.x.x.x   

(IP adresa nie je zapísaná, je to IP spoločnosti Shandong Zaozhuang Unicom), ale táto jedna IP vyslala toľko SYN požiadaviek a súbežnosť nášho webového servera nie je veľmi vysoká, takže bežné požiadavky používateľov nie je možné zodpovedať a stránka sa nedá otvoriť. Keďže hardvérový firewall spravuje IT oddelenie skupiny, nemám žiadnu právomoc, takže môžem prijať len niektoré opatrenia na lokálnom serveri na čiastočné zmiernenie útoku SYN.

Najprv sa poďme porozprávať o princípe útoku v SYN:

V protokole TCP/IP poskytuje protokol TCP spoľahlivé služby pripojenia pomocou trojcestného handshake na nadviazanie spojenia.

Prvý handshake: Pri nadväzovaní spojenia klient pošle syn paket (syn=j) serveru a vstúpi do stavu SYN_SEND, pričom čaká na potvrdenie servera.

Druhý handshake: Keď server prijme SYN paket, musí potvrdiť SYN zákazníka (ack=j+1) a tiež odoslať SYN paket (syn=k), teda SYN+ACK paket, pričom server vstúpi do stavu SYN_RECV.

Tretie handshake: Klient prijíma paket SYN+ACK od servera a odosiela potvrdzovací paket ACK (ack=k+1) serveru. Po troch podaniach ruky začnú klient a server prenášať dáta.


Ak používateľ iniciuje žiadosť o spojenie so serverom, no druhýkrát si podá ruku a neodpovie serveru, server bude naďalej čakať na potvrdenie používateľa. Preto robíme nasledujúce zmeny priamo z SYN spojenia:

Skontrolujte predvolenú konfiguráciu SYN v Linuxe:

[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 dĺžka SYN fronty a jej predĺženie umožňuje viac sieťových spojení čakajúcich na pripojenie. tcp_syncookies je prepínač na zapnutie funkcie SYN cookie, ktorá môže zabrániť čiastočným útokom SYN. tcp_synack_retries a tcp_syn_retries definujú počet opakovaných spojení pre SYN a znižujú predvolené parametre, aby sa čo najviac kontroloval počet SYN spojení.

Nasledujú parametre, ktoré som upravil a ktoré je možné upraviť podľa aktuálnej situácie môjho servera:

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

#!/bin/sh

# Tento scrip{filter}t sa vykoná *po* všetkých ostatných init scrip{filter}ts.

# Môžeš sem dať svoje vlastné inicializačné veci, ak nie

# chcem robiť celý štýl Sys V v init.

touch /var/lock/subsys/lokálne

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

Aby konfigurácia nadobudla účinnosť okamžite bez reštartu servera, je možné ju vykonať

#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

Niektorí ľudia radi používajú zoznamy kontroly prístupu na prevenciu SYN útokov, čo do určitej miery spomaľuje SYN útoky:

Syn flood útok

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

--obmedziť 1/s obmedziť počet syn súbežnosti na 1 čas za sekundu

Anti-portové skenovanie

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

Ping smrti

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

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

Na zobrazenie, #iptables -L

ACCEPT tcp -- kdekoľvek a kdekoľvek tcp vlajky: FIN,SYN,RST,ACK/SYN limit: priemerne 1/sekunda burst 5

ACCEPT tcp -- kdekoľvek a kdekoľvek tcp vlajky: FIN,SYN,RST,ACK/RST limit: priemer 1/sekunda burst 5

ACCEPT icmp -- kdekoľvek kdekoľvek icmp echo-request limit: priemer 1/sekunda burst 5

Skontroluj syn pripojenie znova:

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

     20 10.92.10.220

      1 125.43.36.199

Samozrejme, počet SYN pripojení klesol.






Predchádzajúci:Obchádzka "Prepáčte, neinštalujete originálnu aplikáciu, inštalátor nemôže pokračovať v vykonávaní discuz"
Budúci:SC Create vytvára systémovú službu pre Windows
Zverejnené 13. 12. 2015 10:53:04 |
Aký silný vzhľad
Zverejnené 14. 12. 2015 15:55:43 |
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com