作为一名软件开发人员,我非常习惯在我的开发机器上安装我的典型堆栈(java、mysql和tomcat/apache)。但是,设置和确保生产机器不是我会感到有信心的做法。是否有用于设置和保护生产服务器的假人的and指南?根据平台(Windows或Linux),流程是否有很大不同?是否有一些通用规则可以应用于不同的平台(和应用程序栈)?
发布于 2011-09-13 10:08:20
是否有用于设置和保护生产服务器的假人的and指南?
不是的。有太多的软件,代码,平台,硬件等可能的组合,这是可能的。但是,如果您分解堆栈,您会发现每个级别都有很好的信息(例如,强化您的操作系统、Web应用程序安全最佳实践等等)。
根据平台(Windows或Linux),流程是否有很大不同?
硬化的过程是相同的,但实现的细节不是。
是否有一些通用规则可以应用于不同的平台(和应用程序栈)?
是。您应该创建应用程序的配置概要文件:记录应用程序的依赖关系(运行所需的任何服务;任何需要打开(进出)的网络端口/协议;任何第三方库/组件),以建立应用程序工作需求的基线。系统地删除/禁用不需要的任何服务、应用程序和端口;以最少的权限运行服务和应用程序。测试这条路的每一步,你会弄坏一些东西。
投资于适当的防火墙并启用出口过滤(如果您的盒子被拥有,不要让它建立直接的TCP连接);使用白色代理只允许出站HTTP到所需的更新(windowsupdate.com等,Linux存储库)。安装提醒和正确的日志记录:对失败的登录尝试、服务启动/停止、安装、权限升级等发出警报。补丁管理很重要;设计一个有意义的维护窗口并坚持下去。不要让更新积累得太久。
如果这是一个Web应用程序,请查看您的入口点、HTTP谓词到URI映射,并白名单您的帖子或获取参数,清除您的表单(不信任任何输入),转义您的SQL (或使用为您执行此操作的第三方库),记录所有SQL查询,诸若此类。。
发布于 2011-09-13 09:03:17
有许多通用规则适用于所有类型的服务器,如:
而且,每个特定的服务都可以有一些保护它的提示。
发布于 2011-09-13 09:25:23
使用像iptable这样的防火墙,并花一些时间规划与机器的连接应该是可能的和需要的。限制不通车,甚至限制出站流量。
https://serverfault.com/questions/310780
复制相似问题