Linux防火墙学习笔记12

iptables nat表应用案例:

nat表作用:

导流

nat表作用位置:

KVM或者OpenStack中虚拟机或云主机与外部通信。(云主机导流)

Docker管理的容器与外部通信

nat表规则动作所对应的链:

SNAT   源地址转换   应用于出口POSTROUTING

MASQUERADE  源地址转换  应用于出口POSTROUTING

DNAT  目的地址转换  应用于进行PREROUTING

REDIRECT  端口重定向   应用于进口PREROUTING

Linux主机开启路由转发功能:我们的电脑就是路由器。

sysctl -a |grep ip_forward
net.ipv4.ip_forward = 1

cat /proc/sys/net/ipv4/ip_forward
# 以上为开启

# 以下为关闭
echo 0 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward


vim /etc/sysctl.conf   # 系统控制配置文件
net.ipv4.ip_forward = 1
sysctl -p    # 刷新


sysctl -a   # 查看内核修改的参数

涉及到临时修改还是永久修改。

我们开启路由转发的目的,主要是为了实现Linux系统的SNAT和DNAT功能。

SNAT MASQUERAED  源地址转换案例:

两个概念的区别:

SNAT: 将私有地址转换成公网地址上网。

MASQUERAED: 私有地址想上网,使用公网地址的某个端口去上网,其实就是一个伪装。

案例:实现内网主机上网功能:把我们的主机配置成路由器。

网络连接拓扑:

win系统使用vmware workstation实现了SNAT实验拓扑:

vnet8 NAT 性质:交换机。

 

三台服务器,第1台是内网主机,第2台是防火墙做路由器用,第3台是外网服务器(httpd)。

第2台和第3台主机上安装wireshark。

yum install -y wireshark*

第3台服务器:

echo "snat test" >> /var/www/html/index.html
systemctl start httpd
curl http://localhost

第2台服务器:

yum install -y iptables-services

开启路由转发功能:

sysctl -a |grep "ip_forward"
net.ipv4.ip_forward = 0


# 永久开启
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

sysctl -a |grep "ip_forward"

非交互方式配置文件。

systemctl enable iptables
systemctl start iptables
iptables -t net -nL
# 从上行的角度:你给服务器发数据
iptables -t nat -I POSTROUING -s 192.168.1.0/24 -o ens37 -j SNAT --to-source 192.168.3.1


vim /etc/sysconfig/iptables
在这个策略文件中,将其中的forward的策略进行注释。forward的策略都是拒绝。

iptables-restore < /etc/sysconfig/iptables

部署完的验证:

Wireshark Network Analyzer: Wireshark 网络分析仪

 然后配置MASQURATED:

iptables -t nat -D POSTROUING -s 192.168.1.0/24 -o ens37 -j SNAT --to-source 192.168.3.1

我们将这条策略进行删除,发现内网主机还是可以访问服务器的。可以通过关机重启。

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

iptables -t nat -A POSTROUTING -S 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE

MASQUERADE all -- 192.168.1.0/24 0.0.0.0/0  

0.0.0.0/0  默认路由

这个SNAT和MASQUERADE类似SNAT的区别。

KVM虚拟机访问外网导流:

虚拟系统管理器。

virbr0: 交换机 桥。交换机的前身是网桥。

iptables -t nat -nL

 其中的Chain POSTROUTING (Policy ACCEPT)

其中的MASQUERADE /RETURN 的策略决定了KVM的数据包的网络地址转换。

内核添加的防火墙NAT的策略。

KVM虚拟机能不能上网,就是由这个nat表决定的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS--Java EE

在前端的代码中&#xff0c;CSS 相关的代码写在什么位置呢&#xff1f; CSS 可以写在<style>标签中外部引入&#xff1a;输入 link: css写在 div 标签中 目录 一、选择器的种类 1 基础选择器 1.1 类选择器 1.2 id选择器 1.3 标签选择器 1.4 通用选择器 小结 2 …

