实验名称:Apache中间件安全实验
实验目的:Apache服务器的安全设置,练习日志分析,虚拟主机
实验环境:CentOS 7
实验步骤:
配置基本信息如下:
1、Apache2.2默认的是prefork;
2.4默认是event
一般有三种稳定的(MPM多进程处理模块)模式,分别是prefork,worke和event,代表apache的演变与发展。
查看apache的模式,使用httpd -V命令来查看
[root@localhost ~]# httpd -V
2、apache prefork的httpd.conf中的配置方式:
[root@localhost ~]# vim /etc/httpd/conf.modules.d/00-mpm.conf
3、再次查看
[root@localhost ~]# httpd -V
[root@localhost ~]# cd /etc/httpd/modules/
[root@localhost modules]# ls /etc/httpd/modules/ | grep mod_mpm
4、使用开源版查找apache prefork的httpd.conf中的配置方式(prefork模式)很古老但是非常稳定的Apache模式。
[root@localhost modules]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
5、apache worker的httpd.conf中的配置方式(worker模式)多进程和多线程的混合模式。
[root@localhost modules]# vim /usr/local/httpd/conf/extra/httpd-mpm.conf
6、apache event的httpd.conf中的配置方式(event模式)最新模式,是稳定可用的模式
event
7、Apache配置虚拟主机-配置不同域名虚拟主机。
[root@localhost ~]# vim /etc/hosts
8、创建
[root@localhost ~]# mkdir -p /var/www/{wj.net,wj.com}
[root@localhost ~]# echo “www.wj.net” > /var/www/wj.net/index.html
[root@localhost ~]# echo “www.wj.com” > /var/www/wj.com/index.html
9、查看
[root@localhost ~]# cat /etc/hosts
10、在配置文件添加以下内容
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# vim /etc/httpd/conf.d/vhosts.conf
<VirtualHost *:80>
DocumentRoot “/var/www/wj.com”
ServerName www.wj.com
ErrorLog “logs/wj.com-err.log”
CustomLog "logs/wj.com-access.log"common
<VirtualHost *:80>
DocumentRoot “/var/www/wj.net”
ServerName www.wj.net
ErrorLog “logs/wj.net-err.log”
CustomLog "logs/wj.net-access.log"common
11、重启服务
[root@localhost conf.d]# systemctl restart httpd
12、在火狐访问,用回环地址就可以
http://127.0.0.1
用http://www.wj.net
13、apache配置虚拟主机-配置Apache基本身份验证。
[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf
在编辑文件中添加以下内容
<Directory “/var/www/wj.net”>
Require all granted
<Directory “/var/www/wj.net”>
AllowOverride Authconfig
AuthType Basic
AuthBasicProvider file
AuthUserFile /etc/httpd/htpasswd
AuthNAME “Please Enter YUName Pwd!”
Require user coco
14、重启服务
[root@localhost ~]# systemctl restart httpd
15、在火狐访问
http://www.wj.net
16、另一个不需要密码
www.wj.com
17、创建目录测试indexes危险性
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir abc
18、注释掉增加的
[root@localhost ~]# vim /etc/httpd/conf.d/vhosts.conf
19、查看
[root@localhost ~]# cd /etc/httpd/conf.d/
[root@localhost conf.d]# ls
autoindex.conf userdir.conf welcome.conf
README vhosts.conf
20、改名字
[root@localhost conf.d]# mv vhosts.conf vhosts.conf.old
21、重启生效配置文件
[root@localhost conf.d]# systemctl restart httpd
22、测试文件
拥有这个权限很危险,可以在abc目录下随便查看文件
http://127.0.0.1/abc
23、在abc目录下创建一个文件测试一下
[root@localhost ~]# cd /var/www/html/abc/
[root@localhost abc]# touch qq
24、进入配置文件找到如图144行“Indexes”删除此处
[root@localhost abc]# vim /etc/httpd/conf/httpd.conf
25、重启
[root@localhost abc]# systemctl restart httpd
26、再次访问
这样才是安全的
26、在abc目录下有页面文件就好自动选择这个页面文件查看生成一个网页文件
[root@localhost abc]# echo “ww” > index.html
27、访问
29、Apache服务器日志审计。
复制日志分析练习,在[root@localhost ~]# vim rz.sh中
30、获得访问前10位的ip地址
[root@localhost ~]# cat rz.sh | awk ‘{print $1}’ | sort | uniq -c | sort -nr | head -10
31、访问次数最多的文件或页面,取前10
[root@localhost ~]# cat rz.sh | awk ‘{print $1 1}’ | sort | uniq -c | sort -nr | head -10
32、统计此日志文件中所有的流量
[root@localhost ~]# cat rz.sh | awk ‘{sum+=$10} END {print sum/1024/ 1024/1024 “G”}’
33、列出输出大于2000000byte(约200kb)的exe文件以及对应文件发生次数
[root@localhost ~]# cat rz.sh | awk ‘($10 > 200000 && $7~/.exe/){print $7}’ | sort - n | uniq -c | sort -nr | head -100
34、如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面
[root@localhost ~]# cat rz.sh | awk '($10 > 200000 && $7~/.e[root@localhost ~]# cat rz.sh | awk ‘($7-/.php/){print $NF " " $1 " " $4 " " $7}’ | sort -nr | head -20
35、列出最最耗时的页面(超时60秒的)的以及对应页面发生次数
[root@localhost ~]# cat rz.sh | awk ‘($NF > 60 && $7~/.php/){print $7}’ | sort -n | uniq -c | sort -nr | head -2
36、列出传输时间超过30秒的文件
[root@localhost ~]# cat rz.sh | awk ‘($NF > 30){print $7}’ | sort -n | uniq -c | sort -nr | head -20
37、统计404的连接
[root@localhost ~]# awk ‘($9~/404/)’ rz.sh | awk ‘{print $9,$7}’ | sort | uniq -c | head -10
38、统计HTTP Status
[root@localhost ~]# cat rz.sh | awk ‘{print $9}’ | sort | uniq -c | sort -rn
39、蜘蛛分析查看是哪些蜘蛛来访问过
[root@localhost ~]# cat rz.sh | awk ‘{print $12}’ | grep -iE ‘bot|crawler|slurp|spider’ |sort |uniq -c
至此,Apache中间件安全实验成功!