CentOS 7防火墙firewalld管理基础

基本概念

CentOS 7及以上的版本,默认的防火墙是firewalld,所以如果你输入iptables配置防火墙报找不到命令时,你就要考虑用firewalld来管理防火墙了。
firewalld文档连接

  • firewalld】:firewall daemon,提供动态管理防火墙的能力,并支持对网络以及与其关联的连接、接口和源定义信任级别
  • firewall-cmd】:firewalld的命令行管理工具,CentOS上防火墙的管理即主要依赖该命令
  • Runtime ConfigurationPermanent Configuration】:firewalld有两种类型的配置:一种是运行时配置,另一种是持久化的配置。持久化配置在防火墙启动或者重加载(reload)时加载为运行时配置(所以防火墙真正生效的是运行时配置)。防火墙停止运行,运行时配置随即失效;当防火墙重新启动时,运行时配置即重新自持久化配置中加载。运行时配置不会被自动持久化,但是可以借助命令将其持久化。
  • 【systemctl restart firewalld 与 firewall-cmd --reload】:前者是重启firewalld服务,后者是重载firewalld的配置

firewalld结构:
CentOS 7防火墙firewalld管理基础_第1张图片

firewalld服务启停

启动firewalld服务

systemctl start firewalld

关闭firewalld服务

systemctl stop firewalld

检查firewalld服务状态

systemctl status firewalld

注:查看firewalld启动记录
重启firewalld服务

systemctl reload firewalld

注:修改了持久化的配置之后即需要重启服务

查看frewalld状态和配置

检查firewalld运行状态

firewall-cmd --state

注:查看firewalld是否运行
检查firewalld配置内容

firewall-cmd --list-all

注:查看配置的服务、端口、目标、源等信息
重载firewalld配置内容

firewall-cmd --reload

注:修改的运行时的配置会在重载之后失效
查看firewalld版本

firewall-cmd -V
或者
firewall-cmd --version

配置firewalld

说明:

  • 如果要做持久化的配置,则加上 “–permanent” 参数;否则不加
  • 非持久化的配置,会立即生效,但是配置信息会在服务重启、重载配置之后丢失
  • 持久化的配置,不会立即生效,需要服务重启、或者重载配置之后才会生效

下面会以持久化的配置为例

端口配置

新增端口配置:

firewall-cmd --permanent --add-port 7001/tcp
firewall-cmd --reload

删除端口配置:

firewall-cmd --permanent --remove-port 7001/tcp
firewall-cmd --reload

服务配置

新增服务配置:

firewall-cmd --permanent --add-service telnet
firewall-cmd --reload

删除服务配置:

firewall-cmd --permanent --remove-service telnet
firewall-cmd --reload

查看服务信息:

firewall-cmd --info-service telnet

协议配置

增加协议配置:

firewall-cmd --permanent --add-protocol icmp
firewall-cmd --reload

删除服务配置:

firewall-cmd --permanent --remove-protocol icmp
firewall-cmd --reload

rich rules配置

rich rules可以配置一些更加复杂的场景,–add-rich-rule的值就是具体的规则,例如允许来自某个IP的所有流量:

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

禁止某个IP以某种协议访问某个端口:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"

firewall-cmd提供的配置能力非常丰富,具体的可以参考:
firewall-cmd man page

你可能感兴趣的:(linux)