提示
修改防火墙配置文件之前,需要对之前防火墙规则做好备份
重启防火墙后,需要确认防火墙状态和防火墙规则是否加载,若重启失败或规则加载失败,则所有请求都会被防火墙拒绝
firewalld服务管理
显示服务的状态
systemctl status firewalld.service
启动服务
systemctl start firewalld.service
关闭服务
systemctl stop firewalld.service
重启服务
systemctl restart firewalld.service
查看服务是否开机启动
systemctl is-enabled firewalld.service
设置开机自启
systemctl enable firewalld.service
禁止开机自启
systemctl disable firewalld.service
防火墙策略管理
查看
查看版本
firewall-cmd --version
显示状态
关闭后显示not running,开启后显示running
firewall-cmd --state
查看所有打开的端口
firewall-cmd --zone=public --list-ports
查看区域信息
firewall-cmd --get-active-zones
查看指定接口所属区域
firewall-cmd --get-zone-of-interface=eth0
查看是否拒绝
firewall-cmd --query-panic
查看帮助信息
firewall-cmd --help
允许某个端口通过防火墙
添加--permanent
永久生效,没有此参数重启后失效
允许指定端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
添加端口段
firewall-cmd --zone=public --add-port=5060-5061/udp --permanent
重新加载策略
firewall-cmd --reload
删除指定端口对应策略
firewall-cmd --zone= public --remove-port=80/tcp --permanent
允许特定IP通过防火墙
防火墙内的策略动作有DROP和REJECT两种
防火墙内的策略动作有DROP和REJECT两种,区别如下:
1、DROP动作只是简单的直接丢弃数据,并不反馈任何回应。需要Client等待超时,Client容易发现自己被防火墙所阻挡。
2、REJECT动作则会更为礼貌的返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作。连接马上断开,Client会认为访问的主机不存在。REJECT在IPTABLES里面有一些返回参数,参数如下:ICMP port-unreachable、ICMP echo-reply 或是 tcp-reset(这个封包会要求对方关闭联机),进行完此处理动作后,将不再比对其它规则,直接中断过滤程序。
至于使用DROP还是REJECT更合适一直未有定论,因为的确二者都有适用的场合。REJECT是一种更符合规范的处理方式,并且在可控的网络环境中,更易于诊断和调试网络/防火墙所产生的问题;而DROP则提供了更高的防火墙安全性和稍许的效率提高,但是由于DROP不很规范(不很符合TCP连接规范)的处理方式,可能会对你的网络造成一些不可预期或难以诊断的问题。因为DROP虽然单方面的中断了连接,但是并不返回任何拒绝信息,因此连接客户端将被动的等到tcp session超时才能判断连接是否成功,这样早企业内部网络中会有一些问题,例如某些客户端程序或应用需要IDENT协议支持(TCP Port 113, RFC 1413),如果防火墙未经通知的应用了DROP规则的话,所有的同类连接都会失败,并且由于超时时间,将导致难以判断是由于防火墙引起的问题还是网络设备/线路 故障。
允许特定IP连接指定服务
accept运行特定ip连接ssh/22服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address='192.168.220.10/24' port port=22 procotol=tcp accept"
drop禁止特定ip连接某服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family=ipv4 source address='x.x.x.x/24' service name='ssh' drop"
reject禁止特定ip连接某服务
屏蔽IP
firewall-cmd --permanent --add-rich-rule="rule family=ipv4 source address=43.229.53.61 reject"
reject禁止特定ip连接ssh/22服务
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='x.x.x.x/24' service name='ssh' reject"
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='x.x.x.x/24' port port=22 protocol=tcp reject"
重新加载防火墙配置
firewall-cmd --reload
查看结果
firewall-cmd --list-rich-rules
firewalld 添加删除策略
# firewalld 添加删除策略
sudo firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="0.0.0.0/24" port protocol="tcp" port="10050" accept"
# 加载:
firewall-cmd --reload
# 删除:
sudo firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="10.0.5.0/24" port protocol="tcp" port="10050" accept"
# 加载:
firewall-cmd --reload
firewall-cmd拓展
# 拒绝所有包:
firewall-cmd --panic-on
# 取消拒绝状态:
firewall-cmd --panic-off
systemctl拓展
# 查看已启动的服务列表
systemctl list-unit-files|grep enabled
# 查看启动失败的服务列表
systemctl --failed
标签:--,cmd,防火墙,rule,CentOS7,firewall,port
From: https://www.cnblogs.com/HJ-study/p/18082028