Apache安全设置

安装配置完Apache后, 进行一些安全配置还是很必要的.

黑客无所不能.

以特定的用户运行Apache

默认情况下, Apache会以nobody或者daemon运行, 不过最好还是让apahce以一个没有权限的用户运行, 比如: apache.

创建apache用户和用户组:

  1. groupadd apache
  2. useradd -d /usr/local/apache2/htdocs -g apache -s /bin/false apache

修改httpd.conf文件, 将运行apache的用户改为apache.

  1. # vi httpd.conf
  2. User apache
  3. Group apache

限制访问根目录

httpd.conf配置如下代码以限制访问根目录:

  1. <Directory />
  2. Options None
  3. Order deny,allow
  4. Deny from all
  5. </Directory>

给conf和bin目录设置适当的权限

confbin目录只能允许认证过的用户访问. 创建一个用户组, 把那些允许访问和修改这两个目录的用户都添加进去是一个好主意.

  1. groupadd apacheadmin #创建admin用户组
  2. chown -R root:apacheadmin /usr/local/apache2/bin #设置目录权限
  3. chmod -R 770 /usr/local/apache2/bin
  4. $ vi /etc/group #给这个用户组添加特定的用户
  5. apacheadmin:x:1121:ramesh,john

禁止目录浏览

如果不禁止目录浏览的话, 用户有可能看到你主目录或子目录下的文件列表.(现在默认都是不可浏览的了, 不过了解一下并不是坏事 :))

  1. <Directory />
  2. Options None
  3. Order allow,deny
  4. Allow from all
  5. </Directory>
  6. # (or) #
  7. <Directory />
  8. Options -Indexes
  9. Order allow,deny
  10. Allow from all
  11. </Directory>

禁止.htaccess文件

这个文件对于apache来说比较重要, 一些重写规则以及配置都写在这里面, 如果允许用户在子目录下重写这个文件, 那么原有默认的.htaccess文件就不管用了. 这是我们不想看到的, 所以做这个限制很有必要.

  1. <Directory />
  2. Options None
  3. AllowOverride None
  4. Order allow,deny
  5. Allow from all
  6. </Directory>

扩展阅读

10 Tips to Secure Your Apache Web Server on UNIX / Linux