为什么 SSH 的默认端口是 22 ?
原文:https://www.ssh.com/ssh/port 作者:Tatu Ylonen
SSH (Secure Shell) 的端口是 22,它不是巧合,这是一个关于如何获得该端口的故事。
当我( Tatu Ylonen )于 2017 年 4 月首次发布这个故事时,它疯狂的传播在三天内就有大约 12 万名读者了。
获取SSH 22端口的故事
在 1995 年春,我写了 SSH 的初始版本,当时 telnet 和 FTP 正在被广泛使用。
我设计 SSH,是为了替代 telnet(端口 23)和 ftp(端口 21),端口 22 在当时是空闲的,正好就在 telnet 和 ftp 的端口之间,我想这使得这个端口号天然就带有可信度光环。但是该怎么拿到这个端口号呢?我没分配过端口这东西,但我知道谁负责分配端口号。
当时,端口分配的基本流程非常简单,因为当时互联网的规模还很小,我们还处在互联网爆炸非常早期的阶段。端口号是由 IANA(Internet Assigned Numbers Authority,互联网号码分配局)负责分配的。在那个时候,也就是说受人尊敬的互联网先锋是 Jon Postel 和 Joyce K. Reynolds。除了其他事情外,Jon 还是 IP(RFC 791),ICMP(RFC 792)和 TCP(RFC 793)等协议标准的编写者。你们有些人可能听说过他们。
对我来说,我觉得 Jon 实在太可怕了,因为他们撰写了所有主要的互联网RFC!
不过不管怎样,1995 年 7 月,就在发布 ssh-1.0 之前,我给 IANA 发了下面这封邮件:
尊敬的先生,
我写了一个程序,用于在不安全的网络上安全地从一台机器登录到另一台机器。与现有的 telnet 和 rlogin 协议及实现相比,它在安全性和功能性上有着重大改进。特别是,它能防止 IP、DNS 和路由欺诈。我的计划是在互联网上免费分发该软件,希望使它的应用尽可能广泛。
我想为这个软件申请一个注册的特权端口号。这个端口号最好在 1-255 之间,这样它可以在名称服务器的 WKS 字段中使用。
附上该协议的 RFC 草稿。这个软件已在我本地使用了几个月,已经万事俱备,只差端口号。如果能为它及时分配端口,我将在本周发布这个软件。目前我在 beta 测试版中用的是 22 端口,如果能继续使用这个端口那就太好了(它目前在端口列表中是未分配状态)。
这个软件的服务名是 "ssh" (即安全的 shell)。
此致,
Tatu Ylonen ylo@cs.hut.fi
第二天,一封 Joyce 的 email 就在邮箱里等着我:
Tatu,
我们已把 22 端口分配给了 ssh,并设置你为相应的联系人。
Joyce
这就成了!SSH 的端口从此就是 22!!!
1995 年 7 月 12 日凌晨 2 点 32 分,我把最终测试版本公布给了在赫尔辛基理工大学的测试人员。 下午 5:23 我向我的 beta 测试人员发布了 ssh-1.0.0 软件包。 1995 年 7 月 12 日下午 5 点 51 分,我向 cypherpunks@toad.com 邮件列表发送了关于 SSH(安全 Shell)的公告。 我也将其发布在几个新闻组、邮件列表中,同时直接发送给在互联网上讨论过相关主题的人员。
更改服务器中的SSH端口
默认情况下,SSH 服务器还是使用 22 端口。但是总会碰到某些需要让它在其它端口运行的情况。 测试是一个原因,在同一主机上运行多个配置是另外一个原因。 极少数情况下,它也可以在非 root 权限下运行,在这种情况,它必须使用非特权端口(即端口号 >= 1024)。
可以通过更改 /etc/ssh/sshd_config 中的 22 端口指令来配置端口号。 也可以使用 sshd 的 -p <port>
选项指定。 SSH 客户端和 sftp 程序也支持 -p <port>
选项。
在命令行中制定SSH端口
在 Linux 上使用 ssh 命令时, -p <port>
选项可用于指定要连接的端口号。 -P <port>
(注意:大写 P)选项可以与 SFTP
和 scp
一起使用。 SSH 端口号命令行设置将覆盖配置文件中配置的任何值。
通过防火墙配置SSH访问
SSH 是经常通过防火墙允许的少数协议之一。 不受限制的出站 SSH 是非常常见的,尤其是在规模较小且技术性较强的组织中。 入站 SSH 则通常仅限于一台或几台服务器。
出站SSH
在防火墙中配置出站 SSH 非常容易。 如果对传出流量有限制,只需创建允许 TCP 通过 22 出口的规则。 就这些。 如果要限制目标地址,还可以将规则限制为仅允许访问在云上的组织外部服务器,或访问具有守护云访问的跳转服务器。
后退隧道是一种风险
但是,不受限制的出站 SSH 可能存在风险。 SSH 协议支持隧道。 基本思想是,可以让外部服务器上的 SSH 服务器从任何地方监听连接,将这些连接转发回组织,然后连接到某个内部服务器。
这在某些环境中非常方便。 开发人员和系统管理员经常使用它来打开隧道,在旅行时,他们可以使用这些隧道从家里或笔记本电脑上进行远程访问。
但是,它通常会违反策略并从防火墙管理员和安全团队中获取控制权。 例如,它可能违反 PCI,HIPAA 或 NIST SP 800-53。 黑客和外国情报机构可以利用它将后门留给组织。
CryptoAuditor 是一种可以在防火墙或一组云服务器的入口点控制隧道的产品。 它与通用 SSH 密钥管理器一起使用以访问主机密钥,并能够使用它们在防火墙处解密 SSH 会话并阻止未经授权的转发。
入站SSH访问
对于入站访问,有一些实用的替代方案:
配置防火墙以将到端口 22 的所有连接转发到内部网络或 DMZ 上的特定 IP 地址。 在该 IP 地址运行 CryptoAuditor 或跳转服务器,以控制和审核对组织的进一步访问。
使用防火墙上的不同端口访问不同的服务器。
只有在使用 VPN(虚拟专用网络)登录后才允许 SSH 访问,通常使用 IPsec 协议。
通过iptables启用SSH
Iptables 是一种内置在 Linux 内核中的主机防火墙, 它通常配置为通过阻止访问未明确打开的任何端口来保护服务器。如果在 server 上启用了 iptables,可以用以下命令来允许传入 SSH 访问请求。 它们必须以 root 权限运行。
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
在某些系统里可以保存规则设置:
service iptables save
·end·
—如果喜欢,快分享给你的朋友们吧—
我们一起愉快的玩耍吧
本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“ OSC源创计划 ”,欢迎正在阅读的你也加入,一起分享。
为什么 SSH 的默认端口是 22 ?相关推荐
- Linux之ssh服务默认端口修改
2019独角兽企业重金招聘Python工程师标准>>> 导读 SSH是标准的网络协议,可用于大多数UNIX操作系统,能够实现字符界面的远程登录管理,它默认使用22号端口,采用密文的形 ...
- 修改smb默认端口_centos7 ssh端口更改方法
至于为什么要修改SSH端口号,那是因为大家都知道SSH的默认端口是22,为了让我们的服务器安全性更高一些,也就有了修改SSH默认端口的想法. 平常未修改SSH默认端口时,我们通常是ssh用户名@IP地 ...
- SSH 默认端口配置
SSH 有两层含义: 一是 SSH(Secure Shell),由 IETF 的网络小组(Network Working Group)所制定的应用层安全外壳协议,用于专为远程登录会话和其他网络服务提供 ...
- b宝塔 centos端口更改_centos修改ssh默认端口号的方法示例
linux 一:修改/etc/ssh/sshd_config配置文件(注意:这里是sshd_config,而不是ssh_config) 1:查看ssh的默认端口号 netstat -anp|grep ...
- git 从远程git服务上拉代码 git服务器非默认端口
从服务器上拉代码有如下报错: fatal: Not a git repository (or any of the parent directories): .git 初始代本地版本库: [root@ ...
- 课题:修改ssh的访问端口
课题:修改ssh的访问端口 实验内容 详细操作 1,查看端口 2,修改配置文件 3,重启sshd 4,更改selinux 5,查看端口 6,通过ssh命令access主机 7,关闭防火墙 实验内容 1 ...
- Linux ssh多个端口开启
Linux ssh的多个端口开启 通常情况下,ssh的远程端口是22,但是也有部分需求在除22之外的端口远程连接.在系统环境CentOS7.6下想要多开几个端口用于ssh登录.最简单的方法自然是修改s ...
- Linux 修改SSH 默认端口 22,防止被破解密码
2019独角兽企业重金招聘Python工程师标准>>> Linux/Unix 系统,很多人使用SSH + 密码来登陆服务器,默认 22端口,这样会有被暴力破解密码的危险(除非密码足够 ...
- 下列服务使用的默认端口:ftp,ssh,telnet,dhcp,mail,pop3,smtp,dns,http,sm
FTP的端口是 21 SSH (Secure Shell)服务使用tcp 22 端口 TELNET 23 端口 DHCP server的端口号是67 MAIL 的端口号是25\110 pop3\sm ...
最新文章
- SpringBoot笔记1-使用idea创建SpringBoot的hello world
- leetcode — maximum-subarray
- 学习 慕课网 PHP工程师学习计划--我的笔记汇总
- LINQ TO XML练习
- Setting up Pytorch with Python 3 on Ubuntu(Source code compilation)
- JVM调优:栈上分配和线程本地分配TLAB
- ubuntu如何完全卸载和安装 Java及android环境?【转】
- spring 配置声明式事务 疯狂JAVA
- SAP S/4HANA Customer Vendor Integration-CVI锁机制的实现
- 运行银联支付系统demo
- 几个优化 Cacti 监控服务性能的技巧
- B00004 atoi函数
- angular自带的一些api_在Angular软件中执行API请求的正确方式,了解一下
- LM358芯片中文资料(搬运)
- java webservice接口开发实例_Webservice 接口开发简单例子
- 【Python游戏】一个可以恶搞朋友的贪吃蛇小游戏 | 附带源码
- 基于DRM框架的HDMI热插拔流程分析
- 林轩田之机器学习课程笔记( embedding numerous feature之support vector regression)(32之22)
- 更改完善后的导出实现(使用FreeMarker导出Word文档,在浏览器实现的导出下载,和上一篇导出主要是代码的更改,流程无变化)
- 金三银四产品人跳槽指南——找准定位,突破职业瓶颈