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混用
转载请注明:落伍老站长 » CentOS中firewalld防火墙使用