Linux:firewalld防火墙-小环境实验(3)

环境介绍

本章为全纯手打,无任何复制,如果哪句命令出错,请评论出来我会快速修改


需求

图中防火墙区域为网关服务器上分区 ,在网站服务器上可以使用默认的或者别的

1)首先关闭全部的服务器的防火墙,实现全网互通
2)然后只将底下网站服务器防火墙打开

并把ssh的端口调整为1234,并且开启http服务

让后使用内网和外网服务器成功访问

并且可以使用ssh连接到网站服务器

最后调整icmp只让网站服务器去ping通别的服务器,当别的服务器ping网站服务器ping不通
3)最后将网关服务器防火墙打开

将各个接口加入各个区域

并将,网关服务器的ssh端口改为4321,让后可以让外网服务器,去连接网关服务器还可以去连接网站服务器并且内网也是可以连接两个服务器

内网和外网成功访问网站服务器的网站

最后网站服务器也可以去连接网关服务器


1.全局互通

我们实现基本的通信只需要,关闭防火墙和基础的网络接口配置即可完成

*** 网关服务器上一定要开启路由转发功能 ***

开启方法:vim /etc/sysctl.conf

末尾插入 net.ipv4.ip_forward = 1

然后执行命令:sysctl -p


2.网站服务器

基础搭建

复制代码
firewall-cmd --state

查看防火墙状态

running 运行

现在去修改ssh的端口1234

复制代码
vim /etc/ssh/sshd_config

找到17行

把前面的#去掉

然后修改后面的22为1234

让后 
systemctl restart sshd 
重启服务

让后开启http服务

复制代码
yum -y install httpd

下载服务

复制代码
echo '<h1>hello world!!' > /var/www/html/index.html

创建一个初始页面

复制代码
systemctl start httpd

开启服务

初始环境搭建完成,但是现在使用外网和内网访问访问不了

现在中间的网关服务器没开启防火墙,这时被网站服务器的防火墙拦截了

当我们使用ssh连接也连不上了,因为默认的ssh端口为21现在是1234了,系统就不会去放行他了

开始放行

复制代码
firewall-cmd --set-default-zone=dmz

将默认区域改为dmz

复制代码
firewall-cmd --change-interface=ens33 --zone=dmz

将ens33网络接口改入dmz区域,我们对dmz区域配置的规则即对区域内的网络接口生效。

现在我们要放行,http服务(默认80)和1234端口(ssh服务)

复制代码
firewall-cmd --add-service=http --zone=dmz --permanent

放行http服务永久写入到dmz区域

复制代码
firewall-cmd --add-port=1234/tcp --zone=dmz --permanent

放行1234端口

现在还差可以我ping别人,不能让别人ping我

复制代码
firewall-cmd --add-icmp-block=echo-request --zone=dmz --permanent

这个就是对icmp的调整

复制代码
firewall-cmd --reload

重新加载配置

复制代码
firewall-cmd --list-all

ssh是自带的,然后检查刚刚写入的,如果少了,肯定是配置没有加--permanent 需要回去重新加规则并从新加载配置

成功访问,可以看到刚刚可以ping通,现在被拦截了,http服务也可以访问了

在网站服务器依然可以ping别的服务器


3.网关服务器

开启防火墙

划分区域

复制代码
firewall-cmd --change-interface=ens33 --zone=trusted

将ens33加入trusted,trusted是信任区域,按理来说我们未在此区域进行任何配置,那么防火墙将拦截数据了,当我们再去连接网关服务器或者网站服务器,或者ssh连接两个服务器,发现貌似没有什么影响,因为trusted是很高权限的一个组,每个组都有不同的负责范围,如果你还不知道,可以去看我往期博客,第一章firewalld文章

trusted组为高信任区域,不用对这个组做任何规则,这个组的会直接放行

现在外网处于访问不进去的情况

复制代码
firewall-cmd --change-interface=ens36 --zone=dmz

将ens36网络接口加入dmz区域

复制代码
firewall-cmd --change-interface=ens37 --zone=external

将ens37网络接口加入external区域

复制代码
firewall-cmd --get-active-zones

全部放入对应的区域了

再去将ssh端口改为4321

开始放行

复制代码
firewall-cmd --zone=external --add-port=4321/tcp --permanent

允许外网ssh连接

复制代码
firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=192.168.1.1 --permanent

允许从external区域进入的tcp80请求转发到192.168.1.1

复制代码
firewall-cmd --zone=external --add-forward-port=port=1234:proto=tcp:toaddr=192.168.1.1 --permanent

允许从external区域进入的tcp1234请求转发到192.168.1.1

复制代码
firewall-cmd --zone=dmz --add-port=4321/tcp --permanent

允许dmz区域访问4321端口

复制代码
firewall-cmd --reload

重新加载防火墙


测试

外网成功连接到了网关服务器和网站服务器,并且成功访问网站

网站服务器也可以连接到网关服务器

内网也不受影响,成功实现效果

相关推荐
GeW2 小时前
新质生产力路线图Linux、数据库、国产化替代一次讲透
linux
aningx4 小时前
cachyos 从 GRUB 切换到 rEFInd
linux
第404号工位6 小时前
40块钱二手瘦客户端,如何跑满家庭物联网中枢?(拒绝Docker爆盘实录)
linux·架构·node.js
对象存储与RustFS6 小时前
网盘限速逼你开会员?用 RustFS 自己搭一个不限速的“私人网盘
服务器·后端·docker
骑着蜗牛撵大象3278 小时前
Linux 进程间通信之管道:从 pipe() 的内核语义到 FIFO 落地排错
android·java·linux·系统编程·fifo·管道·进程间通信
众壹新能源科技8 小时前
逆变器自带无功不够用,加装5MVar SVG后功率因数从0.85回到0.99
运维·人工智能·自动化
..Dauntless..8 小时前
【Linux】一切皆文件和缓冲区
linux·运维·服务器
裕晟资质规划8 小时前
三类资质变更报告时限差在哪?军工 15 日、集成印制 10 日
大数据·服务器·网络
QMCY_jason8 小时前
x86 ubuntu2204 无gui 安装 openeuler 2203 aarch64版本
linux·运维·服务器
重生之小比特8 小时前
【Linux系统】12 进程程序替换 自定义Shell 命令行解释器
linux·运维·服务器