Firewalld防火墙(二)(firewalld防火墙配置文件)

Firewalld防火墙(二)一.firewalld高级配置
1.关于iptables的知识 IP 数据包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做数据包过滤决定时,

一.firewalld高级配置

1.关于iptables的知识

IP 数据包过滤系统是一个功能强大的工具,可用于添加、编辑和删除防火墙在做出数据包过滤决策时遵循和配置的规则。这些规则存储在集成到Linux 内核中的专用数据包过滤表中。在数据包过滤器表中,规则被分组为所谓的链。

netfilter/iptables 虽然IP 数据包过滤系统被称为单个实体,但它实际上由两个组件组成:netfilter 和iptables。

(1).netfilter组件是内核的一部分,由几个包过滤表组成,其中包含内核用来控制包过滤操作的一组规则。

(2). iptables 组件,也称为用户空间,是一个允许您轻松地从包过滤表中插入、修改和删除规则的工具。

iptables包含4个表和5个链。表根据数据包的行为来区分,链根据不同的钩子点来区分。表和链实际上是网络过滤器的两个维度。

2.firewalld中理解直接规则

以这种方式编写的规则称为直接规则。

将IP 范围列入黑名单

在这个例子中,首先定制了一条名为blacklist的链,然后将来自192.168.10.0/24的所有数据包都指向该链,最后定义了该链的规则。先记录,后丢弃,使用记录方式“blacklisted:”。前缀将录音限制为每分钟一次。

(1) 创建黑名单,并创建该黑名单的链。链名已列入黑名单。

[root@localhost ~]#firewall-cmd –direct –permanent –add-chain ipv4 原始黑名单

(2)将192.168.10.0/24的数据包直接发送到该链

[root@localhost ~]#firewall-cmd –direct –permanent –add-rule ipv4 raw PREROUTING 0 -s 192.168.10.0/24 -j 黑名单

(3)每分钟记录一次(-m limit –limit 1/min 每分钟记录一次日志)

[root@localhost ~]#firewall-cmd –direct –permanent –add-rule ipv4 raw blacklist 0 -m limit –limit 1/min -j LOG –log-prefix \’blacklisted\’

(4) 设置这条链的规则为DROP

[root@localhost ~]#firewall-cmd –direct –permanent –add-rule ipv4 原始黑名单1 -j DROP

(5)重启firewalld(重启或重载后生效)

[root@localhost ~]# systemctl 重新启动firewalld

(6)直接显示规则

[root@localhost ~]# cat /etc/firewalld/direct.xml

?xml 版本=\’1.0\’ 编码=\’utf-8\’?

直接地

链表=\’原始\’ ipv=\’ipv4\’ 链=\’黑名单\’/

规则优先级=\’0\’表=\’原始\’ipv=\’ipv4\’链=\’PREROUTING\’-s 192.168.10.0/24 -j黑名单/规则

规则优先级=\’1\’表=\’原始\’ipv=\’ipv4\’链=\’黑名单\’-j DROP/规则

/直接的

笔记:

Ipv4:这个属性很简单,代表IP版本。

table:链和规则节点的表属性是iptables/ip6tables中的表。

chain:chain 的chain 属性用于指定自定义链的名称。规则的链属性不能与现有链同名(即iptables 中的5 个链)。 /ip6tables) 直接定制链。

优先级:优先级。用于设置各种规则的优先级,类似于iptables中的规则顺序。数字越低,优先级越高。

args:rule 和passthrough args 是iptables/ip6tables 特定规则,但您可以使用自定义链。

注意:如果您ping 另一台主机并查看消息日志文件,您将看到相关的日志条目。

状态:

明确的直接规则

/etc/firewalld/direct.xml

3.使用富语言

1:什么是丰富语言?

虽然不必使用iptables 语法,但使用高级语言配置防火墙规则的机制是一种丰富的语言。

排序规则

测试与调试

3:了解丰富的规则命令

4:规则设置示例

(1)使用新的IPv4和IPv6连接进行认证头协议AH

[root@localhost ~]#firewall-cmd –add-rich-rule=\’规则协议值=ah接受\’

(2) 允许新的IPv4 和IPv6 连接到http,并使用审核每分钟记录一次

