最常用的几个端口转发的例子

很多情况下,我们往往需要通过对某个端口进行转发(端口映射)实现某些特殊功能,比如堡垒机和负载均衡什么的。在这里我就稍微总结了几种最常用的端口转发方式供大家参考。

Linux防火墙模式——反向NAT

这种模式大多是要求用户很快速的实现将外网的某个端口eth0 1.1.1.1:80的流量引流到内网的一台主机10.0.0.1:8080中,本机内网IP eth1 10.0.0.2这种模式性能是毋庸置疑的,但相对来说稳定性和可控性不佳,往往用于临时过渡。

sysctl net.ipv4.ip_forward=1 #这个配置非常重要!

iptables -t nat -A PREROUTING -d 1.1.1.1 -p tcp -m tcp –dport 80 -j DNAT –to-destination 10.0.0.1

iptables -t nat -A POSTROUTING -s 10.0.0.1/255.0.0.0 -d 10.0.0.1 -p tcp -m tcp –dport 8080 -j SNAT –to-source 10.0.0.2

Haproxy

这个方式其实根防火墙模式很相似,不过经过HAproxy的封装,增加了很多方便的配置,你可以很方便的配置出简单的负载均衡规则,状态监控,日志方式甚至于配置心跳等,适合作为中等以上规模的负载均衡集群。

具体的配置大家可以参考官方文档或者直接修改安装包内的默认配置文件,非常浅显易懂!

SSH tunnel

不得不说,SSH是一个很强大的工具。它完全可以应付简单的端口转发和链路加密。适用于低流量的两台互信主机之间的信息加密,它还有个特点是它支持带宽压缩,可以节约部分带宽资源。

配置方式:

通过ssh的tunnel达到邮件在传输的过程中不会受到中间人攻击造成数据泄露。

故名思义,tunnel就是在邮件服务器和企业防火墙之后设置一条逻辑上的隧道。这条隧道一方面为了数据安全,另一方面,由于ssh的压缩功能也能在一定程度上减少邮件这类纯文本传输的网络需求。

先决条件:

Unix like的邮件系统,并安装了ssh-server,本例中假定邮件服务器ip为1.2.3.4

企业路由器和内网:路由最好有科学和防火墙功能。

内网的 一台主机,配置不必太高(我用了虚拟机,64M内存已经足够近百人使用),安装有ssh-client,如果是win主机,推荐使用putty的安装版本。经过测试,个人觉得FreeBSD下的性能较好。考虑到安全,这台主机尽量不要安装远程控制台并尽可能上锁。本例假定ip 192.168.1.1。

注意整个系统的安全策略,账户策略等,相比中间人攻击这样的“高级”黑客行为,破解密码,利用漏洞永远是成本最低的方法。

SSH隧道实现安全Mail系统示意

第一步:设置公钥方式登录:

内网主机上运行mkdir -p ~/.ssh;cd ~/.ssh;ssh-keygen –d,如果变态一点可以使用ssh-keygen -b 4096 -d增加强度,之后 不要输入任何信息,一律回车带过,很多人不能实现ssh的无验证通过,大多是因为这里没有弄好。这样~/.ssh目录下将会出现id_dsa 和id_dsa.pub两个文件。

将内网主机的id_dsa.pub文件拷贝邮件服务器,并在邮件服务器上执行cat id_dsa.pub >> ~/.ssh/authorized_keys 。尝试在内网主机上执行 ssh A主机的IP ,成功地话应该没有提示密码(即直接得到A主机的控制台)。

如果经常来小站做客的朋友会觉得这段很熟,没错它贴自这里,如果你用了windows作为内网主机,请参考这里的内容。

第二步:配置管道:

写个脚本 vi /usr/sbin/ssh_tunnel

#!/bin/sh
localIP='192.168.1.1'
removteIP='1.2.3.4'
ports='25 80 110' #3个端口,smtp http pop3
for port in $ports
do
    /usr/bin/ssh -C -N -f -L $localIP:$port:$removteIP:$port root@$removteIP  &
