扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
OpenSSH为client-server安全通讯提供了一套工具,我们可以使用它为任何类型的客户——服务器通讯创建安全“隧道”。包括检测/发送电子邮件或Web浏览。
本文通过演示如何编程创建一个加密的隧道用于检查一个POP3邮箱来介绍OpenSSH的安全隧道功能。
OpenSSH
当通过因特网登录远程系统时,如果登录密码通过明文传输,总是存在被黑客通过监控字节流来解释和非法使用用户数据的风险。大多数用户都了解这个风险并通过使用所谓的“安全shell”程序减少风险。
“安全shell”程序是设计用来在通过因特网传输之前加密用户资料。应用最广泛的此类程序是OpenSSH——OpenBSD的一个项目。
然而,许多OpenSSH用户还没有认识到的是该程序不能用来加密telnet会话。它为client-server安全通讯提供了一套工具,我们可以使用它为任何类型的客户——服务器通讯创建安全“隧道”。
包括检测/发送电子邮件或Web浏览。使用这些隧道可以大大提高你的系统的安全性,尤其是在一个保密性key order-winner重要的环境中。
本文通过演示如何编程创建一个加密的隧道用于检查一个POP3邮箱来介绍OpenSSH的安全隧道功能。假设有一台配置好的*NIX系统访问一个远程POP3兼容的邮箱。
第一步:下载并安装OpenSSH
很明显,第一步是下载并安装OpenSSH。你可以从OpenSSH官方网站获得源代码,有应用于多种平台的不同软件包,其中的文件都是数字签名的以防止危害你的系统安全。本文使用OpenSSH v4.3。
下载了软件包之后,将它解压到一个临时目录中,执行标准的配置-生成-安装流程:
shell> tar -xzvf openssh-4.3p2.tar.gz
shell> cd openssh-4.3p2/
shell> ./configure
shell> make
shell> make install
第二步:产生主机密钥并开启OpenSSH守护进程
安装过程的最后一步是产生主机密钥对——你的专用系统的唯一标识。这些密钥一个是私钥一个是公钥分别存放在文件/etc/ssh_host_key和/etc/ssh_host_key.pub中。
shell> make install
…
产生rsal密钥对
你的标识符已经保存在/etc/ssh_host_key中
你的公钥已经保存在/etc/ssh_host_key.pub中
…
产生dsa密钥对
你的标识符已经保存在/etc/ssh_host_key中
你的公钥已经保存在/etc/ssh_host_key.pub中
…
产生rsa密钥对
你的标识符已经保存在/etc/ssh_host_key中
你的公钥已经保存在/etc/ssh_host_key.pub中
…
密钥生成以后,执行sshd可执行程序开启OpenSSH守护进程(以超级用户身份):
shell>/sbin/sshd
通过在22号端口上打开一个telnet连接验证服务是否已开启运行:
shell >telnet localhost 22
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
SSH-1.99-OpenSSH_4.3
第三步:为你的POP3服务器创建一个安全隧道
我们假定你的本地系统名为localbox,你的POP3邮箱服务器系统名的remotebox。那么这一步就是在localbox的一个未用端口和remotebox上的端口110(POP3 连接的标准端口)之间创建一个加密的SSH隧道。这个过程称为TCP前导,利用OpenSSH很容易实现,只要运行下面的命令:
shell> ssh -L 2110:localbox:110 remotebox
root@localbox's password: ****
这命令的意思是“将所有连接到localbox上未使用端口2110的连接前导到remotebox上的110端口,并在这个过程中加密传输。”执行该命令后,所有试图连接到localbox 2110端口的连接都被自动的加密并路由到remotebox 110端口。
假如现在你打开一个telnet连接到localbox的2110端口,如下:
shell> telnet localbox 2110
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
+OK DPOP ready
你的连接将自动前导到remotebox的端口110——POP3 邮件服务,并使用高级加密来确保无人可以“偷听”来回传送的字节流。
两个需要说明的重要方面是:如果你使用了一个特权端口,那么你必须拥有超级用户权限才可以使用这种方式。同时,不能使用已经使用的端口号。
第四步:更改你的POP3客户端设置
在安全隧道工作后,你需要将这个改变告知你的邮件客户端。在建立隧道前,你的邮件客户端可能直接连接到remotebox以获取邮件,这是一种不安全的连接,你的邮件密码以为加密的方式沿着线路传输。你的客户端的设置可能如下所示:
Server: remotebox
Port: 110
User: john
Password: guessme
建立隧道后,你的邮件客户端应该重新设置直接连接到本地系统的端口2110,利用OpoenSSH将连接前导到远程服务器并在此过程中加密传输数据。你的新的设置可能如下所示:
Server: localbox
Port: 2110
User: john
Password: guessme
就这么简单,现在你的邮件客户端和邮件服务器端就建立了一个安全隧道,从而你的密码和数据就不会存在被其人见到的危险。很显然,这只是一个例子,你还可以设置OpenSSH来加密SMTP,FTP,IRC或任何其它的client-server连接,甚至可以创建加密隧道通过防火墙。自己试着设置一下,了解详细信息请看OpenSSH手册。开心的应用吧!
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者