本周我将开始使用 VPS 进行网络托管,这对我来说是一个很大的进步,因为我之前只使用过托管/共享服务。我有一点 Linux 经验,我不害怕终端,但这是一个与我习惯操作的环境完全不同的环境。
我主要担心安全性……虽然暂时不会有任何重要的事情,但我确实打算将其作为一项学习练习。据我所知,我想:
- 为用户帐户配置适当的权限,
- 只允许打开某些端口(HTTP、HTTPS、FTP 和/或 FTPS 和 SSH),
- 注意 HTTP 用户的应用程序的 webroot 中的目录/文件权限
我还没有做过太多 SSH/VNC 的工作,所以我也打算阅读相关内容。针对我的情况,您能给我什么建议?虽然我希望这是相当通用的,但我将使用 Ubuntu Server 10.04,尽管我可以在 CentOS 和 Debian(或 Windows)之间进行选择。 Apache 将用于服务网站。
答案1
务必将良好的 Linux 安全检查表作为首要任务来审查安全性。 SANS 发布一个不错的。
第二步是删除您不会使用的软件包。
第三步是 df -h 并记录安装使用了多少磁盘空间。
第四步是使用 --exclude 选项来压缩整个磁盘以排除输出 tarball。例如:tar --exclude=all.tar.gz cvf - / | gzip -9 >all.tar.gz
然后下载它并使用它来创建一个或多或少可以在 Virtualbox 或您使用的任何虚拟机环境上运行的克隆系统。从此时起,在应用到 VPS 之前测试虚拟机上的更改并定期进行数据备份。如果没有将其记录在日志中,请勿更改虚拟机或 VPS 上的任何内容。即使是最小的变化也应该记录下来。
答案2
仔细检查您的防火墙配置。网上有大量资源可用于研究这一点。
接下来,将 SSH 移至非标准端口。如果您的盒子是安全的,这不会那么重要,但来自脚本小子的日志垃圾邮件将会减少。如果存在安全问题(能够登录 root、弱密码等),则转移到非标准端口将降低脚本小子找到您的 ssh 服务器的可能性。但同样,这只是通过默默无闻实现的安全。因此,请确保禁用 root 登录并使用强密码,或者同时禁用密码登录并使用基于密钥的身份验证。如果您需要将 ssh 保留在 22 上,请安装fail2ban 或 denyhosts 以阻止暴力登录尝试。我有没有提到强密码?
您最有可能的进入点或妥协点不是通过操作系统或其运行的服务,而是通过您向公众展示的软件。因此,您的下一个首要任务是及时了解 WordPress、Drupal、Joomla 和其他第三方应用程序等软件的最新更新。还要随时关注操作系统和 Apache 或为您的站点提供支持的任何内容的安全更新。
最后,采取一些预防措施来捕捉任何通过的东西。我建议像'助手' 它基本上会检查您的配置文件,偶尔查看日志文件并观察活动中任何奇怪的峰值。
执行这些步骤并在几个网站上阅读一些内容(上面评论中链接的 pdf 将是一个很好的开始),不需要太多就可以比任何共享托管平台更安全。
如果您确实想确保安全,请尝试攻击您自己的服务器:)