新闻资讯

端口映射是什么?linux端口映射工具有哪些?

2019-02-18

很多情况下,我们往往需要通过对某个端口进行转发(端口映射)实现某些特殊功能,比如堡垒机和负载均衡什么的。linux端口映射工具哪个比较好就成为了很多人关心的话题。在了解linux端口映射工具之前,必须搞明白端口映射是什么?本文小编一一为大家解答。

在网络技术中,端口(英文Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。

我们这里所说的端口,不是计算机硬件的I/O进出端口,而是软件形式上的概念。

linux端口映射工具有哪些?

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的封装,增加了很多方便的配置,你可以很方便的配置出简单的负载均衡规则,状态监控,日志方式甚至于配置心跳等,适合作为中等以上规模的负载均衡集群。

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

SSHtunnel

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

配置方式:

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

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

先决条件:

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

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

内网的 一台主机,配置不必太高(我用了虚拟机,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 FilesPuTTYplink.exe' -C -N -f -L 192.168.1.1:25:1.2.3.4:25 root@1.2.3.4

start /min cmd /c 'C:Program FilesPuTTYplink.exe' -C -N -f -L 192.168.1.1:80:1.2.3.4:80 root@1.2.3.4

start /min cmd /c 'C:Program FilesPuTTYplink.exe' -C -N -f -L 192.168.1.1:110:1.2.3.4:110 root@1.2.3.4

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

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

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

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

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

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

花生壳端口映射软件,其应用优势众多,能满足广大用户的网络操作,并保证操作安全。花生壳端口映射软件自带端口映射功能,可以帮助用户解决各种网络需求,同时还能帮助用户实现内网穿透,即便用户处于复杂的网络环境中,花生壳也能正常解析域名。