关于 ubuntu 服务器 root 账户和端口的问题

关于 ubuntu 服务器 root 账户和端口的问题

我最近推出了一个仅上线 2 天的网站,刚刚检查了 auth.log,发现已经有来自亚洲的 IP 进行了多次登录尝试。

我已经将自己的用户帐户密码更改为更安全的密码,现在我担心根帐户和开放端口?

关于 root 帐户:将 root 帐户的名称更改为只有我知道的完全随机的名称是否是个好主意?由于大多数尝试都是针对 root 用户进行的,因此拥有用户名就已经成功了一半?这是好主意还是坏主意?

关于端口:我是否应该关闭 FTP 和 SSH 端口,只在我想亲自连接服务器时才打开它们,这是通常的做法吗?还有什么方法可以将 SSH 连接限制到单个 IP 并且一次只允许一个连接?

我不太确定正确的做法是什么,如果您能提供任何建议我将不胜感激!

答案1

将 root 帐户的名称更改为只有我知道的完全随机的名称是否是个好主意?由于大多数尝试都是针对 root 用户进行的,因此拥有用户名就已经成功了一半?这是好主意还是坏主意?

对于操作系统,更安全的解决方案是完全不允许 root 进行任何 SSH 访问。您应该以具有 su 或 sudo 权限的非特权用户身份登录。此外,所有 ssh 访问都应通过私钥而不是密码进行。

如果您有兴趣减少这些破解尝试所产生的流量,您可以在非标准端口上运行 ssh(这不是一种安全措施,但它是一种有效的方法,可以让您保持低调并防止一些不必要的流量进入您的机器)。

您还可以使用类似http://www.fail2ban.org/这将监控失败的登录尝试并禁止 IP。

对于应用程序级访问(如 CMS 等),如果您可以远离默认 URL(如 /admin 或 /administrator)并运行非标准端口,则可以在一定程度上避免被雷达发现,这很好。这些不会增加安全性,但可以再次将大量流量从这些区域转移出去。

从安全角度考虑,避免使用默认用户名(admin/root 等)和默认密码是个好主意。此外,对于 CMS/应用程序登录,限制 IP 和使用类似于 fail2ban 的方法也是个好主意。

关于端口:我是否应该关闭 FTP 和 SSH 端口,只在我想亲自连接服务器时才打开它们,这是通常的做法吗?还有什么方法可以将 SSH 连接限制到单个 IP 并且一次只允许一个连接?

  • 限制特定 IP 的访问是一个好主意
  • 如果你比较谨慎,你可以只在需要使用端口时才打开它们,但这可能不太方便
  • 您可以通过防火墙限制对 SSH 运行端口的访问
  • 您可以通过 sshd_config 限制对 SSH 服务的访问,例如 AllowUsers user@ip

答案2

关于 root 帐户:将 root 帐户的名称更改为只有我知道的完全随机的名称是否是个好主意?由于大多数尝试都是针对 root 用户进行的,因此拥有用户名就已经成功了一半?这是好主意还是坏主意?

我认为这是一个坏主意,只需禁止 root 帐户访问,然后使用 sudo/su

我应该关闭 FTP 和 SSH 端口吗

首先你应该更改默认端口 21/22,例如 2121/2222

并且只有当我想亲自连接服务器时才打开它们,这是正常做法吗

是的,这是正常的做法。你可以尝试使用守护进程

# yum info knock
Name        : knock
Arch        : x86_64
Version     : 0.5
Release     : 3.el6.rf
Size        : 33 k
Repo        : rpmforge
Summary     : Port-knocking server
URL         : http://www.zeroflux.org/knock/
License     : GPL
Description : knockd is a port-knock server. It listens to all traffic on an ethernet
            : interface, looking for special "knock" sequences of port-hits. A client
            : makes these port-hits by sending a TCP (or UDP) packet to a port on the
            : server. This port need not be open -- since knockd listens at the link-
            : layer level, it sees all traffic even if it's destined for a closed port.
            :
            : When the server detects a specific sequence of port-hits, it runs a
            : command defined in its configuration file. This can be used to open up
            : holes in a firewall for quick access.

答案3

我赞同 Alex_hha 的观点:禁止以 root 身份登录。这意味着攻击者必须猜测/窃取您的用户名和密码,这比仅仅猜测 root 密码要好。我要补充的另一点是使用 ssh 密钥,因为他们需要窃取您计算机上的文件,这比从一些保护不力的 Web 服务窃取密码更困难。请参阅 Github 上有关如何设置 SSH 密钥的文章:

https://help.github.com/articles/working-with-ssh-key-passphrases

相关内容