所以我有一个 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 的建议呢?
答案1
我有一个 VPS,但我不知道如何管理它。
这是我见过的关于托管主机的最大争论。被黑客入侵的服务器是造成互联网混乱的主要原因。托管钓鱼页面、传播恶意软件。如果你要这么做,我希望你能正确地去做。
为了让您对长期承诺有所了解,我阅读了以下内容:怎样才能确保 Ubuntu 服务器的安全?网站上还有其他类似的问题(几十个),并且都有很好的答案,但这个问题有一些很好的、广泛的答案。
对于 SSH,我已经在我的博客上详细讨论了这些但关键点是:
- 将其移至另一个端口。某个较高的端口,在 10,000-60,000 范围内。
- 安装
fail2ban
。 - 使用基于密钥的身份验证。
- 禁用密码验证。
- 禁用根登录(确保您的用户属于管理员组)。
- 确保您的用户没有可猜测的名称(例如 admin)。
只需移动端口即可转移 99.99% 的路过式黑客攻击。fail2ban
这将阻止任何暴力攻击的发生。强制使用基于密钥的身份验证意味着暴力攻击需要猜测的次数现在已达到数十亿次。禁用 root 登录并使用更难猜测的用户名意味着他们甚至没有用户名来开始暴力攻击:他们必须先暴力攻击用户名,然后才能获得密码元素。
这样就得到了一个相当安全的 SSH 服务器。要让别人闯入它,就必须有一个相当可怕的漏洞……但不要把所有的注意力都放在让门尽可能地坚不可摧上,然后忽略打开的窗户。
- 所有动态语言的 Web 应用程序都可能被黑客入侵。如果您使用的是开源脚本,则需要随时关注其更新。
- 防火墙应该阻止人们访问不应该暴露在互联网上的服务(例如 MySQL)。
- 否则,如果您没有对安全服务应用补丁(并在修补后重新启动它们),安全服务将让人们直接进入。
答案2
首先您实际上只需要做的就是添加您的用户,输入以下内容:
adduser username
usermod -a -G sudo username
提供密码和其他数据后,您可以使用 以用户身份登录服务器ssħ username@yourserverip
。例如,您仍然可以使用 sudo 运行 root 命令。
sudo apt-get install something
我建议使用命令来增强 root 密码:
passwd
...以 root 身份发出密码更改命令。
如果您有强密码,则无需更改 ssh 端口,ssh 足够安全,在默认端口上运行它完全没问题。如果真是这样,那么 ssh 将是黑客最不愿意攻击的东西。
答案3
要更改 sshd 设置,请/etc/ssh/sshd_config
根据需要打开文件更改文件。要更改端口,请搜索 fortPort 22
行并将更改22
为其他值,例如 4530
。
因此,当你通过 ssh 连接到服务器时,你必须使用ssh user@host -p 4530
禁用 root 登录更改PermitRootLogin yes
为PermitRootLogin no
大多数情况下,基于密钥的身份验证是默认启用的,但请确保它已启用PubkeyAuthentication yes
。
在禁用密码验证之前,请创建一个 ssh 密钥(ssh-keygen
如果您之前没有),并将其添加到您的 VPS 用户帐户。通常~/.ssh/authorized_keys
首先检查基于密钥的身份验证是否正常工作,然后禁用密码身份验证 -PasswordAuthentication yes
然后安装一个类似的工具denyhosts
来阻止IP访问sshd。