我最近推出了一个仅上线 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