我有一个(希望)简单的问题。当您在公共网络上时,是否可以使用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,从而使用我设置的安全隧道?
注意:据我所知,我没有加密任何网络流量,即使它是通过“安全无线”的方式自然加密的,我仍然希望有一个额外的保护层。感谢您抽出时间来阅读
发布于 2012-06-18 06:59:52
端口993位于邮件服务器上。除非您能够通过ssh进入运行邮件服务器的机器,否则设置所需的隧道并非易事。如果您只能通过ssh连接到您办公室计算机,那么您需要在该计算机上有一个端口,您可以通过该端口连接到您的邮件服务器。您可以使用类似netcat程序的东西来设置一系列隧道,但同样不是那么简单。
发布于 2012-06-20 11:41:27
您可能在ssh中读到过代理服务器支持。在这种情况下,您需要的是更简单的。
ssh -L 8080:mailserver:993 user@officepc此语句表示侦听本地计算机的端口8080。而发往端口8080的流量应该发往mailserver:993。要到达mailserver:993,流量首先要通过到officepc的安全连接。
因此,您需要修改应用程序以连接到localhost:8080。
请注意,localhost->officepc之间的通信由ssh保护,但来自officepc->mailserver的通信不受ssh保护(但如果协议是安全的,则可能是安全的)。如果ssh在邮件服务器上运行,您可以:
ssh -L 8080:mailserver:993 user@mailserver这种类型的东西在网上冲浪比使用电子邮件更重要,因为使用电子邮件更容易确保您已经在使用SSL/TLS。
然而,有时为了打击垃圾邮件,互联网提供商可能会阻止邮件端口(25是最常见的)。SSH隧道在这种情况下可能会有所帮助。
https://stackoverflow.com/questions/11075184
复制相似问题