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 = 1cat /proc/sys/net/ipv4/ip_forward
# 以上为开启# 以下为关闭
echo 0 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forwardvim /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 -psysctl -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.1vim /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 MASQUERADEiptables -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表决定的。

Linux防火墙学习笔记12相关推荐

  1. linux挂载硬盘_CentOS「linux」学习笔记12:磁盘管理、分区挂载卸载操作

    linux基础操作:主要介绍了磁盘管理.分区挂载卸载操作. 特别说明linux中磁盘表现形式: IDE硬盘在linux中表示方式为"hdx".SCSI硬盘在linux中表示方式为& ...

  2. centos 卸载_CentOS「linux」学习笔记12:磁盘管理、分区挂载卸载操作

    linux基础操作:主要介绍了磁盘管理.分区挂载卸载操作. 特别说明linux中磁盘表现形式: IDE硬盘在linux中表示方式为"hdx".SCSI硬盘在linux中表示方式为& ...

  3. Linux学习笔记12——配置ftp、squid、Tomcat、Samba、MySQL主从

    Linux学习笔记12 Linux学习笔记12 配置FTP服务 配置pure-ftpd 开机启动 上传下载文件 配置vsftpd CentOS 70安装配置Vsftp服务器 搭好vsftp之后出现55 ...

  4. Linux操作系统学习笔记【入门必备】

    Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...

  5. Linux+javaEE学习笔记之Linux网络环境配置

    Linux+javaEE学习笔记之Linux网络环境配置 网络知识简单介绍: Ip地址是:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物 ...

  6. Linux教程学习笔记

    Linux教程学习笔记 目录 Linux教程学习笔记 写在前面 虚拟机 Linux目录结构 远程登录Linux系统 vi和vim编辑器 关机.重启和用户登录注销 用户管理 实用指令 组管理和权限管理 ...

  7. linux系统管理学习笔记之八---linux文件与目录的管理及权限

    linux系统管理学习笔记之八---linux文件与目录的管理及权限 2010-01-05 09:00:49 标签:权限 管理 文件目录 linx [推送到技术圈] 版权声明:原创作品,允许转载,转载 ...

  8. 韩顺平Linux教程学习笔记

    Linux系统学习笔记   新装了deepin v23系统,结果磁盘没设置好,玩崩了,百度半天修复不了,看看韩顺平老师的Linux操作课程,做做笔记(只记录对自己有用的).   B站网址 基础篇·Li ...

  9. Linux命令学习笔记

    Linux命令学习笔记 1 前言 1.1 系统版本 1.2 终端切换 1.3 快捷键 1.4 帮助文档 1.5 关机重启 2 目录命令 2.1 当前目录 pwd 2.2 切换目录 cd 2.3 查看目 ...

最新文章

  1. 程序员哀叹外国同事对35岁现象感到震惊,在国外40岁还写代码
  2. Scikit-Learn 机器学习笔记 -- 模型训练
  3. 定时任务框架APScheduler学习详解
  4. centos+bond+bridge+docker(ssh容器)固定ip实现测试环境(一)
  5. 第 1 章 FreeBSD Install
  6. XP建立隐藏的超级用户
  7. wke升级vs2010,vs2013
  8. 初高级分析师的能力和工具体系,指标雷达图!
  9. ir2110驱动占空比不能太高
  10. H.264/AVC 的各大主流编解码器
  11. MICCAI 2022 | 深圳大学医学部智能超声实验室6篇论文分享!
  12. 定时器应用—选项卡自动切换
  13. 【论文写作】——设置中英文字体
  14. SQLserver基础--语句、存储过程(七)
  15. 浅层砂过滤器的原理是什么,滤料是什么,需要不需要定期?
  16. php视频直播系统源码Android 修改状态栏颜色 白色、透明色
  17. 关于Android SD卡
  18. [tool] perforce
  19. loadrunner没有 demo_scenario.lrs
  20. 静态页面表格的布局问题--在表格里不能用float来布局,不然你怎么调都发现没用啊。

热门文章

  1. 《9.linux网络编程实践》
  2. 关于js中‘use strict‘使用的一些看法
  3. jquery Fancybox
  4. JS中的 setTimeout 和 clearTimeout
  5. Failed to load the native TensorFlow runtime : error while importing tensorflow ——问题解决
  6. Mac控制台快捷键大全
  7. 算法导论、数据结构、设计模式、代码整洁之道、大话设计模式、程序员修炼之道、编译原理、编程之美、阿里巴巴java开发手册等电子书合集
  8. LiteOS内核教程01 | IoT-Studio介绍及安装
  9. 拜拜了,浮动布局-基于display:inline-block的列表布局
  10. 正态分布的检验使用场景,以及 因子分析