Apache访问控制与身份验证
一、Apache连接保持
Apache连接保持相关参数
1、KeepAlive
- 是否打开连接保持,OFF关闭,ON打开
2、KeepAlive Timeout
一次连接多次请求之间的最大间隔时间, 两次请求超过该时间连接断开
3、MaxKeepAliveRequests - 一次长连接能够传输的最大请求数量
直接在配置文件里面改
在虚拟主机中改
二、基于客户端地址的访问控制
- 使用Require配置项实现访问控制,按先后顺序限制
- 可用于、、 、 配置段中
- Require配置项的常见语法
Require all granted
Require all denied
Require local
Require [no0] host <主机名或域名列表>
Require inog ip <IP地址或网段列表>
使用not禁止访问时要将其置于 容器中并在容器中指定相应的限制策略
三、用户授权限制
1、创建用户认证数据库
[root@www ~]# cd /usrlocal/httpd/
[root@www httpd]# bin/htpasswd -c /usrlocalhttpd/conf/ .awspwd //新建密码文件 -c新建使用,再次建用户则不需要
webadmin
New password:
Re-type new password:
Adding password for user webadmin
[root@www httpd]# cat /usr/localhttpd/conf/.awspwd //确认用户数据库文件
webadmin:$apr1$L53Ws/Y2$3L4xhs4zZKDbJb.9p1fNg.
2、用户授权限制
1、添加用户授权配置
[root@www ~ ]# vim /tc/ttpd/conf/httpd.conf
...
<Directory "/usrlocal/httpd/htdocs">
...
AuthName "DocumentRoot" //受保护的领域名称
AuthType Basic //认证类型
AuthUserFile /etc/httpd/conf/ .awspwd //用户认证账号文件
Require valid-user //要求通过认证才能访问
</Directory>
[root@www ~ ]# systemctl restart httpd
四、实验
1、连接保持
[root@localhost ~]# yum -y install httpd bind
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
KeepAlive on
KeepAlive Timeout 600
也可以放虚拟主机中
[root@localhost ~]# vim /etc/httpd/conf/extra/vhost.conf
<VirtualHost *:80>
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
ErrorLog "logs/www.kgc.com.error_log"
CustomLog "logs/www.kgc.com.access_log" common
KeepAlive on //开启连接保持
KeepAlive Timeout 600 //断开连接保持,设置连接超时
<Directory "/var/www/html">
Require all granted
</Directory>
</VirtualHost>
2、访问控制
基于客户端地址访问控制
[root@localhost extra]# vim vhost.conf //虚拟主机配置文件(基于IP)见上个博客web虚拟机
<VirtualHost 192.168.200.110:80>
DocumentRoot "/var/www/html/kgc"
ServerName www.kgc.com
ErrorLog "logs/www.kgc.com.error_log"
CustomLog "logs/www.kgc.com.access_log" common
<Directory "/var/www/html">
<RequireALL> // ************
Require not ip 192.168.200.233 // 仅拒绝,也可以是网段Require not ip 192.168.200.0/24
Require all granted
</RequireALL> // 一定要加标签**********
</Directory>
</VirtualHost>
[root@localhost extra]# systemctl restart httpd
浏览器清理缓存
192.168.200.110 登录不上设置网站
192.168.200.130 可以登录上网站
3、身份验证,用户授权验证
htpasswd -c 密码文件路径 用户名
[root@localhost extra]# which htpasswd
/usr/bin/htpasswd
[root@localhost extra]# htpasswd -c /etc/httpd/conf/pwd jerry
New password: //设置密码abcd1234
Re-type new password: //设置密码abcd1234
Adding password for user jerry
[root@localhost extra]# cd /etc/httpd/conf
[root@localhost conf]# ls
extra httpd.conf magic pwd
[root@localhost conf]# cat pwd
jerry:$apr1$R84Tljf5$sNAHos4sTerMyfO1shDzX0
[root@localhost conf]# pwd
/etc/httpd/conf //查看所在位置
[root@localhost conf]# vim extra/vhost.conf
<VirtualHost 192.168.200.130:80>
DocumentRoot "/var/www/html/kgc02"
ServerName www.kgc.com
ErrorLog "logs/www.kgc02.com.error_log"
CustomLog "logs/www.kgc02.com.access_log" common
<Directory "/var/www/html">
AuthName "DocumentRoot" //#####添加这几句话
AuthType basic //#####
AuthUserFile /etc/httpd/conf/pwd //#####
Require valid-user //#####
</Directory>
</VirtualHost>
[root@localhost conf]# systemctl restart httpd //重启服务
去浏览器清空记录,并登陆192.168.200.130
输入账号jerry
密码abcd1234