Pakeiskite sysctl parametrą $ sudo sysctl -a | GREP IPv4 | grep syn
Išvestis yra panaši į šią:
net.ipv4.tcp_max_syn_backlog = 1024 net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_synack_retries = 5 net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_syncookies, ar įjungti SYN COOKIES funkciją, "1" įjungta, "2" išjungta. net.ipv4.tcp_max_syn_backlog yra SYN eilės ilgis, o padidinus eilės ilgį galima sutalpinti daugiau tinklo ryšių, laukiančių prisijungimo. net.ipv4.tcp_synack_retries ir net.ipv4.tcp_syn_retries apibrėžia SYN bandymų skaičių.
Pridėkite šiuos dalykus prie /etc/sysctl.conf, tada vykdykite "sysctl -p"!
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_syn_backlog = 4096 net.ipv4.tcp_synack_retries = 2 net.ipv4.tcp_syn_retries = 2
Pagerinkite TCP ryšį
net.ipv4.tcp_rmem = 32768 net.ipv4.tcp_wmem = 32768 net.ipv4.sack=0 #我的Centos 5.4 užuomina neturi šio raktažodžio
Naudokite iptables Komanda:
# netstat -an | grep ":80" | grep ĮSTEIGTA
Pažiūrėkime, kurie IP yra įtartini~ Pavyzdžiui: 221.238.196.83 turi daug ryšių su šiuo IP ir yra labai įtartinas, todėl nenoriu, kad jis vėl būtų prijungtas prie 221.238.196.81. Galimos komandos:
iptables -A INPUT -s 221.238.196.81 -p tcp -d 221.238.196.83 --dport 25 --syn -j ACCEPT
Tai neteisinga
Manau, kad jis turėtų būti parašytas taip
iptables -A INPUT -s 221.238.196.83 -p tcp -j DROP
Išmeskite paketus iš 221.238.196.83.
SYN FLOOD atakoms, kurios suklastoja šaltinio IP adresą. Šis metodas yra neveiksmingas
Kitos nuorodos
Užkirsti kelią sinchronizavimo potvyniui
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
Taip pat yra žmonių, kurie rašo
# iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ACCEPT
--limit 1/s apriboti syn lygiagrečių skaičių iki 1 per sekundę, kuris gali būti modifikuojamas pagal savo poreikius, kad būtų išvengta įvairių prievadų nuskaitymo
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Mirties pingas
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
BSD
Veikimas:
sysctl net.inet.tcp.msl=7500
Kad paleidimas iš naujo veiktų, galite pridėti šią eilutę prie /etc/sysctl.conf:
net.inet.tcp.msl=7500
|