红联Linux门户
Linux帮助

iptables应用

发布时间:2009-12-16 17:40:47来源:红联作者:bingwzi
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服务器





更多资料请-->http://www.netfilter.org
文章评论

共有 0 条评论