[root@localhost ~]#firewall-cmd –add-rich-rule=\’规则服务名称=http日志前缀=http访问限制=1/m审核受理\’

消息:

启用日志记录后

[root@localhost ~]# cat /var/log/messages

1 月14 日11:27:29 192 kernel: \’httpaccess\’IN=ens33 OUT=MAC=00:0c:29:85:a0:bd:00:0c:29:5e:d333 36 0 72:08:00 SRC=192.168.10.102 DST=192.168.10.101 LEN=60 TOS=0x00 PREC=0x00 TTL=64 ID=60222 DF PROTO=TCP SPT=53168 DPT=80 窗口=29200 RES=0x00 SYN URGP=0

(3) 允许来自192.168.0.0/24 地址处的TFTP 协议的IPv4 连接,并使用系统日志记录每分钟记录一次。

[root@localhost ~]#firewall-cmd –add-rich=\’rule family=\’ipv4\’ 源地址=\’192.168.0.0/24\’ 服务名称=\’tftp\’ 日志前缀=\’tftp\’ Level=\’info \’极限值=\’1/m\’接受\’

(4) 对于RADIUS 协议,拒绝来自1:2:3:4:6: 的所有新IPv6 连接。日志以“dns”为前缀,级别为info,每分钟最多记录3次。接受来自其他源段的新IPv6 连接

[root@localhost ~]#firewall-cmd –add-rich-rule=\’rule family=\’ipv6\’ 源地址=\’1:2:3:6:\’ 服务名称=\’raduis\’ 日志前缀=\’dns\’ Level=\’info\’ 限制值=\’3/分钟\’ 拒绝\’

(5)将源地址192.168.2.2添加到白名单中,允许来自该源地址的所有连接

[root@localhost ~]#firewall-cmd –add-rich-rule=\’规则族=\’ipv4\’源地址=\’192.168.2.2\’接受\’

(6) 拒绝(删除)来自IP 地址为192.168.0.11 的公共区域的所有流量

[root@localhost ~]#firewall-cmd –zone=public –add-rich-rule=\’规则族=ipv4源地址=192.168.10.202/32拒绝\’

[root@localhost ~]#firewall-cmd –zone=public –remove-rich-rule=\’规则族=ipv4源地址=192.168.10.202/32拒绝\’

(7) 丢弃从默认区域内任何位置接收到的所有ipsec esp 协议数据包。

[root@localhost ~]#firewall-cmd –add-rich-rule=\’规则协议值=\’esp\’drop\’

(8)接收192.168.1.0/24子网DMZ区域内端口7900-1905的所有TCP数据包。

[root@localhost ~]#firewall-cmd –zone=dmz –add-rich-rule=\’规则族=ipv4源地址=192.168.1.0/24端口端口=7900-1905协议=tcp接受\’

(9) 接受从工作区到ssh 的新连接,并在通知级别将最多3 条消息记录到系统日志中。

[root@localhost ~]#firewall-cmd –zone=work –add-rich-rule=\’规则服务名称=ssh日志前缀=\’ssh\’ Level=\’通知\’ Limit=\’3/m\’接受\’

(10) 在接下来的5 分钟内,从默认区域子网192.168.2.0/24 到DNS 的新连接将被拒绝,被拒绝的连接将以每小时最多一条消息记录在审核系统中。

[root@localhost ~]#firewall-cmd –add-rich-rule=\’规则族=ipv4 源地址=192.168.2.0/24 服务名称=DNS审核限制=\’1/h\’拒绝\’ –timeout=300

二.配置firewalld防火墙的地址伪装和端口转发

实验室环境

实验说明

实验要求

ens33 分配给外部区域,ens37 分配给信任区域,ens38 分配给DMZ 区域。

网站服务器和网关服务器将通过SSH远程管理,端口号改为12345。

服务器开启https 并

Web 服务器拒绝ping,网关服务器拒绝来自Internet 的ping。

企业内网用户需要通过网关服务器共享互联网

互联网用户需要访问DMZ区域的Web服务

实验流程

1.基本配置

1:基本环境配置

根据实验TOP设置各服务器网卡的IP地址。

