2018-04-28 Centos7 Firewalld 配置和使用

1、firewalld的基本使用

启动: systemctl start firewalld
查看状态: systemctl status firewalld
禁用,关闭开机自启动: systemctl disable firewalld
停止:systemctl stop firewalld

查看服务是否开机启动:systemctl is-enabled firewalld.service
查看已启动的服务列表:systemctl list-unit-files|grep enabled
查看启动失败的服务列表:systemctl --failed

2.配置 firewalld-cmd
查看版本: firewall-cmd --versio
查看帮助: firewall-cmd --help
显示状态: firewall-cmd --state
查看所有打开的端口: firewall-cmd --zone=public --list-ports
更新防火墙规则: firewall-cmd --reload
查看区域信息: firewall-cmd --get-active-zones
查看指定接口所属区域: firewall-cmd --get-zone-of-interface=eth0
拒绝所有包:firewall-cmd --panic-on
取消拒绝状态:firewall-cmd --panic-off
查看是否拒绝: firewall-cmd --query-panic

firewall-cmd --zone=public --add-port=80/tcp --permanent
(--permanent永久生效,没有此参数重启后失效)
重新载入,所有更改只有重载防火墙策略或者重启防火墙之后才生效
firewall-cmd --reload

添加指定协议(协议是有默认端口滴)

firewall-cmd --zone=dmz --add-service=http --permanent
firewall-cmd --zone=dmz --add-service=https --permanent

查看
firewall-cmd --zone=public --query-port=80/tcp
删除
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --remove-service=ssh --permanent

查看防火墙所有策略:
firewall-cmd --list-all

防火墙添加富规则(指定端口只允许指定ip访问):

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="3306" accept"
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address="8.8.8.8" port protocol="tcp" port="3306" accept"

富规则允许 ip 段访问:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="3306" accept"

如此,服务器允许同内网机器访问。

所有规则变更之后只有重载防火墙才生效

3、 注意事项:
防火墙关闭状态无法添加策略,firewall 默认开放了22 端口,允许ssh 连接,如果更改了 ssh 端口,开启防火墙会导致ssh 连接失败,如果只能远程连接服务器,那么你悲剧了,只能找机房处理了。所以,先打开 ssh 默认22端口,重启 sshd 测试没有问题之后在开启防火墙,然后通过22 ssh 进去,添加指定 ssh 端口重载防火墙策略,才可以再次关掉22 端口。一定注意,血的教训。

参考链接:https://unix.stackexchange.com/questions/159873/whitelist-source-ip-addresses-in-centos-7

你可能感兴趣的:(2018-04-28 Centos7 Firewalld 配置和使用)