Apache配置
查看Web服务器(apache)的配置文件
运行环境
[root@verify01 ~]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@verify01 ~]# uname -a
Linux verify01 2.6.32-504.12.2.el6.x86_64 #1 SMP Wed Mar 11 22:03:14 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
[root@verify01 ~]# httpd -version
Server version: Apache/2.2.15 (Unix)
Server built: Oct 16 2014 14:48:21
确认设置项目
服务器令牌
指定[server:]部分的信息级别可以在HTTP响应头中进行设置。
可选的参数为[Major|Minor|Min|Prod|OS|Full],其中默认值为[OS]。
我们可以设置一些参数然后检查响应头。检查方法可以使用w3m仅提取响应头的方式。
另一种方法是使用WireShark来查看。
以下是使用w3m -dump_head [serverIP|URL]命令确认的头部信息。
操作系统(默认)
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 11:25:44 GMT
Server: Apache/2.2.15 (CentOS)
Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
ETag: "4064d-44-51371227cebe8"
Accept-Ranges: bytes
Content-Length: 68
Connection: close
Content-Type: text/html; charset=UTF-8
生产
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 11:29:21 GMT
Server: Apache
Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
ETag: "4064d-44-51371227cebe8"
Accept-Ranges: bytes
Content-Length: 68
Connection: close
Content-Type: text/html; charset=UTF-8
完整显示所有信息
HTTP/1.1 200 OK
Date: Sat, 11 Apr 2015 11:30:09 GMT
Server: Apache/2.2.15 (CentOS) DAV/2
Last-Modified: Sat, 11 Apr 2015 11:25:14 GMT
ETag: "4064d-44-51371227cebe8"
Accept-Ranges: bytes
Content-Length: 68
Connection: close
Content-Type: text/html; charset=UTF-8
根据上述结果,为了提高安全级别,最好选择Prod。换句话说,使用Full或默认的操作系统可能会暴露发行版和中间件的详细信息,从而可能造成攻击。
日志格式/自定义日志
用于指定access_log/error_log等输出格式和输出位置的参数。可以保持默认设置,但是自定义设置可以帮助分析。
日志格式
指定日志文件中输出信息的格式。默认情况下,以下格式已设置。
構文:LogFormat formatnickname [nickname]
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
然而,用反斜杠转义的字符将直接记录在日志中。
%{hogehoge}i 指定了HTTP请求头的hogehoge。
如果将[LogFormat nickname1 nickname2]设定为,nickname2将引用nickname1。
此外,每个格式字符串都有其特定含义。对于默认的combined格式,其含义如下所示。
自定义日志记录
指定日志文件的名称和格式。默认情况下,如下所示。
構文: CustomLog file|pipe format|nickname
CustomLog logs/access_log combined
为了分析这个句子结构,与[ServerRoot]有关。默认情况下,它被设置为以下内容。
ServerRoot "/etc/httpd"
ServerRoot指定的路径在httpd.conf文件中,指示的是/etc/httpd目录下。
因此,由CustomLog指定的日志文件将保存到先
/etc/httpd/logs/access_log
然而,logs是一个符号链接。让我们验证一下它最终保存的位置。
[root@verify01 httpd]# pwd
/etc/httpd
[root@verify01 httpd]# ll
合計 8
drwxr-xr-x. 2 root root 4096 4月 11 21:19 2015 conf
drwxr-xr-x. 2 root root 4096 4月 11 20:13 2015 conf.d
lrwxrwxrwx. 1 root root 19 4月 11 20:13 2015 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root 29 4月 11 20:13 2015 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root 19 4月 11 20:13 2015 run -> ../../var/run/httpd
因此,访问日志已保存在以下位置。
/var/log/httpd/access_log
(基于名称的) 虚拟主机
当特定的主机名被指定请求时,执行另一个指定的处理。
是一种有效的技术,用于当访问具有指定主机名的URL时,显示其他文档根目录中的内容。
此外,还可以模拟将两个Web服务器集成为一个。作为配置,进行如下设置。
NameVirtualHost *:80
<VirtualHost *:80>
ServerName www.virtual1.com //待ち受ける名前
DocumentRoot /www/virtual1
</virtualHost>
<VirtualHost *:80>
ServerName www.virtual2.com
DocumentRoot /www/virtual2
</VirtualHost>
# www.virtual1.comでリクエストされた場合は,/www/virtual1のコンテンツを表示,
# www.virtual2.comでリクエストされた場合は,/www/virtual2のコンテンツを表示させるように設定することが可能である.