iptables实战案例
目录
一、实验拓扑
二、网络规划
三、实验要求
四、环境准备
1.firewall
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
(2)打开firewall路由转发
2.PC1(内网)
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
3.PC2外网
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
4.服务器
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
(3)下载nginx,并开通服务
5.环境检测
(1)内网连接
(2)外网连接
五、防火墙配置及测试
一、实验拓扑
二、网络规划
内部PC1位于内网区域,地址段为: 192.168.1.0/24,pc1地址为:192.168.1.1/24,网关地址为:192.168.1.254/24
服务器S1位于服务器区域,地址段为: 192.168.2.0/24,s1地址为: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.firewall
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
#配置网卡[root@SERVER1 ~]# cd /etc/sysconfig/network-scripts/[root@SERVER1 network-scripts]# vim ifcfg-ens160TYPE=EthernetBOOTPROTO=staticNAME=ens160UUID=e9cd890f-3b47-4859-8c19-3040664051f7DEVICE=ens160ONBOOT=yesIPADDR=192.168.1.254PREFIX=24[root@SERVER1 network-scripts]# vim ifcfg-ens192TYPE=EthernetBOOTPROTO=staticNAME=ens192DEVICE=ens192ONBOOT=yesIPADDR=10.0.0.100PREFIX=8[root@SERVER1 network-scripts]# vim ifcfg-ens224TYPE=EthernetBOOTPROTO=staticNAME=ens224DEVICE=ens224ONBOOT=yesIPADDR=192.168.2.254PREFIX=24 #关闭防火墙 设置selinux[root@SERVER1 network-scripts]# systemctl stop firewalld.service [root@SERVER1 network-scripts]# setenforce 0
(2)打开firewall路由转发
[root@SERVER1 network-scripts]# vim /etc/sysctl.conf[root@SERVER1 network-scripts]# sysctl -pnet.ipv4.ip_forward = 1
2.PC1(内网)
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
#关闭防火墙 设置selinux[root@PC1 network-scripts]# systemctl stop firewalld.service [root@PC1 network-scripts]# setenforce 0#设置网卡[root@PC1 ~]# cd /etc/sysconfig/network-scripts/[root@PC1 network-scripts]# vim ifcfg-ens160TYPE=EthernetBOOTPROTO=staticNAME=ens160DEVICE=ens160ONBOOT=yesIPADDR=192.168.1.1PREFIX=24GATEWAY=192.168.1.254DNS1=192.168.1.254
3.PC2外网
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
#关闭防火墙 设置selinux[root@PC2 network-scripts]# systemctl stop firewalld.service [root@PC2 network-scripts]# setenforce 0#设置网卡 网关[root@PC2 ~]# cd /etc/sysconfig/network-scripts/[root@PC2 network-scripts]# vim ifcfg-ens160TYPE=EthernetBOOTPROTO=staticNAME=ens160DEVICE=ens160IPADDR=10.0.0.1PREFIX=8GATEWAY=10.0.0.254DNS1=10.0.0.254ONBOOT=yes
4.服务器
(1)配置防火墙各大网卡IP并禁用 firewall和selinux
#关闭防火墙 设置selinux[root@localhost network-scripts]# systemctl stop firewalld.service [root@localhost network-scripts]# setenforce 0#设置网卡 网关[root@localhost ~]# cd /etc/sysconfig/network-scripts/[root@localhost network-scripts]# vim ifcfg-ens160TYPE=EthernetBOOTPROTO=staticNAME=ens160DEVICE=ens160ONBOOT=yesIPADDR=192.168.2.1PREFIX=24GATEWAY=192.168.2.254DNS1=192.168.2.254
(3)下载nginx,并开通服务
#配置本地源[root@localhost ~]# cd /etc/yum.repos.d/[root@localhost yum.repos.d]# vim local.repo [local]name=localbaseurl=file:///mnt/AppStreamenabled=1gpgcheck=0root@localhost yum.repos.d]# mount /dev/sr0 /mnt/mount: /mnt: WARNING: device write-protected, mounted read-only.mount: (hint) your fstab has been modified, but systemd still usesthe old version; use 'systemctl daemon-reload' to reload.[root@localhost yum.repos.d]# yum install -y nginx
5.环境检测
(1)内网连接
[root@PC1 ~]# ping 192.168.2.1PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.64 bytes from 192.168.2.1: icmp_seq=1 ttl=63 time=0.685 ms[root@PC1 ~]# ping 10.0.0.100PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.64 bytes from 10.0.0.100: icmp_seq=1 ttl=64 time=0.639 ms64 bytes from 10.0.0.100: icmp_seq=2 ttl=64 time=0.694 ms[root@localhost ~]# ping 192.168.1.1PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.505 ms[root@localhost ~]# ping 10.0.0.100PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.64 bytes from 10.0.0.100: icmp_seq=1 ttl=64 time=0.412 ms64 bytes from 10.0.0.100: icmp_seq=2 ttl=64 time=0.404 ms
(2)外网连接
[root@localhost network-scripts]# ping 10.0.0.100PING 10.0.0.100 (10.0.0.100) 56(84) bytes of data.64 bytes from 10.0.0.100: icmp_seq=1 ttl=64 time=0.811 ms64 bytes from 10.0.0.100: icmp_seq=2 ttl=64 time=0.395 ms
五、防火墙配置及测试
内部网络中的pc1采用SNAT访问外部互联网,但是无法ping到内部网关。
#修改iptables 内部网络通过SNAT,访问外部网络[root@SERVER1 ~]# iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP#访问外网测试[root@SERVER1 ~]# ping 10.0.0.1PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.469 ms64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.408 ms^C--- 10.0.0.1 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001msrtt min/avg/max/mdev = 0.408/0.438/0.469/0.037 ms#修改iptables 使内网不能访问网关[root@SERVER1 ~]# iptables -t filter -A INPUT -s 192.168.1.1 -d 192.168.1.254 -p icmp --icmp-type 8 -j DROP[root@PC1 ~]# ping 192.168.1.254PING 192.168.1.254 (192.168.1.254) 56(84) bytes of data.#服务器访问内网[root@localhost ~]# ping 192.168.1.1PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.64 bytes from 192.168.1.1: icmp_seq=1 ttl=63 time=0.851 ms64 bytes from 192.168.1.1: icmp_seq=2 ttl=63 time=0.822 ms
内部网络服务器s1通过DNAT发布服务到互联网。
#配置nginx[root@localhost yum.repos.d]# systemctl start nginx[root@localhost yum.repos.d]# cd /usr/share/nginx/html/[root@localhost html]# ls404.html 50x.html index.html nginx-logo.png poweredby.png[root@localhost html]# echo c2505 > index.html [root@localhost html]# curl 192.168.2.1c2505#配置iptables[root@SERVER1 ~]# iptables -t nat -A PREROUTING -i ens192 -d 10.0.0.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1[root@SERVER1 ~]# iptables -nL -t natChain PREROUTING (policy ACCEPT)target prot opt source destination DNAT tcp -- 0.0.0.0/0 10.0.0.100 tcp dpt:80 to:192.168.2.1#测试[root@localhost ~]# curl 10.0.0.100c2505
互联网主机pc2能够
访问DMZ区域的服务器,但是不能够进行ping和ssh连接。
#配置iptables[root@SERVER1 ~]# iptables -t nat -A PREROUTING -i ens192 -d 10.0.0.100 -p tcp --dport 80 -j DNAT --to-destination 192.168.2.1[root@SERVER1 ~]# iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP[root@SERVER1 ~]# iptables -t filter -A INPUT -p tcp -s 10.0.0.1 --dport 22 -j DROP[root@SERVER1 ~]# iptables -nL Chain INPUT (policy ACCEPT)target prot opt source destination DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 8DROP tcp -- 10.0.0.1 0.0.0.0/0 tcp dpt:22#测试[root@localhost ~]# curl 10.0.0.100c2505[root@localhost ~]# ssh root@192.168.2.1ssh: connect to host 192.168.2.1 port 22: No route to host[root@localhost ~]# ping 192.168.2.1PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
相关文章:

