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

相关推荐
m0_7156744320 分钟前
政务泛监测体系能力排行:AI 重塑监测边界,治理的颗粒度革命
大数据·网络·人工智能·安全·网络安全·政务
IT利刃出鞘38 分钟前
Docker Compose--解决修改配置后不生效的问题
运维·docker·容器
Lsetea1 小时前
Docker更新SSL证书后容器仍读旧文件:单文件挂载与目录挂载排查
运维·nginx·docker·https·ssl证书
AI 编程助手GPT1 小时前
curl 返回成功就能收文件?用本地 HTTP 验证错误页与超时
网络·网络协议·http
Julien20041 小时前
管理机密(一)
运维·服务器·开发语言·学习方法
十碗饭吃不饱2 小时前
后端运维:网络联通、进程查询、Java服务启动脚本
java·运维·网络
好用斋2 小时前
拾光坞安装网盘聚合LitePan:把Docker命令翻译成图形界面
运维·docker·容器
贝锐4 小时前
金仓、达梦、TDSQL全适配:向日葵补齐信创数据库层远程运维能力
运维·数据库·信创
从琳开始9894 小时前
网络原理入门(二)------OSI七层模型?TCP/IP五层(四层)模型原来是这样的
java·网络·tcp/ip·java-ee·php
AOI小白新手上路6 小时前
深度学习算力购置方案分析:本地 RTX 4090 服务器 vs 云端租赁
服务器·人工智能·深度学习