我正在构建我的第一个 LAMP 服务器,用作远程测试服务器和构建 Web 服务器的练习。
我将使用带有 Apache2、PHP7、MySQL 5.7、OpenSSL 和 vsFTPd 的 Ubuntu Server。
我知道如何安装和使用 LAMP 和 ftp 堆栈,但我不知道需要哪些其他软件来确保其安全。
它将位于 Sonicwall 后面,我正在阅读本文针对用户、文件和目录的安全,但它没有提到如何防范来自网络防火墙后面的病毒、恶意代码和暴力破解。我知道 PHP 代码需要处理很多问题,我正在学习。
但是除了 LAMP 堆栈和 FTP 服务器之外,我是否需要安装任何其他软件,如防病毒软件、防火墙等?
PS 我确实计划安装 WHM/cPanel 及其依赖项,我理解这一点。
答案1
确保 Web 服务器安全是一个大话题,更适合写一本书(或一系列书),而不是 Stack Exchange 的答案。话虽如此,我将谈几点。
但它没有谈到的是如何防范网络防火墙后面的病毒、恶意代码和暴力破解。
一般来说,我们不太关心 Linux 中的病毒感染。目标计算机百分比要低得多,权限系统(以及 SELinux 之类的东西)有助于防止出现很多问题,并且仅安装来自受信任的软件存储库的软件有助于减少这种威胁。
保持服务器更新,订阅Ubuntu 安全公告列表,不要运行不受信任的软件。不要禁用应用装甲。
安全圈的一般建议是,一旦发现任何感染迹象,您应该清除(删除)服务器并从头开始,而不是试图清除任何感染。为此,您应该配置(并测试!)定期备份。使用配置管理工具也是一个非常好的主意(我喜欢Ansible) 进行所有配置,而不用手动进行配置,这样您就可以立即启动另一台服务器。
我最后一个建议是安装失败2ban。它最常用于防止 SSH 暴力破解尝试,但它还附带了许多其他常见暴力破解网络服务的配置文件。如果您使用 Ansible,由于存在可从其社区仓库中纳入的角色。
对于未编入索引的 Web 服务器来说我应该是相对安全的
有机器人不断扫描整个已知的 IPv4 地址空间来查找服务器,因此您永远不要以为仅仅因为您的服务器没有公开链接,它就不会被发现。