ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux的防火墙——SNAT实现策略控制路由转发

2022-05-31 12:35:21  阅读:347  来源: 互联网

标签:iptables network -- SNAT 192.168 Linux root 路由


转至:https://blog.csdn.net/qq_41425613/article/details/117294355

 

SNAT原理与应用

应用环境:局域网主机共享单个公网IP地址接入Internet,私有IP不能在Internet中正常路由
原理:修改数据包的源地址。
SNAT转换前提条件:
1. 局域网各主机以正确设置IP地址、子网掩码、默认网关地址
2. Linux网关开启IP路由转发

一 SNAT策略

1.1 SNAT策略的典型应用环境

局域网主机共享单个公网IP地址接入Internet

1.2 SNAT策略的原理

源地址转换,Source Network Address Translation
修改数据包的源地址

1.3 SNAT的典型应用环境

局域网共享上网

1.4 SNAT策略的工作原理

未做SNAT转换时的情况

 

 进行SNAT转换后的情况

 

 

二 项目实操

 

 Nat转换:入站接受PREROUTING策略匹配,出站POSTROUTING策略匹配

出站(内-外):OUTPUT--POSTROUTING(解决上网问题)
SNAT 192.168.6.0/24--->192.168.7.11
入站(外-内):PREROUTING--INPUT--FORWARD(服务映射)
DNAT 192.168.7.11--->192.168.6.10

2.1 流程解析:

具体的实现方法:

1.中间的防火墙充当路由器,开启nat功能
2.防火墙上做策略,指定192.168.6.0/24(10)的主机转换成192.168.7.11
iptables -F
iptables -t nat -I POSTROUTING -s 192.168.6.0/24 -o ens37(外网卡) -j SNAT --to-source 192.168.7.11

SNAT转换后,源地址变为网关服务器上映射的外网地址

DNAT:外网的用户可以访问内网发布的服务

具体的实现方法:

1.中间的防火墙充当路由器,开启nat功能
2.防火墙上做策略,指定访问网关的某服务映射给内网服务器
iptables -F
iptables -t nat -A PREROUTING -i ens37(外网卡) -d 192.168.7.11 -p tcp --dport 80 -j DNAT --to-destination 192.168.6.10

2.2 基础设置

1.在局域网PC上

[root@server1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@server1 ~]# systemctl restart network
[root@server1 ~]# ifconfig

 

 2.在防火墙上

[root@server2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@server2 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens37
[root@server2 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens37
[root@server2 ~]# systemctl restart network
[root@server2 ~]# ifconfig 

 

 

 

 

 

 

2.1.1 开启路由功能

[root@server2 ~]# echo "net.ipv4.ip_forward=1" > /etc/sysctl.conf
[root@server2 ~]# sysctl -p

 

 3.外网服务器

[root@client1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[root@client1 ~]# systemctl restart network
[root@client1 ~]# ifconfig 

 

 

以上完成基本配置

1.在防火墙进行策略

[root@server2 ~]# hostnamectl set-hostname iptables
[root@server2 ~]# bash
[root@iptables ~]# iptables -F
[root@iptables ~]# iptables -n -L -t nat
[root@iptables ~]# iptables -t nat -I POSTROUTING -s 192.168.6.0/24 -o ens37 -j SNAT --to-source 192.168.7.11
[root@iptables ~]# iptables -t nat -L POSTROUTING 
[root@iptables ~]# ping 192.168.7.12

 

 2.在局域网PC上

[root@server1 ~]# hostnamectl set-hostname client
[root@server1 ~]# bash
[root@client ~]# ping 192.168.7.12

 

 

以上实现内网到外网的上网问题

1.在局域网PC上

[root@client ~]# yum -y install httpd
[root@client ~]# echo "this is a tree." > /var/www/html/index.html
[root@client ~]# systemctl start httpd
[root@client ~]# systemctl stop firewalld
[root@client ~]# setenforce 0
[root@client ~]# netstat -anpt | grep httpd

 

 2.在防火墙进行入站策略

[root@iptables ~]# iptables -t nat -A PREROUTING -i ens37 -d 192.168.7.11 -p tcp --dport 80 -j DNAT --to-destination 192.168.6.10
[root@iptables ~]# iptables -t nat -L
[root@iptables ~]# systemctl stop firewalld
[root@iptables ~]# setenforce 0

 

 3.外网服务器

[root@client1 ~]# hostnamectl set-hostname service
[root@client1 ~]# bash
[root@service ~]# firefox http://192.168.7.11

 

标签:iptables,network,--,SNAT,192.168,Linux,root,路由
来源: https://www.cnblogs.com/my-first-blog-lgz/p/16330002.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有