facebook文本生成音乐项目-audiocraft 安装教程

文章目录 所需环境安装ffmpeg克隆项目仓库安装相关依赖库运行项目模型下载自动下载模型失败MusicGen 模型下载地址 所需环境 ffmpegpython>3.9gitcuda118&#xff08;torch>2.0&#xff09; 安装ffmpeg 下载地址 下载后解压&#xff0c;然后将解压后的目录配置到系统…

电影《天空之城》观后感

上周看了电影《天空之城》这部电影&#xff0c;这部电影是六一儿童节时上映的&#xff0c;本周也算是补票吧&#xff0c;童年时&#xff0c;看的都是免费的&#xff0c;早已经忘记是在哪里看到的&#xff0c;但当时对自己触动很大&#xff0c;算是启蒙电影&#xff0c;所以今天…

Tinker 组件修复,踩坑

1、You need to use a Theme.AppCompat theme (or descendant) with this activity. 复现步骤 补丁加载成功之后重启应用&#xff0c;再退出应用重进闪退 日志 TinkerUncaughtHandler catch exception:java.lang.IllegalStateException: You need to use a Theme.AppCompat th…

网络传输中的那些编码之-UTF8编码漫谈

编码为什么是一个重要的话题&#xff0c;因为我们和计算机交互的主要方式目前还是文字字符。作为一个程序员&#xff0c;相信大部分都都被字符和编码的问题折磨过&#xff0c;从键盘输入文字字符到编辑器 中&#xff0c;编辑器存储字符到硬盘&#xff0c;再到具体一个编程语言如…

Java 八股文-基础篇

Java 基础 一、Java 概述 1.什么是 Java&#xff1f; Java 是一门面向对象的编程语言&#xff0c;不仅吸收了 C语言的各种优点&#xff0c;还摒弃了 C里难以理解的多继承、指针等概念&#xff0c;因此 Java 语言具有功能强大和简单易用两个特征。Java 语言作为静态面向对象编…

NB-lot和LoRa真正的差别在哪里?

就像要把大象装冰箱一样&#xff0c;物联网&#xff0c;万物互联也是要分步骤的。 一、感知层(信息获取层)&#xff0c;即利用各种传感器等设备随时随地获取物体的信息; 二、网络层(信息传输层)&#xff0c;通过各种电信网络与互联网的融合&#xff0c;将物体的信息实时准确地…

Mybatis学习之插件

Mybatis学习之插件 Plugins Mybatis中的插件虽然名称叫插件&#xff0c;但实质上是通过动态代理实现的。和我们平时讲的插件概念不一样&#xff0c;但是本质上都是给外部提供接口进行扩展。 MyBatis 允许我们在映射语句执行过程中的某一点进行拦截调用。MyBatis允许我们使用…

浪潮 KaiwuDB x 大数据中心 | 数据驱动政府治理能力快速提升

业务背景 我国工业互联网大数据资源存在孤立、分散、封闭等问题&#xff0c;数据价值未能得到有效利用&#xff0c;数据主权和数据安全面临重大威胁。 发挥数据对工业经济的基础支撑和创新引擎作用&#xff0c;可促进工业互联网的创新发展&#xff0c;加速数据驱动政府治理能…

CVPR23 | 可编辑3D场景布局的文本引导多对象合成NeRF

来源&#xff1a;投稿 作者&#xff1a;橡皮 编辑&#xff1a;学姐 论文链接&#xff1a;https://arxiv.org/abs/2303.13843 0.背景&#xff1a; 最近&#xff0c;文本到图像生成通过将视觉-语言预训练模型与扩散模型相结合&#xff0c;取得了巨大的成功。这些突破也使得强大…

cortex A7核按键中断实验

