Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12603|Odpověď: 2

[linux] Podívejte se, jak můj Linux chrání před útoky SYN

[Kopírovat odkaz]
Zveřejněno 12.12.2015 0:04:58 | | | |

Když jsem dnes ráno dorazil do firmy, cítil jsem se docela pomalu, když jsem se přihlásil na oficiální webové stránky společnosti, přihlásil se na server, abych zkontroloval stav přístupu na oficiální web:

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

     172 ZALOŽENO

     59 PROPOJENÝCH

    589 SYN_RECV

     15 STREAM

SYN je ve skutečnosti tak vysoký, pokračujte ve sledování SYN odeslaného těmito IP adresami:

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

570 x.x.x.x   

(IP není zapsána, je to IP Shandong Zaozhuang Unicom), ale tato jedna IP odešla tolik SYN požadavků a souběžnost našeho webového serveru není příliš vysoká, takže běžné uživatelské požadavky nelze odpovídat a stránka nemůže být otevřena. Protože hardwarový firewall spravuje IT oddělení skupiny, nemám žádnou pravomoc, takže mohu na lokálním serveru přijmout jen některá opatření, abych částečně zmírnil útok SYN.

Nejprve si pojďme promluvit o principu útoku v SYN:

V protokolu TCP/IP poskytuje protokol TCP spolehlivé služby připojení pomocí třícestného handshake k navázání spojení.

První handshake: Při navázání spojení klient odešle syn paket (syn=j) serveru a vstoupí do stavu SYN_SEND, čeká na potvrzení serveru.

Druhý handshake: Když server přijme SYN paket, musí potvrdit zákaznický SYN (ack=j+1) a také odeslat SYN paket (syn=k), tedy SYN+ACK paket, v tu chvíli server vstoupí do stavu SYN_RECV.

Třetí handshake: Klient přijme paket SYN+ACK od serveru a odešle potvrzovací paket ACK (ack=k+1) serveru. Po třech handshakech začnou klient a server přenášet data.


Pokud uživatel zahájí požadavek na spojení se serverem, ale podruhé si potřese rukou a neodpoví serveru, server bude dál čekat na potvrzení uživatele. Proto provedeme následující změny přímo z SYN spojení:

Zkontrolujte výchozí konfiguraci SYN 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 délka SYN fronty a její prodloužení umožňuje více síťových připojení čekajících na připojení. tcp_syncookies je spínač pro zapnutí funkce SYN cookies, která může zabránit částečným útokům SYN. tcp_synack_retries a tcp_syn_retries definují počet opětovných spojení pro SYN a snižují výchozí parametry, aby co nejvíce kontrolovaly počet SYN spojení.

Následující parametry jsem upravil a které lze upravit podle aktuální situace mého serveru:

[root@web ~]# více /etc/rc.d/rc.local

#!/koš/š.

# Tento scrip{filter}t bude vykonán *po* všech ostatních init scrip{filter}ts.

# Můžeš sem dát své vlastní inicializační věci, pokud ne

# chci dělat celý styl Sys V init.

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

Aby konfigurace nastoupila v platnost okamžitě bez restartu serveru, může být provedena

#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

Někteří lidé rádi používají seznamy řízení přístupu k prevenci útoků SYN, což do určité míry zpomaluje útoky SYN:

Syn flood attack

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

--limit 1/s omezit počet syn souběžnosti na 1 čas za sekundu

Anti-portové skenování

# 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

Zobrazit #iptables -L

ACCEPT tcp -- kdekoliv a kdekoliv tcp příznaky: FIN,SYN,RST,ACK/SYN limit: průměrný burst 1/sec 5

ACCEPT tcp -- kamkoliv a kdekoliv tcp vlajky: FIN,SYN,RST,ACK/RST limit: průměr 1/sekunda burst 5

ACCEPT icmp -- kdekoliv a kdekoli icmp echo-request limit: průměr 1/sec burst 5

Zkontrolujte syn připojení znovu:

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

     20 10.92.10.220

      1 125.43.36.199

Je zřejmé, že počet SYN připojení klesl.






Předchozí:"Omlouváme se, neinstalujete originální aplikaci, instalátor nemůže pokračovat v provádění discuz"
Další:SC Create vytváří systémovou službu Windows
Zveřejněno 13.12.2015 10:53:04 |
Jaký silný vzhled
Zveřejněno 14.12.2015 15:55:43 |
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com