关于iptables的过滤表的常见命令规则

1、iptables规则表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
iptables默认实现数据包过滤的表是fiter(-t 指定规则表,未指定时默认为filter),包含三条链。

(1)Filter(针对过滤系统):INPUT、FORWARD、OUTPUT

INPUT:处理流入本地的数据包

FORWARD:处理通过系统路由的数据包

OUTPUT:处理本地流出的数据包

(2)NAT(针对地址转换系统):PREROUTING、POSTROUTING、INPUT、OUTPUT

PREROUTING:处理即将接收的数据包

POSTROUTING:处理即将传出的数据包

(3)Mangle(针对策略路由只和特殊应用):OUTPUT、POSTROUTING

2、选项

1
2
3
4
5
6
7
8
9
10
11
12
13
-A 在链的末尾追加一条规则

-I 在链的开头插入一条规则

-D 删除链内指定序号(或内容)的一条规则

-P 为指定的链设置默认规则

-L 列出所有的规则条目

-F 清空所有规则

-R 修改规则

3、条件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
-s 源地址 

-d 目标地址

--dport 目标端口

--sport 源端口

-p 协议名

    -p tcp 指定tcp协议

    -p !tcp指定除tcp以外的所有协议

-i 指定入口网卡

-o 指定出口网卡

4、基本目标操作(使用-j 来指定对包的处理)

1
2
3
4
5
6
7
ACCEPT  允许通过

DROP 直接丢弃,不给任何回应

REJECT 拒绝通过,必要时给出提示

LOG 记录日志,然后传给下一条规则

5、常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(1)查看规则链:
iptables -L

(2)清空规则链:
iptables -F

(3)设置默认规则 ,将进入的流量丢掉(白名单策略):
iptables -P INPUT DROP

(4)设置默认规则,允许所有流量通过(黑名单策略):
iptables -P INPUT ACCEPT

(5)允许icmp协议流量通过:
iptables -A INPUT -p icmp -j ACCEPT

(6)拒绝22端口进来的TCP流量:
iptables -A INPUT -p tcp --dport 22 -j REJECT

(7)允许192.168.80.0网段的22端口通过:
iptables -A INPUT -s 192.168.80.0/24 -p tcp --dport 22 -j ACCEPT

(8)允许192.168.11.2能通过SSH协议远程访问:
192.168.70.140/24:iptables -A INPUT -p tcp -s 192.168.11.2 -d 192.168.70.140/24 --dport 22 -j ACCEPT

(9)解封192.168.11.1地址的屏蔽:
iptables -D INPUT -s 192.168.11.2 -j DROP

(10)禁止ping,即屏蔽icmp传入连接:
iptables -A INPUT -p icmp -i eth0 -j DROP