我即将发布一个python web应用程序。服务器是由1&1托管的Ubuntu远程计算机。
现在,我使用控制台命令重新启动python服务器应用程序。
在安全性方面,在我的Ubuntu机器公开域名之前,必须做些什么?
谢谢
发布于 2017-09-11 18:21:49
创建一个非根用户,在该用户下运行您的应用程序。
设置ufw (简单防火墙),除了SSH,http和HTTPS。这比iptables (imo)容易得多。
禁用SSH密码。设置钥匙,只使用它们。
此外,设置Fail2潘基文来监视日志,并采取任何可能需要的附加操作(IP黑名单等)。
有很多在线指南来加强Ubuntu,这将是我的‘必须做’的步骤。我推荐Linode指南--它们通常质量很好(https://www.linode.com/docs/security/securing-your-server)。
还请记住,即使没有域名,如果您的应用程序运行在远程的机会,它已经找到并探测基于IP:端口单独。一旦服务器准备就绪,我就会执行所有这些步骤。
发布于 2017-09-11 17:12:07
假设您的应用程序本身是安全的,并且您信任您的服务器主机,那么最简单的保护系统的方法是:
sudo apt upgrade)chkconfig <service> stop && chkconfig <service> off)如果您没有设置服务器的经验,那么了解要停止的服务可能是非常重要的。通常,托管服务器是非常小的,并且只运行最基本的程序以尽可能提高资源效率,因此您可能不必在那里做太多事情。
编辑:刚刚浏览了你的服务器主机的网站。它们确实提供了防火墙管理工具和入侵保护系统,您可以将它们配置为只允许通信到应用程序端口。如果您能够负担得起他们提供的备份/快照,您应该采取它,并使之成为一个点,采取经常快照(备份)您的服务器,以防万一。这是很好的练习。
发布于 2017-09-12 22:13:50
我肯定会说,在web应用程序中,通过CloudFlare路由所有流量是必不可少的。他们的DNS不仅速度非常快,而且还提供了免费的SSL证书(共享的,您可以升级到专用的),在没有任何设置的情况下(除了更新名称服务器之外),允许您使用https,从而实现安全连接(如果您选择Cloudflare进入Crypto模块并启用“始终使用HTTPS”,则所有通信必须通过加密连接路由)。许多人会争辩说,像Letsencrypt这样的东西可以提供这样的服务,但是Cloudflare也隐藏了( web服务器的)原始IP地址,这样用户就不能通过点击域之类的方式找到IP。此外,所有这些都提供了各种其他工具,如DDoS保护、IP黑名单和其他各种有用的模块,这些模块无疑将在安全性方面有所帮助。
许多大公司利用CloudFlare,因为它们非常优秀。
https://security.stackexchange.com/questions/169226
复制相似问题