Linux--防火墙,实验案例:基于区域、服务、端口的访问控制

news2025/1/18 16:45:58

实验环境

       某公司的Web服务器,网关服务器均采用Linux CentOS 7.3操作系统,如图2.13所示。为了 加强网络访问的安全性,要求管理员熟悉firewalld防火墙规则的编写,以便制定有效、可行的主机防护策略。

需求描述

> 网关服务器ens36网卡分配到external(外部)区域,ens37网卡分配到trusted(信任)区域,ens38网卡分配到dmz(非军事)区域。

> 网站服务器和网关服务器将SSH默认端口都改为12345。

> 网站服务器开启https,过滤未加密的 http 流量,且拒绝ping。

推荐步骤

①基本环境配置。

(1)为网关服务器与网站服务器配置主机名及网卡地址,并更改SSH的侦听地址。

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

②在网站服务器上部署Web站点。

③为网站服务器与网关服务器编写firewalld规则。

④ 实验结果验证。

1.基本环境配置

(1)在网关服务器上配置主机名及网卡地址。

[root@node01 ~]# hostname gateway-server

[root@node01 ~]# vim /etc/hostname

gateway-server

[root@gateway-server ~]# ifconfig

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

[root@gateway-server ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

[root@gateway-server ~]# sysctl -p

(3)配置 web服务器主机名及网卡地址。

[root@node01 ~]# hostname web
[root@node02 ~]# vim /etc/hostname

web

[root@web ~]# ifconfig

2.网站服务器环境搭建

(1)安装httpd和mod_ssl 软件包。

[root@web ~]# mount /dev/cdrom /mnt/
[root@web ~]# cd /etc/yum.repos.d/
[root@web yum.repos.d]# vim centos7.repo

[local]
name=CnetOS 7.3
baseurl=file:///mnt/
enabled=1
gpgcheck=0

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

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

[root@web ~]# systemctl start httpd
[root@web ~]# systemctl enable httpd

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

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

<h1>this is a web</h1>

(4)更改SSH的侦听地址,并重启sshd服务,需要注意的是这里需要将SELinux关闭。

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

Port 12345

[root@web ~]# systemctl restart sshd

3.在网站服务器上启动并配置firewalld 防火墙

(1)在网站服务器上启动firewalld防火墙并将默认区域设置为dmz区域,firewalld在系统安装 后默认处于启动状态,如果不确定机器上的firewalld是否启动,可使用systemctl status firewalld或 firewall-omd--state 命令查看其运行状态。

[root@web ~]# systemctl start firewalld.service 
[root@web ~]# systemctl enable firewalld.service

[root@web ~]# systemctl status firewalld.service

(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 --zone=dmz --change-interface=ens33

[root@web ~]# firewall-cmd --list-all --zone=dmz

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

(1)验证 firewalld在网关服务器上启动并且正在运行。

[root@gateway-server ~]# firewall-cmd --state

[root@gateway-server ~]# systemctl start firewalld.service 
[root@gateway-server ~]# systemctl enable firewalld.service 

[root@gateway-server ~]# firewall-cmd --state

(2)设置默认区域为external 区域,并查看配置结果。

[root@gateway-server ~]# firewall-cmd --set-default-zone=external 

[root@gateway-server ~]# firewall-cmd --list-all

(3)将ens37网卡配置到trusted区域,将ens38配置到dmz区域。

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

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

(4)查看配置情况如下。

[root@gateway-server ~]# firewall-cmd --get-active-zones 

(5)在企业内网测试机上访问网站服务器,可以成功访问,如图中所示。

(6)更改SSH的侦听端口,并重启服务(需关闭SELinuJx)。

[root@gateway-server ~]# vim /etc/ssh/sshd_config

Port 12345

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

(7)配置external 区域添加TCP的12345端口。

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

(8)配置external 区域移除SSH服务。

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

(9)配置external 区域禁止ping。

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

(10)重新加载防火墙激活配置。

[root@gateway-server ~]# firewall-cmd --reload

(11)使用Internet测试用机访问网站服务器。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1370457.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机网络】TCP原理 | 可靠性机制分析(二)

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【网络编程】【Java系列】 本专栏旨在分享学习网络编程、计算机网络的一点学习心得&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; T…

Kettle Local引擎使用记录(一)(基于Kettle web版数据集成开源工具data-integration源码)

Kettle Web &#x1f4da;第一章 前言&#x1f4da;第二章 demo源码&#x1f4d7;pom.xml引入Kettle引擎核心文件&#x1f4d7;java源码&#x1f4d5; controller&#x1f4d5; service&#x1f4d5; 其它&#x1f4d5; maven settings.xml &#x1f4d7;测试&#x1f4d5; 测试…

C语言中关于函数递归的理解

递归的概念&#xff1a;如果一个对象部分包含它自己,或者利用自己定义自己,则称这个对象是递归的;如果 一个过程直接或间接调用自己,则称这个过程是一个递归过程。递归的主要思考方式在于&#xff1a;将大事化小 我们先看一个例子 题目&#xff1a;输入一个无符号数&#xff0…

蜗牛目标检测数据集VOC格式480张

蜗牛&#xff0c;一种缓慢而坚韧的软体动物&#xff0c;以其螺旋形的外壳和黏附力极强的黏液而为人所熟知。 蜗牛体型呈螺旋形&#xff0c;有一个硬壳保护其柔软的身体。壳的形状和纹理因种类而异&#xff0c;有的光滑如玻璃&#xff0c;有的则布满细纹。蜗牛的头部有两对触角…

U-Boot学习(1):简介及命令行指令详解

Bootloader的主要任务是引导加载并运行应用程序&#xff0c;对于MCU中的BootLoader&#xff0c;我之前写过一篇详细的文章单片机中BootLoader的严谨实现详解介绍它实现的整体流程。对于Linux来说&#xff0c;在运行Linux内核之前也需要BootLoader进行引导&#xff0c;这个BootL…

Amazing OpenAI API:把非 OpenAI 模型都按 OpenAI API 调用

分享一个有趣的小工具&#xff0c;10MB 身材的小工具&#xff0c;能够将各种不同的模型 API 转换为开箱即用的 OpenAI API 格式。 让许多依赖 OpenAI API 的软件能够借助开发者能够接触到的&#xff0c;非 OpenAI 的 API 私有部署和使用起来。 写在前面 这个小工具软件写于两…

面试宝典进阶之redis缓存面试题

R1、【初级】Redis常用的数据类型有哪些&#xff1f; &#xff08;1&#xff09;String&#xff08;字符串&#xff09; &#xff08;2&#xff09;Hash&#xff08;哈希&#xff09; &#xff08;3&#xff09;List&#xff08;列表&#xff09; &#xff08;4&#xff09;Se…

zookeeper 与eureka区别

CAP定理 在分布式系统的发展中&#xff0c;影响最大的莫过于CAP定理了&#xff0c;是分布式系统发展的理论基石。 2000年&#xff0c;加州大学的计算机科学家 Eric Brewer提出了CAP猜想 2002 年&#xff0c;麻省理工学院的 Seth Gilbert 和 Nancy Lynch 从理论上证明了 CAP 猜…

深入理解 Hadoop (五)YARN核心工作机制浅析

概述 YARN 的核心设计理念是 服务化&#xff08;Service&#xff09; 和 事件驱动&#xff08;Event EventHandler&#xff09;。服务化 和 事件驱动 软件设计思想的引入&#xff0c;使得 YARN 具有低耦合、高内聚的特点&#xff0c;各个模块只需完成各自功能&#xff0c;而模…

静态关键字:static

static的作用 static是静态的意思&#xff0c;可以修饰成员变量和成员方法。 static修饰成员变量表示该成员变量只在内存中只存储一份&#xff0c;可以被共享访问、修改。 成员变量 分为2类 静态成员变量&#xff08;有static修饰&#xff0c;属于类&#xff0c;内存中加载…

【QML COOK】- 005-粒子系统(ParticleSystem)

1. 编辑main.qml import QtQuick import QtQuick.ParticlesWindow {width: 800height: 800visible: truetitle: qsTr("Hello World")color: "#000000"MouseArea {id: mouseAreaanchors.fill: parentonClicked: {hahaEmitter.pulse(2000)}}ParticleSystem {…

大众汽车宣布将ChatGPT,批量集成在多种汽车中!

1月9日&#xff0c;大众汽车在官网宣布&#xff0c;将ChatGPT批量集成到电动、内燃机汽车中。 大众表示&#xff0c;将ChatGPT与其IDA语音助手相结合&#xff0c;用户通过自然语言就能与ChatGPT进行互动&#xff0c;例如&#xff0c;帮我看看最近的三星米其林饭店在哪里&#…

上门洗衣洗鞋小程序多门店管理模式是怎么样的

做干洗店和洗鞋店的老板们很多都不止一个门店&#xff0c;多门店的管理模式下&#xff0c;去做一个上门洗衣洗鞋小程序&#xff0c;需要有哪些必要的功能才能让不同的门店管理起来不乱呢。首先需要先确定一下不同门店的管理都会面临哪些经营场景和需求。 第一&#xff0c;加盟店…

Android BUG 之 Error: Activity class {} does not exist

项目场景&#xff1a; 更换包名&#xff0c;运行报错 问题描述 原因分析&#xff1a; 在替换包名的时候要确认&#xff0c;配置文件跟build中的保持一致&#xff0c;在更换后还要将旧包的缓存数据清理掉 解决方案&#xff1a; 1 替换后删除 app 下的build 文件夹 2 Rebuild Pr…

openEuler22.0.3安装oracle11.2.0.4报错总结

openEuler是CentOS8系列魔改来的 1.xstart无法打开报错x11拒绝转义 yum install *x11* vi /etc/ssh/sshd_config X11Forwarding yes systemctl restart sshd 2.执行runinstaller报错,无论是直接无法打开界面报错: when installed in the jdk 1.2 Linux 还是打开界面报错: no o…

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

每天刷两道题——第十一天

1.1滑动窗口最大值 给你一个整数数组 nums&#xff0c;有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 输入&#xff1a;nums [1,3,-1,-3,5,3,6,7], k 3 输出&…

Spark与Cassandra的集成与数据存储

Apache Spark和Apache Cassandra是大数据领域中两个重要的工具&#xff0c;用于数据处理和分布式数据存储。本文将深入探讨如何在Spark中集成Cassandra&#xff0c;并演示如何将Spark数据存储到Cassandra中。将提供丰富的示例代码&#xff0c;以帮助大家更好地理解这一集成过程…

pycharm的使用技巧

1.新建文件时,自动生成代码 settings->editor->file and code templates,选择python script ${NAME} 文件名 ${DATE} 日期 2.自动补齐自定义段落 settings->editor->live templates,在右侧点击+号,添加自定义的内容 完成之后,在下方勾选python 3.修改注释的…

服务器日常维护要素,应该如何做好维护

维护服务器的目的是为了让服务器的性能保持最佳状态&#xff0c;发现问题及时解决&#xff0c;没有问题也可以对相关的应用和配置进行调优。但也有很多用户疑问&#xff0c;服务器具体会有哪些方面需要维护的&#xff0c;今天就一起来看看吧。 服务器日常维护&#xff0c;主要包…