1、概念:
iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架”中,这个”安全框架”才是真正的防火墙,这个框架的名字叫netfilter
netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间。
iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。
2、查
iptables --line -L -nv
![rc. d] #
iptables —line —L
Chain ΙΝΡΙΙΤ (policy ACCEPT 10G packets, 9182G
bytes)
344" DROP
dpt : 8441
2660 DROP
dpt : 8441
5432 DROP
bytes
ο
13077 2220K ACCEPT
432 22764 DROP
31G
115 13630 ACCEPT
ο
22M 3595M ACCEPT
pkts
2
3
4
5
6
7
8
9
10
ιι
12
13
14
5740K
Ο
Ο
51M
9
11
Ο
9
102
target
ACCEP T
Ο DROP
ACCEP T
604 DROP
ACCEP T
540 ΜΟΡ
Ο ACCEPT
prot opt
tcp — *
tcp
tcp
tcp
tcp — *
tcp
tcp
tcp — *
tcp
tcp
tcp
source
172.25.55.0/24
127.001
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
132.246.27.0/24
source
bytes)
source
dest i nat οπ
ο. 0/0
ο. 0/0
ο. 0/0
dest i nat i on
dest ί nat ί οπ
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
dpt:22181
2376
dpt : 2376
: 18080
18080
dpt : 8440
dpt : 8440
dpt:8000
dpt:8000
dpt: 50070
50070
dpt:50070
Chain FOR%ARD (policy ACCEPT Ο packets, Ο
prot opt ίη
9665M packets,
πιπ pkts bytes target
prot opt i η
bytes)
8684G rc. d] #
iptables —line —L
Chain ΙΝΡΙΙΤ (policy ACCEPT 10G packets, 9182G
bytes)
344" DROP
dpt : 8441
2660 DROP
dpt : 8441
5432 DROP
bytes
ο
13077 2220K ACCEPT
432 22764 DROP
31G
115 13630 ACCEPT
ο
22M 3595M ACCEPT
pkts
2
3
4
5
6
7
8
9
10
ιι
12
13
14
5740K
Ο
Ο
51M
9
11
Ο
9
102
target
ACCEP T
Ο DROP
ACCEP T
604 DROP
ACCEP T
540 ΜΟΡ
Ο ACCEPT
prot opt
tcp — *
tcp
tcp
tcp
tcp — *
tcp
tcp
tcp — *
tcp
tcp
tcp
source
172.25.55.0/24
127.001
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
192. 168. 1.0/24
132.246.27.0/24
source
bytes)
source
dest i nat οπ
ο. 0/0
ο. 0/0
ο. 0/0
dest i nat i on
dest ί nat ί οπ
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
tcp
dpt:22181
2376
dpt : 2376
: 18080
18080
dpt : 8440
dpt : 8440
dpt:8000
dpt:8000
dpt: 50070
50070
dpt:50070
Chain FOR%ARD (policy ACCEPT Ο packets, Ο
prot opt ίη
9665M packets,
πιπ pkts bytes target
prot opt i η
bytes)
8684G](https://file.cfanz.cn/uploads/png/2022/12/10/16/A8B9V6725M.png)
3、增
iptables -I INPUT -s 172.27.133.132 -p tcp -m multiport --dport 10080,10404,10443 -j DROP
(拒绝 源地址172.27.133.132 访问 10080,10404,10443 端口 )
iptables -I INPUT -s 172.27.133.132 -p tcp -m multiport --dport 19100 -j DROP
(拒绝 源地址172.27.133.132 访问19100 端口 )
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 8000 -j ACCEPT (表示允许192.168.1.0/24 IP段访问8000端口)
iptables -I INPUT -p tcp --dport 2376 -j DROP (表示拒绝任何tcp连接的方式访问2376端口)
注意:iptables 有执行顺序。是按照num数字顺序执行。使用iptables --line -L -nv 命令查看所有的规则执行的顺序
添加规则到第二行的执行位置:iptables -I INPUT 2 -s 192.168.1.0/24 -p tcp --dport 8000 -j ACCEPT
4、删
删除第3行规则:iptables -D INPUT 3
添加多个不连续的端口:iptables -I INPUT -s 172.20.170.0/24 -m multiport -p tcp --dport 3306,33060 -j ACCEPT
iptables -I INPUT -s 132.246.0.0/16,192.168.1.0/24 -p tcp --dport 8082 -j ACCEPT
iptables端口封堵:
192.168.1.191
cat /etc/rc.d/rc.local
iptables -I INPUT -p tcp --dport 8000 -j DROP(需要在命令行中执行一次,然后再加入到rc.local文件中)
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 8000 -j ACCEPT(需要在命令行中执行一次,然后再加入到rc.local文件中)
iptables -I INPUT -p tcp --dport 2376 -j DROP(需要在命令行中执行一次,然后再加入到rc.local文件中)
iptables -I INPUT -s 127.0.0.1 -p tcp --dport 2376 -j ACCEPT(需要在命令行中执行一次,然后再加入到rc.local文件中)
再检查下封堵的端口
iptables -L -n |grep "端口"
1、
指定-m multiport就可以使用--dports、--sports
参考: http://www.zsythink.net/archives/1544
标准的--dport与--sport使用方式: 80、80:90、:80、90:
扩展的--dports与--sports使用方式:以上组合,使用冒号来分离。
2、
指定-m iprange就可以使用--src-range 、--dst-range
参考: http://www.zsythink.net/archives/1564
标准的-s 使用方式:192.168.1.1、192.168.1.0/24、192.168.1.2,10.1.1.1、(192.168.1.1,10.1.1.0/24???)
扩展的--src-range: from[-to] 应该是单独192.168.1.1、192.168.1.0/24、192.168.1.5-192.168.1.6
实际操作:
root@ca:~# iptables -t filter -I INPUT -p tcp -s 111.192.82.1,112.35.36.2 --dport 40022 -j ACCEPT
实际会拆解成2条规则
root@ca:~# iptables -t filter -I INPUT -m iprange --src-range 111.192.82.1,112.35.36.2 --dport 40022 -j ACCEPT
iptables v1.6.0: iprange: Bad value for "--src-range" option: "111.192.82.1,112.35.36.2"
Try `iptables -h' or 'iptables --help' for more information.
思考:iprange是否要连续ip地址
3、
iptables -I INPUT 3 -p tcp -m tcp --dport 40022,8006 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 60 --name prox --mask 255.255.255.255 --rsource -j ACCEPT
以上出现语法错误
iptables -I INPUT 3 -p tcp -m tcp -m multiport --dports 40022,8006 --tcp-flags FIN,SYN,RST,ACK SYN -m recent --rcheck --seconds 60 --name prox --mask 255.255.255.255 --rsource -j ACCEPT
以上为1条规则,不像当-m iprange --src-range 连续ip段时,会拆分为1条1条的规则
来自 <http://t.zoukankan.com/weihua2020-p-14072839.html>










