security - Apache 安全默认安装权限

标签 security user-controls ubuntu apache2 apache-config

我最近在我的 Ubuntu 机器上安装了 apache2,并且对安全性和用户权限有一些疑问。我知道如何监听其他端口,使用 -Indexes 隐藏索引以及如何在同一台机器上创建/禁用新的虚拟主机,但是我不确定标准安装配置中已经预设了很多用户选项。

谁能准确解释这个文件允许用户在系统上做什么?我花了很多时间查看 Apache 帮助指南和文档,但它非常触手可及,因为我真正需要的大部分是首先了解这里发生的事情。请帮忙。

cat/etc/apache2/sites-available/default

<VirtualHost *:80>
 ServerAdmin webmaster@localhost

 DocumentRoot /var/www
 <Directory />
  Options FollowSymLinks
  AllowOverride None
 </Directory>
 <Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews
  AllowOverride None
  Order allow,deny
  allow from all
 </Directory>

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
  AllowOverride None
  Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>

 ErrorLog /var/log/apache2/error.log

 # Possible values include: debug, info, notice, warn, error, crit,
 # alert, emerg.
 LogLevel warn

 CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

最佳答案

如果 Ubuntu 默认 Apache 配置中存在安全问题,Canonical 会修复它。

话虽如此,有一些方法可以加强您的安装。最重要的是你应该考虑安装mod_security .如果比 Apache 更具破坏性,那就是它所暴露的逻辑。 PHP 经常被错误配置,所以你应该运行 PHPSecInfo并尽可能多地去除红色和黄色。

任何值得使用的 Web 应用程序漏洞扫描程序都会提示无法查看目录列表,所以 -Indexes .在生产系统上是必需的。

使用高级 LFI attack 将日志文件放在可预测的位置可用于远程执行代码。 .

您还应该遵循“最小权限访问”的原则。如果您不需要/cgi-bin,请将其删除。

关于security - Apache 安全默认安装权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3832789/

相关文章:

security - OCSP 吊销检查整个证书链

security - SSL 实际上是如何工作的?

c# - 一般如何在 DateTimePicker-Control/Controls 中获取按钮的宽度?

WPF - 哪个更好?风格还是用户控制?

c# - 在 "inner"用户控件上使用 Caliburn.Micro 绑定(bind)功能

java - 当我们重新导入 jar 文件时,它是否会更改编码文本文件的内容?

PHP:显示信息的最佳安全实践?

windows - 关于 Qt Shadow Build for Ubuntu 或 Win

ubuntu - Ubuntu 中的三个 linux-image 变体有什么区别?

linux - 无法在 golang 中捕获 upstart 发送的 SIGTERM