我如何testing我的服务器的安全性?

我如何testing我的服务器的安全性

请我知道这是一般的问题。 但我想知道是否有一个testing仪软件或Web服务检查您的服务器的所有端口,或可能的安全漏洞?

我通常检查unix权限,就是这样,但是我可以做些什么?

PS。 用户不能用我的networking应用程序上传文件,所以我没有这个问题。

根据你的标签,这里有一些基本的build议:

操作系统(Linux)

  • 应用更新/安全补丁包括内核
  • 校验和工具检测文件/权限更改,如助手,fcheck,tripwire等
  • 只启用实际使用的networking服务(使用netstat -tulpen进行检查)
  • 理智的用户定义:谁有root权限?
  • SSH:禁用直接的rootlogin
  • 硬件或软件防火墙

PHP

  • 使用强化的PHP (Suhosin)
  • Google在networking上searchPHP中的安全最佳实践

MySQL的

  • Eiter让它运行Unix套接字或通过TCP,但只在本地主机/您的局域网
  • 定义一个root密码
  • 为每个不同的应用程序定义受限用户

这只是2分钟内写下来的纯粹的基础知识。 更多。

下载回溯并运行FastTrack的AutoPwn对您的服务器。 这是一个完全自动化的方法,但是寻找低悬的果实却是一种很费力的方式。

如果你有Web组件, SkipFish是另一个很棒的自动化testing工具。

有许多testing你可以执行和许多工具可用于testing。 对于初学者,您可能会喜欢运行Nikto 。

尽pipe您可能认为用户无法上传文件,但应用程序或服务中的安全漏洞很可能certificate是不正确的,因为许多人已经学会了很难的方法。 总是假设你的系统已经破损,并且在别人find你的漏洞之前寻找修复它的方法。

如果你有权访问系统,你可以找出使用netstat打开的端口。 它可以列出所有的侦听端口。 防火墙和其他安全措施可能会降低风险。

将此列表与远程扫描进行匹配。 调查远程扫描显示的任何未被netstat列出的端口。 在防火墙上应该没有任何DNAT规则没有考虑到这一点。

禁用您不需要的任何服务。 过去常常会有很多不必要的服务在运行。 许多是微不足道的,如收费,时间,白天等。 有些是重要的,如Telnet,FTP,HTTP。

对于只需要内部configuration的服务,如果可能的话,监听127.0.0.1和/或:: 1(IPv6)。

BackTrack FastTrack的AutoPwn适用于安装了非常旧的软件包的旧服务器。 如果你有现代更新的Linux / Windows它不会find任何东西。 (我喜欢回溯,但那个需要广泛的安全和钢笔testing知识的严肃的工具)

我build议使用Nessus安装和扫描你的服务器,它非常强大(即使免费版本没有最新的漏洞签名),不仅可以扫描打开的端口和远程易受攻击的软件,还可以使用根凭证login到服务器,并执行本地审计。

它只是一个工具,仅仅使你的服务器“安全”是不够的,但是与例如weeheavy的提示一起,你可以更接近。

我也将添加监测。 安装OSSEC或其模拟(tripwire等),你想通过电子邮件/短信/等实时通知服务器上的任何奇怪的事情。

有一些这样做的服务,通常作为PCI-DSS合规性扫描销售。 我的意思是,这不是安全扫描的全部和terminal,但是PCI-DSS合规性确实需要高度的安全性。

这可能是一个明智的起点。 被警告。 这不便宜。

编辑:我过去使用过HackerGuardian ,而且很好。 定价在249美元/年的第一次免费扫描后进入

那么,你可以从nmap开始,并检查打开哪些端口/服务。

如果你想学习,你可以看看http://www.hackthissite.org/和http://www.hellboundhackers.org/,并且一天一天的学习如何保护你自己,但是要记住有很长的路要走。

软件报告可以帮助你,但是他们只会保证你的脚本小子安全,一个好的黑客会发现一个漏洞,只有另一个人可以find并修复(防止)这个问题。

该软件同时付费和足够支付专业的报告和解决scheme。

所以,如果你的networking服务器真的很重要,那么请问是否花钱(再次是上面的网站)。

检查每个攻击vector。

身体素质:这个很直截了当。 服务器在机架中吗? 它被locking? 谁有钥匙? 关键有多安全? 服务器是房间吗? 房间是锁着的吗? USB端口可以访问或启用? 等等

如果是交换机,你使用的是端口安全吗? 等等

networking:简单,但最常见。 通过使用nmap或wireshark或其他东西扫描服务器上的所有打开的端口来testing您的端口。 确定你希望这些networking服务的受限程度取决于你希望他们如何工作以及他们对你有多么脆弱。

例如; 一个http服务,限制谁有访问但子网? 由主机? 由用户? 检查常见的漏洞; 正在索引打开等。

人/社会:这是不容易通过IT,通常是人力资源部门固定的东西。 但是这里有一些你可以做的事情。 密码政策; 旧的思路是定期更改密码,但这似乎迫使最终用户select弱密码。 为用户生成密码往往使他们写下来。 您需要find一个最适合您的策略,但是您可能想要教育最终用户如何制作一个强大的密码,但是要每年更换一次密码或从不更改密码。 同时教育最终用户如何pipe理密码,并保密。

谷歌再次下降?

上面的链接列出的应用程序大多提供指纹types检查定义明确的单一模式攻击 – 这不是一个正确的安全评估的替代,但运行nessus / nikto是一个开始,并消除看起来不可开发的问题可以防止多个向量攻击。 (这也清除了低挂的水果,所以你可以有一点更确定,你从事任何人参与testing安全正确的必须赚取他们的费用)。

我通常检查unix权限,就是这样

呃,是的 – 还有很多你应该做的。 这个声明是否意味着你有一个权限安全模型? 有效吗? 那么其他访问服务器(控制台,SSH,FTP …)。 如果你还没有一个详细的安全策略,那么没有太多的问题要求某人testing系统是否安全。 策略应该包括部署软件,识别和实施供应商补丁,备份,rootkit检查等。