安全的LAMP服务器供生产使用


10

如何保护Linux,Apache,MySQL,PHP Server(甚至Perl)以用于生产环境?

除了为Linux设置MySQL密码和root密码外,还应该采取其他(也许不太明显)的步骤吗?

另外,如果我要变得偏执狂,通常可能没有必要采取什么措施?

这仅供基本的单个站点使用,但必须安全。


姐妹站点上的Apache Hardening
Marcin

Answers:


13

这些建议无济于事,并不旨在全面。

看看Bastille,它是一系列在Linux中实现最佳做法的脚本。

不要通过明文协议发送身份验证数据。例如,禁用FTP。如果您通过Apache发送身份验证数据,请使用SSL。

禁用并删除任何不必要的软件,包括GUI界面。

审计所有设置了SUID位的文件并删除。(这将严重限制非root用户的能力。了解每个单独更改的含义。)

审核公共可写目录并删除可写位。(不理会/ tmp。)

避免以root用户身份运行任何守护程序。

研究所有详细侦听套接字的多用户软件,以获取安全性最佳实践。

避免将用户添加到系统是最好的方法之一。多用户系统需要更多地关注细节。

强制执行密码标准。例如:最少10个字符,非字母数字字符,使用字母和数字。如果密码文件遭到破坏,这会使暴力破解变得更加困难。通过系统强制执行此操作。

在5次失败的身份验证尝试后锁定用户,至少锁定10分钟。维护密码历史记录,以便用户不能使用过去的5个密码。

如果您的环境较大,则绝对需要使用具有多个子网的网络隔离来隔离风险。如果环境较小,建议在本地系统上运行防火墙以限制暴露。例如,仅允许SSH到您的IP。tcpwrappers也可以用于额外的一层。(/etc/hosts.allow、/etc/hosts.deny)

并且,当然,要使所有软件保持最新。特别是面向公众的守护程序。

使用SSH:

  • 禁用SSH协议1
  • 仅允许root身份验证without-password(仅密钥对)

使用Apache:

  • 禁用不需要的任何模块
  • 禁用.htaccess和公共目录
  • 禁用FollowSymlink和任何不必要的选项
  • 如果不需要,请不要安装PHP。

使用MySQL:

  • 禁用默认用户。
  • 不要使用通配符主机。
  • 确保为每个用户设置唯一的主机。
  • 除非必要,否则不要听tcp。(通常是不可避免的。)
  • 尽可能限制应用程序用户权限。(SELECT,INSERT,UPDATE,DELETE非常适合写操作,而SELECT适合读取操作)

我建议专门研究php.ini调优以提高安全性。默认情况下,它是风险更高的软件。

巴士底狱



2

这是一篇很好的文章,您可以将其用作设置基础并相应地更改分配:http ://it.toolbox.com/blogs/rayheffer/how-to-build-a-secure-lamp-web- 服务器与centos-5-36786


但基本上,不要加载您不需要的模块,隐藏所有版本号和调试/信息页面,使用强化的密码为每个应用程序创建一个mysql用户,始终让人们使用常规用户帐户在服务器上工作并使它们使用sudo如果他们需要root权限,请使用iptables之类的防火墙,并仅根据您绝对需要放入机箱中的端口来打开端口...这些信息以及最新的补丁程序已经为您提供了安全的设置。
Alexandre Nizoux 2010年

这篇文章不好。禁用selinux,与强化mysql无关,禁用不必要的apache模块...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.