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

iptables防火墙之SNAT与DNET

NAT

1.SNAT:让内网可以访问外网

2.DNAT:让外网可以访问到内网的机器

网关服务器,要开启路由功能

内核功能:

sysctl -a 列出所有参数 内核参数,然后grep可以查看到默认的内核参数

内核参数配置文件

/etc/sysctl.conf

sysctl -p #改完文件后重新生效

私网地址:

1.10.0.0.0 ~ 10.255.255.255

2.172.16.0.0 ~ 172.31.255.255

3.192.168.0.0 ~ 192.168.255.255

SNAT

SNAT策略概述 SNAT 应用环境

局域网主机共享单个公网IP地址接入Internet (私有IP不能在Internet中正常路由

SNAT原理

源地址转换

修改数据包的源地址

SNAT转换前提条件

局域网各主机已正确设置IP地址、子网掩码、默认网关地址

Linux网关开启IP路由转发

DNAT

DNAT原理与应用: DNAT应用环境:

在Internet中发布位于局域网内的服务器

DNAT原理:

目的地址转换,根据指定条件修改数据包的目的IP地址,保证了内网服务器的安全,通常被叫做目的映谢。

DNAT转换前提条件: 1.局域网的服务器能够访问Internet 2.网关的外网地址有正确的DNS解析记录 3. Linux网关开启IP路由转发

实现SNAT和DNAT

准备环境

首先准备三台虚拟机:网关服务器,内网,外网

先下载httpd服务,全部开启并关掉防火墙。

在网关服务器里增加一块网卡

ens36,删除UID,ip配置成12.0.0.1(外网地址)网关删掉。

ens33,删除DNS和网关,留ip和掩码。(做完并重启网卡)

内网,将网卡网关改成网关服务器里的ip地址(重启网卡)

外网,将ip地址改成外网地址12.0.0.11,网关指向网关服务器里的第二张网卡ip(重启网卡)

SNAT

#先进入服务器开启路由转发

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

vim /etc/sysctl.conf,复制后将0改为1

sysctl -p 

#先清空规则,并加入规则

   iptabless -t nat -A POSTROUTING -s 192.168.116.0/24 -o ens36 -j SNAT --to 12.0.0.1

#从内网出去用postrouting

#-s 源地址段   从192.168.116.0/24这个地址段起始

#-o ens36    从ens36这个网卡出去

#-j  SNAT    跳转到SNAT

#--to 12.0.0.1   最终目的到达12.0.0.1外网网关

#可以用iptables -vnL进行查看规则是否生效

#到内网上crul  12.0.0.11(外网的ip地址)

#到外网查看实时日志 tail -f /var/log/httpd/access_log

DNET

#进入服务器网关,配置规则:

iptebles -t nat -A PREROUTING  -i ens36 -p tcp --dort 80 -d 12.0.0.1 -j DNAT --to 192.168.116.20

#prerouitng           外网进入内网的在路由选择前

#-p tcp   指定协议为tcp

#--dort 80  指定tcp协议的80端口

#-d  12.0.0.1   外网的网关为12.0.0.1

#--to  192.168.116.20    要到内网机器ip为192.168.116.20上

#可以用iptables -vnL进行查看规则是否生效

#到外网上crul  12.0.0.1

#到内网查看实时日志 tail -f /var/log/httpd/access_log

http://www.lryc.cn/news/249159.html

相关文章:

  • mysql使用--备份与恢复
  • 【vue实战项目】通用管理系统:信息列表,信息录入
  • 【驱动】SPI驱动分析(六)-RK SPI驱动分析
  • 【Linux】基础IO--文件基础知识/文件操作/文件描述符
  • Intellij IDEA 的安装和使用以及配置
  • Zynq-Linux移植学习笔记之67- 国产ZYNQ上通过GPIO模拟MDC/MDIO协议
  • Zookeeper(一)在WSL单机搭建Zookeeper伪集群
  • QT(18):QString
  • 宏工科技通过CMMI三级认证,软件研发能力获国际权威认可
  • 2次MD5加密——用于分布式对话
  • 用Java制作简易版的王者荣耀
  • android 保活的一种有效的方法
  • kibana安装
  • LV.12 D19 ADC实验 学习笔记
  • ubuntu配置免密登录vscode
  • 软件工程--面向对象分析用通俗语言20小时爆肝总结!(包含用例图、活动图、类图、时序图......)
  • HarmonyOS—ArkTS中@Observed和@ObjectLink装饰器的嵌套类对象属性变化【鸿蒙专栏-11】
  • 网络通信安全的坚固防线双向认证技术详解
  • Appium+python+unittest搭建UI自动化框架
  • 使用paddledetection的记录
  • MySQL数据库的备份与恢复
  • Pycharm配置jupyter使用notebook详细指南(可换行conda环节)
  • 企业微信ipad版,http协议接口发开,获取客户群列表
  • Double 4 VR智能互动教学系统在小语种课堂中的教学应用
  • OSEK OS任务调度的底层逻辑
  • ‘tsc‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。
  • windows文件删除权限
  • Nginx的location块相关知识积累(包括常用的正则匹配表达式的介绍)
  • rabbitMq确认机制之ConfirmType
  • ubuntu下QT搭建Android开发环境