我的第一个“生产”debian服务器configuration

我一直在使用Debian一年,主要是作为我公司内部服务器的发行版。 现在我正在build立一个公共的电子商务网站,并计划在这个数据中心使用专门的Debian服务器。 我将接受信用卡进行支付,并直接将其传送到银行网关,而不存储任何CC信息。

我将使用Django 1.1.1,mod_wsgi,Apache2来运行djangonginx来提供静态媒体。

  • 你认为这是一个很好的设置?
  • 你会以服务器configuration的名义build议什么安全措施? 任何build议,链接到最佳做法和教程将不胜感激:)

更新,更新,更新。

  • 你运行Debian稳定或testing? 有时保持testing更新比稳定要复杂一点。
  • 你是否在运行Debian软件包?

确保你没有运行无关的服务。 运行netstat -nap并检查在端口上侦听的所有进程,确保没有什么东西不是严格需要的。 只能在loopback上听的东西应该这样做。

所有可公开访问的非公开内容应该使用强密码或更强的措施(ssh密钥等)来保护。

如果可以,对DoS的一些措施将是很好的。 限制邪恶的请求可能是方便的。

在我的debian生产服务器上安装了很多东西:

  • logwatch(apt-get install logwatch) – 每天向您发送一封电子邮件,汇总您的服务器昨天生成的日志。 一个很好的方法来发现潜在的问题
  • apticron(apt-get install apticron) – 当有更新版本的已安装软件包可用时,通过电子邮件发送给您,例如修复安全漏洞

考虑到数据通过服务器的敏感性,我将SSHlogin限制为仅基于密钥(无密码),因为这使得随机破解账户变得更加困难。 无论你是否这样做,根SSH是坏的,危险的和错误的,应该被禁用或限制到less数可信的IP地址

确保你订阅了[email protected]

考虑运行rootkithunter,chkrootkit和integrit,所有这些都可以通过apt-get install来检查,没有什么讨厌的东西在你的服务器上find了。

确保您的网站的敏感部分(任何接受信用卡号码,密码等,尤其是djangopipe理界面)只能通过HTTPS(SSL)连接访问,而不是普通的HTTP。

如果您对安全性有正确的偏执/认真态度,请让托pipe服务提供商通过电话向您阅读服务器的SSH密钥指纹,或者使用encryption的电子邮件将其发送给您,以便您可以validation您何时第一次连接到那么你并不是被中间人攻击的机器(或者如果可能的话,在第一次login的时候第一次login它)。