(1)设置网关服务器的主机名

[root@localhost ~]# 主机名网关服务器

[root@localhost ~]# vi /etc/主机名

网关服务器

(2)启用网关服务器的路由转发功能

[root@localhost ~]# vi /etc/sysctl.conf

net.ipv4.ip_forward=1

[root@localhost ~]# sysctl -p

(3) 设置Web服务器主机名

[root@localhost ~]# vi /etc/主机名

网络

2:搭建网站服务器环境

(1) 检查网站服务器上firewalld是否启动并正常运行。

[root@web ~]# systemctl status firewalld

(2)安装httpd和mod_ssl包

[root@web ~]# yum install -y httpd mod_ssl

(3) 启用并启动httpd服务。

[root@web ~]# systemctl 启动httpd

[root@web ~]# 启用systemctl httpd

(4) 创建网站首页测试页面index.html。

[root@web ~]# vi /var/www/html/index.html

测试网

(5)更改ssh监听端口,重启服务,关闭SELinux

[root@web ~]# setenforce 0

[root@web ~]# vi /etc/ssh/sshd_config

端口12345

[root@web ~]# systemctl restart sshd

3:在您的网站服务器上配置firewalld防火墙

(1) 设置默认区域为DMZ区域

[root@web ~]#firewall-cmd –set-default-zone=dmz

(2)在DMZ区域开启https服务,添加TCP 12345端口

[root@web ~]#firewall-cmd –zone=dmz –add-service=https –permanent

[root@web ~]#firewall-cmd –zone=dmz –add-port=12345/tcp –permanent

(3)禁止ping

[root@web ~]#firewall-cmd –add-icmp-block=echo-request –zone=dmz –permanent

(4)端口被定时ssh服务改变,所以需要删除定时ssh服务。

[root@web ~]#firewall-cmd –zone=dmz –remove-service=ssh –permanent

(5) 重新加载firewalld配置。显示之前的设置

[root@web ~]#firewall-cmd –reload

[root@web ~]#firewall-cmd –list-all

DMZ(主动)

默认目标:

icmp-block-inversion: 否

接口: ens33

来源:

服务: https

端口: 12345/tcp

协议:

假面舞会: 否

转发端口:

源端口:

icmp-blocks: 回显请求

丰富规则:

4:在网关服务器上配置firewalld防火墙

(1) 验证firewalld 是否已启动并在网关服务器上运行。

[root@gatewayserver ~]# systemctl status firewalld

(2) 设置默认区域为外部区域并查看设置结果

[root@gatewayserver ~]#firewall-cmd –set-default-zone=external

[root@gatewayserver ~]#firewall-cmd –list-all

外部(主动)

默认目标:

icmp-block-inversion: 否

接口: ens33 ens37 ens38

来源:

服务: ssh

端口:

协议:

假面舞会: 是的

转发端口:

源端口:

icmp-块:

丰富规则:

(3) 将ens37网卡设置为信任区域,将ens38设置为DMZ区域。

[root@gateway-server ~]#firewall-cmd –change-interface=ens37 –zone=trusted –permanent

[root@gateway-server ~]#firewall-cmd –change-interface=ens38 –zone=dmz –permanent

(4) 检查配置

[root@gatewayserver ~]#firewall-cmd –get-active-zone

非军事区

接口: ens38

外部的

接口: ens33

可靠的

接口: ens37

(5)在公司内网的测试电脑上访问网站服务器。

https:192.168.2.10

(6)终止SELinux,更改ssh监听端口,重启服务。

[root@gatewayserver ~]# setenforce 0

[root@gatewayserver ~]# vi /etc/ssh/sshd_config

端口12345

[root@gatewayserver ~]# systemctl restart sshd

(7) 配置外部区域添加TCP端口12345。

[root@gateway server ~]#firewall-cmd –zone=external –add-port=12345/tcp –permanent

(8)设置外部区域删除ssh服务

[root@gateway-server ~]#firewall-cmd –zone=external –remove-service=ssh –permanent

(9)外部区域Ping禁止设置

[root@gateway-server ~]#firewall-cmd –zone=external –add-icmp-block=echo-request –permanent

