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

相关推荐
乌鸦不像写字台22 分钟前
【docker部署】在服务器上使用docker
服务器·docker·容器
互联网搬砖老肖2 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9153 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
kfepiza3 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
无妄-20243 小时前
软件架构升级中的“隐形地雷”:版本选型与依赖链风险
java·服务器·网络·经验分享
艾伦_耶格宇4 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS4 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20184 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
群联云防护小杜5 小时前
构建分布式高防架构实现业务零中断
前端·网络·分布式·tcp/ip·安全·游戏·架构
轩情吖7 小时前
Qt的第一个程序(2)
服务器·数据库·qt·qt creator·qlineedit·hello world·编辑框