Apache 安全设置(2)


  修改完成后,重新编译,安装apache,在修改配置文件为上边做过的,再次启动apache后,用工具扫描,发现提示信息中已经显示为windows操作系统了顺便说下,现在这个论坛,就有点不太讲究,这是论坛错误的返回信息,看了有点汗地感觉,Apache/2.2.8(Ubuntu)DAV/2 SVN/1.4.6 mod_ssl/2.2.8 OpenSSL/0.9.8g Server at forum.ubuntu.org.cn Port 80这个等于告诉恶意用户很多有用信息,虽然说不算开了门,但等于被告诉了门在那里,还是相当危险的.

三:建立安全的目录结构apache服务器包括四个目录结构ServerRoot #保存配置文件,二进制文件与其他服务器配置文件
DocumentRoot #保存web站点内容,包括HTML文件和图片等
ScripAlias #保存CGI脚本
Customlog #保存日志
Errorlog #保存错误日志


  建议的目录结构为,以上四种目录相互独立并且不存在父子逻辑关系

注:

ServerRoot目录只能为root用户访问

DocumentRoot目录应该能够被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问

ScripAlias目录应该只能被CGI开发人员和apache用户访问

Customlog和Errorlog只能被root访问

  下边是一个安全目录结构的事例:

+-------/etc/
|
| +----/http (ServerRoot)
| +----/logs (Customlog和Errorlog)
|
+-------var/www
|
| +---/cgi-bin(ScripAlias)
| +---/html(DocumentRoot)


  这样的目录结构是比较安全的,因为目录之间独立,某个目录权限错误不会影响到其他目录

四:为apache使用专门的用户与组

  按照最小特权的原则,需要给apache分配一个合适的权限,让其能够完成web服务.

  注:最小特权原则是系统安全中最基本的原则之一,限制使用者对系统及数据进行存取所需要的最小权限,保证用户可以完成任务,同时也确保被窃取或异常操作所造成的损失.

  必须保证apache使用一个专门的用户与组,不要使用系统预定的帐户,比如nobody用户与nogroup组,因为只有root用户可以运行apache,DocumentRoot应该能够被管理web站点内容的用户访问和使用apache服务器的apache用户与组访问,例如,希望"test"用户在web站点发布内容,并且可以以httpd身份运行apache服务器,可以这样设定:

groupadd webteam
usermod -G webteam test
chown -R httpd.webteam /www/html
chmod -R 2570 /www/htdocs


只有root能访问日志,推荐这样的权限

chown -R root.root /etc/logs
chown -R 700 /etc/logs五:web目录的访问策略

  对于可以访问的web目录,要使用相对保守的途径进行访问,不要让用户查看任何目录索引列表

  禁止使用目录索引:

  apache在接到用户对一个目录的访问时,会查找DirectoryIndex指令指定的目录索引文件,默认为index.html,如果该文件不存在,那么apache会创建动态列表为用户显示该目录的内容,这样就会暴露web站点结构,因此需要修改配置文件禁止显示动态目录索引,修改httpd.conf

Options -Indexes FollowSymLinks


  Options指令通知apache禁止使用目录索引,FollowSymLinks表示不允许使用符号连接.

禁止默认访问:

  要的安全策略必须要禁止默认访问的存在,只对指定的目录开放权限,如果允许访问/var/www/html目录,使用如下设定

Order deny,allow
Allow from all


禁止用户重载:

  为了禁止用户对目录配置文件(htaccess)进行重载(修改),可以这样设定

AllowOverride None六:apache服务器访问控制

  apache的access.conf文件负责设置文件的访问权限,可以实现互联网域名和ip地址的访问控制,如允许192.168.1.1到192.168.1.254的主机访问,可以这样设定

order deny,allow
deny from all
allow from pair 192.168.1.0/255.255.255.0七:apache服务器的密码保护

  .htaccess文件是apache上的一个设置文件,它是一个文本文件,.htaccess文件提供了针对目录改变配置的方法既通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录和子目录.

  .htaccess的功能包括设置网页密码,设置发生错误时出现的文件,改变首业的文件名(如,index.html),禁止读取文件名,重新导向文件,加上MIME类别,禁止目录下的文件等.

  注:.htaccess是一个完整的文件名,不是***.htaccess或其他格式,在/abc目录下放置一个.htaccess文件,那么/abc与它的子目录都会被这个文件影响,但/index.html不会被影响.

  .htaccess的建立和使用比较复杂点,如果感兴趣的朋友可以回帖发问,这里就不具体写出来了,这种保护要比某些程序实现的保护安全,那种方法可以通过被猜测方法获取密码,用.htaccess很难被破解,但文本方式的验证会比较慢,对少量用户没影响,但对大量用户就必须使用带数据模块的验证了,这需要编译源代码时候开启模块,默认是不开启的.

八:让apache运行在"监牢"中

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/10882.html