我每天都从相同的几个IP地址类的数千个请求中受到很大打击。 最近它占用了我所有的MYSQL连接,并且不允许任何新的连接。
我正在尝试configuration防火墙来设置连接限制。
这是我现在的规则
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT -A INPUT -p tcp -m tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT -A INPUT -p tcp -m tcp --dport 465 -j ACCEPT -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT -A INPUT -p tcp -m tcp --dport 995 -j ACCEPT -A INPUT -p tcp -m tcp --dport 143 -j ACCEPT -A INPUT -p tcp -m tcp --dport 993 -j ACCEPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT -A INPUT -p tcp -m tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 443 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 21 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 2 --connlimit-mask 24 -j REJECT --reject-with tcp-reset -A INPUT -p tcp -m tcp --dport 25 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT --reject-with tcp-reset
我以前从来没有搞错IPTables。 对我来说,它看起来像这个规则
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
正在覆盖的限制
我一直在试图做的是取消这个全球接受规则,并添加这个规则
iptables -A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-upto 10 --connlimit-mask 24 -j ACCEPT
我收到错误iptables v1.4.7:未知选项`–connlimit-upto'当我尝试添加此规则。 我究竟做错了什么?
修复更新
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP iptables -A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP iptables -A INPUT -p tcp -m tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG FIN,SYN,RST,PSH,ACK,URG -j DROP iptables -A INPUT -i lo -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 80 -m connlimit ! --connlimit-above 20 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 443 -m connlimit ! --connlimit-above 5 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 25 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 465 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 110 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 995 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 143 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 993 -m connlimit ! --connlimit-above 10 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 22 -m connlimit ! --connlimit-above 1 --connlimit-mask 24 -j ACCEPT iptables -A INPUT -p tcp -m tcp --dport 21 -m connlimit ! --connlimit-above 2 --connlimit-mask 24 -j ACCEPT
谢谢!!!
看来你有1.4.7的iptables版本。 在版本1.4.11中添加了--connlimit-upto选项,在此更新日志中提及。 更新你的iptables ,因为它似乎有点过时(2010年3月)。