Linux 利用 IP转发使内网连接到公网

本文介绍如何利用Linux的IP转发功能,通过DMZ主机实现内网机器访问公网。步骤包括启用IPv4转发,配置内网主机静态路由,设置iptables规则,并通过带外主机SSH访问内网主机。
摘要由CSDN通过智能技术生成

一、项目背景描述

  实际运维工作中,很多机器是不带公网的,一般一个集群或一个平台只有前端能访问互联网,划属于DMZ区域,而内网机器一些因安全所进行的升级,如果采用手动离线升级的话,效率低,而且比如内核升级的话,因个人能力或系统未知原因,还会出现意外的问题。那我们如何借助于DMZ去的linux主机,让其具备路由转发功能(路由),从而实现内网机器外访互联网呢?

在这里插入图片描述

二、实现方法

  我们知道,Linux本身自带iptables包过滤,但是其还有一重要功能,即实现数据的转发,本文就利用Linux 自带 iptables 实现从一个网络接口到另一个接口的IP转发(数据包转发)。IP转发的概念是,使 Linux 机器像路由器一样将数据从一个网络发送到另一个网络。所以,它能作为一个路由器或者代理服务器,实现将一个连接的互联网或者网络连接共享给多个客户端机器。

● 示例及原理解释(来源网络):

源IP 源端口 NAT 网关机器IP NAT 网关 机器端口 目标IP 目标端口
192.168.10.14 8080 192.168.10.15 18080 106.11.45.35 80

转发过程如下:

  1. 192.168.10.14:8080 [request dysmsapi.aliyuncs.com] --> 192.168.10.15:18080
  2. 192.168.128.145:18080 [request dysmsapi.aliyuncs.com] --> dysmsapi.aliyuncs.com (106.11.211.236:80)
  3. dysmsapi.aliyuncs.com [response] --> 192.168.10.14:18080
  4. 查找映射表得知,18080获得的数据返还给 192.168.10.14:8080
  5. dysmsapi.aliyuncs.com [response] --> 192.168.10.140:8080

在这里插入图片描述

2.1、启用 IPv4 转发

带外主机上配置,使用root或sudo执行:

cat /proc/sys/net/ipv4/ip_forward
sysctl -a |grep 'net.ipv4.ip_forward'  //查看是否已经打开,如值为1,则已经打开
echo 1 > /proc/sys/net/ipv4/ip_forward   //开启ipv4转发,或修改配置文件/etc/sysctl.conf
vim /etc/sysctl.conf  //修改参数为1
net.ipv4.ip_forward = 1

#立即生效
sysctl -p

注:执行命令后可马上启用ip转发,但仅对本次登录有效;要想永久生效需要修改配置文件/etc/sysctl.conf ,增加/修改 net.ipv4.ip_forward = 1。

在这里插入图片描述
修改后执行:# sysctl -p /etc/sysctl.conf ##启用更改,使其立即生效。

在这里插入图片描述

2.2、内网主机配置静态路由转发到公网

本次项目中使用eth0网口的网关配置静态路由转发到公网,来实现连接外网,编辑配置文件:

vi /etc/sysconfig/static-routes

格式如下:any net 172.16.152.0/24 gw 10.102.3.254
其中:
net 172.16.152.0/24 ----->目标网段,即你需要访问的公网网段
gw 10.102.3.254 -------->本地nat代理的网关(前提是开启了本地ipv4转发)

修改配置后需要重启网卡或主机,才能生效;

2.3、带外主机配置,如你本地有1块上网的网卡:

  配置iptables,且由于netfilter/iptables是一个无状态的防火墙,我们需要让 iptables 允许已建立的连接通过。

iptables -A FORWARD -i 内网口 -o 外网口 -j ACCEPT
iptables -A FORWARD -i 外网口 -o 内网口 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.10.14 -j SNAT --to 192.168.10.15  #或直接如下配置
iptables -t nat -A POSTROUTING -o 外网口 -j MASQUERADE
iptabl
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

羌俊恩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值