一.导言
Centos7以上的发行版都尽量自带firewalld,firewalld已经带了iptables防火墙。原因是iptables的防火墙策略是由netfilter网络过滤器在内核级处理的,而firewalld是由nftables的包过滤框架在内核级处理的。与iptables防火墙相比,firewalld支持动态更新技术,并加入了zone的概念。简单来说,zone就是firewalld提前准备了几套防火墙策略集(策略模板),用户可以根据不同的生产场景选择合适的策略集,从而在防火墙策略之间快速切换。
区域防火墙(Area firewalld)是一大特色,但是对于我们使用Centos7来说,一般都是在服务器上,切换zone的需求比较少,所以本文就不介绍了,网上资料比较多,可以去百度找找。
二。操作和配置
1.服务操作
启动服务:
systemctl start firewalld
这里不用担心,防火墙启用后不能通过ssh远程,默认允许22端口。
停止服务:
systemctl stop firewalld
重新启动服务:
systemctl restart firewalld
查看服务状态:
systemctl status firewalld
2.配置文件的描述
Firewalld将配置文件存放在/usr/lib/firewalld和/etc/firewall D两个目录下,前者存放一些默认文件,后者主要存放用户自定义的数据,所以我们在后者下面添加服务或规则。
服务器存储服务数据,这是一组已定义的规则。
区域存储区域规则
firewalld.conf默认配置文件可以设置默认区域,默认区域是public,对应于zones目录中的public.xml。
三。命令
这里首先要注意的是,在执行命令时,如果你没有–per***nent参数表示配置立即生效,但不会存储配置,这意味着重新启动服务器后配置将会丢失。如果带的话,配置会保存在配置文件中,但这只是将配置保存到文件中,并不会实时生效,所以需要执行firewall-cmd –Reload命令在生效前重新加载配置。
1.过载防火墙配置
firewall-cmd --reload
2.检查防火墙运行状态。
firewall-cmd --state
3.检查默认区域的设置。
firewall-cmd --list-all
4.紧急订单
firewall-cmd --panic-on # 拒绝所有流量,远程连接会立即断开,只有本地能登陆 firewall-cmd --panic-off # 取消应急模式,但需要重启firewalld后才可以远程ssh firewall-cmd --query-panic # 查看是否为应急模式
5.服务
firewall-cmd --add-service=<service name> #添加服务 firewall-cmd --remove-service=<service name> #移除服务
6.港口
firewall-cmd --add-port=<port>/<protocol> #添加端口/协议(TCP/UDP) firewall-cmd --remove-port=<port>/<protocol> #移除端口/协议(TCP/UDP) firewall-cmd --list-ports #查看开放的端口
7.协议
firewall-cmd --add-protocol=<protocol> # 允许协议 (例:icmp,即允许ping) firewall-cmd --remove-protocol=<protocol> # 取消协议 firewall-cmd --list-protocols # 查看允许的协议
8.允许指定ip的所有流量
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" accept"
示例:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" accept" # 表示允许来自192.168.2.1的所有流量
9.允许指定ip的指定协议
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" protocol value="<protocol>" accept"
示例:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" protocol value="icmp" accept" # 允许192.168.2.208主机的icmp协议,即允许192.168.2.208主机ping
10.允许指定的ip访问指定的服务。
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" service name="<service name>" accept"
示例:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.208" service name="ssh" accept" # 允许192.168.2.208主机访问ssh服务
11.允许指定的ip访问指定的端口。
firewall-cmd --add-rich-rule="rule family="ipv4" source address="<ip>" port protocol="<port protocol>" port="<port>" accept"
示例:
firewall-cmd --add-rich-rule="rule family="ipv4" source address="192.168.2.1" port protocol="tcp" port="22" accept" # 允许192.168.2.1主机访问22端口
12.将指定的ip更改为网段。
8-11的每个命令都支持将源地址设置为一个网段,即这个网段的ip适应这个规则:
例如:
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" accept"
允许192.168.2.0/24网段的主机访问端口22。
13.禁止指定ip/网段。
8-12在每个命令中,设置accept为reject表示拒绝,设置drop表示直接丢弃(会返回超时连接超时)。
例如:
firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"
表示192.168.2.0/24网段的主机被禁止访问端口22。
本文来自西绿柿投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/567826.html