NASDIY

Centos 防火墙 iptables 配置

iptalbes 的三个表

filter     这个表主要用于过滤包的,是系统预设的表,这个表也是我用的最多的。内建三个链 INPUT、OUTPUT 以及 FORWARD。 

INPUT 作用于进入本机的包     OUTPUT 作用于本机送出的包     FORWARD 作用于那些跟本机无关的包 

nat     主要用处是网络地址转换,也有三个链。 PREROUTING 链的作用是在包刚刚到达防火墙时改变它的目的地址,如果需要的话。OUTPUT 链改变本地产生的包的目的地址。POSTROUTING 链在包就要离开防火墙之前改变其源地址。该表我用的不多,但有时候会用到。 

mangle     这个表主要是用于给数据包打标记, 然后根据标记去操作哪些包。这个表几乎不怎么用。除非 你想成为一个高级网络工程师,否则就没有必要花费很多心思在它上面。

iptables 基本语法

(1) 查看规则以及清除规则

iptables -t nat -nvL

-t 后面跟表名, -nvL 即查看该表的规则,其中-n 表示不针对 IP 反解析主机名, -L 表示列出的意思, 而-v 表示列出的信息更加详细。

如果不加-t ,则打印 filter 表的相关信息,这个和-t filter 打印的信息是一样的。关于清除规则的命令中,用的最多就是: 

iptables -F         表示把所有规则全部删除

iptables -Z       表示把包以及流量计数器置零(这个我认为很有用)

(2) 增加/删除一条规则

iptables -A INPUT -s 10.72.11.12 -p tcp --sport 1234 -d 10.72.137.159 --dport 80 -j DROP

省略-t 所以针对的是 filter 表。

-A 表示增加一条规则,增加的规则是在最后面的

-I 表示插入一条规则,增加的规则是在最前面的,能让一条规则最优先生效

-D 删除一条规则

后面的 INPUT 即链名称,还可以是 OUTPUT 或者 FORWORD。 

-s 后跟源地址(可以是一个 ip 段)

-p 协议( tcp, udp, icmp

--sport/--dport 后跟源端口/目标端口,必须要和-p 选项一起使用,否则会出错

-d 后跟目的 IP(主要针对内网或者外网 可以是一个 ip 段)

 -j 后跟动作( DROP 即把包丢掉, REJECT 即包拒绝, ACCEPT 即允许包)

 -i :指定网卡(不常用,但有时候能用到)

iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

【上例中表示,把来自 192.168.1.0/24 这个网段的并且作用在 eth0 上的包放行】

--icmp-type    这个选项要跟-p icmp 一起使用,后面指定类型编号,后面跟 8 指的是能在本机 ping 通其他机器,而其他机器不能 ping 通本机。

iptables -i INPUT -p icmp --icmp-type 8 -j DROP 

iptables -I INPUT -s 1.1.1.1 -j DROP

上例表示:插入一条规则,把来自 1.1.1.1 的所有数据包丢掉。

iptables -D INPUT -s 1.1.1.1 -j DROP

删除刚刚插入的规则。注意要删除一条规则时,必须和插入的规则一致,两条 iptables 命令,除了-I 和-D 不一样外,其他地方都一样。 

iptables -I INPUT -s 2.2.2.2 -p tcp --dport 80 -j DROP

上例表示把来自 2.2.2.2 并且是 tcp协议到本机的 80端口的数据包丢掉。 

iptables -I OUTPUT -p tcp --dport 22 -d 10.0.1.14 -j DROP

这条规则表示,把发送到 10.0.2.34 的 22 端口的数据包丢掉。至于 FORWORD 链的应用我几乎没有用 到过,所以不再举例。

(3) 用编号删除一条规则

有时候你的服务器上 iptables 过多了,想删除某一条规则时,又不容易掌握当时创建时的规则。其实 有一种比较简单的方法: 

iptables -nvL --line-numbers         显示所有规则并在行首显示编号num

iptables -D INPUT 1            根据num编号删除规则

(4) iptables 预设策略:  

 -P(大写)选项,表示预设策略。用法如下:

iptables -P INPUT DROP    表示预设丢弃所有入站的数据

-P后面跟链名,策略内容为 DROP 或者为 ACCEPT,默认是 ACCEPT。注意:如果你在连接远 程服务器,千万不要随便敲这个命令,因为一旦敲完回车你就会断掉。 

iptables -P INPUT ACCEPT 使预设规则恢复成原始状态,而不能使用-F 参数清楚。

nat表的应用路由转发

echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

第一个命令涉及到了内核参数相关的配置文件,它的 目的是为了打开路由转发功能,否则无法实现我们的应用。

第二个命令则是对 nat 表做了一个 IP 转发的操作, -o 选项后跟设备名,表示出口的网卡, MASQUERADE 表示伪装的意思。

保存及备份规则

/etc/init.d/iptables save    保存规则,防火墙规则保存在了 /etc/sysconfig/iptables 可以查看一下这个文件

备份 /etc/sysconfig/iptables 文件即可备份防火墙规则

下面介绍给你一个用来备份防火墙规则的命令: 
iptables-save > myipt.rule 
使用 iptables-save 命令重定向到一个文件里。要想恢复这些规则使用下面的命令即可: 

iptables-restore < myipt.rule

停止防火墙服务

service iptables stop

这样防火墙就失效了,但是一旦重新设定规则后(哪怕只有一条),防火墙服务会自动开启。


  • 评论列表:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero Theme By

渝ICP备14007881号-1