SSH 协议端口号 22 背后的故事

2021-06-02
为什么 SSH(安全终端)的端口号是 22 呢,这不是一个巧合,这其中有个我(Tatu Ylonen,SSH 协议的设计者)未曾诉说的故事。
-- Tatu Ylonen


本文导航


为什么 [1](安全终端)的端口号是 22 呢,这不是一个巧合,这其中有个我([2],SSH 协议的设计者)未曾诉说的故事。

将 SSH 协议端口号设为 22 的故事

1995 年春我编写了 SSH 协议的最初版本,那时候 [3] 和 [4] 正被广泛使用。

当时我设计 SSH 协议想着是为了替代 telnet(端口 23)和 ftp(端口21)两个协议的,而端口 22 是空闲的。我想当然地就选择了夹在 telnet 和 ftp的端口中间的数字。我觉得端口号虽然是个小事但似乎又存在着某种信念。但我到底要怎么拿到那个端口号呢?我未曾拥有过任何一个端口号,但我却认识几个拥有端口号的人!

在那时取得端口号的事情其实说来挺简单的。毕竟当时的因特网(Internet)并不是很大,是因特网爆炸的早期。端口号分配的活儿是 IANA(Internet Assigned Numbers Authority,互联网数字分配机构)干的。在那时这机构可相当于是因特网先驱 [5] 和 [6] 一般的存在。Jon 参与编写了多项主要的协议标准,例如 IP(RFC 791)、ICMP(RFC 792)和 TCP(RFC 793)等一些你应该早有耳闻的协议。

我可以说是敬畏 Jon 先生的,他参与编写了几乎所有主要的因特网标准文档(Internet RFC)!

1995 年 7 月,就在我发布 ssh-1.0 前,我发送了一封邮件给 IANA:

From ylo Mon Jul 10 11:45:48 +0300 1995
From: Tatu Ylonen <ylo@cs.hut.fi>
To: Internet Assigned Numbers Authority <iana@isi.edu>
Subject: 请求取得一个端口号
Organization: 芬兰赫尔辛基理工大学

亲爱的机构成员:

我写了个可以在不安全的网络环境中安全地从一台机器登录到另一台机器的程序。它主要是对现有的 telnet 协议以及 rlogin 协议的功能性提升和安全性改进。说的具体些,就是可以防御 IPDNS 或路由等欺骗行为。我打算将我的软件免费地发布在因特网上,以得到广泛地使用。

我希望为该软件注册一个特权端口号,要是这个端口号在 1  255 之间就更好了,这样它就可以用在名字服务器的 WKS 字段中了。

我在附件中附上了协议标准的草案。这个软件已经在本地运行了几个月了,我已准备在获得端口号后就发布。如果端口号分配一事安排的及时,我希望这周就将要发布的软件准备好。我目前在 beta 版测试时使用的端口号是 22,如果要是能够分配到这个端口,我就不用做什么更改了(目前这个端口在列表中还是空闲的)。

软件中服务的名称叫 `ssh`(系 Secure Shell 的缩写)。

您最真诚的,

Tatu Ylonen <ylo@cs.hut.fi>

(LCTT 译注:DNS 协议中的 WKS 记录类型意即“众所周知的业务描述”,是类似于 A、MX 这样的 DNS 记录类型,用于描述某个 IP 所提供的服务,目前鲜见使用。参见:  。)

第二天,我就收到了 Joyce 发来的邮件:

Date: Mon, 10 Jul 1995 15:35:33 -0700
From: jkrey@ISI.EDU
To: ylo@cs.hut.fi
Subject: 回复:请求取得一个端口号
Cc: iana@ISI.EDU 

Tatu,

我们将端口号 22 分配给 ssh 服务了,你目前是该服务的主要联系人。

Joyce

这就搞定了!SSH 的端口正式使用 22!!!

1995 年 7 月 12 日上午 2 点 21 分,我给我在赫尔辛基理工大学的测试者们宣布了 SSH 的最后 beta 版本。当日下午 5 点 23 分,我给测试者们宣布了 ssh-1.0.0 版本。1995 年 7 月 12 日,下午 5 点 51 分,我将一份 SSH(安全终端)的宣告发给了 cypherpunks@toad.com 的邮件列表,此外我还将其发给了一些新闻组、邮件列表和一些在因特网上讨论相关话题的人们。

如何更改 SSH 服务的端口号

