Модифікація параметра sysctl $ sudo sysctl -a | GREP IPv4 | grep syn
Вихід подібний до наступного:
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 — чи вмикати функцію SYN COOKIES, "1" увімкнено, "2" вимкнено. net.ipv4.tcp_max_syn_backlog — довжина черги SYN, і збільшення довжини черги дозволяє приймати більше мережевих з'єднань, які чекають на підключення. net.ipv4.tcp_synack_retries і net.ipv4.tcp_syn_retries визначають кількість повторень SYN.
Додайте наступне до /etc/sysctl.conf, а потім виконайте "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
Покращення TCP-зв'язку
net.ipv4.tcp_rmem = 32768 net.ipv4.tcp_wmem = 32768 net.ipv4.sack=0 #我的Centos підказка 5.4 не містить цього ключового слова
Використовуйте iptables Команда:
# netstat -an | grep ":80" | grep ЗАСНОВАНО
Давайте подивимось, які IP-адреси підозріли~ Наприклад: 221.238.196.83 має багато підключень до цієї IP і дуже підозріла, і я не хочу, щоб вона знову була підключена до 221.238.196.81. Доступні команди:
iptables -A INPUT -s 221.238.196.81 -p tcp -d 221.238.196.83 --dport 25 --syn -j ACCEPT
Це неправильно
Я вважаю, що це має бути написано ось так
iptables -A INPUT -s 221.238.196.83 -p tcp -j DROP
Викинути пакети з 221.238.196.83.
Для атак SYN FLOOD, які підробляють вихідну IP-адресу. Цей метод неефективний
Інші джерела
Запобігання синхронізації
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ПРИЙНЯТИ
Є також люди, які пишуть
# iptables -A INPUT -p tcp --syn -m limit --limit 1/s -j ПРИЙНЯТИ
--limit 1/s обмежує кількість syn-паралелізму до 1 на секунду, що можна коригувати відповідно до ваших потреб, щоб запобігти різному скануванню портів
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
Пінг смерті
# iptables -A FORWARD -p icmp --icmp-тип echo-request -m limit --limit 1/s -j ПРИЙНЯТИ
BSD
Робота:
sysctl net.inet.tcp.msl=7500
Щоб перезапуск працював, можна додати наступний рядок у /etc/sysctl.conf:
net.inet.tcp.msl=7500
|