iptables实战案例
目录 一、实验拓扑 二、网络规划 三、实验要求 四、环境准备 1.firewall (1)配置防火墙各大网卡IP并禁用 firewall和selinux (2)打开firewall路由转发 2.PC1(内网) (1)配置防…...
机器学习与深度学习07-随机森林01
目录 前文回顾1.随机森林的定义2.随机森林中的过拟合3.随机森林VS单一决策树4.随机森林的随机性 前文回顾 上一篇文章链接:地址 1.随机森林的定义 随机森林(Random Forest)是一种集成学习算法,用于解决分类和回归问题。它基于决…...
回归分析-非线性回归及岭回归.docx
一.题目要求1.用SPSS软件练习建立多元线性回归方程,分析数据的多重共线性,利用后退法和逐步回归法选择变量,练习用岭回归方法处理该模型数据并作比较 2.用SPSS软件练习建立模型的非线性回归方程 二.数据分析(一)题目:课本7.6 1、数据 一家大型商业银行有多家分行,近年来…...

Google AI 模式下的SEO革命:生成式搜索优化(GEO)与未来营销策略
一、搜索范式转变:从链接引导到答案交付 Google自2023年起逐步推出AI搜索功能,经历了SGE(Search Generative Experience)和Gemini阶段,最终在2025年全面上线了「AI Mode」搜索模式。与此同时,也保留了一种过…...
docker创建postgreSql带多个init的sql
好的!下面是一个完整的可运行项目结构,包含: ✅ docker-compose.yml:启动 PostgreSQL(支持 pgvector) ✅ init-db.sql:创建数据库 myapp ✅ init-schema.sql:在 myapp 中建表并初始…...
掌握 MotionLayout:交互动画开发
前言 在 Android 开发中,系统自带的属性动画(如 ObjectAnimator 和 ValueAnimator)虽然功能强大,但在复杂动画场景下,第三方动画库能提供更高效的开发体验和更丰富的效果。本文将深入解析 Lottie、MotionLayout、Andr…...

