美文网首页
Firewalld 防火墙

Firewalld 防火墙

作者: _于曼丽_ | 来源:发表于2022-03-14 21:58 被阅读0次

安装

CentOS 7 默认已经安装了 firewalld 防火墙,并且默认启动 firewalld。如果没有安装,可以按照以下命令安装并且启动 firewalld 防火墙。

yum install firewalld firewall-config
systemctl start firewalld
systemctl enable firewalld
systemctl status firewalld

zone

zone 是一组策略的集合,一共有 9 个 zone,每个 zone 都有自己的一套默认的策略,可以通过命令行为某个 zone 添加或者删除策略,这些策略会保存在相关 zone 的配置文件中。当前 zone 默认为 public,将当前 zone 切换成某个 zone,则会应用该 zone 的所有策略。

  • public
  • work
  • home
  • block
  • dmz
  • drop
  • external
  • internal
  • trusted

每个 zone 有两个配置文件,以 public zone 为例:

  • /usr/lib/firewalld/zones/public.xml(系统配置文件,这里保存的是相应 zone 的系统默认策略,尽量不要修改)
  • /etc/firewalld/zones/public.xml (用户配置文件,通过命令行添加或者删除的策略会自动保存到该文件)

常用参数

--permanent

--permanent 将策略保存到对应的配置文件中,可以永久生效。

# 为 public zone 添加 80 端口,并且保存到配置文件
firewall-cmd --add-port=80/tcp --permanent --zone=public
cat /etc/firewalld/public.xml

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="ssh"/>
  <service name="dhcpv6-client"/>
  <port protocol="tcp" port="80"/>
</zone>

--zone

--zone=ZONE 指定相应的策略保存到哪个 zone 的配置文件中。如果不加 --zone 参数,则将该策略保存到当前 zone 的配置文件中。

# 查看当前 zone(默认为 public)开放的端口,以下两条命令效果相同
firewall-cmd --list-ports
firewall-cmd --list-ports --zone=public
# 为当前 zone(默认为 public) 开放 80 端口,以下两条命令效果相同
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=80/tcp --permanent --zone=public

--reload

--reload 立即重新加载当前 zone(也有可能是重新加载所有 zone)的配置文件,不需要重启 firewalld,就可以应用新的策略。每次配置完新的规则,都需要运行 firewall-cmd --reload 命令来使得规则立即生效。

# 为当前 zone 添加 80 端口,并且写入配置文件
firewall-cmd --add-port=80/tcp --permanent
# 重新加载当前 zone 的配置文件
firewall-cmd --reload

常用规则

zone

# 显示当前 zone
firewall-cmd --get-default-zone
# 设置当前 zone,立即生效
firewall-cmd --set-default-zone=ZONE
# 列出所有的 zone
firewall-cmd --get-zones
# 查看所有 zone 的防火墙策略
firewall-cmd --list-all-zones
# 查看某个 zone 的防火墙策略
firewall-cmd --info-zone=ZONE

端口

firewall-cmd --list-ports
firewall-cmd --add-port=80/tcp --permanent 
firewall-cmd --remove-port=80/tcp --permanent

端口转发

firewall-cmd --list-forward-ports
firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.100.108 --permanent
firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.100.108 --permanent

相关文章

网友评论

      本文标题:Firewalld 防火墙

      本文链接:https://www.haomeiwen.com/subject/fyvsdrtx.html