当前位置: 首页 > news >正文

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

实验环境

       某公司的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/hostnamegateway-server

[root@gateway-server ~]# ifconfig

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

[root@gateway-server ~]# vim /etc/sysctl.confnet.ipv4.ip_forward = 1[root@gateway-server ~]# sysctl -p

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

[root@node01 ~]# hostname web
[root@node02 ~]# vim /etc/hostnameweb[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_configPort 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_configPort 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.lryc.cn/news/276659.html

相关文章:

  • C++学习笔记(二十八):c++ 静态库及动态库的使用
  • uniapp最简单的底部兼容安全区域显示
  • 图像去噪——CBDNet网络训练自己数据集及推理测试,模型转ONNX模型(详细图文教程)
  • 【Verilog】期末复习——解释下列名词(FPGA、ASIC、IP、RTL、EDA、HDL、FSM)
  • 计算机网络 综合(习题)
  • 探索vue2框架的世界:简述常用的vue2选项式API (二)
  • 云计算:OpenStack 分布式架构管理FLAT网络(单控制节点与多计算节点)
  • 【深度学习】cv领域中各种loss损失介绍
  • 2024年,为什么学网络安全找不到工作?这才是重要原因!
  • 很有用!小企业如何从零开始制作产品手册?
  • 基于OpenCV的图像缩放
  • 基于长短期神经网络LSTM的测量误差预测
  • `package.json`也可以有注释了
  • 数学之何为数学
  • docker容器内,将django项目数据库改为postgresql
  • 【echarts】雷达图参数详细介绍
  • 网络安全试题进阶——附答案
  • 二刷Laravel 教程(构建页面)总结Ⅰ
  • C++|19.C++类与结构体对比
  • Apache Camel笔记
  • CSDN定制的奖品谁不想要?
  • 橄榄油行业分析:预计2029年将达到298亿美元
  • Maven 工程 java -jar 时提示 xxx-SNAPSHOT.jar 中没有主清单属性
  • 2. Mybatis 中SQL 执行原理
  • 平衡合规与发展天平, 激发数据要素价值
  • JAVA毕业设计118—基于Java+Springboot的宠物寄养管理系统(源代码+数据库)
  • oracle 19c容器数据库数据加载和传输-----SQL*Loader(一)
  • 超维空间M1无人机使用说明书——52、ROS无人机二维码识别与降落
  • Mac 安装Nginx教程
  • 【促销定价】背后的算法技术 1 - 业务问题拆解