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

Linux防火墙实战演练

文章目录

  • 一、实验内容
          • 网络规划
          • 实验要求
  • 二、操作步骤
    • 1.网络规划
    • 2.防火墙配置
      • 2.1配置防火墙的各个网卡ip并禁用自身的firewalld和selinux
      • 2.2打开firewall路由转发
      • 2.3配置内网环境
      • 2.4配置服务器
      • 2.5配置外网
    • 3.内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关
    • 4.内部网络服务器s1通过DNAT发布服务到互联网
    • 5.互联网主机pc2能够访问S1服务器,但是不能够进行ping和ssh连接
  • `提示:防火墙的参数多,该实验一定要反复练习目的是会应用在各个场景下:`


一、实验内容

在这里插入图片描述

网络规划
  • 内部PC1位于内网区域,地址段为: 192.168.1.0/24,pc1地址为:192.168.1.1/24,网关地址为:192.168.1.254/24
  • 服务器S1位于服务器区域,地址段为: 192.168.2.0/24,pc1地址为:192.168.2.1/24,网关地址为:192.168.2.254/24
  • PC2位于互联网区域,模拟外部互联网,地址段为:10.0.0.0/8,pc2地址为:10.0.0.1/8
  • Linux防火墙的三块网卡为别连接不同的网络区域,地址分别为 :ens33 192.168.1.254/24;ens34 10.0.0.100/8;ens35 192.168.2.254/24
实验要求
  • 内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关。
  • 内部网络服务器s1通过DNAT发布服务到互联网。
  • 互联网主机pc2能够访问DMZ区域的服务器,但是不能够进行ping和ssh连接。

二、操作步骤

1.网络规划

在这里插入图片描述
说明:内网:
ip地址:192.168.1.1 ; 网卡连接 Vmnet1 ; 网卡:ens224; 要连接的防火墙网关为192.168.1.254
外网:
ip地址:10.0.0.1 ; 网卡连接 Vmnet3 ; 网卡:ens161; 要连接的防火墙网关为10.0.0.100
服务器:
ip地址:192.168.2.1 ; 网卡连接 Vmnet2 ; 网卡:ens256; 要连接的防火墙网关为192.168.2.254

防火墙的虚拟机配置:
在这里插入图片描述
还要保证在同一局域网下:
点击更改设置,添加后去掉图中方框中的勾选项(三个都需要去掉)
在这里插入图片描述

2.防火墙配置

2.1配置防火墙的各个网卡ip并禁用自身的firewalld和selinux

[root@SF1 ~] systemctl stop firewalld.service
[root@SF1 ~] setenforce 0
[root@SF1 ~] ifconfig ens224 192.168.1.254/24
[root@SF1 ~] ifconfig ens161 10.0.0.100/8
[root@SF1 ~] ifconfig ens256 192.168.2.254

使用ip a查看配置
在这里插入图片描述

2.2打开firewall路由转发

编辑路由文件

vim /etc/sysctl.conf

在这里插入图片描述
查看路由功能

sysctl -p

在这里插入图片描述

2.3配置内网环境

配置ip地址并禁用firewalld和selinux

[root@PC1 ~] systemctl stop firewalld.service
[root@PC1 ~] setenforce 0
[root@PC1 ~] ifconfig ens160 192.168.1.1/24

配置网关

[root@PC1 ~] route add -net 0/0 gw 192.168.1.254
[root@PC1 ~] route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 ens160
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens160
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

永久配置:

vim /etc/sysconfig/network-scripts/ifcfg-ens224
在这里插入图片描述

查看地址和网关
在这里插入图片描述
下载nginx,并开通服务
我采用的是无网下载,之前的博客有,可以参考下

[root@S1 yum.repos.d] yum -y install nginx
[root@S1 yum.repos.d] systemctl restart nginx

2.4配置服务器

和配置内网步骤一样,完成后同样启动nginx服务

在这里插入图片描述
在这里插入图片描述

2.5配置外网

操作步骤还是和上面一样,只是不用配置网关,也不用管nginx服务

在这里插入图片描述
在这里插入图片描述

环境检测:
使用ping
在这里插入图片描述

3.内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关

思考:内网可以联通防火墙,外网可以联通防火墙,所以内网可以转换协议连接到外网所对应的防火墙的网关

iptables -t nat -A POSTROUTING -s 192.168.1.1/24  -o ens161 -j MASQUERADE

