目录
第一部分:
1. firewalld高级配置
1.1 关于iptables的知识
IP数据包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做数据包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链( chain)中。
虽然netfilter/iptables lP数据包过滤系统被称为单个实体,但它实际上由两个组件netfilter和 iptables组成。
(1).netfilter组件也称为内核空间((kernelspace),是内核的一部分,由一些数据包过滤表组成,这些表包含内核用来控制数据包过滤处理的规则集。
(2). iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去数据包过滤表中的规则变得容易。
iptables包含4个表,5个链。其中表是按照对数据包的操作区分的,链是按照不同的Hook((挂钩)点来区分的,表和链实际上是 netfilter的两个维度。
1.2 firewalld中直接原则
将iptables 的规则插入到firewalld的管理区域中,这种方式写的规则叫直接规则。
将某个P范围列入黑名单
在这个例子中首先自定义了一个叫 blacklist的链,然后将所有来自192.168.10.0/24的数据包都指向了这个链,最后定义了这个链的规则:首先进行记录,然后drop,记录的方法是使用"blacklisted:”前缀并且限制1分钟记录一次。
(1)创建一个黑名单,并为这个黑名单创建一个链,链名为blacklist
(2)将来自192.168.10.0/24的数据包指向这个链
(3)每分钟记录一次日志(-m limit --limit 1/min每分钟记录一次日志)
(4)设置这个链的规则为DROP
(5)重启 firewalld(重启或重载后生效)
(6)查看直接规则
备注:
用其他主机ping它,然后查看messages日志文件,会看到相关的日志条目
清空直接规则:
/etc/firewalld/direct.xml
1.3 使用富语言
1:什么是富语言
不需要使用iptables 语法,而是使用高级语言配置防火墙规则的机制成为富语言。
2:规则排序、测试和调试
3:理解富规则命令
4:规则配置举例
(1)为认证报头协议AH使用新的IPv4和IPv6连接
(2)允许新的IPv4和IPv6连接http,并使用审核每分钟记录一次
注意:
开启日志记录后
[root@localhost ~ ]# cat /var/log/messages
(3)允许来自192.168.0.0/24地址的TFTP协议的IPv4连接,并且使用系统日志每分钟记录一次
(4)为RADIUS协议拒绝所有来自1:2:3:4:6::的新的IPv6连接,日志前缀为“dns”,级别为info,并每分钟最多记录3次。接受来自其他发起段新的IPv6连接
(5)将源192.168.2.2地址加入白名单,以允许来自这个源地址的所有连接
(6)拒绝(删除)来自public区域中IP地址为192.168.0.11的所有流量
(7)丢弃来自默认区域中任何位置的所有传入的 ipsec esp协议包
(8)在192.168.1.0/24子网的dmz区域中,接收端口7900--1905的所有TCP包
(9)接受从work 区域到ssh的新连接,以notice级别且每分钟最多三条信息的方式将新连接记录到syslog
(10)在接下来的5min 内,拒绝从默认区域中的子网192.168.2.0/24到 DNS的新连接,并且拒绝的连接将记录到 audit系统,且每小时最多一条消息
第二部分:配置firewalld防火墙的地址伪装和端口转发
实验环境:
实验需求:
实验过程:
2.1 基本配置
1:基本环境配置
按照实验TOP设置各个服务器网卡的IP地址
(1)在网关服务器上配置主机名
(2)开启网关服务器的路由转发功能
(3)配置web服务器的主机名
2:网站服务器环境的搭建
(1)验证firewalld在网站服务器上是否启动并且正常运行
(2)安装httpd 和l mod_ssl软件包
(3)启用并启动httpd服务
(4)创建网站首页测试页index.html
(5)更改ssh的监听端口,并重启服务,关闭SELinux
3:在网站服务器上配置firewalld防火墙
(1)设置默认区域为dmz区域
(2)为dmz区域打开https 服务并添加TCP的12345端口
(3)禁止ping
(4)因为预定于的ssh 服务已经更改了端口,所以要将预定于ssh服务移除
(5)重新加载firewalld配置。并查看之前的配置
4:在网关服务器上配置firewalld防火墙
(1)验证firewalld在网关服务器上是否启动并且正在运行
(2)设置默认区域为external 区域,并查看配置结果
(3)将ens37网卡配置到trusted区域,将ens38配置到dmz区域
(4)查看配置情况
(5)在企业内网测试计算机上访问网站服务器
(6)关闭SELinux,更改ssh的监听端口,并重启服务
(7)配置external区域添加TCP的12345端口
(8)配置external区域移除ssh服务
(9)配置external区域禁止 ping
(10)重新加载防火墙配置
(11)在互联网测试机上通过ssh登录网关玩不接口地址的12345端口
(12〉在企业内网测试机上ssh登录web 网站服务器的12345端口
2.2 配置IP伪装与端口转发
1:内网用户通过网关服务器共享上网
(1)外网测试机搭建网站服务,并添加测试网页
(2)在企业内网测试机上访问外网网站,结果是可以访问的
(3)在dmz的网站服务器上测试,同样可以访问
(4)查看网关服务器的external区域是否开启了地址伪装
(5)源地址 192.168.1.0/24网段的地址开启IP伪装
在网关服务器上关闭external 的地址伪装,添加富规则,要求external区域内源地址为192.168.1.0/24网段的地址开启地址P伪装
(6)在dmz的网站服务器上测试访问外网,应该不能访问外网,但内网可以
2:配置端口转发实现互联网用户访问内部 web服务器
(1)在网关服务器上配置端口转发
(2)在互联网测试机上访问内部web 服务器,可以访问成功
(3)端口转发也可以使用富规则,这样就可以更大程度的控制端口转发规则,如给内网的web服务器申请了一个新的公网 ip地址100.1.1.15,需要将新的公网地址100.1.1.15配置在网关服务器的外网接口ens33上,作为第二个lp地址