我想使用 debian lenny、apache2、php5、mysql、postfix MTA、sftp(基于 ssh)和可能的 dns 服务器运行我自己的根服务器(无需硬件防火墙即可从 Web 直接访问)。
您会推荐哪些措施/软件,以及为什么要保护此服务器并最大限度地减少攻击向量?除了Web应用程序...
这是我到目前为止所拥有的:
- iptables(用于生成包过滤)
- fail2ban(暴力攻击防御)
- ssh (chang default, port disable root access)
modsecurity - 真的很笨拙而且很痛苦(这里有什么选择吗?)
?Sudo 为什么要使用它?普通用户处理有什么好处
- 为 mysql 考虑 greensql www.greensql.net
- 绊线值得一看吗?
- 打鼾?
我错过了什么?什么是热的,什么不是?最佳实践?
我喜欢“KISS” -> 保持简单安全,我知道它会很好!
提前致谢 ...
对于 ssh,您可以同时使用密码和密钥,但对于 root,最好只允许使用基于密钥的身份验证进行 root 登录,这很容易(我喜欢 ssh root@host)。
进行端口扫描并仅在需要时保持打开状态。如果您有 IPv6,请不要忘记检查。使用http://www.ipv6scanner.com/您可以同时检查 IPv4 和 IPv6 端口。
默认情况下:SSH - 仅限 SSH 密钥,允许 Root 登录。IPTables - 默认拒绝所有。只有 80/443 向公众开放。fail2ban - 禁用。繁忙的 Web 服务器开销太大。modsecurity - 屁股疼。不要使用。
我还有一个带 IPSec 的 VPN 设置,允许我不在办公室时访问服务器。我使用的任何/所有具有任何 SSH 密钥的计算机都已加密。您可能会窃取我的计算机,但无法获得访问任何服务器或我的 VPN 所需的任何信息。我是唯一一个拥有根密钥的人。其他人可能对特定命令具有 sudo 访问权限。任何拥有 SSH 密钥的人都需要加密他们的操作系统/数据。