iptables

iptables

iptables的三个表

1.filter(类似ACL):系统预设,主要用于过滤数据包,内建三个链

  • INPUT:作用于进入本机的包

  • OUTPUT:作用于本机发出的包

  • FORWARD:作用于那些跟本机无关的包(即期望靠本系统转发的包)

2.nat:主要用处是地址转换,也有三个链

  • PREROUTING:更改包的目的地址

  • OUTPUT:更改本地(本机)产生的包的目的地址

  • POSTROUTING:更改包的源地址

3.mangle:主要用于给数据包打tag,然后根据标记去操作哪些包(类似Qos)

spacer.gifiptables_第1张图片

-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规则



你可能感兴趣的:(filter,iptables,NAT)