标题:iptables应用 出处:沧海一粟 时间:Sat, 02 Apr 2011 00:22:30 +0000 作者:jed 地址:http://www.dzhope.com/post/787/ 内容: iptables -L -n --line-numbers 查看iptables规则 iptables -D INPUT 5 删除INPUT链上的第5条规则 一。例如:iptables -A INPUT -p icmp -j DROP 所有进来的icmp协议类型的数据包被拒绝。 1.-A 增加一条规则 -D 删除一条规则 -I 插入一条规则 -R 替换一条规则 -F 清空一条规则 2.-p 协议类型 -s 源 -d 目标 -i 进入的接口 -o 出去的接口 -j 跳转(后面跟动作)-m 匹配条件 二。例如:iptables -A INPUT -p tcp -d 10.0.0.1 --dprot 21 -j DROP 协议类型是tcp,目标地址是10.0.0.1且端口为21的数据包被拒绝进入主机。 三。我们做规则要现在INPUT OUTPUT链路上拒绝所有数据包的访问,然后在允许部分安全的数据包进入主机,如下。 1.iptables -P INPUT DROP 拒绝所有进入本机的数据包 2.iptables -P OUTPUT DROP 拒绝所有出去的数据包 3.iptables -A INPUT -p tcp -d 10.0.0.1 --dprot 22 -j ACCEPT 允许协议类型tcp 目标地址是10.0.0.1 端口是22的数据包进入本机 4.iptables -A OUTPUT -p tcp -s 10.0.0.1 --sprot 22 -j ACCEPT 允许协议类型tcp 源地址是10.0.0.1 端口是22的数据包通过本主机出去 (以上2条规则定义了允许客户机以22号端口连接本主机,如果要本主机也可以以22号端口连接远程主机则另外定义规则) iptables-save > /etc/sysconfig/iptables 当我们做好规则以后要保存我们的劳动成果。 四。配置DNS服务器的防火墙规则 1.iptables -A OUTPUT -p udp --dport 53 -j ACCEPT 允许目标端口为53的udp协议数据包从本机出去 2.iptables -A INPUT -p udp --sprot 53 -j ACCEPT 允许目标端口为53的udp协议数据包进入本机 3.iptables -A INPUT -p udp -d 10.0.0.1 --dprot 53 -j ACCEPT 允许目标地址为10.0.0.1 目标端口为53的数据包进入本机 4.iptables -A OUTPUT -p udp -s 10.0.0.1 --sprot 53 -j ACCEPT 允许源地址为10.0.0.1 源端口为53的数据包出本机 五。打开回环接口 1.iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 允许源地址为127.0.0.1 目标地址为127.0.0.1 端口任意的数据包进入本机 2.iptables -A OUTPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT 允许源地址为127.0.0.1 目标地址为127.0.0.1 端口任意的数据包出本机(^IN^OUT)重复上一条规则 将IN改为了OUT 六。增加状态检测功能 1.iptables -A OUTPUT -p tcp --sprot 22 -m state --state ESTABLISHED -j ACCEPT 只允许建立过连接的数据包出去. (也就是说不允许本机主动产生数据包从22号端口出去。例如有的木马程序主动连接外网。) 七。将某条规则的连接状态写入日志(供管理员分析主机可能存在的问题) 1.iptables -I INPUT 6 -p tcp --dprot 22 -j LOG --log-level 5 --log-prefix "iptables:" I是插入规则 6是要插入的规则是第几条 --log-level 要记录的日志水平 --log-prefix 日志开始的字符串 要加入日志必须修改日志服务器的配置文件 vi /etc/syslog.conf 增加 kern.=notice /var/log/firewall.log 八。转发 (FORWARD链,可以做路由) 1.iptables -A FORWARD -s 10.0.0.1/24 -j ACCEPT 允许10.0.0.1/24网段的数据包通过本机被转发出去 2.iptables -A FORWARD -d 10.0.0.1/24 -j ACCEPT 允许外网的数据包通过本机转发给10.0.0.1/24网段的数据包 echo 1 > /proc/sys/net/ipv4/ip_forward 临时打开内核转发开关 vi /etc/sysctl.conf ---> net.ipv4.ip_forward = 1 永久打开内核转发开关 九。地址转换 1.iptables -t nat -L -n 查看net表 2.iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j SNAT --to-source 192.168.0.254 将客户机ip转换成本服务器的ip地址(例如本机作为一个局域网出外网的网关时(代理上网)) 3.iptables -t nat -A POSTROUTING -s 10.0.0.1/24 -j MASQUERADE 如果网关是动态ip时则可以伪装 将局域网的ip伪装成互联网ip 内网pc--->iptables snat----->互联网 4.iptables -t nat -A PREROUTING -d 10.0.0.1 -p tcp -dport 80 -j DNAT --to-destination 192.168.0.254 外网访问内网www服务器实际上是访问iptables nat 然后由iptables nat将地址转换为www服务器的ip以保护www服务器的安全 外网--->iptables dnat---->内网www服务器 Generated by Bo-blog 2.1.1 Release