(10) 重新加载防火墙设置

[root@gatewayserver ~]#firewall-cmd –reload

(11)在你的上网测试机上通过ssh登录网关,在没有接口地址的情况下打12345端口。

[root@localhost ~]# ssh -p 12345 100.1.1.10

(12)在公司内网的测试机上通过ssh登录Web服务器的12345端口。

[root@localhost ~]# ssh -p 12345 192.168.2.10

2.配置IP伪装与端口转发

1:内网用户通过网关服务器共享Internet

(1)利用外网测试机搭建网站服务并添加测试网页

[root@localhost ~]# 主机名internet

[root@localhost ~]# bash

[root@internet ~]# yum install -y httpd

[root@internet ~]# vi /var/www/html/index.html

互联网网络

[root@internet ~]# 启用systemctl httpd

[root@internet ~]# systemctl 启动httpd

[root@192 ~]#firewall-cmd –add-service=http –permanent

[root@192 ~]# 防火墙-cmd –reload

(2)在公司内网使用测试机访问外部网站结果是可以访问的。

http://100.1.1.20

(3) 在DMZ网站服务器上测试并可访问

http://100.1.1.20

(4)检查网关服务器外部区域是否启用地址欺骗

[root@internet ~]#firewall-cmd –list-all –zone=external

外部的

默认目标:

icmp-block-inversion: 否

接口:

来源:

服务: ssh

端口:

协议:

假面舞会: 是的

转发端口:

源端口:

icmp-块:

丰富规则:

(5) 源地址为192.168.1.0/24的网段启用IP伪装。

在网关服务器上关闭外部地址伪装,并添加丰富的规则,要求外部区域的源地址为192.168.1.0/24网段地址,才能启用地址IP伪装。

[root@gateway-server ~]#firewall-cmd –remove-masquerade –zone=external –permanent

[root@gateway-server ~]#firewall-cmd –zone=external –add-rich-rule=\’规则族=ipv4源地址=192.168.1.0/24 masquerade\’ –permanent

[root@192 ~]# 防火墙-cmd –reload

(6)在DMZ网站服务器上测试访问外网。外网应该不能访问,但是内网可以访问。

http://100.1.1.20

2:配置端口转发以允许互联网用户访问您的内部Web服务器。

(1)在网关服务器上设置端口转发

[root@gateway-server ~]#firewall-cmd –zone=external –add-forward-port=port=443:proto=tcp:toaddr=192.168.2.10 –permanent

(2) 当我在我的互联网测试机上访问内部Web服务器时,它工作正常。

https://100.1.1.10

3) 端口转发还允许更丰富的规则,使您可以更好地控制端口转发规则。例如,如果您为内网Web服务器申请新的公网IP地址100.1.1.15,则新的公网IP地址100.1.1.15将被配置为网关服务器的外网接口ens33上的第二个IP地址。

[root@gatewayserver ~]# vi /etc/sys

config/network-scripts/ifcfg-ens33

TYPE=Ethernet

BOOTPROTO=static

NAME=ens33

DEVICE=ens33

ONBOOT=yes

IPADDR1=100.1.1.15

PREFIX1=24

IPADDR0=100.1.1.10

PREFIX=24

[root@gateway-server ~]# systemctl restart network

[root@gateway-server ~]# ip add

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ae:7f:64 brd ff:ff:ff:ff:ff:ff

    inet 100.1.1.10/8 brd 100.255.255.255 scope global ens33

       valid_lft forever preferred_lft forever

    inet 100.1.1.15/24 brd 100.1.1.255 scope global ens33

       valid_lft forever preferred_lft forever

使用富规则配置端口转发

[root@gateway-server ~]# firewall-cmd –zone=external –add-rich-rule=\’rule family=ipv4 destination address=100.1.1.15/32 forward-port port=443 protocol=tcp to-addr=192.168.2.10\’

在互联网测试机上访问,可以访问成功

https://100.1.1.15
#以上关于Firewalld防火墙(二)的相关内容来源网络仅供参考,相关信息请以官方公告为准!

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/92801.html

(0)
CSDN的头像CSDN
上一篇 2024年7月4日
下一篇 2024年7月4日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注