我的一台服务器正在进行DOS--在CLOSE_WAIT状态下有大量连接,这些连接正在阻止合法用户连接到系统。
那么,是否有任何方法可以在不杀死底层服务器进程的情况下关闭CLOSE_WAIT连接?终止这个过程会导致我想要避免的停机时间。
还有别的办法吗?
发布于 2013-10-12 17:25:31
据我所知,在不终止进程的情况下,无法关闭CLOSE_WAT连接。
也许您可以使用iptables及其最近的模块在短时间内停止对同一个TCP服务器端口和来自同一个IP的多个连接尝试。
这里有一个示例(为您的网络接口更改eth0或只删除它):
iptables -N LOGDOS
iptables -A LOGDOS -m limit --limit 5/minute --limit-burst 5 -j ULOG --ulog-nlgroup 1 --ulog-prefix "LOGDOS" --ulog-cprange 0 --ulog-qthreshold 1
iptables -A LOGDOS -j DROP
iptables -A INPUT -i eth0 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 27015 -m state --state NEW -m recent --set --name cssdos
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 27015 -m state --state NEW -m recent --update --name cssdos --seconds 60 --hitcount 4 -j LOGDOS
iptables -A INPUT -i eth0 -p tcp -m state --state NEW -m tcp --dport 27015 -j ACCEPT简短解释:
希望这对你有用。
https://serverfault.com/questions/545588
复制相似问题