SpringBoot中缓存@Cacheable出错
SpringBoot中使用Cacheable: 错误代码: Cacheable(value "FrontAdvertiseVOList", keyGenerator "cacheKey") Override public List<FrontAdvertiseVO> getFrontAdvertiseVOList(Integer count) {return this.list(Wrappers.<Adve…...

iOS UIActivityViewController 组头处理
0x00 情形一 - (void)shareAction1 {// 当前 View 转成图片UIImage *image [self snapshotImage:self.view];NSArray *activityItems [image];UIActivityViewController *activityVC [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationAc…...
分布式电源接入配电网的自适应电流保护系统设计与实现
分布式电源接入配电网的自适应电流保护系统设计与实现 一、引言 随着可再生能源的快速发展,分布式电源(Distributed Generation, DG)大规模接入配电网,传统保护系统面临以下挑战: 潮流方向改变导致保护误动/拒动故障电流水平波动影响保护灵敏度多类型故障(单相/两相/三…...
鸿蒙版Taro 搭建开发环境
鸿蒙版Taro 搭建开发环境 一、配置鸿蒙环境 下载安装 DevEco 建议使用最新版本的 IDE,当前为 5.0.5Release 版本。 二、创建鸿蒙项目 打开 DevEco,点击右上角的 Create Project,在 Application 处选择 Empty Ability,点击 Ne…...
论对生产力决定生产关系的批判:突破决定论的桎梏
笔言: 在学生时代认为"生产力决定生产关系"很有道理,但是进入社会参与市场竞争时候,才发现这种想法太天真了,当生产力一只赔钱时候谁也不会感兴趣;当生产力产生利润,比如1%30%,100%,3…...
ESOP交易系统搭建全景指南:从合规基石到价值跃迁
第一章 重新定义ESOP:合规性与流动性的平衡艺术 1.1 ESOP的本质演进 传统认知误区:员工持股计划股权分配工具 现代定义: ESOP是企业资本运作的中枢神经系统,贯穿“激励授予→行权管理→减持流通→市值协同”全链条,需…...
GICv3电源管理
在符合GICv3体系结构的实现中,CPU接口和PE必须位于相同的电源域,但这不必与关联的Redistributor所在的电源域相同。 这意味着可能会出现PE及其CPU interface断电,而Redistributor、Distributor和its上电的情况。在这种情况下,GIC架…...

《TCP/IP 详解 卷1:协议》第3章:链路层
以太网和IEEE802局域网/城域网标准 IEEE802局域网/城域网标准 IEEE 802 是一组由 IEEE(电气与电子工程师协会)定义的局域网和城域网通信标准系列,涵盖了从物理层到链路层的多个网络技术。其中: IEEE 802.3 定义的是传统的以太网…...
centos 9/ubuntu 一次性的定时关机
方法一 # 15 表示15分钟以后自动关机 sudo shutdown -h 15方法二: sudo dnf install at -y # 晚上十点半关机 echo "shutdown -h now" | at 22:30 # 检查是否设置成功命令 atq [rootdemo-192 ~]# atq 1 Wed Jun 4 11:12:00 2025 a root # 取消定时计划…...

Elasticsearch从安装到实战、kibana安装以及自定义IK分词器/集成整合SpringBoot详细的教程(二)
package com.test.xulk.es.entity.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.test.xulk.es.entity.Hotel;public interface HotelMapper extends BaseMapper<Hotel> { }集成Springboot 项目里面 官方地址: Elasticsearch …...
Java自动类型转换的妙用
Java中的自动类型转换(也称为隐式类型转换)是指在不需要显式指定转换的情况下,Java编译器自动将一种数据类型转换为另一种数据类型。这种特性在编程中有许多妙用,以下是一些常见的应用场景和优点: 1. 简化代码 自动类…...

数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)
数据库管理333期 2025-06-04 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604)1 概念2 要求3 操作流程4 转移失败处理总结 数据库管理-第333期 Oracle 23ai:RAC打补丁完全不用停机(20250604࿰…...

【DAY39】图像数据与显存
内容来自浙大疏锦行python打卡训练营 浙大疏锦行 知识点: 图像数据的格式:灰度和彩色数据模型的定义显存占用的4种地方 模型参数梯度参数优化器参数数据批量所占显存神经元输出中间状态 batchisize和训练的关系 作业:今日代码较少࿰…...

AI代码库问答引擎Folda-Scan
简介 什么是 Folda-Scan ? Folda-Scan 是一款革命性的智能项目问答工具, 完全在浏览器中本地运行 。它使用高级语义矢量化将您的代码库转变为对话伙伴,使代码理解和 AI 协作变得前所未有的简单和安全。其采用尖端的 Web 技术和 AI 算法构建&…...

Kafka深度技术解析:架构、原理与最佳实践
一、 消息队列的本质价值与核心特性 1.1 分布式系统的“解耦器” 异步通信模型 代码列表 graph LRA[生产者] -->|异步推送| B[(消息队列)]B -->|按需拉取| C[消费者1]B -->|按需拉取| D[消费者2] 生产者发送后立即返回,消费者以自己的节奏处理消息。典…...

基于cnn的通用图像分类项目
背景 项目上需要做一个图像分类的工程。本人希望这么一个工程可以帮助学习ai的新同学快速把代码跑起来,快速将自己的数据集投入到实战中! 代码仓库地址:imageClassifier: 图片分类器 数据处理 自己准备的分类图像,按照文件夹分…...
Kotlin-协程
文章目录 什么是协程协程的好处协程的挂起和恢复协程原理 什么是协程 协程是一种用户态的轻量级程序组件,其核心特点是通过协作式调度实现单线程内的伪并发。 协程的好处 传统的线程切换通过回调,Handler各种调度,繁琐,代码不清…...
pycharm 左右箭头 最近编辑
目录 经典界面: 快捷键 经典界面: 如果你使用的是新 UI(新版 PyCharm 默认启用的),导航按钮可能被精简了,你可以: File Settings(齿轮图标)→ UI Appearance 或 New …...

Linux环境管道通信介绍
目录 前言 一、通信的本质 二、匿名管道 1.通信资源——文件缓冲区 2.为什么叫匿名管道? 编辑 3.匿名管道的创建过程 4.pipe函数 小结 5.一些问题 1)匿名管道为什么要求父子进程将原本的读/写权限只保留一个 2)为什么一开始父进程要以读/写…...

DIC技术助力金属管材全场应变测量:高效解决方案
在石油管道、汽车排气系统、航空航天液压管路等工业场景中,金属管作为关键承力部件,其拉伸性能(如弹性极限、颈缩行为、断裂韧性)直接影响结构安全性和使用寿命。 实际应用中,选用合适的管材非常重要,通过…...
python基础day04
1.两大编程思想的异同点: 面向过程面向对象区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决共同点面向过程和面向对象都是解决实际问题的一种思维方式二者相辅相成,并不是对立的解决复杂问题,通…...

嵌入式学习--江协stm32day1
失踪人口回归了,stm32的学习比起51要慢一些,因为涉及插线,可能存在漏插,不牢固等问题。 相对于51直接对寄存器的设置,stm32因为是32位修改起来比较麻烦,江协课程是基于标准库的,是对封装函数进…...

湖北理元理律师事务所:债务化解中的心理重建与法律护航
专业法律顾问视角 一、债务危机的双重属性:法律问题与心理困境 在对173名债务人的调研中发现: 68%存在焦虑引发的决策障碍(如不敢接听银行电话) 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…...
constexpr 是 C++11 引入的关键字
constexpr 是 C11 引入的关键字,用于在编译期进行常量表达式计算,从而提高程序性能和安全性。以下是其核心作用和用法: 一.作用 1编译期 计算 constexpr 变量或函数的值在编译时确定,避免运行时计算开销。例如,数组大…...