CentOS Linux防火墙配置及关闭方法
<p>偶然看到防火墙的配置操作说明,感觉不错。执行”setup”命令启动文字模式配置实用程序,在”选择一种工具”中选择”防火墙配置”,然后选择”运行工具”按钮,出现防火墙配置界面,将”安全级别”设为”禁用”,然后选择”确定”即可.</p>
<p>
或者用命令:</p>
<p>
#/sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT</p>
<p>
#/sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT</p>
<p>
#/etc/rc.d/init.d/iptables save</p>
<p>
这样重启计算机后,防火墙默认已经开放了80和22端口</p>
<p>
这里应该也可以不重启计算机:</p>
<p>
#/etc/init.d/iptables restart</p>
<p>
<strong>防火墙的关闭,关闭其服务即可:</strong></p>
<p>
查看防火墙信息:</p>
<p>
#/etc/init.d/iptables status</p>
<p>
<strong>关闭防火墙服务:</strong></p>
<p>
#/etc/init.d/iptables stop</p>
<p>
永久关闭?不知道怎么个永久法:</p>
<p>
#chkconfig –level 35 iptables off</p>
<p>
看了好几个页面内容都有错,下面是正确方法:</p>
<p>
#/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT</p>
<p>
#/sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT</p>
<p>
然后保存:</p>
<p>
#/etc/rc.d/init.d/iptables save</p>
<p>
再查看是否已经有了:</p>
<p>
# /etc/init.d/iptables status</p>
<p>
Table: filter</p>
<p>
Chain INPUT (policy ACCEPT)</p>
<p>
num target prot opt source destination</p>
<p>
1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80</p>
<p>
2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80</p>
<p>
3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0</p>
<p>
Chain FORWARD (policy ACCEPT)</p>
<p>
num target prot opt source destination</p>
<p>
1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0</p>
<p>
服务器遭受到大量的大量SYN_RECV,80端号占死,网站打不开</p>
<p>
没有硬防</p>
<p>
有什么办法可以解决吗</p>
<p>
1</p>
<p>
sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies</p>
<p>
sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数</p>
<p>
sysctl -w net.ipv4.tcp_syn_retries=1 #降低syn重试次数</p>
<p>
sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半连接数</p>
<p>
sysctl -w net.ipv4.conf.all.send_redirects=0</p>
<p>
sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp數據包</p>
<p>
sysctl -w net.ipv4.tcp_fin_timeout=30</p>
<p>
sysctl -w net.ipv4.tcp_keepalive_time=60</p>
<p>
sysctl -w net.ipv4.tcp_window_scaling=1</p>
<p>
sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP</p>
<p>
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止广播</p>
<p>
2.限制单位时间内连接数</p>
<p>
如</p>
<p>
iptables -N syn-flood</p>
<p>
iptables -A FORWARD -p tcp --syn -j syn-flood</p>
<p>
iptables -A INPUT -p tcp --syn -j syn-flood</p>
<p>
iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP</p>
<p>
iptables -A syn-flood -j DROP</p>
<p>
iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP</p>
<p>
iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP</p>
<p>
3 如果还是不行,</p>
<p>
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT</p>
<p>
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP</p>
<p>
如攻击过来的流量大于你的服务器的流量,那就没有什么办法了,如果流量不大,以上方法,可以暂时保证你的80可以访问</p>
<p>
如果你的内核已经支持iptables connlimit可以使用, iptables 设定部份,也可以使用</p>
<p>
iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP</p>
<p>
或</p>
<p>
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT</p>
<p>
对付SYN FLOOD的话,真正起作用的是:</p>
<p>
sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies</p>
<p>
sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数</p>
<p>
其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的(不能阻止拒绝服务,但是确实可以防止服务器CRASH)。</p>
頁:
[1]