<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[iptables应用]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Fri, 01 Apr 2011 16:22:30 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	<br/>iptables -L -n --line-numbers 查看iptables规则 <br/>iptables -D INPUT 5 删除INPUT链上的第5条规则<br/>一。例如：iptables -A INPUT -p icmp -j DROP<br/>所有进来的icmp协议类型的数据包被拒绝。<br/>1.-A 增加一条规则 -D 删除一条规则 -I 插入一条规则 -R 替换一条规则 -F 清空一条规则 <br/>2.-p 协议类型 -s 源 -d 目标 -i 进入的接口 -o 出去的接口 -j 跳转（后面跟动作）-m 匹配条件<br/>二。例如：iptables -A INPUT -p tcp -d 10.0.0.1 --dprot 21 -j DROP<br/>协议类型是tcp，目标地址是10.0.0.1且端口为21的数据包被拒绝进入主机。<br/>三。我们做规则要现在INPUT OUTPUT链路上拒绝所有数据包的访问，然后在允许部分安全的数据包进入主机，如下。<br/>1.iptables -P INPUT DROP 拒绝所有进入本机的数据包<br/>2.iptables -P OUTPUT DROP 拒绝所有出去的数据包<br/>3.iptables -A INPUT -p tcp -d 10.0.0.1 --dprot 22 -j ACCEPT<br/>允许协议类型tcp 目标地址是10.0.0.1 端口是22的数据包进入本机<br/>4.iptables -A OUTPUT -p tcp -s 10.0.0.1 --sprot 22 -j ACCEPT<br/>允许协议类型tcp 源地址是10.0.0.1 端口是22的数据包通过本主机出去<br/>（以上2条规则定义了允许客户机以22号端口连接本主机，如果要本主机也可以以22号端口连接远程主机则另外定义规则）<br/>iptables-save > /etc/sysconfig/iptables 当我们做好规则以后要保存我们的劳动成果。<br/>四。配置DNS服务器的防火墙规则<br/>1.iptables -A OUTPUT -p udp --dport 53 -j ACCEPT<br/>允许目标端口为53的udp协议数据包从本机出去<br/>2.iptables -A INPUT -p udp --sprot 53 -j ACCEPT<br/>允许目标端口为53的udp协议数据包进入本机<br/>3.iptables -A INPUT -p udp -d 10.0.0.1 --dprot 53 -j ACCEPT<br/>允许目标地址为10.0.0.1 目标端口为53的数据包进入本机<br/>4.iptables -A OUTPUT -p udp -s 10.0.0.1 --sprot 53 -j ACCEPT<br/>允许源地址为10.0.0.1 源端口为53的数据包出本机<br/><br/>五。打开回环接口<br/>1.iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT<br/>允许源地址为127.0.0.1 目标地址为127.0.0.1 端口任意的数据包进入本机<br/>2.iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT<br/>允许源地址为127.0.0.1 目标地址为127.0.0.1 端口任意的数据包出本机（^IN^OUT）重复上一条规则 将IN改为了OUT<br/>六。增加状态检测功能<br/>1.iptables -A OUTPUT -p tcp --sprot 22 -m state --state ESTABLISHED -j ACCEPT<br/>只允许建立过连接的数据包出去. (也就是说不允许本机主动产生数据包从22号端口出去。例如有的木马程序主动连接外网。)<br/>七。将某条规则的连接状态写入日志（供管理员分析主机可能存在的问题）<br/>1.iptables -I INPUT 6 -p tcp --dprot 22 -j LOG --log-level 5 --log-prefix "iptables:"<br/>I是插入规则 6是要插入的规则是第几条 --log-level 要记录的日志水平 --log-prefix 日志开始的字符串<br/>要加入日志必须修改日志服务器的配置文件 vi /etc/syslog.conf 增加 kern.=notice /var/log/firewall.log<br/>八。转发 （FORWARD链，可以做路由）<br/>1.iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT<br/>允许10.0.0.1/24网段的数据包通过本机被转发出去<br/>2.iptables -A FORWARD -d 10.0.0.1/24 -j ACCEPT<br/>允许外网的数据包通过本机转发给10.0.0.1/24网段的数据包<br/>echo 1 > /proc/sys/net/ipv4/ip_forward 临时打开内核转发开关<br/>vi /etc/sysctl.conf ---> net.ipv4.ip_forward = 1 永久打开内核转发开关<br/>九。地址转换<br/>1.iptables -t nat -L -n 查看net表<br/>2.iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.0.254<br/>将客户机ip转换成本服务器的ip地址（例如本机作为一个局域网出外网的网关时(代理上网)）<br/>3.iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j MASQUERADE<br/>如果网关是动态ip时则可以伪装 将局域网的ip伪装成互联网ip<br/>内网pc--->iptables snat----->互联网<br/>4.iptables -t nat -A PREROUTING -d 10.0.0.1 -p tcp -dport 80 -j DNAT --to-destination 192.168.0.254<br/>外网访问内网www服务器实际上是访问iptables nat 然后由iptables nat将地址转换为www服务器的ip以保护www服务器的安全<br/>外网--->iptables dnat---->内网www服务器<br/><br/>Tags - <a href="http://www.dzhope.com/tags/iptables/" rel="tag">iptables</a> , <a href="http://www.dzhope.com/tags/iptables%25E5%25BA%2594%25E7%2594%25A8/" rel="tag">iptables应用</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.com/post//#blogcomment</link>
<title><![CDATA[[评论] iptables应用]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>