目录
一.Apache的连接保持
二.Apache的访问控制
三.用户访问控制的实验
一.Apache的连接保持
- Apache通过设置配置文件httpd-default.conf中相关的连接保持参数来开启与控制连接保持功能
- KeepAlive决定是否打开连接保持功能,后面接OFF表示关闭,接ON表示打开。可以根据网站的并发请求量决定是否打开,即在高并发时打开连接保持功能,并发量不高时关闭此功能
- KeepAliveTimeout表示一次连接多次请求之间的最大间隔时间,即两次请求之间超过该时间的话,连接就会自动断开,从而避免客户端占用连接资源
- 在一次长连接中可以传输的最大请求数量可以使用MaxKeepAliveRequests设置,超过此最大请求数量就会断开连接。最大值的设置决定于网站中网页的内容,一般设置数量会多于网站中所有元素
二.Apache的访问控制
- 为了更好地控制对网站资源访问,可以为特定的网站目录添加访问权限
- 访问控制中有客户机地址限制、用户授权设置
- 以上两种访问控制方式都应用于httpd.conf的配置文件的目录区域<Directory 目录位置></Directory>
客户机地址限制
- 通过配置项Order、Deny from 、Allow from ,可以根据客户机的主机名或IP地址来决定是否允许客户端访问
- Order用于设置限制顺序
- Deny from 和 Allow from 配置项用于设置具体的限制内容
- allow,deny:默认拒绝所有未明确允许的客户机地址
- deny,allow:默认允许所有为明确拒绝的客户机地址
Deny from 192.168.43.155 192.168.43.166 //拒绝这两个地址访问
Allow from 192.168.43.155 192.168.43.166 //允许这两个地址访问
- 通常,网站服务器对所有客户机开放,使用如下情况,对所有人开放
<Directory "/var/www/html/网页目录">
Order allow,deny
Allow from all
</Directory>
用户权限限制
- httpd服务器支持使用Digest(摘要认证)和Basic(基本认证)
- 基于用户的访问控制包含认证和授权
- 认证是指识别用户身份;授权是指允许特定用户访问特定目录区域的过程
- 使用htpasswd工具程序,可以创建授权用户数据文件,并且维护其中的用户账号,使用 -c 表示创建新的用户
htpasswd -c /etc/httpd/conf/pwd stu //在pwd目录下创建一个stu用户
- 用户授权的配置
<Directory "/etc/httpd/conf/httpd.conf">
AuthName "Auth Directory" //定义受保护的领域名称
AuthType Basic //设置认证的类型,Baisci表示基本认证
AuthUserfile /etc/httpd/conf/pwd //设置用于保存用户账号、密码的认证文件路径
require valid-user //要求只有认证文件中合法用户才能访问,valid-user表示所有合法用户,如果授权给单个用户,可以更改指定的用户名(如stu)
</Directory>
三.用户访问控制的实验
配置DNS服务器
- 安装bind软件和httpd软件
[root@localhost ~]# rpm -q httpd
未安装软件包 httpd
[root@localhost ~]# yum install bind httpd -y
- 配置主配置文件
[root@localhost ~]# vim /etc/named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { any; };
......
- 配置区域配置文件
[root@localhost conf]# vim /etc/named.rfc1912.zones
zone "yun.com" IN {
type master;
file "yun.com.zone";
allow-update { none; };
};
- 配置区域数据文件
[root@localhost ~]# cd /var/named
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@localhost named]# cp -p named.localhost yun.com.zone
[root@localhost named]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves yun.com.zone
[root@localhost named]# vim yun.com.zone
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
www IN A 192.168.43.173
~
- 关闭防火墙,开启服务,验证服务(验证服务在客户机上)
[root@localhost named]# systemctl stop firewalld
[root@localhost named]# setenforce 0
[root@localhost named]# systemctl start named
root@localhost ~]# vim /etc/resolv.conf
# Generated by NetworkManager
search localdomain
nameserver 192.168.43.173
[root@localhost ~]# nslookup www.yun.com
Server: 192.168.43.173
Address: 192.168.43.173#53
Name: www.yun.com
Address: 192.168.43.173
[root@localhost ~]#
配置apahce
- 创建虚拟主机配置文件,限制用户权限
[root@localhost named]# cd /etc/httpd
[root@localhost httpd]# ls
conf conf.d conf.modules.d logs modules run
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
httpd.conf magic
[root@localhost conf]# mkdir demo
[root@localhost conf]#
[root@localhost conf]# ls
demo httpd.conf magic
[root@localhost conf]# vim demo/vhost.conf
<VirtualHost 192.168.43.173:80>
DocumentRoot "/var/www/html/yun"
ServerName www.yun.com
Errorlog "/etc/httpd/logs/error_yun"
Customlog "/etc/httpd/logs/access_yun" common
<Directory "/var/www/html">
AuthName "Auth Directory"
AuthType Basic
AuthUserFile /etc/httpd/conf/pwd
require valid-user
</Directory>
</VirtualHost>
- 创建主页面文件
[root@localhost conf]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# mkdir yun
[root@localhost html]# echo "<h1>This is YUN</h1>" > yun/index.html
[root@localhost html]# ls
yun
[root@localhost html]# ls yun
index.html
- 创建用户认证数据文件
[root@localhost conf]# htpasswd -c /etc/httpd/conf/pwd stu
New password:
Re-type new password:
Adding password for user stu
- 开启服务,验证服务是否正常
[root@localhost conf]# systemctl start httpd