SSH 服务器是默认运行在 22 号端口上的。然而,由于某些原因需要,它也可以运行在别的端口上。比如为了方便测试使用,又比如在同一个宿主机上运行多个不同的配置。当然,极少情况下,不使用 root 权限运行它也可以,比如某些必须运行在非特权的端口的情况(端口号大于等于 1024)。

端口号可以在配置文件 [7] 中将 Port 22 更改。也可以使用 -p <port> 选项运行 [8]。SSH 客户端和 [9] 程序也可以使用 -p <port> 选项。

配置 SSH 协议穿越防火墙

SSH 是少数通常被许可穿越防火墙的协议之一。通常的做法是不限制出站的 SSH 连接,尤其常见于一些较小的或者比较技术型的组织中,而入站的 SSH 连接通常会限制到一台或者是少数几台服务器上。

出站的 SSH 连接

在防火墙中配置出站的 SSH 连接十分简单。如果完全限制了外发连接,那么只需要创建一个允许 TCP 端口 22 可以外发的规则即可。如果你想限制目标地址,你可以限制该规则仅允许访问你的组织放在云端的外部服务器或保护该云端的[10]即可。

反向通道是有风险的

其实不限制出站的 SSH 连接虽然是可以的,但是是存在风险的,SSH 协议是支持 [11] 的。最初的想法是在外部服务器搭建一个 SSH 服务监听来自各处的连接,将进入的连接转发到组织,并让这个连接可以访问某个内部服务器。

在某些场景下这当然非常的方便。开发者和系统管理员经常使用它打开一个通道以便于他们可以远程访问,比如在家里或者在旅行中使用笔记本电脑等场景。

然而通常来讲这些做法是违背安全策略的,跳过了防火墙管理员和安全团队保护的控制无疑是违背安全策略的,比如这些: [12][13][14] 等。它可以被黑客和外国情报机构用来在组织内留下后门。

[15] 是一款可以控制通道穿过防火墙或者一组云端服务器入口的产品。该款产品可以配合 [16] 来获得对 [17]的访问,以在启用防火墙并阻挡未授权转发的场景中解密 SSH 会话。

入站的 SSH 访问

对于入站访问而言,这里有几点需要说一下:

  • 配置防火墙,并转发所有去往 22 端口的连接只能流向到一个特定的内部网络 IP 地址或者一个 [18] 主机。在该 IP 上运行 [19] 或者跳板机来控制和审查所有访问该组织的连接。

  • 在防火墙上使用不同的端口访问不同的服务器。

  • 只允许使用 [20] 协议这样的 VPN(虚拟专用网)登录后连接 SSH 服务。

通过 iptables 服务限制 SSH 访问

[21] 是一款内建在 Linux 内核的宿主防火墙。通常配置用于保护服务器以防止被访问那些未明确开启的端口。

如果服务器上启用了 iptables,使用下面的命令将可以允许进入的 SSH 访问,当然命令需要以 root 身份运行。

  1. iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

  2. iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT

如果你想将上述命令创建的规则持久地保存,在某些系统版本中,可使用如下命令:

  1. service iptables save


via: 

作者:[22] 译者: 校对:

本文由  原创编译, 荣誉推出


LCTT 译者
kenneth (kenxx)
共计翻译:3 篇
贡献时间:2017-03-17 -> 2017-05-03

推荐文章

< 左右滑动查看相关文章 >

输入文章 ID 或长按二维码直达



相关文章

phpmyadmin如何获取shell

2021-06-02
secure_file_priv没有具体值2、查看secure_file_priv值show global variables like '%secure%';关于secure_file_priv配置介绍:secure_...

使用 shell 在多服务器上批量操作

2021-06-02
两年前写过一篇文章,shell实现SSH自动登陆 使用 shell 的 expect 命令进行 ssh 登陆,这种方式的灵活性确实非常高,但实现起来比较...

3 种 Linux SSH 图形界面工具

2021-06-02
在你作为 Linux 系统管理员的职业生涯中,你可以使用 Secure Shell(SSH)远程访问 Linux 服务器或桌面系统.很有可能,你已经使用过...

要做好弱电项目,这六个软件少不了

2021-06-02
eNSP软件 华为ensp模拟器是华为官方推出的一款强大的图形化网络仿真工具平台...Secure CRT Secure CRT是一款用于连接运行包括Windows、UNIX和VMS的远程系统的理想工具...Wireshark工具 wireshark是非常流行的网络封包分析软件,功能十分强大.可以截取各种网络封包,显示网络封包的详细信息...

