标签:
linux下防火墙工作在网络层, 就是对TCP/IP数据包进行过滤,属于包过滤防火墙,包过滤机制是:netfilter
, 管理防火墙规则命令工具:iptables
iptables管理4个表、以及他们的规则链:
用于路由网络数据包
nat,用于NAT表.NAT(Net Address Translation )是一种IP地址转换方法。
mangle,用于修改网络数据包的表,如TOS(Type Of Service),TTL(Time To Live),等
raw, 用于决定数据包是否被跟踪机制处理
iptables [-t 表名] 命令选项 [链名] [条件匹配] [-] 目标动作或跳转
-A
在链尾添加一条规则-D
从链中删除一条规则-I
在链中插入一条规则-R
修改、替换某链的某规则-L
列出某个链上的规则-F
清空链,删除链上的所有规则-N
创建一个新链-X
删除某个规则链-P
定义某个链的默认策略-n
数字形式显示结果-v
查看规则列表详细信息-V
查看iptables命令工具版本-h
查看命令帮助信息-line-numbers
查看规则列表,显示顺序号iptables [-t表名] <-A | I | D | R> 链名 [规则编号] [-i | o 网卡名称] [-p 协议类型] [-s 源IP地址 | 源子网] [--sport 源端口号] [-d目标IP地址 | 目标子网] [--dport目标端口号] <-j动作>
参数说明如下。
[-t表名]
:定义默认策略将应用于哪个表,可以使用filter、nat和mangle,如果没有指定使用哪个表,iptables就默认使用filter表。-A
:新增加一条规则,该规则将会增加到规则列表的最后一行,该参数不能使用规则编号。-I
:插入一条规则,原本该位置上的规则将会往后顺序移动,如果没有指定规则编号,则在第一条规则前插入。-D
:从规则列表中删除一条规则,可以输入完整规则,或直接指定规则编号加以删除。-R
:替换某条规则,规则被替换并不会改变顺序,必须要指定替换的规则编号。<链名>
:指定查看指定表中哪个链的规则列表,可以使用INPUT、OUTPUT、FORWARD、PREROUTING、OUTPUT和POSTROUTING。[规则编号]
:规则编号用于插入、删除和替换规则时用,编号是按照规则列表的顺序排列,规则列表中第一条规则的编号为1。[-i | o 网卡名称]
:i是指定数据包从哪块网卡进入,o是指定数据包从哪块网卡输出。网卡名称可以使用ppp0、eth0和eth1等。[-p 协议类型]
:可以指定规则应用的协议,包含TCP、UDP和ICMP等。[-s 源IP地址 | 源子网]
:源主机的IP地址或子网地址。[--sport 源端口号]
:数据包的IP的源端口号。[-d目标IP地址 | 目标子网]
:目标主机的IP地址或子网地址。[--dport目标端口号]
:数据包的IP的目标端口号。<-j动作>
:处理数据包的动作,各个动作的详细说明可以参考表10-3。iptables -I INPUT -p tcp --dport 80 -j ACCEPT
查看Filter表的INPUT链中的所有规则,同时显示顺序号
[root@xx ~]# iptables -L INPUT --line-numbers
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT tcp -- anywhere anywhere tcp dpt:8070
2 ACCEPT tcp -- anywhere anywhere tcp dpt:8090
3 ACCEPT tcp -- anywhere anywhere tcp dpt:ospf-lite
4 ACCEPT tcp -- anywhere anywhere tcp dpt:cslistener
5 ACCEPT tcp -- anywhere anywhere tcp dpt:irdmi
6 ACCEPT tcp -- anywhere anywhere tcp dpt:mysql
7 ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
8 ACCEPT icmp -- anywhere anywhere
9 ACCEPT all -- anywhere anywhere
10 ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
11 REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
查看filter表各链中所有规则的详细信息,以数字形式显示地址和端口信息
[root@lingzhixun ~]# iptables -vnL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
14 1780 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8070
14 1780 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8090
49 5978 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8899
251 42782 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000
2793 174K ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8000
19175