默认的SSH端口为22,这不是巧合,关于它的设计你了解多少?
关于SSH端口默认设置为22创始人是Tatu Ylonen。1995年他开始编程SSH初始版本,当时telnet和FTP被广泛使用流行使用,但是Tatu Ylonen想设计自己SSH来替换telnet(端口23)和ftp(端口21)。设计端口22是免费的,这是方便的端口之telnet和ftp使用,但是要如何获得该端口号?
当时,端口分配的基本过程相当简单。互联网规模较小,正好处于互联网繁荣的初期。端口号是由IANA(互联网号码分配机构)分配的。在编程完Internet RFC,感到万无一失的时候,Tatu Ylonen申请了端口,申请下来竟然是22端口。
1995年7月12日,赫尔辛基工业大学的beta测试人员宣布了最终的beta版本,当天下午发布有关SSH(安全Shell)的公告。
默认情况下,SSH服务器仍在端口22中运行。但是,有时它在其他端口中运行,可以通过更改/ etc / ssh / sshd_config中的Port 22指令来配置端口号。也可以使用sshd选项指定它,SSH客户端和sftp程序也支持该选项。
SSH是防火墙经常允许的少数协议之一,无限制的出站对于SSH来说非常普遍,尤其是在规模较小且技术含量较高的组织中,入站SSH通常限于一台或很少的服务器。
在防火墙中配置出站SSH非常容易,如果对传出流量完全没有限制,只需创建一个允许TCP端口22出去的规则。如果要限制目标地址,还可以将规则限制为仅允许访问组织中云中的外部服务器或保护云访问的跳转服务器。
不受限制的出站SSH可能会有风险,SSH协议支持隧道。基本思想是,可以使外部服务器上的SSH服务器侦听来自任何位置的连接,将这些链接转发回组织中,然后与某个内部服务器建立连接。
当然,有时候可能非常方便。比如开发人员和系统管理员经常使用它来打开隧道,以便他们出差时可以从家中或从笔记本电脑获得远程访问权限。
iptables是内置在Linux内核中的主机防火墙,通常将其配置为通过阻止访问未明确打开的任何端口来保护服务器。如果iptables在服务器上启用了此命令,则可以使用以下命令来允许传入的SSH访问。
必须以root用户身份运行:
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTiptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
如果要永久保存规则,在某些系统上可以使用以下命令完成:service iptables save