done
chmod 755 /usr/sbin/ssh_tunnel

修改rc.local文件,在其中加入 /usr/sbin/ssh_tunnel,当然要放在exit那条之前。

windows不是很熟,写个笨蛋批处理吧ssh_tunnel.cmd

start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:25:1.2.3.4:25 [email protected]
start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:80:1.2.3.4:80 [email protected]
start /min cmd /c 'C:\Program Files\PuTTY\plink.exe' -C -N -f -L 192.168.1.1:110:1.2.3.4:110 [email protected]

其实putty的那个plink效果完全等同于ssh,当然,win下面主要是用里面的窗口程序,大多数人不怎么用而已。win下比较烦的是每次重起后都要手工加载key,执行这个批处理。希望对win熟的朋友可以提供自动解决方法。

第三步:设置邮件服务器防火墙

通过邮件服务的防火墙关闭除25和22之外的所有端口。这样做是最安全的,但这样的后果是在企业局域网之外只能发不能收邮件。科学是比较好的折中方案。当然,如果你的邮件系统只需要内部收发邮件(那还要什么邮件系统?),你尽可以连25号也封上。

第四步:设置本地邮件客户端

将局域网内所有邮件客户端的smtp和pop都设置为192.168.1.1即可。我这里由于用了webmail,webmail同样也通过192.168.1.1访问

如果企业有自己的DNS服务器,甚至整个公司都在域管理模式之下。不妨通过本地的DNS服务器用本地IP覆盖掉外网真实IP。这样即便没有科学,只要不封邮件服务器的110端口,在邮件客户端中设置域名,对用户来说在任何地方都是透明的。

总结:

这种模式,从邮件服务器到企业局域网内的传输是加密透明的,外部很难窃取,如果定期为两边的ssh更换强化的秘钥,效果几乎可以达到变态的要求。据说4096位的秘钥的破解成本已经到了天文数字。

这种方式相对成本较低,不需要太多的投入,特别是在多个分支机构之间成本优势更加突出。本想通过smtp的tls和pop的SSL进行加密,可outlook下对没有根秘证书签名的秘钥会弹出讨厌的警告框,反而增加了用户的不安。申请根证书的签名价格也不菲。

由于企业的邮件系统最多的邮件往往来自于内部,这种方式可以减少差不多一半以上的互联网带宽。把带宽留给更重要的应用。

同理,利用此种方式可以实现其他多种安全方案,达到双宿主机或者多机虚拟的效果,进而可以为企业节约宝贵的外网IP资源。

netcat

工具几乎所有的linux都默认安装了netcat工具(部分Linux的版本用的是OpenBSD-nc,与netcat略有不同,尽管名字一致),这可是一个强大的tcp/ip工具哦。感觉这样的操作有点黑科技的意思了,建议做调试的时候可以用用。

这个例子是把本地的81号端口的访问转移到80号

mknod tunnel p #创建一个临时的管道文件tunnel

netcat -l -p 81 0 < tunnel | netcat -l -p 80 | tee tunnel

socat

其实这个命令根上一个非常类似,从名字上就看得出这个是针对于linux下socket文件的netcat。多数Linux都可以通过默认源来安装。由于是直接建立本地的socket文件,就不需要像上例那样创建管道文件了。

把所有本地的80号转移到10.0.0.1的8080上

socat -d -d -l TCP4-LISTEN:80,reuseaddr,fork,su=nobody TCP4:10.0.0.1:8080

Windows 的netsh

说到底我们用的最多的还是windows,尽管装一个cygwin可以实现几乎上面所有的操作,但最佳的解决方案还是用原生的吧。netsh是windows的一个网络工具,只要你愿意,你在命令行下可以通过它实现几乎所有的windows网络操作。

还是把本地80转移到10.0.0.1的8080

netsh interface portproxy add listenport=80 connectaddress=10.0.0.1 connectport=8080

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/129960.html<

(0)
管理的头像管理
上一篇2025-02-25 20:51
下一篇 2025-02-25 20:52

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注