cortex A7核按键中断实验 一、分析电路图 实验目的&#xff1a;完成板子三个按键操作 1.1 电路图IO口 KEY1------>PF9 KEY2------>PF7 KEY3------>PF8 1.2 工作原理 KEY1 ------> PF9 ------> 按键触发方式&#xff1a;下降沿触发 KEY2 ------> PF7 …

HarmonyOS元服务端云一体化开发快速入门(上)

一、前提条件 您已使用已实名认证的华为开发者帐号登录DevEco Studio。 请确保您的华为开发者帐号余额充足&#xff0c;账户欠费将导致云存储服务开通失败。 二、选择云开发模板 1.选择以下任一种方式&#xff0c;打开工程创建向导界面。 如果当前未打开任何工程&#xff0c…

Question Log

Question Log 提示&#xff1a;记录一下平常遇到的坑 Question Log&#xff08;★ &#xff1e; &#xff09; Question LogⅠ、★ &#xff1e; 使用VsCode构建Unity开发环境1.环境配置2.遇到的相关问题★.The .NET Core SDK cannot be located: A valid dotnet installation …

JS + 浮动 + 递归实现图片瀑布流懒加载

思路 页面 pege 分成左浮动的数列 lineBox&#xff0c;每列中图片 sinImg 依次向下摆放每加载一张图片时&#xff0c;判断页面中哪列的高度最小&#xff0c;将当前图片放到最小的那列尾部监听当前图片 onload 事件&#xff0c;当前图片加载完成后&#xff0c;再加载下一张图片…

力扣题库刷题笔记5--最长回文子串

1、题目如下&#xff1a; 2、个人Python代码实现&#xff1a; 首先想到的是通过类似冒泡排序的方式进行切片&#xff0c;然后判断切片的子字符串是否为回文字符串&#xff0c;然后记录出最长的回文字符串&#xff0c;代码如下&#xff1a; 可以看到&#xff0c;通过切片的方式&…

剑指offer35 复杂链表的复制

复杂链表的复制 文章目录 复杂链表的复制方法一 回溯哈希表第二种解释 方法二&#xff1a;拼接拆分算法流程 参考文献 本题要求我们对一个复杂链表进行复制。在复杂链表中&#xff0c;每个节点除了有一个next指针指向下一个节点&#xff0c;还有一个random指针指向链表中的任意…

嵌入式容器源码解析

问题分析 不同于使用springmvc,在我们使用springboot时无需配置tomcat就可以直接使用&#xff0c;这就说明springboot已经在我们启动项目时将tomcat配置好了&#xff0c;接下来我们就来看看springboot底层是怎么实现的。 源码解析 ServletWebServerFactoryAutoConfiguratio…

Python 标准库 - 并发执行

Python 标准库 - 并发执行 1. 简单介绍2. 程序示例2.1 threading 编程示例2.2 multiprocessing 编程示例2.3 concurrent.futures 编程示例 1. 简单介绍 Python 标准库 非常庞大&#xff0c;所提供的组件涉及范围十分广泛&#xff0c;官方参考链接https://docs.python.org/zh-cn…

unity 3d实现下雨、雾气、萤火虫和火花四溅的粒子效果

文章目录 先看最终效果1. 下雨效果2. 雾气效果3. 萤火虫和火花四溅的效果 3d下雨粒子效果涟漪效果雨滴和涟漪效果结合水花效果雨滴涟漪水花结合问题雾气效果萤火虫火花效果萤火虫和火花效果结合完毕 先看最终效果 1. 下雨效果 2. 雾气效果 3. 萤火虫和火花四溅的效果 3d下雨粒…

函数栈帧的创建与销毁

函数栈帧的创建与销毁 前言认识相关寄存器认识相关汇编命令详解思路图 前言 函数栈帧的创建与销毁在不同编译器下&#xff0c;函数调用过程中栈帧的创建略有差异&#xff0c;具体细节取决于编译器的实现&#xff0c;但大体逻辑是一致的。&#xff08;在使用编译器时&#xff0…