为什么要在不同的端口上运行SSH

我目前正在学习安装Kippo SSH。 从教程,它说,我应该重新configurationSSH端口从22到不同的端口(在这种情况下,3389)。 所以现在每当我尝试从客户端SSH时,它将连接到端口3389。

从教程中,背后的原因是“我们不希望Kippo拥有root权限”。

我的问题是,从端口22和端口3389运行SSH有什么不同?

如果要打开低于1024的端口,大多数服务器都需要root访问权限。

低于1024的TCP / IP端口号是特殊的,因为普通用户不允许在其上运行服务器。 这是一个安全function,因为如果连接到其中一个端口上的服务,则可以相当确定您拥有真实的内容,而不是某个黑客为您提供的虚假内容。

请参阅: https : //www.w3.org/Daemon/User/Installation/PrivilegedPorts.html

从端口22和端口3389运行SSH有什么不同?

为了绑定到低于1024的端口(特权端口),进程必须具有根访问权限。 通过将其绑定到3389,根访问不是必需的。

我见过这个的原因之一就是减less密码扫描器的日志垃圾邮件。 那么如果有人试图强制密码,你知道这是一个有针对性的尝试,而不是一个driveby。

通过将SSHredirect到一个非标准的端口 – 您正在使黑客的生活更加困难 – 因为他们不能100%确定您使用哪个端口访问您的系统。

端口22 – 是您所知的默认端口。 但是,如果你已经改变了这个非标准的端口…我现在需要去使用Nmap或其他工具进行端口扫描来尝试检测ssh服务器现在正在监听 – 这增加了你的IDS(入侵检测系统)检测到这种types的恶意行为 – 并且可以让你开始采取反制措施(如拒绝目标的IP地址)。

虽然确实要创build一个低于1024的侦听端口,你需要root访问权限 – sshd (ssh守护进程[server])将在启动时启动,并且这不会阻止priv / non-priv用户访问ssh进程。

如果你想停止ssh的根 – 这永远是一件好事停止。 然后ssh.config(根据所使用的操作系统,它的名称会有所变化 – 但是在/ etc / ssh /中可以查看)

控制root帐户是否可以login的值是

#PermitRootLogin no 

这个值,而不是端口号 – 顺便说一下,这个值是用一个值来configuration的

 #Port 22 

是如何限制的。

Ssh是一个梦幻般,灵活和安全的通信机制 – 但只有正确理解和使用。

一般来说,有人可能希望在高端口上运行SSH侦听有两个主要原因:

  • 由于不是“标准”端口,所以随意尝试入侵(僵尸networking)不太可能连接到它
  • 如果端口号超过1024,那么SSH守护进程需要信任一个较less的“root权限”

此外,如果NAT设备位于运行SSH的多个服务器的前面,则无法将端口22映射到所有端口,因此在这种情况下,可能会将其configuration为例如将外部端口10022redirect到内部服务192.0.2.10 :22和外部端口11022到192.0.2.11:22。

但是,在Kippo的情况下,你要安装的是一个“SSH蜜jar”,这个程序在一个可用的系统上应该看起来像一个SSH命令行,但实际上响应缓慢,没有任何用处。 你希望在普通的SSH端口(22)以及常用的高端口(2222)上运行这个端口。 实际上,将它作为高端口用户运行会更容易,然后使用iptables将低端口redirect到同一主机上的高端口。 也可以使用netcat( nc )或xinetd来设置redirect。

为了让Kippo在低端口(直接或通过redirect)上侦听,常规的系统SSH守护进程不能在那里监听。 而且,为了使你的蜜jar更可信,你不希望系统守护进程在另一个“公共”端口上进行监听。

从安全angular度来看,select备用端口是最有效的方式,但是RDP不太可能在典型的Linux服务器上进行监听,所以如果你已经记住了端口号,那么使用它可能会很有趣。 其他“有趣的”select可能是5190(AOL)或1214(KaZAA)。