什么是安全的Linux,Apache,MySQL,PHP服务器(甚至是Perl)的生产使用程序?
除了设置Linux的MySQL密码和root密码外,还应该采取哪些其他步骤(可能不那么明显)?
如果我要变得更偏执,那么我可以采取哪些措施?
这是一个基本的单一网站使用,但必须是安全的。
这些build议不在我的头顶,并不是全面的。
查看Bastille,这是一系列在Linux中实现最佳实践的脚本。
不要通过明文协议发送authentication数据。 例如,禁用FTP。 如果您通过Apache发送authentication数据,请使用SSL。
禁用和删除任何不必要的软件,包括GUI界面。
审核任何SUID设置和删除的文件。 (这将严重限制非根本能力,理解每个单独变化的含义。)
审计公共可写目录并删除可写位。 (单独离开/ tmp)
避免以root身份运行任何守护进程。
研究所有多用户软件,详细监听套接字以获取安全最佳实践。
避免将用户添加到系统是最好的方法之一。 多用户系统需要更多关注细节。
强制密码标准。 例如:最less10个字符,非字母数字字符,使用字母和数字。 这是为了让暴力破解在密码文件泄露的情况下更加困难。 通过系统强制执行此操作。
在5次失败的authentication尝试之后locking用户,至less10分钟的locking。 保持密码历史logging,以便用户不能使用过去的5个密码。
如果你有一个更大的环境,使用networking隔离与多个子网隔离风险是一个绝对的要求。 如果环境较小,build议在本地系统上运行防火墙来限制暴露。 例如,只允许SSH到你的IP。 tcpwrappers也可以用于额外的层。 (/etc/hosts.allow,/etc/hosts.deny)
当然,保持所有的软件是最新的。 尤其是面向守护进程的公众。
使用SSH:
without-password根authentication(只有密钥对) 使用Apache:
使用MySQL:
我build议研究php.ini安全专门调整。 这是默认的风险较高的软件。
寨
这里有一篇很好的文章,你可以使用它作为你的设置的基础,并相应地改变你的分歧: http ://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- 服务器与-的CentOS-5-36786
国防信息安全局有一套安全检查清单 ,这些清单是开始的好地方。 更好的是理解每个条目的基本原理,但这不是一个快速的答案。 我build议你看Enclave,Network,Unix和Web Server STIG 。