<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="CentOS Linux防火墙配置及关闭">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2009-06-15 18:34<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
CentOS Linux防火墙配置及关闭


终端执行&rdquo;setup&rdquo;命令启动文字模式配置实用程序,在&rdquo;选择一种工具&rdquo;中选择&rdquo;防火墙配置&rdquo;,然后选择&rdquo;运行工具&rdquo;按钮,出现防火墙配置界面,将&rdquo;安全级别&rdquo;设为&rdquo;禁用&rdquo;,然后选择&rdquo;确定&rdquo;即可.


或者用命令:
#/sbin/iptables -I INPUT -p tcp &ndash;dport 80 -j ACCEPT
#/sbin/iptables -I INPUT -p tcp &ndash;dport 22 -j ACCEPT
#/etc/rc.d/init.d/iptables save


 


这样重启计算机后,防火墙默认已经开放了80和22端口


这里应该也可以不重启计算机：
#/etc/init.d/iptables restart


防火墙的关闭，关闭其服务即可：


查看防火墙信息：
#/etc/init.d/iptables status


关闭防火墙服务：
#/etc/init.d/iptables stop


永久关闭？不知道怎么个永久法：
#chkconfig &ndash;level 35 iptables off


 

看了好几个页面内容都有错，下面是正确方法：
#/sbin/iptables --I INPUT -p tcp --dport 80 -j ACCEPT#/sbin/iptables --I INPUT -p tcp --dport 22 -j ACCEPT

然后保存：
#/etc/rc.d/init.d/iptables save

再查看是否已经有了：


[root@vcentos ~]# /etc/init.d/iptables status


Table: filter


Chain INPUT (policy ACCEPT)


num target prot opt source destination   


1 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:80 


2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80


3 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0   





Chain FORWARD (policy ACCEPT)


num target prot opt source destination   


1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0





服务器遭受到大量的大量SYN_RECV，80端号占死，网站打不开

没有硬防



有什么办法可以解决吗


1 
sysctl -w net.ipv4.tcp_syncookies=1 #启用使用syncookies
sysctl -w net.ipv4.tcp_synack_retries=1 #降低syn重试次数
sysctl -w net.ipv4.tcp_syn_retries=1 #降低syn重试次数
sysctl -w net.ipv4.tcp_max_syn_backlog=6000 #最大半连接数
sysctl -w net.ipv4.conf.all.send_redirects=0 
sysctl -w net.ipv4.conf.all.accept_redirects=0 #不接受重定向的icmp數據包
sysctl -w net.ipv4.tcp_fin_timeout=30 
sysctl -w net.ipv4.tcp_keepalive_time=60 
sysctl -w net.ipv4.tcp_window_scaling=1 
sysctl -w net.ipv4.icmp_echo_ignore_all=1 #禁止ICMP
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 #ICMP禁止广播

2.限制单位时间内连接数
如
iptables -N syn-flood 
iptables -A FORWARD -p tcp --syn -j syn-flood 
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -A syn-flood -p tcp --syn -m limit --limit 3/s --limit-burst 1 -j ACCEP
iptables -A syn-flood -j DROP
iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP 
iptables -A INPUT -p tcp --syn -m state --state NEW -j DROP

3 如果还是不行，
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEP

如攻击过来的流量大于你的服务器的流量，那就没有什么办法了，如果流量不大，以上方法，可以暂时保证你的80可以访问





如果你的内核已经支持iptables   connlimit可以使用, iptables 设定部份，也可以使用

iptables -I FORWARD -p tcp --syn -m connlimit --connlimit-above 5 -j DROP
或
iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 5 -j REJECT






对付SYN FLOOD的话，真正起作用的是：
sysctl -w net.ipv4.tcp_syncookies=1        #启用使用syncookies
sysctl -w net.ipv4.tcp_synack_retries=1        #降低syn重试次数
其他IPTABLES的限制速度功能不能用来对付SYN FLOOD的（不能阻止拒绝服务，但是确实可以防止服务器CRASH）。
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
