JavaMail使用SSHD端口(在开放网络上时)

时间:2012-06-17 22:05:48

标签: java javamail wireless sshd port-number

我有一个(希望)简单的问题。当您在公共网络上时,是否可以使用SSHD隧道来使用JavaMail安全地访问您的Microsoft Exchange服务器?我读到有人使用SSHD隧道安全地使用机场wifi,我可以为我的邮件客户端做同样的事情吗?

考虑下面的代码片段,它目前允许我登录我的邮件服务器(假设用户名和密码正确)

1 Properties props = System.getProperties();
2 props.setProperty("mail.imap.port", "993");
3 Session session = Session.getInstance(props, null);
4 Store store = session.getStore("imaps");
5 store.connect(host, name, pass);

我的问题在第2行,是我的机器或邮件服务器上的端口993?我可以使用端口8080简单地将SSHD连接到我的办公室,并将8080替换为993,从而使用我设置的安全隧道吗?

注意:据我所知,我不是在加密任何网络流量,即使它是通过“安全无线”自然加密的,我仍然需要额外的保护层。感谢您抽出宝贵时间阅读

2 个答案:

答案 0 :(得分:1)

端口993位于邮件服务器上。除非你能够运行你的邮件服务器,否则设置你需要的隧道并不简单。如果你只能进入你的办公室机器,那么你需要一台可以连接的机器上的端口,然后从那里到达你的邮件服务器。您可以使用类似netcat程序的东西来设置一系列隧道,但同样不那么简单。

答案 1 :(得分:0)

您可能已阅读ssh中的代理服务器支持。在这种情况下你想要的更简单。

ssh -L 8080:mailserver:993 user@officepc

此声明说在本地计算机的端口8080上侦听。到8080端口的流量应该转到邮件服务器:993。要到达mailserver:993,流量首先通过与officepc的安全连接。

所以你要修改应用程序以连接到localhost:8080。

请注意,localhost-> officepc之间的流量由ssh保护,但是来自officepc->邮件服务器不受ssh保护(但如果协议可能是安全的)。如果ssh正在邮件服务器上运行,您可以:

ssh -L 8080:mailserver:993 user@mailserver

这种类型的东西比网上冲浪更重要,因为通过电子邮件,您可以更轻松地确保已使用SSL / TLS。

然而,有时为了打击垃圾邮件,互联网提供商可能会阻止邮件端口(25是最常见的)。在这种情况下,SSH隧道可能有所帮助。