Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 12603|Válasz: 2

[linux] Nézd meg, hogyan véd a Linuxom a SYN támadások ellen

[Linket másol]
Közzétéve 2015. 12. 12. 0:04:58 | | | |

Amikor ma reggel megérkeztem a céghez, elég lassú voltam, amikor bejelentkeztem a cég hivatalos weboldalára, bejelentkeztem a szerverre, hogy ellenőrizzem a hivatalos weboldal hozzáférési állapotát:

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

     172 ALAPÍTÁS

     59 CSATLAKOZOTT

    589 SYN_RECV

     15 STREAM

A SYN valójában nagyon magas, folytasd a követést az IP-k által küldött SYN-t:

[root@tweb ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sorolás | Uniq -C | sort -nr | több

570 x.x.x.x   

(Az IP nincs írva, hanem a Shandong Zaozhuang Unicom IP-je), de ez az IP annyi SYN kérést küldött, és a webszerverünk egyidejű kapcsolata nem túl magas, így a normál felhasználói kérések nem válaszolnak, és az oldal nem nyitható meg. Mivel a hardver tűzfalat a csoport IT osztálya kezeli, nincs hatásköröm, így csak néhány intézkedést tehetek a helyi szerveren, hogy részben mérgesítsem a SYN támadást.

Először is, beszéljünk a SYN támadási elvéről:

A TCP/IP protokollban a TCP protokoll megbízható kapcsolati szolgáltatásokat nyújt háromirányú kézfogással a kapcsolat létrehozásához.

Első kézfogás: Kapcsolat létrehozásakor az ügyfél egy syn csomagot (syn=j) küld a szervernek, majd belép a SYN_SEND állapotba, várva a szerver megerősítését.

A második kézfogás: Amikor a szerver megkapja a SYN csomagot, meg kell erősítenie az ügyfél SYN-jét (ack=j+1), és küldenie kell egy SYN csomagot (syn=k), azaz SYN+ACK csomagot, ekkor a szerver belép a SYN_RECV állapotba.

Harmadik kézfogás: Az ügyfél megkapja a szervertől a SYN+ACK csomagot, majd elküldi a megerősítő csomagot ACK (ack=k+1) a szervernek. Három kézfogás után az ügyfél és a szerver elkezdi az adatátvitelt.


Ha a felhasználó kapcsolatkérést indít a szerverrel, csak hogy másodszor kezet fogjon, és nem válaszol a szervernek, a szerver továbbra is vár a felhasználó megerősítésére. Tehát közvetlenül a SYN kapcsolatból hajtjuk végre a következő változtatásokat:

Nézd meg az alapértelmezett SYN konfigurációt Linuxban:

[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 a SYN sor hossza, és a SYN sor hosszának növelése több hálózati kapcsolatot biztosíthat, amelyek csatlakozásra várnak. tcp_syncookies egy kapcsoló, amely bekapcsolja a SYN cookie funkciót, amely megakadályozza a részleges SYN támadásokat. tcp_synack_retries és tcp_syn_retries meghatározzák a SYN újrapróbálkozási kapcsolatainak számát, és csökkentik az alapértelmezett paramétereket, hogy a lehető leginkább szabályozzák a SYN kapcsolatok számát.

Az alábbiakban a paramétereket módosítottam, amelyeket a szerverem tényleges helyzete alapján lehet módosítani:

[root@web ~]# több /etc/rc.d/rc.local

#!/bin/sh

# Ez a scrip{filter}t *azután* az összes többi init scrip{filter}t után lesz végrehajtva.

# Ha nem teszed, beteheted ide a saját inicializációs anyagaidat

# Teljes Sys V stílusú init dolgokat akarok csinálni.

érintse meg /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

Ahhoz, hogy a konfiguráció azonnal érvényesüljön anélkül, hogy újraindítsa szervert, végrehajtható

#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

Vannak, akik szeretik használni a hozzáférési vezérlőlistákat a SYN támadások megelőzésére, ami bizonyos mértékig lassítja a SYN támadásokat:

Syn flood támadás

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

--limit 1/s korlátozza a szint egyidejű számot 1 alkalommal másodpercenként

Portellenes szkennelés

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

Halál pingje

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

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

Megtekintéshez #iptables -L

FOGADD el tcp-t -- bárhol, bárhol, tcp zászlós: FIN, SYN, RST, ACK/SYN határ: átlag 1/sec burst 5

FOGADD el tcp-t -- bárhol, bárhol, tcp zászlók: FIN, SYN, RST, ACK/RST korlát: átlag 1/másodperc burst 5

ACCEPT icmp -- bárhol bárhol icmp echo-request limit: átlag 1/sec burst 5

Ellenőrizd újra a szin-kapcsolatot:

[root@web ~]# netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sorolás | Uniq -C | sort -nr | több

     20 10.92.10.220

      1 125.43.36.199

Nyilvánvalóan csökkent a SYN kapcsolatok száma.






Előző:"Sajnálom, nem telepítel valódi alkalmazást, a telepítő nem tudja tovább a discuz-t végrehajtani" megoldás
Következő:Az SC Create létrehoz egy Windows rendszerszolgáltatást
Közzétéve 2015. 12. 13. 10:53:04 |
Micsoda erőteljes megjelenés
Közzétéve 2015. 12. 14. 15:55:43 |
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com