记录一些常用的函数和瞎折腾的过程……

firewalld常用操作

提醒:本文最后更新于 192 天前,文中所描述的信息可能已发生改变,请谨慎使用。

Linux系统默认使用firewalld进行防火墙管理,以前一直使用iptable,使用firewalld还不太熟悉,记录一些简单的操作,方便日后使用。

一、基本的状态查询:

1、查看版本信息:

firewall-cmd --version

2、查看所有放行的端口:

firewall-cmd --list-ports

3、查看public下放行的端口:

firewall-cmd --zone=public --list-ports

4、查看配置信息:

firewall-cmd --list-all

5、查看区域信息:

firewall-cmd --get-active-zones

6、查看指定网络接口所属区域:

firewall-cmd --get-zone-of-interface=eth0

7、显示状态:

firewall-cmd --state

二、在主机上开放和禁用端口:

1、开放TCP/UDP端口:

firewall-cmd --zone=public --add-port=端口/tcp --permanent
firewall-cmd --zone=public --add-port=端口/udp --permanent

如开放连续tcp端口:

firewall-cmd --zone=public --add-port=8001-8010/tcp --permanent

如开放多个tcp端口:


firewall-cmd --add-port={80/tcp,443/tcp,3306/tcp} --permanent

2、删除TCP/UDP端口:

firewall-cmd --zone=public --remove-port=端口/tcp --permanent
firewall-cmd --zone=public --remove-port=端口/udp --permanent

3、查看TCP/UDP端口:

firewall-cmd --zone=public --query-port=端口/tcp
firewall-cmd --zone=public --query-port=端口/udp

4、使配置生效:

firewall-cmd --reload

5、查看配置是否生效:

firewall-cmd --zone=public --list-all

注意参数“--permanent”是永乐生效,不加此参数系统重启后失效。

三、网络接口与Zone:

1、查看eth0网络接口在哪个zone下面:

firewall-cmd --get-zone-of-interface=eth0

2、将eth0网络接口从zone中移除并查看操作是否生效:

firewall-cmd --remove-interface=eth0
firewall-cmd --list-all

3、添加一个网络接口并查看操作是否生效:

firewall-cmd --add-interface=eth0
firewall-cmd --list-all

4、将eth0网络接口跟zone进行相关联并查看操作是否生效:

firewall-cmd --change-interface=eth0 --zone=public --permanent
firewall-cmd --list-all

四、封禁指定IP(段)或放行IP(段):

1、禁用一个ip地址或网段的所有访问并查看配置是否生效:

firewall-cmd --add-source=10.0.0.8/24 --zone=drop
firewall-cmd --get-active-zone

2、允许一个ip地址或网段访问并查看配置是否生效:

firewall-cmd --add-source=10.0.0.8/24 --zone=trusted
firewall-cmd --get-active-zone

3、移除ip地址或网段的访问并查看配置是否生效:

firewall-cmd --remove-source=10.0.0.8/32 --zone=trusted
firewall-cmd --get-active-zone

五、使用端口转发:

1、启用转发端口:

firewall-cmd --add-masquerade --permanent

2、添加TCP/UDP等协议的端口转发:

firewall-cmd --zone=<区域> --add-forward-port=port=<本地端口>:proto=<协议>:toaddr=<目标IP地址>:toport=<目标端口> --permanent

如:使用本机(ip为10.0.0.6)5555端口访问远程电脑(IP为10.0.0.7)的22端口,使用TCP协议:

firewall-cmd --zone=public --add-forward-port=port=5555:proto=tcp:toaddr=10.0.0.7:toport=22 --permanent

这样就可以通过连接10.0.0.6的5555端口来访问10.0.0.7的22端口了。

3、删除端口转发配置:

firewall-cmd --zone=区域 --remove-forward-port=port=本地端口:proto=协议:toaddr=目标IP:toport=目标端口 --permanent

4、禁用转发端口:

firewall-cmd --remove-masquerade --permanent

六、firewalld系统服务管理:

1、更新应用配置:

firewall-cmd --reload

2、启动防火墙:

systemctl start firewalld

3、开机自启动:

systemctl enable firewalld

4、关闭防火墙:

systemctl stop firewalld

5、关闭开机自启动:

systemctl disable firewall