Linux系统安全防火墙篇之 Firewall(CentOS 7)

 

Filewalld(动态防火墙)作为redhat7系统中变更对于netfilter内核模块的管理工具.。iptables service 管理防火墙规则的模式(静态):用户将新的防火墙规则添加进 /etc/sysconfig/iptables 配置文件当中,再执行命令 /etc/init.d/iptables reload 使变更的规则生效。在这整个过程的背后,iptables service 首先对旧的防火墙规则进行了清空,然后重新完整地加载所有新的防火墙规则,如果加载了防火墙的模块,需要在重新加载后进行手动加载防火墙的模块。

firewalld 管理防火墙规则的模式(动态):任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到运行中的 iptables 即可。还有命令行和图形界面配置工具,它仅仅是替代了 iptables service 部分,其底层还是使用 iptables 作为防火墙规则管理入口。firewalld 使用 python 语言开发,在新版本中已经计划使用 c++ 重写 daemon 部分。

相较于传统的防火墙管理配置工具,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合。

firewalld将网卡对应到不同的区域(zone),zone 默认共有9个:

  • drop: 丢弃所有进入的包,而不给出任何响应
  • block: 拒绝所有外部发起的连接,允许内部发起的连接
  • public: 允许指定的进入连接
  • external: 同上,对伪装的进入连接,一般用于路由转发
  • dmz: 允许受限制的进入连接
  • work: 允许受信任的计算机被限制的进入连接,类似 workgroup
  • home: 同上,类似 homegroup
  • internal: 同上,范围针对所有互联网用户
  • trusted: 信任所有连接

不同的区域之间的差异是其对待数据包的默认行为不同,firewalld的默认区域为public;

过滤规则

  • source: 根据源地址过滤
  • interface: 根据网卡过滤
  • service: 根据服务名过滤
  • port: 根据端口过滤
  • icmp-block: icmp 报文过滤,按照 icmp 类型配置
  • masquerade: ip 地址伪装
  • forward-port: 端口转发
  • rule: 自定义规则

其中,过滤规则的优先级遵循如下顺序

source > interface > firewalld.conf

/usr/lib/firewalld/services/ :firewalld服务默认在此目录下定义了70+种服务供我们使用,格式:服务名.xml;


/etc/firewalld/zones/ : 默认区域配置文件,配置文件中指定了编写完成的规则(规则中的服务名必须与上述文件名一致);

查看 firewalld 运行状态:

firewall-cmd 命令语法:

firewall-cmd [--zone=zone] 动作 [--permanent] 

注:如果不指定--zone选项,则为当前所在的默认区域,--permanent选项为是否将改动写入到区域配置文件中

firewall 的状态:
--state                      查看防火墙运行状态
--reload                    重新加载防火墙,中断用户的连接,将临时配置清掉,加载配置文件中的永久配置,动态添加规则
--complete-reload     重新加载防火墙,不中断用户的连接(防火墙出严重故障时使用),类似重启服务
--panic-on                紧急模式,强制关闭所有网络连接

--panic-off                关闭紧急模式

动作中查看操作:
--get-icmptypes        查看支持的所有ICMP类型
--get-zones               查看所有区域
--get-default-zone     查看当前的默认区域
--get-active-zones     查看当前正在使用的区域
--get-services            查看当前区域支持的服务
--list-services            查看当前区域开放的服务列表
--list-all                     查看此区域内的所有配置,类似与iptables -L -n

更改区域操作:
--set-default-zone=work     更改默认的区域

新建 --add 或 删除 --remove 规则:
--add-interface=eth0                                   将网络接口添加到默认的区域内
--add-port=22/tcp --permanent                    添加端口到区域开放列表中
--add-port=1000-2000/tcp --permanent      将端口范围添加到开放列表中;
--add-service=http --permanent                     添加服务到区域开放列表中(注意服务的名称需要与此区域支持的服务列表中的名称一致)
--add-source=192.168.1.1                           添加源地址的流量到指定区域
--remove-source=192.168.1.1                     删除源地址的流量到指定区域
--change-interface=eth1                             改变指定的接口到其他区域
--remove-service=ftp                                将home区域内的ftp服务在开放列表中删除
--add-masquerade                                    开启SNAT(源地址转换)
--query-masquerade                                 查询SNAT的状态
--remove-interface=eth0                            将网络接口在默认的区域内删除
--query-interface=eth0                              确定该网卡接口是否存在于此区域 
--add-forward-port=port=1000:proto=tcp:toport=22:toaddr=192.168.1.1      端口转发

--query-masquerade                                 检查是否允许伪装IP

--add-masquerade                                    允许防火墙伪装IP

--remove-masquerade                               禁止防火墙伪装IP

Rich规则:
当基本firewalld语法规则不能满足要求时,可以使用以下更复杂的规则
.rich-rules    富规则,功能强,表达性语言
.rich规则比基本的firewalld语法实现更强的功能,不仅实现允许/拒绝,还可以实现日志syslog和auditd,也可以实现端口转发,伪装和限制速率

rich规则实施顺序有以下四点
a.该区域的端口转发,伪造规则
b.该区域的日志规则
c.该区域的允许规则
d.该区域的拒绝规则
每个匹配的规则都生效,所有规则都不匹配,该区域默认规则生效;

Rich规则选项:
--add-rich-rule=’rule’                 新建rich规则
--remove-rich-rule=’rule’            删除rich规则
--query-rich-rule=’rule’              查看单条rich规则
--list-rich-rules                          查看rich规则列表

Rich规则示例:

拒绝从192.168.2.1的所有流量

限制每秒钟只有一个连接到http服务

接受ssh新连接,记录日志到syslog的notice级别,每分钟最多三条信息

 

丢弃所有icmp包

接受所有192.168.1.0/24子网端口范置5000-5010的TCP流量

开启SNAT

使用rule规则实现端口转发,to-addr 选项如果不指定默认转发到本机

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值