Apache安全配置

1 安全策略

1.1 安全目录

.htaccess做目录安全保护的,欲读取这保护的目录需要先键入正确用户帐号与密码。这样可做为专门管理网页存放的目录或做为会员区等。

AllowOverride All

LoadModule rewrite_module modules/mod_rewrite.so

在自动要认证的目录下建立. htaccess文本(windows中用记事本另存为建立)

1.1.1 .htaccess配置:

(.htaccess文件可以相当于当前目录的httpd.conf配置,设置时尤其注意.htaccess文件的访问权限,避免被有心人恶意修改,后果不堪设想)

AuthName HIHIHI指的是要求你输入用户名和密码时的提示信息

AuthType Basic表示需要的认证类型

AuthUserFile c:\ss指的是保存用户名和密码的文件位置(.htpasswd),在这个例子中指的是.htpasswd文件,位置和我们的.htaccess文件相同

Require valid-user指定只有.htpasswd文件包含的合法用户才能访问。

1.1.2 .htpasswd配置

用户名:密码

aaa:aaa

不一定在.htaccess文件下配置,也可以在httpd.conf(主配置)下进行配置,这样可以提高apache工作效率,否则客户端访问Web是Apache都会在每一个目录下寻找.htaccess文件,会降低Apache效率,而且.htaccess被有心人修改了就危险了

1.2 错误页面

ErrorDocument 500 "The server made a boo boo."

ErrorDocument 404 /missing.html

ErrorDocument 404 "/cgi-bin/missing_handler.pl"

ErrorDocument 402 http://www.js.com/subscription_info.html

2 安全隐患

2.1 目录泄露

<Directory "/usr/local/apache/htdocs">

Options -Indexes FollowSymLinks

AllowOverrride None

Order allow,deny

Allow from all

</Directory>

在Indexes前加-或去掉

2.2 符号连接追踪

<Directory "/usr/local/apache/htdocs">

Options Indexes -FollowSymLinks

AllowOverrride None

Order allow,deny

Allow from all

</Directory>

在FollowSymLinks前加-或去掉

2.3 Listen指令具体化

httpd.conf包含一个"Listen 80”指令。应将其改变为指定邦定的IP,如果在多IP的环境下尤其注意

2.4 版本泄露

在httpd.conf中添加:

ServerTokens ProductOnly

ServerSignature Off

2.5 运行权限

Apache在windows中的默认运行权限是系统权限,若黑客找到漏洞,就可以将整个服务控制,所以必须将Apache运行权限降到最低,这样可以避免发生安全事故

2.6 清除httpd.conf中默认的注释

在这400行中,只有一小部分是实际的Apache指令,其余的仅是帮助用户如何恰当地在httpd.conf中放置指令的注释。根据笔者的经验,这些注释有时起负面作用,甚至将危险的指令留存于文件中。笔者在所管理的许多 Apache服务器上将httpd.conf文件复制为其它的文件,如httpd.conf.orig等,然后完全清除多余的注释。文件变得更加容易阅读,从而更好地解决了潜在的安全问题或者错误地配置文件。

2.7 欺骗攻击者

修改版本名:

修改系统名:

2.8 apache解析漏洞:

<FilesMatch ".(php.|php3.)">

Order Allow,Deny

Deny from all

</FilesMatch>

2.9 apache设置上传目录无执行权限

关闭路径/www/home/upload的php解析:

<Directory “/www/home/upload”>

<Files ~ “.php”>

Order allow,deny

Deny from all

</Files>

</Directory>

2.10 apache限制目录

php_admin_value open_basedir /var/www

2.11 http 请求方法安全

OPTIONS 方法可以检测出当前资源可以请求的方法,关闭该方法的配置:

<Location />

<Limit OPTIONS>

Deny from all

</Limit>

</Location>

2.12 不允许访问指定扩展名

<Files ~”\..inc$”>

Order allow,deny

Deny from all

</Files>

2.13 禁止访问某些指定目录

<Directory ~“^/var/www/(.+/)*[0-9]{3}”>

Order allow,deny

Deny from all

</Directory>

2.14 通过文件匹配进行禁止

<FilesMatch \.(? i: gif| jpe? g| png)$>

Order allow,deny

Deny from all

</FilesMatch>

2.15 禁止针对URL相对路径的访问

<Location /dir/ >

Order allow,deny

Deny from all

</Location>

3 其他安全配置

3.1 Options

Options参数代表的意思

ALL用户可在此目录中做任何事

ExecCGI允许在此目录中执行CGI script

FollowSymLinksSever可利用symbolic link链接到不在此目录中的档案或目录

IndexesSever可以产生此目录中的档案列表

Includes提供SSI的功能

IncludesNOEXEC可使用SSI功能,但取消#exec与#include 的CGI 功能

