有关Web应用程序部署的安全问题

我即将在下面的设置(也许是任何)部署一个Web应用程序(几个月):

Ubuntu Lucid Lynx与:

  1. IP桌面防火墙(只有3个端口打开的白名单样式)
  2. 自定义SSH端口(如31847或其他)
  3. 没有“根”SSH访问
  4. 长,随机的用户名(不只是“pipe理员”或什么)长密码(65字符)
  5. 只侦听localhost的PostgreSQL
  6. 256位SSL证书
  7. 从NGINX到我的应用程序服务器(UWSGI)的反向代理
  8. 假设我的colo是安全的(物理访问不是我现在所关心的)
  9. 应用程序级安全性(SQL注入,XSS,目录遍历,CSRF等)
  10. 也许IP伪装(但我还没有真正理解这一点呢)

这听起来像一个安全的设置? 我听说人们的networking应用程序总是被黑客攻击,而我的一部分人认为,“也许他们只是忽略了某些东西”,但是我的另一部分却认为,“也许没有什么可以保护你的服务器,事情只是使脚本小子更难进入的措施“。 如果我告诉了你所有这些,给了你我的IP地址,告诉你哪些端口可用,你是否有可能进入(假设你有一个渗透testing工具),或者这是真的很好的保护。

  1. 如果3个端口是80/443/22,那么你很好;)
  2. 这并没有什么帮助,因为SSH服务器在“敲门”时识别自己,所以像NMap这样的工具会告诉你真正在那个高端口上运行的是什么。 安全隐患是毫无价值的。
  3. 如果你的意思是没有远程rootlogin,那么是的,它有帮助。 如果你的意思是你有另外一个UID为0的账户,那么它就不太好。 有另一个用于连接的非私有帐户,然后su / sudo只在需要的时候用于实际的根目录。
  4. 长的密码是不可能记住的,所以你要把它存储在某个地方。 此时可能还会禁用密码login,只能使用证书。 这个BTW解决了所有SSH敲门尝试中的99%。
  5. 如果您的数据库在本地侦听,为什么要在networking套接字上侦听呢? 为什么不通过文件系统套接字? 不仅它更安全(不听),但是如果你是从本地源连接,它实际上更快(没有networking协议的开销)
  6. SSL证书通常configuration错误。 确保域和date设置正确。
  7. 即使物理安全不是什么大问题,你仍然可以防止像'ctrl-alt-del'重新启动你自己的'脑袋',并自动lockinglogin,空闲terminal。

http://www.insecure.org是开始寻找漏洞testing软件,当然谷歌的好地方。

closures我的头顶上有几个工具可以想起… – nmap – metasploit – saint – 打嗝套件 – lan guard

要确保连接到networking上的任何东西时,要记住这一点……直到从互联网上拔下它才能得到充分的保护。 这听起来像你正在采取所有适当的步骤来保持剧本小子,也许大多数automagic h4ck工具。 但请记住,有正确的动机/人才/时间,没有什么可以保护自己免受“未经授权的访问”。

这是一个很好的开始,但是请记住,您的预防措施需要经常进行重新评估。

考虑一下DenyHosts , SentryTools和/或其他监控工具。

我会和Nessus一起testing,如果你觉得冒险,那就试试Nikto吧。

另外,在它前面得到一个IDS,就像Snort。

您可能需要提醒您的ISP您正在进行漏洞testing,具体取决于您的设置。

看起来你在正确的轨道上。