我想要运行自己的根服务器(无需硬件防火墙即可从网络直接访问),其中包含 debian lenny、apache2、php5、mysql、postfix MTA、sftp(基于 ssh)以及可能的 dns 服务器。
您会推荐什么措施/软件来保护此服务器并尽量减少攻击途径?为什么?除了 Web 应用程序...
这是我目前所拥有的:
- iptables(用于生成数据包过滤)
- fail2ban(暴力攻击防御)
- ssh(更改默认值,端口禁用 root 访问)
modsecurity - 真的很笨拙而且麻烦(还有其他选择吗?)
为什么要使用 Sudo?对普通用户来说有什么好处
- 思考 greensql for mysql www.greensql.net
- tripwire 值得一看吗?
- 呼噜?
我遗漏了什么?什么是热门,什么不是?最佳实践?
我喜欢“KISS”->保持简单安全,我知道这会很好!
提前致谢 ...
答案1
对于 ssh,您可以同时使用密码和密钥,但对于 root,最好只允许 root 使用基于密钥的身份验证登录,这很难做到(我喜欢 ssh root@host)。
答案2
进行端口扫描,并仅在需要时保持打开状态。如果您有 IPv6,也不要忘记检查。使用http://www.ipv6scanner.com/您可以同时检查 IPv4 和 IPv6 端口。
答案3
默认情况下:SSH - 仅限 SSH 密钥,允许 Root 登录。IPTables - 默认情况下全部拒绝。仅 80/443 向公众开放。fail2ban - 已禁用。繁忙的 Web 服务器上的开销太大。modsecurity - 麻烦。不要使用。
我还设置了带 IPSec 的 VPN,这样当我不在办公室时,我也可以访问服务器。我使用的任何/所有具有 SSH 密钥的计算机都是加密的。您可能会窃取我的计算机,而不会获得访问任何服务器或我的 VPN 所需的任何信息。我是唯一拥有根密钥的人。其他人可能具有对特定命令的 sudo 访问权限。任何拥有 SSH 密钥的人都必须加密他们的操作系统/数据。