MultiViews允许经由交谈而取得不同的文件,例如可由浏览器要求传送法文版的网页`

None安全不允许存取此目录

SymLinkslfOwnerMatch允许存取symbolic links链接的目录,但仅限于该目录的拥有人

3.2 AllowOverride

AllowOverride None表示不要读取.htaccess文档

AllowOverride AuthConfig允许做基本的用户名和口令验证

AllowOverride Allall表示以.htaccess的内容为准,改变原来的访问权限

3.3 Location

#<Location /server-status>          ←<Location>與<Directory>类似,但是是用來限制URL

#SetHandler server-status

#order deny,allow

#deny from all

#allow from .your_domain.com

#</Location>

#<Location /server-info>           ←此区块可显示出服务程序的设定,必须有加入mod_info.c模块才有作用

#SetHandler server-info

#order deny.allow

#deny from all

#allow from .your_domain.com

#</Location>

#<Location /cgi-bin/phf*>          ←此区块是因为Apache以前版本的bug,有些人会用来攻击

#deny from all                                系统,启用此区块可将其导向到ErrorDocument指定的网页。

#ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi

#</Location>

3.4 from

allow from all    ←允許所有使用者存取

# allow from flag.com.tw           ←只允許來自於flag.com.tw domain存取,但要先"deny from all"才能拒絕其它地方連進來

# deny from 203.74.205            ←拒绝来自于203.74.205

3.5 减少CGI和SSI风险

减少SSI脚本风险,如果用exec等SSI命令运行外部程序,也会存在类似CGI脚本风险,除了内部调试程序时,应使用

option命令禁止其使用:

Option IncludesNOEXEC

若要使用CGI或SSI可以使用suEXEC进行配置

3.6 使用ssl加固Apache

link

时间: 2024-09-27 04:34:09

Apache安全配置的相关文章

Apache 性能配置优化

前言 最近在进行apache性能优化设置.在修改apache配置)文件之前需要备份原有的配置文件夹conf,这是网站架设的好习惯.以下的apache配置调优均是在red had的环境下进行的. httpd 相关查看命令了解 查看当前安装模块mpm(多路处理器) [[email protected] ~]# httpd -l 查看httpd进程数(即各个mpm模式下Apache能够处理的并发请求数) [[email protected] ~]# ps -ef | grep httpd | wc -

Apache的配置详解,最好的Apache配置文档

http://blog.csdn.net/apple_llb/article/details/50253889 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd.conf文件中修改. 主站点的配置(基本配置) (1) 基本配置: ServerRoot "/mnt/software/apache2" #你的apache软件安装的位置.其它指定的目录如果没有指定绝对路径,则目录是相对于该目录. PidFile logs/httpd.pid #第一个htt

apache https配置步骤

apache https配置步骤 1.  确认是否安装ssl模块 是否有mod_ssl.so文件 2.  生成证书和密钥 linux下 步骤1:生成密钥 命令:openssl genrsa 1024 > server.key 说明:这是用128位rsa算法生成密钥,得到server.key文件 步骤2: 生成证书请求文件 命令:openssl req -new -key server.key > server.csr 说明:这是用步骤1的密钥生成证书请求文件server.csr, 这一步提很多

Apache之——配置虚拟主机

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48140649 一.修改httpd.conf文件 首先我们在Apache的安装目录的conf下,找到httpd.conf文件,如下图: 打开文件,在文件中找到如下代码: DocumentRoot "D:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs" 这行代码代表的是apache的默认访问路

Apache之——配置虚拟目录

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/48142201 一.配置 Apache配置虚拟目录主要是修改httpd.conf文件就可以了. 打开httpd.conf文件,找到如下代码: <IfModule dir_module> DirectoryIndex index.html </IfModule> 如图所示: 在这段代码的下面添加如下代码: #配置虚拟目录 <IfModule dir_module&

Apache+Php配置(亲测可用)

引言: 在软件项目中,Maven提供了一体化的类库管理系统,非常实用.但是,如果新增的类库jar在网络上无法获取到,如何在本地按照Maven的规则添加进来呢?本文将通过一个小例子展示新增过程. 背景介绍: 一个Maven管理的Java项目,提供一个系统级别的POM.xml,其中定义了整个项目使用的类库. 需求: 需要添加一个自定义的类库到当前项目中.假定当前的类库文件名为:abc.jar.. 如何将类库添加进来? 1.  找到当前Maven的Repository类库位置 一般默认情况下,在win

Apache安装配置步骤

注释:这里以Linux 红帽商业版为例~~~~~~~纯手打啊 Apache安装配置步骤 准备:关闭其他虚拟设备 #/etc/init.d/libvirtd stop #/etc/init.d/xend stop #chkconfig libvirtd off #chkconfig xend off 一.安装步骤 1.把光驱载入到系统当中: 2.安装 二.配置步骤 1.配置IP地址: 2.进入/etc/httpd/conf目录,使用cp命令备份配置文件(httpd.conf),并用vim打开 3.

【只需3步】手动安装Apache以及配置(亲测可行)

redhat6采用centos yum源. 第一步下载apache依赖的软件包并安装 安装 apr下载地址:http://apr.apache.org/download.cgi 解压包:tar -jxvf apr-1.5.0.tar.bz2 注意:这里的包的格式是tar.bz2格式,如果是.tar格式的用 tar -zxvf +包的名字 命令解压. 进入该包的文件夹内,依次执行以下命令: ./configure --prefix=/work/installed/apr (注意:configure

apache中配置php支持模块模式、cgi模式和fastcgi模式

apache中配置php支持模块模式.cgi模式和fastcgi模式 首先安装apache.MySQL和PHP,依次顺序安装. 1.apache.mysql的安装比较简单,略过 2. php的安装,我安装的是php5.3.6内置了php-fpm,所以不需要再单独下补丁了. ./configure –prefix=/usr/local/php5 /--with-mysql=/usr/local/mysql /--enable-fpm--with-apxs2=/usr/local/apache/bi

JSP / JDK和Apache的配置

系统环境:Windows7 x64 Ultimate chs 1.首先安装jdk,可以再oracle官网下载到,此处安装jdk6.0版本. 2.配置jdk环境变量: 我的电脑-->属性-->高级系统设置-->高级-->环境变量--> 新建系统变量:变量名:JAVA_HOME变量值:C:\Program Files (x86)\Java\jdk1.6.0_11 新建用户变量:变量名:CLASS_PATH变量值:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\