如何保护SSH访问?
所以我有一个VPS,我不知道如何管理它。 我知道要做的第一件事就是保护它,到目前为止我发现的朝向这个方向的第一个具体步骤是在moshen的评论中 :
Also, you should secure your SSH access as soon as possible. I recommend changing the default port, using key-based authentication and disabling password authentication and root logins (basically create a standard user account for you to log in with)
到目前为止,我所知道的只是使用我的VPS提供商的Web界面来打开具有root访问权限的控制台。 那么我该如何遵循moshen的建议呢?
所以我有一个VPS,我不知道如何管理它。
这是我见过的托管主机的最大理由。 黑客服务器负责造成互联网不良的大部分废话。 托管网页仿冒页面,传播恶意软件。 如果你要这样做,我希望你能正确地做到这一点。
为了让您对长期工作有所了解,我会读到这一点: 可以做些什么来保护Ubuntu服务器? 在网站上还有其他类似的问题(数十个)有很好的答案,但这个问题有一些很好的答案。
对于SSH, 我已经在我的博客上以长篇forms完成了所有这些,但关键点是:
- 将其移动到另一个端口。 高达10,000-60,000的范围。
- 安装
fail2ban
。 - 使用基于密钥的身份验
- 禁用密码validation。
- 禁用root登录(确保您的用户在admin组中)。
- 确保您的用户没有可猜测的名称(例如管理员)。
只需移动端口就可以避免99.99%的偷渡式黑客攻击。 fail2ban
将阻止任何暴力尝试的可行性。 强制基于密钥的身份validation意味着一个畜生的猜测数量现在在数十亿甚至数十亿的范围内。 禁用root登录并拥有难以猜测的用户名意味着他们甚至没有用于开始欺骗的用户名:他们必须在用户名之前查看密码元素。
这导致相当安全的SSH服务器。 对于人们来说,必须有一个非常可怕的漏洞才能通过它…但是不要把所有的注意力放在尽可能无法穿透门上,然后忽略打开的窗口。
- Web应用程序(所有动态语言)都是可以破解的。 如果您使用的是开源脚本,则需要随时了解其更新。
- 防火墙应该阻止人们获得不应该暴露给互联网的服务(例如MySQL)。
- 否则,如果您没有向其应用补丁(并在修补后重新启动它们),安全服务将允许人们进入。
首先,您只需输入以下内容即可添加您的用户:
adduser username usermod -a -G sudo username
提供密码和其他数据后,您可以使用ssħ username@yourserverip
以用户身份登录服务器。 您仍然可以使用sudo运行root命令。
sudo apt-get install something
我建议使用命令强制使用root密码:
passwd
…以root身份发出密码更改。
如果您有强密码,则无需更改ssh端口,ssh足够安全,并且在默认端口上运行它是完全可以的。 如果是这样的话,Ssh将是黑客攻击的最后一件事。
要更改sshd设置,请根据需要打开/etc/ssh/sshd_config
文件更改文件。 要更改Port 22
行的端口搜索并将22
更改为另一个值,例如4530
。
因此,当您通过ssh连接到服务器时,必须使用ssh user@host -p 4530
禁用root登录更改PermitRootLogin yes
PermitRootLogin no
大多数情况下,默认情况下启用基于密钥的身份validation,但请确保启用了PubkeyAuthentication yes
。
在禁用密码validation之前,如果您之前没有使用ssh-keygen
,请为您创建一个ssh密钥并将其添加到您的VPS用户帐户。 通常~/.ssh/authorized_keys
首先检查您的基于密钥的身份validation是否正常工作,然后禁用密码身份validation – PasswordAuthentication yes
然后安装像denyhosts
这样的工具来阻止IP访问sshd。