Linux之iptables(五、firewall命令及配置)

firewalld服务

  • firewalld是CentOS 7.0新推出的管理netfilter的工具
  • firewalld是配置和监控防火墙规则的系统守护进程。可以实现iptables,ip6tables,ebtables的功能
  • firewalld服务由firewalld包提供
  • firewalld支持划分区域zone,每个zone可以设置独立的防火墙规则
  • 归入zone顺序:
  • 先根据数据包中源地址,将其纳为某个zone
  • 纳为网络接口所属zone
  • 纳入默认zone,默认为public zone,管理员可以改为其它zone
  • 网卡默认属于public zone,lo网络接口属于trusted zone

firewalld zone分类

预定义服务

 

firewalld配置

  • firewall-cmd --get-services 查看预定义服务列表
  • /usr/lib/firewalld/services/*.xml预定义服务的配置
  • 三种配置方法
  • firewall-config (firewall-config包)图形工具
  • firewall-cmd (firewalld包)命令行工具
  • /etc/firewalld 配置文件,一般不建议

firewall-cmd 命令选项

  • --get-zones 列出所有可用区域
  • --get-default-zone 查询默认区域
  • --set-default-zone=<ZONE> 设置默认区域
  • --get-active-zones 列出当前正使用的区域
  • --add-source=<CIDR>[--zone=<ZONE>]添加源地址的流量到指定区域果无--zone= 选项,使用默认区域
  • --remove-source=<CIDR> [--zone=<ZONE>] 从指定区域中删除源地址的流量,如无--zone= 选项,使用默认区域
  • --add-interface=<INTERFACE>[--zone=<ZONE>] 添加来自于指定接口的流量到特定区域,如果无--zone= 选项,使用默认区域
  • --change-interface=<INTERFACE>[--zone=<ZONE>] 改变指定接口至新的区域,如果无--zone= 选项,使用默认区域
  • --add-service=<SERVICE> [--zone=<ZONE>] 允许服务的流量通过,如果无--zone= 选项,使用默认区域
  • --add-port=<PORT/PROTOCOL>[--zone=<ZONE>] 允许指定端口和协议的流量,如果无--zone= 选项,使用默认区域
  • --remove-service=<SERVICE> [--zone=<ZONE>] 从区域中删除指定服务,禁止该服务流量,如果无--zone= 选项,使用默认区域
  • --remove-port=<PORT/PROTOCOL>[--zone=<ZONE>] 从区域中删除指定端口和协议,禁止该端口的流量,如果无--zone= 选项,使用默认区域--reload 删除当前运行时配置,应用加载永久配置
  • --list-services 查看开放的服务
  • --list-ports 查看开放的端口
  • --list-all [--zone=<ZONE>] 列出指定区域的所有配置信息,包括接口,源地址,端口,服务等,如果无--zone= 选项,使用默认区域

firewall-cmd 命令示例

  • 查看默认zone

firewall-cmd --get-default-zone

  • 默认zone设为dmz

firewall-cmd --set-default-zone=dmz

  • 在internal zone中增加源地址192.168.0.0/24的永久规则

  firewall-cmd --permanent --zone=internal --add-source=192.168.0.0/24

  • 在internal zone中增加协议mysql的永久规则

  firewall-cmd --permanent –zone=internal --add-service=mysql

  • 加载新规则以生效

  firewall-cmd --reload

 

实验:配置firewalld

systemctl mask iptables
systemctl mask ip6tables
systemctl status firewalld
systemctl enable firewalld
systemctl start firewalld
firewall-cmd --get-default-zone
firewall-cmd --set-default-zone=public
firewall-cmd --permanent --zone=public --list-all
firewall-cmd --permanent --zone=public --add-port 8080/tcp
firewall-cmd ---reload

 

posted @ 2018-10-26 13:22  朝圣布达拉  阅读(949)  评论(0编辑  收藏  举报