免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1509 | 回复: 0
打印 上一主题 下一主题

SSH 隧道 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-05 10:34 |只看该作者 |倒序浏览
SSH 隧道
  OpenSSH 能够创建隧道以便用加密的会话来封装其他协议。
  下面的命令告诉
ssh(1)
为 telnet 创建一个隧道:
% ssh -2 -N -f -L 5023:localhost:23 user@foo.example.com
%
  上述 ssh 命令使用了下面这些选项:
-2
强制 ssh 使用第2版的协议 (如果需要和较老的 SSH 一同工作请不要使用这个选项)。
-N
表示不使用命令行, 或者说只使用隧道。 如果省略, ssh 将同时初始化会话。
-f
强制 ssh 在后台执行。
-L
表示产生一条 本地端口:远程主机:远程端口 形式的隧道。
user@foo.example.com
远程 SSH 服务器。
  SSH 隧道通过监听 localhost 上面指定端口来完成工作。它将把本机主机/端口上接收到的连接通过 SSH 连接转发到远程主机/端口。
  本例中, 位于 localhost 的 5023 端口 被用于转发 localhost 的连接到远程主机的 23 端口。 由于 23 是 telnet 使用的,因此它将通过 SSH 隧道完成 telnet 会话。
  这可以用来封装任意不安全的 TCP 协议, 例如 SMTP、 POP3、 FTP等等。
使用 SSH 为 SMTP 创建安全隧道
% ssh -2 -N -f -L 5025:localhost:25 user@mailserver.example.com
user@mailserver.example.com's password: *****
% telnet localhost 5025
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mailserver.example.com ESMTP
这可以与
ssh-keygen(1)
以及额外的用户帐号配合来建立一个更透明的 SSH 隧道环境。密钥可以被用在需要输入口令的地方, 而且可以为不同的用户配置不同的隧道。
实用的 SSH 通道例子
加强 POP3 服务的安全
  工作时, 有一个允许外来连接的 SSH 服务器。 同一个办公网络中有一个邮件服务器提供 POP3 服务。 这个网络, 或从您家到办公室的网络可能不, 或不完全可信。 基于这样的原因,您需要以安全的方式来查看邮件。 解决方法是创建一个到办公室 SSH 服务器的连接,并通过这个连接来访问 POP3 服务:
% ssh -2 -N -f -L 2110:mail.example.com:110 user@ssh-server.example.com
user@ssh-server.example.com's password: ******
  当这个通道连上时, 您可以把 POP3 请求发到 localhost 端口 2110。 这个连接将通过通道安全地转发到 mail.example.com。
绕过严厉的防火墙
  一些大脑长包的网络管理员会使用一些极端的防火墙策略, 不仅过滤进入的连接,而且也过滤连出的连接。 一些时候您可能只能连接远程机器 22 端口,以及 80 端口用来进行 SSH 和网页浏览。
  您可能希望访问一些其它的 (也许与工作无关的) 服务, 例如提供音乐的 Ogg Vorbis 流媒体服务器。 如果 Ogg Vorbis server 在 22 或 80 端口以外的端口播放音乐,则您将无法访问它。
  解决方法是建立一个到您的网络的防火墙之外的网络上的 SSH 服务器,并通过它提供的通道连接到 Ogg Vorbis 服务器上。
% ssh -2 -N -f -L 8888:music.example.com:8000 user@unfirewalled-system.example.org
user@unfirewalled-system.example.org's password: *******
  现在您可以把客户程序指定到 localhost 的 8888 端口,它将把请求转发给 music.example.com 的 8000 端口,从而绕过防火墙。
允许用户登录 AllowUsers 选项
  通常限制哪些用户能够登录, 以及从何处登录会是好主意。 采用 AllowUsers 选项能够方便地达到这一目的。 例如, 想要只允许 root 用户从 192.168.1.32 登录, 就可以在 /etc/ssh/sshd_config 文件中加入下述设置:
AllowUsers root@192.168.1.32
  要允许用户 admin 从任何地方登录, 则只需列出用户名:
AllowUsers admin
  可以在同一行指定多个用户, 例如:
AllowUsers root@192.168.1.32 admin
注意: 列出需要登录机器的用户很重要; 否则他们将被锁在外面。
  在完成对 /etc/ssh/sshd_config 的修改之后您必须告诉
sshd(8)
重新加载其配置文件, 方法是执行:
# /etc/rc.d/sshd reload


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/27383/showart_489689.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP