firewalld的systemd管理命令

启动:systemctl start firewalld
关闭:systemctl stop firewalld
查看状态:systemctl status firewalld
开机禁用:systemctl disable firewalld
开机启用:systemctl enable firewalld

firewall-cmd的通用命令:

1,查看firewall-cmd版本:

firewall-cmd --version

2,查看firewall-cmd帮助

firewall-cmd --help

3,查看firewalld状态

firewall-cmd --state

4,更新防火墙的规则

firewall-cmd --reload

说明:--reload的作用:让“永久生效”的配置规则立即生效,并覆盖当前的配置规则

5,查看firewalld的所有规则:

firewall-cmd --list-all

zone相关命令:

1,得到默认的zone:

firewall-cmd --get-default-zone

2,得到当前正在使用的zone与网卡名称

firewall-cmd --get-active-zones

3,得到所有可用的zone

firewall-cmd --get-zones

4,设置默认的zone

firewall-cmd --set-default-zone=drop
firewall-cmd --get-active-zones

services相关命令:

1,列出所有可用的services

firewall-cmd --get-services 

2,列出当前已放开的services

firewall-cmd --list-services

3, 放开一个服务

firewall-cmd --add-service=http

4, 关闭一个服务

firewall-cmd --remove-service=http --permanent

说明:关于permanent参数: 添加--permanent重启后则永久生效,如无--permanent仅临时生效

port相关命令:

1,查看所有打开的端口:

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

2,放开一个端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent

3,关闭已放开的端口:

firewall-cmd --zone=public --remove-port=80/tcp --permanent

针对permanent参数的验证:

1,添加端口后,如果加了 permanent,不会马上起作用:reload之后会起作用

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --list-ports
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

2,删除端口,如果加了 permanent,不会马上起作用,也需要reload

firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --zone=public --list-ports
firewall-cmd --reload
firewall-cmd --zone=public --list-ports

3,如果不加permanent,能马上起作用:

firewall-cmd --zone=public --add-port=80/tcp 
firewall-cmd --zone=public --list-ports

针对ip地址的操作:

1,允许一个ip访问:

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.1" accept'

2,禁止一个ip访问

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.1" drop'

说明:drop也可用reject
两者的区别在于drop不会提示拒绝访问而是直接丢弃数据包

3,指定允许一个ip到指定端口的访问

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="22" accept'

4,删除一条rich rule

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="1.1.1.1" port protocol="tcp" port="22" accept'

手动添加的防火墙规则位于哪里?

/etc/firewalld/zones/public.xml

说明:可以手动编辑这个保存规则的xml,
然后做reload

生产环境中要注意的地方:

如果已添加了http服务,仍然可以添加80 port,
导致要关闭http服务时,也需要关闭80 port,
所以,尽量使用 port,而不要把service和port混用