CentOS的安全措施

我一直在收紧我的networking服务器的安全性,并想知道我还能做些什么。

我使用以下措施运行CentOS 5: – 所有FTP,MySQL等密码都是从grc.com/passwords.htm和microsoft.com/protect/fraud/passwords/create.aspx生成的(对于那些不能太长的)。 – 除了http邮件和smtp以外,所有端口都closures的iptables运行,除了我的静态办公IP以外,FTP SSH等重要的端口都被阻塞了。 对ping也没有反应。 – Rootkit Hunter每日运行 – 根据Comodo,服务器符合PCI标准 – 不运行任何糟糕的php应用程序,我们使用Zend Framework作为我们的东西,并且安装了Kayayo并保持最新状态。

我真的不能想到其他任何事情……我可以实施暴力措施,但我想我已经通过简单地将我的SSH端口更改为10000以上的数字,并用iptables阻止它。

你可以打开SELinux,确保一切正常。 请注意,虽然SELinux默认情况下不喜欢22以外的ssh。

仅仅因为comodo说你符合PCI标准,并不意味着你确实是合规的。 他们所做的只是扫描您的端口并寻找常见的Web漏洞。 要真正遵守是一个更长的事情列表..就像你的整个数据中心必须是兼容的,以及如何存储信用卡信息.. Comodo无法检查

http://www.debian.org/doc/manuals/securing-debian-howto/

这是Debian的,但应该为CentOS定制。

您可能想要做的其他事情:

  1. 你有安全的MySQL吗? 没有匿名用户,非本地用户或testing数据库?
  2. 你有安全的Apache?
    • 用最less的一组加载模块?
    • locking“/”?
    • locking虚拟主机?
    • locking位置?
    • 最小的每个位置的Apache选项/指令集?
    • 任何SSLconfiguration?
  3. FTP密码以明文模式发送。 可能更好使用ftps或sftp(它们是不同的)
  4. sshd_config被locking?
    • 通过SSH密钥访问通过密码authentication?
    • 根允许locking?
    • 只有被选中的用户/组可以使用sshlogin?
    • 您可能想要查看单个数据包身份validation
  5. 你可能想用firehol或者一个好的防火墙生成脚本,而不仅仅是iptables。
  6. 你有保护你的电子邮件服务器?
    • 只validationssl / tls或startls连接
    • smtp必须使用ssl / tls或startls进行身份validation,除非从可信主机发送
    • 你有没有检查你是否运行一个开放的中继邮件服务器?

所以你有一个ssh服务器,你已经在端口10000运行,你已经阻止了iptables? 我假设你已经安装了一个ssh服务器,所以你可以暂时启用它,以便稍后有一次远程访问。

你可以安装sshguard或者denyhosts来保护你的ssh。 如果这些工具有一定数量的失败连接尝试,则会阻止IP地址。

portsentry (带有tcpwrappers)是我最喜欢的工具之一,它有助于提高安全性。 任何接触非活动端口的人都将被locking。 Portsentry可以通过官方渠道获得RPM。

另一种可能性是使用系统事件关联器 (SEC)。 这为您提供了高级日志监控function。

如果你正在使用PHP,我会考虑切换到强化的PHP Suhosin 。

总而言之,这些只是提示:最好的办法是通过一个安全清单(或两个),以确保你没有错过任何东西。

哦,还有一件事:如果你有权力和愿望这样做,你可以切换到一次性密码。 CentOS通过opie提供这个function。

只是2个小补充。

  1. 糟糕的PHP代码是一个真正的痛苦。 suhosin不能保护php的外观。 使用phpsecurity来查看你的php安装中的什么types的整体。 这里http://phpsec.org/ 。 它会给你每个预防configuration的详细解释。

  2. 是fail2ban为滥用者和部队的自动化块。 它将保护您的服务器上的许多服务ssh,ftp,http,smtp等比denyhosts更好,源使用比portsentry更less,更有效。 http://www.fail2ban.org/wiki/index.php/Main_Page

另一个select是删除/ tmp中任何内容的执行权限。 实际上为没有执行权限的/ tmp&mount创build一个新的分区是一个完美的想法。 如果您可以处理已经在使用生产服务器的情况。

和几个提醒。 很容易理解哪个端口是sshd运行的,因为它的标题(包含SSH字)。 你可以通过“nmap”来testing它。 在这一点上改变SSH端口是没有意义的。 &删除横幅上的各种版本信息,欢迎消息,其他地方的服务器签名只是删除。 因为剥削者也在检查软件版本。

这是更一般的build议,而不是特定于Centos。

确保你已经完全修补了所有的安全补丁。 一旦您认为您已经尽可能地保护您的服务器和应用程序,请针对您的服务器和Web应用程序运行漏洞扫描程序。

如果你以前从未做过, Kali Linux是一个很好的开始。 在连接到与服务器相同的networking的备用机器(例如笔记本电脑)上运行它,根据需要创build一个具有尽可能多的插件类别的自定义扫描策略(例如,所有Linux应用程序,所有web应用程序等),将其configuration为扫描所有端口并针对您的服务器运行testing。

一旦你完成了这个工作,并想进一步,实施一个入侵检测系统/入侵防御系统来检测,并有可能防止传入的威胁。

如果您觉得您需要更进一步,请获得authentication的专业渗透testing人员来执行此操作。 这一切都取决于你需要多less安全/保证,以及你愿意为此付出多less努力和财务成本。