防火墙管理工具

防火墙主要功能都是依据策略对穿越防火墙自身的流量进行过滤。防火墙策略可以基于流量的源目的地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。

iptables firewalld冲突_端口号

iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已。或者说,只是一种服务。

iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。

 

iptables

策略与规则链

防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。

一般地,防火墙策略规则的设置有两种:

  1. 一种是“通”(即放行);
  2. 一种是“堵”(即阻止);

iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:

  • 在进行路由选择前处理数据包(PREROUTING);
  • 处理流入的数据包(INPUT);
  • 处理流出的数据包(OUTPUT);
  • 处理转发的数据包(FORWARD);
  • 在进行路由选择后处理数据包(POSTROUTING);

一般来说,从内网向外网发送的流量一般都是可控且良性的,因此我们使用最多的就是INPUT规则链,该规则链可以增大黑客人员从外网入侵内网的难度。

iptables服务的术语中分别是ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)。DROP指的是直接将流量丢弃而且不相应,REJECT指的是拒绝流量后回复一句“您的信息已经收到,但是被扔掉了”。

 

iptables中基本的命令参数

iptables firewalld冲突_重启_02

iptables firewalld冲突_重启_03

 

firewalld

firewalld服务是RHEL7默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

iptables firewalld冲突_端口号_04

iptables firewalld冲突_重启_05

终端管理工具

firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本。它的参数一般都是以“长格式”来提供的。可以使用Tab键来自动补齐命令或文件名内容,还可以用其来补齐下表所示的长格式参数。

iptables firewalld冲突_端口号_06

iptables firewalld冲突_重启_07

与Linux系统中其他的防火墙策略配置工具一样,使用firewalld配置的防火墙策略默认为运行时(Runtime)模式,又称为当前生效模式,而且随着系统的重启会失效。如果想要配置策略一直存在,就需要使用永久(Permanent)模式了,方法:

  • 用firewall-cmd命令正常设置防火墙策略时添加-permanent参数
  • 使用它的设置的策略只有在系统重启之后才能自动生效,如果想让配置立刻生效,需要手动执行firewall-cmd --reload命令

查看firewalld服务当前所使用的区域:

iptables firewalld冲突_管理工具_08

查询ens16777728网卡在firewalld服务中的区域:

iptables firewalld冲突_管理工具_09

把 firewalld 服务中 eno16777728 网卡的默认区域修改为 external,并在系统重启后生效。分别查看当前与永久模式下的区域名称:

iptables firewalld冲突_管理工具_10

把firewalld服务的当前默认区域设置为public:

iptables firewalld冲突_重启_11

启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时谨慎使用):

iptables firewalld冲突_重启_12

查看public区域是否允许请求SSH和HTTPS协议的流量:

iptables firewalld冲突_端口号_13

把 firewalld 服务中请求 HTTPS 协议的流量设置为永久允许,并立即生效:
 

iptables firewalld冲突_重启_14

iptables firewalld冲突_重启_15

把 firewalld 服务中请求 HTTP 协议的流量设置为永久拒绝,并立即生效:

iptables firewalld冲突_重启_16

把在 firewalld 服务中访问 8080 和 8081 端口的流量策略设置为允许,但仅限当前生效:

iptables firewalld冲突_重启_17

把原本访问本机 888 端口的流量转发到 22 端口,要且求当前和长期均有效:
【注】流量转发命令格式为:

  • firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>

iptables firewalld冲突_端口号_18

在客户端使用ssh来尝试访问192.168.10.10主机的888端口:

iptables firewalld冲突_管理工具_19

图形管理工具

firewall-config是firewalld防火墙配置管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作。

功能具体如下:

  1. 选择运行时(Runtime)模式或永久(Permanent)模式的配置
  2. 可选的策略集合区域列表
  3. 常用的系统服务列表
  4. 当前正在使用的区域
  5. 管理当前被选中区域中的服务
  6. 管理当前被选中区域中的端口
  7. 开启或关闭SNAT(源地址转换协议)技术
  8. 设置端口转发策略
  9. 控制请求icmp服务的流量
  10. 管理防火墙的富规则
  11. 管理网卡设备
  12. 被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量
  13. firewall-config工具的运行状态

iptables firewalld冲突_端口号_20