我有点失望!
我的目标是在 Debian 下构建一个非常简单的 smtp 代理来处理来自端口 (51234) 的邮件并将其转发到标准 25 端口。我编译并安装了一个“代表“女巫可以轻松处理这个问题。
它运行得很好:
委托服务器="smtp://anotherSmtpServer:25" -P51234
奇怪的是,它在我的虚拟测试机和本地专用服务器上运行正常,但我无法通过互联网使用它。我这样测试它。
telnet [mySrv] 51234
当然,没有防火墙,没有拒绝主机,没有 ined/xined,委托的服务正在监听正确的端口......
2条线索:
- 该端口通过互联网使用 nmap 响应为“51234/tcp open tcpwrapped”
- 看一下下面的 tcpdump:
22:50:54.864398 IP [myIp].1699 > [mySrv].51234:S 2486749330:2486749330(0)赢得 65535
22:50:54.864449 IP [mySrv].51234 > [myIp].1699:S 2486963525:2486963525(0)ack 2486749331 获胜 5840
22:50:54.948169 IP [myIp].1699 > [mySrv].51234:.ack 1 获胜 64240
22:50:54.965134 IP [mySrv].43554 > [myIp].auth:S 2485396968:2485396968(0)win 5840
22:50:55.243128 IP [myIp] > [mySrv]: ICMP [myIp] tcp 端口认证不可访问,长度 68
22:50:55.249646 IP [mySrv].51234 > [myIp].1699:F 1:1(0)确认 1 获胜 46
22:50:55.309853 IP [myIp].1699 > [mySrv].51234:.ack 2 win 64240
22:50:55.310126 IP [myIp].1699 > [mySrv].51234:F 1:1(0)确认 2 获胜 64240
22:50:55.310137 IP [mySrv].51234 > [myIp].1699:.ack 2 win 46
“auth”部分对我来说似乎有点可疑,但并没有什么印象。我肯定需要一些帮助。非常感谢!
答案1
“auth” 是端口 113,身份验证/身份。Tcpdump 向您显示协议名称,因为它是一种众所周知的服务。它应该列在 /etc/services 中。这意味着 mySrv 端口 113 上没有任何内容列出,这并不奇怪,没有人真正使用该服务;它没那么有用。
我对委托一无所知,所以那里什么也没有。如果你无法让它工作,你可以使用 iptables DNAT 规则来执行端口映射。请参阅此如何如果你感兴趣的话。这将是一个简单的端口映射,而不是应用程序级代理,因为委托本身就列出了它。例如:
iptables -t nat -A PREROUTING -d [srvIp] --dport 51234 -j DNAT --to-destination [smtpID]:25
答案2
我做了一些工作来解决这个问题,问题很明显...这与软件有关。委托人禁止其网络外的主机进行交易。
通过添加 PERMIT=":::“该软件完美地完成了工作。以下是我暂时使用的网络命令行解决方案:
iptables -t nat -D PREROUTING -p tcp -d [MyIP] --dport 51234 -j DNAT --to-destination [THeSMTPRelay]:25