我如何测试我的服务器的安全性?
我知道这个问题太笼统了。但我想知道是否有测试软件或 Web 服务检查您服务器的所有端口,或者可能存在安全漏洞?
我通常检查 unix 权限,仅此而已,但我可以做些什么?
附言:用户无法使用我的 Web 应用程序上传文件,所以我没有遇到这个问题。
答案1
根据您的标签,以下是一些基本建议:
操作系统 (Linux)
- 应用更新/安全补丁,包括内核
- 校验和工具用于检测文件/权限变化,如 aide、fcheck、tripwire 等。
- 仅启用您实际使用的网络服务(请检查
netstat -tulpen
) - 理智的用户定义:谁拥有 root 访问权限?
- SSH:禁用直接 root 登录
- 硬防火墙或软件防火墙
PHP
- 使用强化的 PHP(苏霍辛)
- 在 Google 网络上查找 PHP 的安全最佳实践
MySQL
- Eiter 让它通过 Unix 套接字或 TCP 运行,但只能在本地主机/你的 LAN 上运行
- 定义 root 密码
- 为每个不同的应用程序定义受限用户
这只是在 2 分钟内写下的纯粹基础知识。很多更多的。
答案2
答案3
您可以执行许多测试,并且可以使用许多工具进行测试。对于初学者,您可能希望运行尼克托。
尽管您可能认为用户无法上传文件,但应用程序或服务中的安全漏洞可能证明并非如此,许多人都从惨痛经历中吸取了教训。始终假设您的系统已损坏且易受攻击,并在别人为您找到漏洞之前寻找修复方法。
答案4
BackTrack FastTrack 的 AutoPwn 非常适合安装了非常旧软件包的非常旧的服务器。如果您使用的是现代更新的 Linux/Windows,它将找不到任何东西。(我喜欢 Backtrack,但这个严肃的工具需要广泛的安全和渗透测试知识)
我建议安装 Nessus 并扫描您的服务器,它非常强大(尽管免费版本没有最新的漏洞签名)并且不仅可以扫描开放端口和远程易受攻击的软件,还可以使用 root 凭据登录服务器并执行本地审计。
它只是一个工具,不足以让您的服务器“安全”,但是结合例如 weeheavy 的提示,您可以更接近“安全”。
我还会添加监控。安装 OSSEC 或其类似物(tripwire 等),如果服务器上发生任何异常情况,您会希望通过电子邮件/短信/等方式实时收到通知。