第一次打开一个SSH服务器到互联网,要检查什么

我已经运行了几个服务器相当长的时间,但我总是只租用它们,所以我没有太多的经验确保实际的服务器(而不是我正在运行的应用程序)。

现在我觉得我的小型家庭SSH服务器开放到互联网。

我将是唯一一个使用它,我的密码足够复杂,我已经将默认的SSH端口更改为4000左右,唯一可访问的端口是通过我的路由器/防火墙上的端口转发此SSH端口,并得到更新自动每晚(它运行Arch Linux,一个滚动发行版)。

如果有的话,我应该做些什么来保证它的安全

谢谢!

确保rootlogin被禁用PermitRootLogin no 。 我也会考虑完全禁用密码PasswordAuthentication no和使用公共密钥PubkeyAuthentication yes

确保只有SSH-2被允许(因为SSH-1在过去提出了一些安全问题 ):

 Protocol 2 

指定哪些是允许通过SSHlogin的唯一用户:

 AllowUsers bob, john 

为了提高安全性,禁止密码authentication并使用公钥authentication:

 PasswordAuthentication no PubkeyAuthentication yes 

注意: 本教程包含创build密钥和configuration公钥authentication的说明。

除了关于禁用rootlogin或仅使用公共密钥authentication的要点外,我还要仔细检查系统中是否有没有用户帐号的密码或空密码。 你已经说过你的个人密码是好的,但是这并不排除一个密码较差的帐户是由于其他原因而被创build的。

举个例子:我必须修复一个networking,在这个networking中,以前的pipe理员已经在源代码中安装了nagios,并创build了一个没有密码或者密码为“nagios”的nagios用户,然后得到三个不同的机器损害。

你可能想看看http://denyhosts.sourceforge.net/这样的IP黑名单工具。 它会阻止任何尝试login失败次数过多的IP,并且具有高度的可configuration性。

我build议你安装Fail2ban! http://www.fail2ban.org

它在x失败尝试了y分钟之后禁止IP,帮助保持scriptkiddies;)

在系统的相关部分/组件中重复执行日志审查(取决于其实际/特定configuration)…