firewalld的9个zone,firewalld关于zone的操做,firewalld关于service的操做

firewalld的9个zone

  • centOS7 开始,新的防火墙管理工具就是firewalld
  • 因此除了 iptables 也要熟悉 firewalld 的操做
  • 以前为了开启iptables把firewalld服务关闭了
  • 如今须要关闭iptables服务,把firewalld服务打开
  • 如图,这是把iptables服务设置为关闭状态,而后把正在运行的服务关闭
  • 如图,这是把firewalld服务设置为开启状态,而后把firewalld服务打开

  • 开启firewalld后,使用命令 iptables -nvL 查看信息
  • 能够看到多了不少规则和其它信息
  • 这就是firewalld自带的信息,以前iptables是没有信息的,须要本身添加
  • firewalld 自带9个zone,每一个zone是规则的集合
  • 如图,firewall-cmd --get-zones 能够查看全部的 zone 名称
  • 能够看到,总共有九个单词,每一个单词就是一个zone的名称
  • 如图,这条命令能够查看默认的zone,默认的zone是public

firewalld关于zone的操做

  • 如图,firewall-cmd --set-default-zone=work
  • 能够设置默认的zone
  • 这里把默认zone设置为work,以前是public
  • 使用 firewall-cmd --get-default-zone 查看默认zone
  • 能够看到,默认zone 已经变成 work了
  • 如图,firewall-cmd --get-zone-of-interface=ens33
  • 能够查看网卡 ens33 使用的 zone
  • 如图,lo 网卡使用的 zone 是 no zone
  • 说明这块网卡没有使用任何zone
  • 假设新增了一块网卡ens37,查看该网卡使用的zone是 no zone
  • 首先应该复制ens33的配置文件更名为ens37
  • 而后把内部ip等信息配置好,而后重启网络服务
  • 如图,重启firewalld服务,再看下ens37使用的zone信息,是否仍是no zone
  • 若是仍是 no zone 状态,能够考虑手动指定一个zone给网卡
  • 如图,手动设置网卡使用的 zone,这里设置ens37的zone为dmz
  • 而后查看一下ens37的zone,能够看到,已经修改成 dmz
  • 如图,这是修改网卡zone的命令,这是把ens37的zone修改成 block
  • 除了增长和修改zone以外,还能够删除zone
  • 如图,查看默认zone 是 work
  • 而后 firewall-cmd --zone=block --remove-interface=ens37
  • 这是把 ens37 从block zone 里面删除了
  • 这样ens37就再也不使用block zone了,而后查看ens37的zone
  • 能够看到是work,删除ens37的zone之后,会自动使用默认的work zone
  • 如图,firewall-cmd --get-active-zones 能够查看全部网卡所在的zone
  • 能够看到,work zone 下面有 ens33,ens37两块网卡
  • public zone 下面有 lo 一块网卡

firewalld关于service的操做

  • service 是 zone 下面的 子单元
  • 如图,firewall-cmd --get-service 能够查看系统全部的 service
  • 命令的 service 可使用 service 或者 services
  • 如图,firewall-cmd --list-services/service 能够查看默认zone有什么services
  • 如图,firewall-cmd --zone=public --list-service
  • 能够指定查看 public zone 里面的 services
  • 如图,查看block和trusted,下面为空,说明没有service在这两个zone里面运行
  • 如图,firewall-cmd --zone=public --add-service=http
  • 这条命令能够在 public zone 添加 http service
  • 下面使用 --list-service 查看,能够看到多了 http
  • 如图,把 ftp service 也添加进入 public zone
  • list-service 查看能够看到添加了 ftp
  • 可是这些改变都是发生在内存中的,若是想保存到配置文件里面
  • 须要使用 --permanent 选项
  • firewall-cmd --zone=public --add-service=ftp --permanent
  • 能够把新增的 ftp service 信息保存到配置文件
  • public zone 的配置文件就是 /etc/firewalld/zones/public.xml
  • 能够看到,ftp的信息已经写入 public.xml 文件里面
  • 上图是zone配置文件模板的目录
  • /etc/firewalld/zones/ 目录下面除了新保存的 public.xml 配置文件外
  • 修改前的 public.xml 会加上 old 后缀做为一个备份
  • 每次修改保存后,上一个版本的public.xml就会加上old做为备份
  • /etc/firewalld/services/ 目录尚未建立文件,目前是空的
  • 无论是 /etc/firewalld/services/ 仍是 /etc/firewalld/zones/ 目录
  • 建立新文件都会使用模板文件来建立
  • ls /usr/lib/firewalld/zones/ 能够看到目录下面有9个zone的模板文件
  • /etc/firewalld/zones/目录建立文件就会从这9个模板文件里面选择
  • ls /usr/lib/firewalld/services/ 能够看到下面有不少 xml后缀的模板文件
  • /etc/firewalld/services/ 目录建立文件也会从这些模板里面选择

  • 如今作一个案例
  • 案例要求把 ftp服务的端口修改成 1121 ,并把ftp服务放到work zone 下放行
  • 首先,从模板目录把 /usr/lib/firewalld/services/ftp.xml 文件模板复制到
  • /etc/firewalld/services/ 目录,这是firewalld服务运行时加载配置文件的目录
  • 而后 vi /etc/firewalld/services/ftp.xml 文件
  • 如图,找到这一行把 port的值修改成 1121,port="1121",而后保存退出
  • 如图,把 work zone 的模板文件 work.xml 复制到 zones 目录里面
  • 而后 vim work.xml 编辑该模板文件
  • 如图,添加这一行 <service name="ftp" /> 而后保存退出
  • 编辑完配置文件,须要从新加载一下配置文件
  • 如图, firewall-cmd --reload 就能够从新加载配置文件
  • 而后再 --list-service 查看 work zone 的 services
  • 能够看到,多了 ftp 服务
  • 因此,若是想放行某个service,在zone配置文件里面加入这个service就能够放行了
相关文章
相关标签/搜索