​**-t nat
操作 ​
nat 表​(Network Address Translation),专门处理地址转换规则。
-A POSTROUTING
-A:追加规则到指定链(POSTROUTING)。
POSTROUTING 链:在数据包 ​离开本机前​ 修改源地址(路由决策之后)。
-s 192.168.1.0/24
-s:匹配 ​源 IP 地址。
192.168.1.0/24:表示内网网段(IP 范围 192.168.1.1 ~ 192.168.1.254)。
-o ens161
-o:匹配 ​出口网络接口​(数据包离开的网卡)。
ens34:通常是网关连接 ​外网​ 的接口(如公网网卡)。
-j MASQUERADE**​
-j:跳转到目标动作。
MASQUERADE:动态将内网设备的 ​源 IP​ 替换为 ens34 接口的 ​当前公网 IP。
给防火墙添加规则
在这里插入图片描述
检测:
在这里插入图片描述

iptables -A INPUT -s 192.168.1.1 -d 192.168.1.254 -j DROP

-A INPUT
-A:追加规则到指定链(INPUT 链)
INPUT 链:处理 ​进入本机的数据包​(目标地址是本机 IP)
​**-s 192.168.1.1
-s:匹配 ​源 IP 地址​
192.168.1.1:发送数据包的来源主机 IP
-d 192.168.1.254
-d:匹配 ​目标 IP 地址​
192.168.1.254:数据包要发送到的目标主机 IP(通常是本机或其他设备)
-j DROP**​
-j:跳转到目标动作
DROP:​直接丢弃数据包​(不发送任何响应,发送方会等待直到超时)

检测:
在这里插入图片描述

4.内部网络服务器s1通过DNAT发布服务到互联网

先检查nginx是否启动,如果没有启动的话会显示拒绝连接

echo ly_2505 >/usr/share/nginx/html/index.html
手写自定义内容

iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1:80

**-t nat**​
操作 ​**nat 表**​(Network Address Translation),专门处理地址转换规则。
​**-A PREROUTING**​
-A:追加规则到指定链(PREROUTING 链)
PREROUTING 链:在数据包 ​进入本机前​ 修改目的地址(路由决策之前)
​**-p tcp**​
匹配 ​TCP 协议​ 的数据包
​**--dport 80**​
匹配 ​目的端口 80​(HTTP 服务的标准端口)
​**-j DNAT**​
跳转到 ​DNAT​ 动作(Destination Network Address Translation)
​**--to-destination 192.168.2.1:80**​
将目的地址重写为 192.168.2.1,端口重写为 80

在这里插入图片描述
检测
在这里插入图片描述

5.互联网主机pc2能够访问S1服务器,但是不能够进行ping和ssh连接

在第二个要求中,已经实现了PC2可以通过访问网关来转发到S1服务器,所以这一步使其不能ping 10.0.0.100 和进行ssh连接

iptables -I INPUT -p tcp --dport 22 -j DROP
## ssh 的端口号是22,禁用掉22端口号iptables -A INPUT -s 10.0.0.1 -j DROP##不能与自己连接

检测:
在这里插入图片描述

提示:防火墙的参数多,该实验一定要反复练习目的是会应用在各个场景下:

http://www.xdnf.cn/news/875215.html

相关文章:

  • Vue Router 导航方法完全指南
  • Openwrt 嵌入式Linux发行版
  • 计算机系统结构第5章-线程级并行
  • JAVA 集合进阶 Map集合的实现类 TreeMap
  • 嵌入式分析利器:DuckDB与SqlSugar实战
  • Python中class定义系统讲解
  • promise和异步编程
  • Java框架面试题
  • (1-6-3)Java 多线程
  • iptables实战案例
  • STM32最小CLion开发环境
  • L2-056 被n整除的n位数 - java
  • Docker慢慢学
  • unity+ spine切换武器不换皮肤解决方案
  • C#Winform中DevExpress下的datagridview 特定列可编辑,其他列不可编辑
  • “详规一张图”——香港土地利用数据
  • java.sql.BatchUpdateException: Incorrect string value: ‘\xF0\x9F\x91\x91**...‘
  • 面试题小结(真实面试)
  • Java编程常见错误与最佳实践
  • machine_env_loader must have been assigned before creating ssh child instance
  • hadoop集群启动没有datanode解决
  • PyCharm项目和文件运行时使用conda环境的教程
  • Python趣学篇:用数学方程绘制浪漫爱心
  • SpringBoot+Mybatisplus配置多数据源(超级简单!!!!)
  • #Java篇:学习node后端之sql常用操作
  • BBU 电源市场报告:深入剖析与未来展望​
  • 洛谷P1591阶乘数码
  • GO语言---函数命名返回值
  • 嵌入式系统中常用的开源协议
  • 41、响应处理-【源码分析】-自定义MessageConverter