linux下防御ddos***

ddos***是一种分布式拒绝服务***

原理:通过使网络过载来干扰甚至阻断正常的网络通讯。通过向服务器提交大量请求,使服务器超负荷。阻断某一用户访问服务器阻断某服务与特定系统或个人的通讯

首先确认服务器是否收到ddos***

显示服务器上每个IP多少个连接数,连接数过大的话就有问题了,几个或几十个还好,成百上千就有问题了

# netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n

# vim /etc/sysctl.conf

加入下面这些

#开启CentOS SYN Cookies,这是个BOOLEAN。当出现CentOS SYN等待队列溢出时,启用cookies来处理,可防范少量CentOS SYN***,默认为0,表示关闭

net.ipv4.tcp_syncookies=1

#开启重用,这是个BOOLEAN。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭

net.ipv4.tcp_tw_reuse=1

开启TCP连接中TIME-WAIT sockets的快速回收,这是个BOOLEAN,默认为0,表示关闭

net.ipv4.tcp_tw_recycle=1

#net.ipv4.tcp_synack_retriesnet.ipv4.tcp_syn_retries是定义CentOS SYN重试次数。如果你不想修改/etc/sysctl.conf,你也可以直接使用命令修改:sbin/sysctl -w key=value

net.ipv4.tcp_synack_retries=1

net.ipv4.tcp_syn_retries=1

表示系统同时保持TIME_WAIT套接字的最大数量,如果超过这个数字,TIME_WAIT套接字将立刻被清除并打印警告信息

net.ipv4.tcp_max_syn_backlog=8000

表示如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2状态的时间。单位为秒

net.ipv4.tcp_fin_timeout=30

net.ipv4.conf.all.send_redirects=0

net.ipv4.conf.all.accept_redirects=0

net.ipv4.tcp_window_scaling=1

net.ipv4.icmp_echo_ignore_all=1

net.ipv4.icmp_echo_ignore_broadcasts=1

即时生效

sysctl -p