2.0 iptables详解-1

netfilter(防火墙)-->iptables(工具)

table(表)-->chain(链)-->(规则)  

iptables  -t(+表名)  filter(表)  -nvL    (用得比较多,定义允许或者不允许的)  

iptables  -t(+表名)  nat(表)  -nvL       (定义地址转换的)

iptables  -t(+表名)  mangle(表)  -nvL    (修改报文原数据,这个表主要是对数据包做标记,针对标记去做操作)

主要是过滤的包的进出

1.PREROUTING (路由前)

2.INPUT (数据包流入口)
3.FORWARD (转发管卡)
4.OUTPUT(数据包出口)
5.POSTROUTING(路由后)

对于filter来讲一般只能做在3个链上:INPUT ,FORWARD(作用于无关本机的包) ,OUTPUT  
对于nat来讲一般也只能做在3个链上:PREROUTING ,OUTPUT ,POSTROUTING  (作用网络地址转换)

PREROUTING:可以在这里定义进行目的NAT的规则,因为路由器进行路由时只检查数据包的目的ip地址,所以为了使数据包得以正确路由,我们必须在路由之前就进行目的NAT;

POSTROUTING:可以在这里定义进行源NAT的规则,系统在决定了数据包的路由以后在执行该链中的规则。

OUTPUT:定义对本地产生的数据包的目的NAT规则。

而mangle则是5个链都可以做:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING (主要用于给数据包打标记)


 iptables定义规则的方式比较复杂:
         格式:iptables [-t table] COMMAND chain CRETIRIA -j ACTION
                 -t table :3个filter nat mangle
                 COMMAND:定义如何对规则进行管理
                 chain:指定你接下来的规则到底是在哪个链上操作的,当定义策略的时候,是可以省略的
                 CRETIRIA:指定匹配标准
                 -j ACTION :指定如何进行处理


iptables  -t  filter  -I(插入,是从最上面插入)/-D(删除)/-A(增加,是从最下面增加)  INPUT(对INPUT表进行操作)  -p(+协议)  tcp  --dport(+端口号)  80  -s(+源IP)  12.12.12.12  -j(动作,行为)  DROP/REJECT/ACCEPT(丢掉/拒绝/允许)


iptables -t filter -I INPUT -p tcp --dport 80 -s 12.12.12.12 -j ACCEPT

iptables -t filter -D INPUT -p tcp --dport 80 -s 12.12.12.12 -j ACCEPT

iptables -t filter -A INPUT -p tcp --dport 80 -s 12.12.12.12 -j ACCEPT


iptables  -nvL(查看规则,默认是filter表)

-I越往后添加的规则,就越先生效

-A越往后添加的规则,就越往后生效

ip138.com


--dport一定要加上-p选项才可以使用



2.1 iptables详解-2

iptables -Z   清空链,及链中默认规则的计数器的(有两个计数器,被匹配到多少个数据包,多少个字节)

iptables -F   清空filter表的所有链

service iptables restart(如果不保存规则,重启规则后,规则就没)

service iptables save(保存规则,以防重新后规则没了,规则会默认保存在/etc/sysconfig/iptables)

iptables-save > 1.ipt(指定保存规则到一个文件,也叫做防火墙规则的备份)

iptables-restore < 1.ipt(恢复防火墙的规则)


iptables -F 

service iptables save(本身机器就带有规则,所以要清空规则后,保存下规则,为了防止重启后原来的规则恢复)



2.2 iptables详解-3

iptables  -P(策略)  INPUT  ACCEPT/DORP(DORP不要轻易的使用,用了之后,你的远程就连不上了,主要是改这里,后面是一共过滤了多少包,多少字节)

iptables_iptables



2.3 iptables详解-4

做这样子一个例子,需要写一个脚本,避免被阻断在外面

iptables_iptables_02

iptables_iptables_03