如何使用secure CRT登陆交换机与服务器?

2021-06-02
SSH(Secure SHell)到眼下为止有两个不兼容的版本号——SSH1和SSH2.Serial:串行连接,与交换机的连接方式一致.Telnet/SSL:...

实战|对某棋牌站的一次getshell

2021-06-02
dog1账号登录成功phpmyadmin写shell:导出文件写日志文件SHOW GLOBAL VARIABLES LIKE "%secure%";当secure_file_priv的...

60个Chrome神器插件大收集:助你快速成为B站老司机,一键分析网站技术栈

2021-06-02
markdown-here 可以在网页版QQ邮箱、Gmail、163等邮箱里面,使用mardown格式进行书写,然后一键转换为富文本.chrono 可以非常方便的嗅探识别网页中的资源, 然后一键下载所有资源.Secure Shell App Windows并没有自带ssh软件,有了Secure Shell App...

GitHub 标星破万,超全 Chrome 插件汇总整理!

2021-06-02
《Secure Shell App》 Chrome 中开启 ssh 一种什么体验大家都是怎么用 ssh 连接服务器的呢?Linux 用户用命令行,Windows 用户下...

这份Chrome“插件英雄榜”,别怪我没告诉你

2021-06-02
Secure Shell App对于拥有自己服务器的人来讲, ssh连接服务器是很常用的操作,而对于Chrome用户, 我们可以使用ssh的插件...

弱电工程师必备7款常用软件,工作中的好帮手!

2021-06-02
Secure Shell将logon和session数据加密;Port forwarding保证了TCP/IP数据的安全;密码和RSA识别;Blowfish, DES, 3DES 和 RC4密...

随机推荐

美敦力JAVA软件工程师 快来视频申请一较高下!

2021-05-07
Senior Software Engineer (JAVA) _R&DLOCATION: Shanghai(上海)DEPARTMENT: R&DBASIC QUALIFICATIONSBachelor's ...

美团外卖红包多久可以买一次美团外卖无门槛两元优惠券

2021-04-29
猫可以响应声音提示并向您奔跑.首先,在给食物食物之前(在打开食物袋或食物盒之前),请使用特殊的方式,例如给猫起名字或吹...

M/V MAERSK DHAKA开航

2021-04-12
公司又一条集装箱新船M/V MAERSK DHAKA轮于2020年10月27日下午14:20缓缓离开造船码头,开始首航! 感谢管理公司和全体同...

ARK女神持仓每日跟踪(2021.1.22)

2021-03-07
ark基金持仓跟踪专题,奕维每日更新数据研究下表包含最近五个交易日的持仓变化:绿色为当天加仓,橙色为当天大幅加仓(至少20...

软件屋

2020-10-09
StudioMyEclipse10MyEclipse2017 LabVIEWLabVIEW2013LabVIEW2014LabVIEW2015LabVIEW2016LabVIEW2017编程工具...

在PHP中使用CURL实现GET和POST请求的方法

2020-03-16
CURL介绍 CURL是一个利用URL语法规定来传输文件和数据的工具.支持很多协议,如HTTP、FTP、TELNET等...基本结构 在学习更为复杂的功能之前...CURL实现Get和Post 1)、Get方式实现 //初始化 $ch = curl_init(); //设置选项...

Android实例 Android应用开发 7 篇教程

2019-07-19
如何创建Android的动态壁纸 在这篇教程中开发人员可以学习到如何在自己的手机屏幕上创建丰富的、动态的、具有交互性的动态壁纸...Android开发教程Eclipse IDE是构建移动端特性的最好的开发平台之一,在这篇教程中...如何构建一个Android应用程序 在这篇教程中...

搜狗AI开发平台与虚拟数字人

2019-02-10
搜狗输入法语音识别准确率超过97%,得益于搜狗在人工智能技术方面的不断创新.在互联网大会上,搜狗语音实时转写技术成功将近...

Oracle 扼杀 Java EE!

2017-07-17
2017 年,Oracle 对外宣布,为了 Java EE 可以拥有更快速的创新发展,其决定将 Java EE 移交给新东家 Eclipse 基金会.彼时无论是...

Oracle在找死?No Zuo No Die !

2017-07-01
点“飞总聊IT”关注,星标 后台回复“666”领资料做数据库的用数据库的,都知道Oracle.作为去IOE的典范,Oracle在中国的形象一...