我怎样才能确保我的Apacheconfiguration是安全的? 我的意思是反对攻击等等…
一些通用的(不是apache的)提示:
最好的解决scheme是确保您真正了解您在configuration文件中的所有内容。 Apache httpd并没有什么帮助,因为它的configuration文件的语法和逻辑要复杂得多。 无论如何,尽量不要重复使用(剪切和粘贴)你不明白的configuration,尤其是与系统完全不同的系统。 不要加载或启用您的服务器操作不需要的任何模块。 当为某些客户或资源启用更多权限时,尽可能使规则尽可能具体。
使用发行版附带的默认configuration文件时,通常可能会认为它是安全的,即使您不太明白。 虽然,你应该小心添加你的代码,它会与默认的configuration交互 – 例如,即使你不允许访问某个目录(例如某些/ cgi-bin /),它可以通过分配默认值来授予。
如果您的O / S支持它,则configuration和内容对于服务器运行的用户标识应该是只读的。 只有Apache生成的dynamic内容所需的目录才能被Apache写入。 限制这些目录中可用的文件types。
不是一个小问题 – 有太多的因素需要考虑,这也取决于你的设置和要求。
你需要先做一些背景阅读和研究。
指导您的理解也可能是有益的,可以在您的系统上运行某种扫描仪 – 例如Nikto或McAfee的商业PCI扫描仪之一( http://www.mcafeesecure.com/us/technology-intro.jsp )。 我用两个。
大多数发行版的默认configuration将非常安全。 否则,由你来决定。 ;)
因此,在实现自定义htaccess规则之前,启用符号链接支持,添加新模块等,一定要问问自己这个变化是如何与安全性相关的。 通过google和apache.org研究安全上下文中的特定指令。
Apache的默认configuration虽然安全,但可能包含您不需要的模块和function。 所以你可能希望禁用不必要的模块,cgi支持,ssi支持,目录浏览等等。有许多可用的文章search“加固linux”,并从不包含mod_security或重新编译的文章开始。 我build议testing每个更改,以便知道哪些内容会破坏您的网站。
而且,保护Apache本身通常更重要的是保护Apache服务的内容。 阅读正确的网站权限和与使用的语言相关的configuration文件(php.ini)。
对不起,如果没有更具体的问题,很难更具体。 我显然不想重复Googlesearch结果。
根据我的经验,apache只与其服务的内容一样安全。 通常,内容是由应用程序生成的(php非常stream行)。 这就是事情变得非常复杂的地方。 在这些情况下帮助保护Apache的一种方法是Mod Security。 http://www.modsecurity.org/
没有单一的答案,因为没有一个单一的configuration。 确保你对客户接受的任何数据都非常小心。
下面的Apacheconfiguration指南可能会有所帮助,但是您需要了解您正在运行的应用程序:
DISA Apache指南
独联体Apache基准