iptables
iptables的三个表
1.filter(类似ACL):系统预设,主要用于过滤数据包,内建三个链
INPUT:作用于进入本机的包
OUTPUT:作用于本机发出的包
FORWARD:作用于那些跟本机无关的包(即期望靠本系统转发的包)
2.nat:主要用处是地址转换,也有三个链
PREROUTING:更改包的目的地址
OUTPUT:更改本地(本机)产生的包的目的地址
POSTROUTING:更改包的源地址
3.mangle:主要用于给数据包打tag,然后根据标记去操作哪些包(类似Qos)
-t:指定表名,默认为filter表
-nvL:使用ip形式查看详细的规则列表
--line-numbers:显示规则序号
-F:清除当前规则
-Z:重置数据包和流量的计数器
/etc/init.d/iptables save:保存规则
防火墙规则保存在/etc/sysconfig/iptables文件中
-A chain:增加一条规则
-D chain:删除一条规则
-I chain:插入一条规则
-p:指定协议,可以是 tcp, udp 或者 icmp
--dport:跟-p 一起使用,指定目标端口
--sport:跟-p 一起使用,指定源端口
-s :指定源 IP(可以是一个 ip 段)
-d:指定目的 IP(可以是一个 ip 段)
-j:后跟动作,其中 ACCEPT 表示允许包通过, DROP 表示丢弃包, REJECT 表示拒绝包
-i:指定进接口(不常用,但有时候能用到)
-o:指定出接口
-P chain:指定预设策略,DROP或ACCEPT(默认)
iptables -I INPUT -m iprange --src-range 61.4.176.0-61.4.191.255 -j DROP \\针对一个地址范围
iptables -I INPUT -p icmp --icmp-type 8 -j DROP \\丢弃echo-request报文
nat表的应用
------------案例:使用同一个公网IP上网-----------
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward //启用路由转发功能,默认是0
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE //设置SNAT策略
MASQUERADE参数的作用:使用该接口的地址作为包的源地址;主要使用在动态获取公网地址的环境
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.4 -o eth0 -j SNAT --to 10.11.11.11 //使用指定地址替换源地址
------------案例:隐藏实际服务器地址-----------
[root@localhost ~]# sysctl -w net.ipv4.ip_forward=1 //启用路由转发功能,默认是0
[root@localhost ~]# iptables -t nat -A PREROUTING -d 114.21.35.66 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.1.4:8080 //使用指定地址替换目的地址和端口
保存以及备份iptables规则
service iptables save //保存iptables规则
service iptables stop //停止iptables时会清除iptables规则,与iptables -F不同的是它还会重置预设策略为ACCEPT
iptables-save[-t table]>filename //备份iptables规则
iptables-restore[-t table]<filename //还原iptables规则
本文出自 “好大一只葫芦” 博客,请务必保留此出处http://zhuxingye.blog.51cto.com/11121336/1739379
原文地址:http://zhuxingye.blog.51cto.com/11121336/1739379