防火墙管理工具
防火墙主要功能都是依据策略对穿越防火墙自身的流量进行过滤。防火墙策略可以基于流量的源目的地址、端口号、协议、应用等信息来定制,然后防火墙使用预先定制的策略规则监控出入的流量,若流量与某一条策略规则相匹配,则执行相应的处理,反之则丢弃。
iptables与firewalld都不是真正的防火墙,它们都只是用来定义防火墙策略的防火墙管理工具而已。或者说,只是一种服务。
iptables服务会把配置好的防火墙策略交由内核层面的netfilter网络过滤器来处理,而firewalld服务则是把配置好的防火墙策略交由内核层面的nftables包过滤框架来处理。
iptables
策略与规则链
防火墙会从上至下的顺序来读取配置的策略规则,在找到匹配项后就立即结束匹配工作并去执行匹配项中定义的行为(即放行或阻止)。如果在读取完所有的策略规则之后没有匹配项,就去执行默认的策略。
一般地,防火墙策略规则的设置有两种:
- 一种是“通”(即放行);
- 一种是“堵”(即阻止);
iptables服务把用于处理或过滤流量的策略条目称之为规则,多条规则可以组成一个规则链,而规则链则依据数据包处理位置的不同进行分类,具体如下:
- 在进行路由选择前处理数据包(PREROUTING);
- 处理流入的数据包(INPUT);
- 处理流出的数据包(OUTPUT);
- 处理转发的数据包(FORWARD);
- 在进行路由选择后处理数据包(POSTROUTING);
一般来说,从内网向外网发送的流量一般都是可控且良性的,因此我们使用最多的就是INPUT规则链,该规则链可以增大黑客人员从外网入侵内网的难度。
iptables服务的术语中分别是ACCEPT(允许流量通过)、REJECT(拒绝流量通过)、LOG(记录日志信息)、DROP(拒绝流量通过)。DROP指的是直接将流量丢弃而且不相应,REJECT指的是拒绝流量后回复一句“您的信息已经收到,但是被扔掉了”。
iptables中基本的命令参数
firewalld
firewalld服务是RHEL7默认的防火墙配置管理工具,它拥有基于CLI(命令行界面)和基于GUI(图形用户界面)的两种管理方式。firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。
终端管理工具
firewall-cmd是firewalld防火墙配置管理工具的CLI(命令行界面)版本。它的参数一般都是以“长格式”来提供的。可以使用Tab键来自动补齐命令或文件名内容,还可以用其来补齐下表所示的长格式参数。
与Linux系统中其他的防火墙策略配置工具一样,使用firewalld配置的防火墙策略默认为运行时(Runtime)模式,又称为当前生效模式,而且随着系统的重启会失效。如果想要配置策略一直存在,就需要使用永久(Permanent)模式了,方法:
- 用firewall-cmd命令正常设置防火墙策略时添加-permanent参数
- 使用它的设置的策略只有在系统重启之后才能自动生效,如果想让配置立刻生效,需要手动执行firewall-cmd --reload命令
查看firewalld服务当前所使用的区域:
查询ens16777728网卡在firewalld服务中的区域:
把 firewalld 服务中 eno16777728 网卡的默认区域修改为 external,并在系统重启后生效。分别查看当前与永久模式下的区域名称:
把firewalld服务的当前默认区域设置为public:
启动/关闭firewalld防火墙服务的应急状况模式,阻断一切网络连接(当远程控制服务器时谨慎使用):
查看public区域是否允许请求SSH和HTTPS协议的流量:
把 firewalld 服务中请求 HTTPS 协议的流量设置为永久允许,并立即生效:
把 firewalld 服务中请求 HTTP 协议的流量设置为永久拒绝,并立即生效:
把在 firewalld 服务中访问 8080 和 8081 端口的流量策略设置为允许,但仅限当前生效:
把原本访问本机 888 端口的流量转发到 22 端口,要且求当前和长期均有效:
【注】流量转发命令格式为:
- firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标IP地址>
在客户端使用ssh来尝试访问192.168.10.10主机的888端口:
图形管理工具
firewall-config是firewalld防火墙配置管理工具的GUI(图形用户界面)版本,几乎可以实现所有以命令行来执行的操作。
功能具体如下:
- 选择运行时(Runtime)模式或永久(Permanent)模式的配置
- 可选的策略集合区域列表
- 常用的系统服务列表
- 当前正在使用的区域
- 管理当前被选中区域中的服务
- 管理当前被选中区域中的端口
- 开启或关闭SNAT(源地址转换协议)技术
- 设置端口转发策略
- 控制请求icmp服务的流量
- 管理防火墙的富规则
- 管理网卡设备
- 被选中区域的服务,若勾选了相应服务前面的复选框,则表示允许与之相关的流量
- firewall-config工具的运行状态