您的位置:首页 > 运维架构 > Linux

linux处置服务Iptables

2015-08-06 15:09 603 查看
一:Iptables防火墙服务

iptables分为两个部分:一个部分在内核中实现,一个为用户接口命令iptables,用户通过该命令来改动防火墙的功能。所以,iptables要使用对应的功能。必需要在内核中加入对应的模块。

modprobe加入模块

1:防火墙匹配规则 raw表----> mangle表------->nat表------>filter表。

raw:主要是进行包跟踪 ,包括的rule chians(规则链): PEREROUTING OUTPUT

mangle: 设置数据包的标记 (规则链) : PERE OUTPUT INPUT POST FORWARD

nat:改动数据包中的源。目地址和mac (规则链) : POST PERE OUTPUT

filter:对包进行过滤。 (规则链) : INPUT OUTPUT FORWARD

一个规则链中能够有非常多规则,一个表中能够包括多个链,规则依次匹配。匹配则停止。

2:对于入站和出站数据,经过的链为 PEREROUTING --->INPUT --->OUTPUT ---> POSTROUTING

3:对转发的数据:经过的链为 PEREROUTING --->FORWARD ---->POSTROUTING

防火墙先依照表的顺序,再依照数据的流向来进行对应链中的规则的匹配。

4:链中规则的jump(动作)分为:ACCEPT(接受),DROP(丢弃)。REJECT(拒绝)。LOG(日志)。SNAT

DNAT REDRECT等等

动作的意思就是当匹配到该规则时,防火墙进行如何的操作。丢弃还是通过。或者记录到日志中。当动作为LOG时,会继续向下匹配,所以为LOG时应该写在最前面。

二:iptables的具体命令配置

1: iptables -nvL -n(numeric)-L(List) -v(verbose) 具体显示filter表中的规则,默认filter表

2: iptables -t filter -P INPUT ACCEPT 配置INPUT链默认的policy为ACCEPT -t (table)

3: iptables -A INPUT 向INPUT链中加入规则。后面接对应的选项 -A (append)

4: iptables -D INPUT rules numbers 删除INPUT链中的规则 rules numbers为规则的序号。-D(delete)

5: iptables -I INPUT 4 rules 在INPUT的第四条规则中插入规则 -I (insert)

6: iptables -A INPUT -m [ limit/multiport/state] 加入对应的模块实现对应的功能,-m(model),

7: iptables -A INPUT -m state --state NEW -j ACCEPT 使用state模块,通过数据包状态匹配来控制。

8: service iptables save 将规则保存到/etc/iptables文件。下次重新启动自己主动生效。

9: iptables-save > iptables.conf 将配置写入iptables.conf文件。iptables-restore<iptables.conf写回。

三:匹配的类型

1:通用类型的匹配.

如协议类型,网络接口。网络地址 如: -p tcp/udp/icmp -i eth0 -s 172.16.0.1 --sport 60等

2:隐含条件匹配

通常以特定的协议匹配为前提

3:显示条件匹配

须要加入对应的扩展模块来实现。

如 -m limit --limit 5/sec -j ACCEPT 实现数据包通过速率

-m multiport --dport 80,53,21 实现多个端口同一时候控制 -mstate --state NEW or ESTABLISHED

四:SNAT和DNAT动作的原理

1:在利用iptables进行PAT的nat地址转换的时候。必须在POSTROUING链中写入规则,这样FORWARD链中对内部地址的控制规则才会有效,假设再PREROUTING就转换,就立马变为公有地址了,FORWARD链中的规则匹配不到,则失效,

2:在公布内部server的时候,必需要在PREROUING链中写入nat转换规则,假设不这样,当外网訪问的时候。为防火墙上的一个公有地址接口,不会经过转发直接被防火墙接收。

3:因为防火墙server上有缓存。在回来的数据会直接转换。

4:配置SNAT,和DNAT命令。

1:配置SNAT iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.0/16 -j SNAT --to-source 27.45.33.231 这里一定要接出接口的名字!

2: 配置DNAT, iptables -t nat -A PREROUTING -i eth2 -d 23.55.13.45 -j DNAT --to-destination 172.16.0.3 这里一定要指定入接口的名字!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: