访问限制和身份验证和虚拟主机配置的三种方式
实验:配置访问限制和身份验证登录和三种方式配置虚拟主机访问
- 设置服务访问控制
限制策略规则 all 表示任意IP地址
Require all granted 允许所有主机访问
Require all denied 拒绝所有主机访问
Require local 允许本地主机访问
Require not ip 192.168.100.30 拒绝IP地址为192.168.100.30的访问
Require not host DC01.benet.com 拒绝主机为DC01.benet.com访问网站 - 拒绝192.168.100.132访问网站
配置主配置文件
vim /usr/local/httpd/conf/httpd.conf
allow from all 允许所有主机访问
deny from hosts 192.168.100.30 拒绝192.168.100.30主机访问
重启网站
systemctl restart httpd 重启httpd服务
/etc/init.d/httpd restart 重启网站
验证
http://192.168.100.10
403拒绝 - 配置用户身份验证访问
生成基本验证身份数据库
[[email protected] ~]# htpasswd -c /usr/local/httpd/conf/.password admin 验证账户admin
[[email protected] ~]# htpasswd /usr/local/httpd/conf/.password bob 验证账户bob
配置第一个账户-c第二个不用-c 多个用户就不用加-c
查看账户
配置主配置文件
ls -ld /usr/local/httpd/conf/.password 查看数据库位置
AuthName “test” 验证域的名字
AuthType Basic 基本身份验证
AuthUserFile “/usr/local/httpd/conf/.password” 验证数据库
Require valid-user 经过身份验证的允许访问apache
重启服务
验证 - 配置虚拟主机
1) 全局配置
创建网站根目录和主页
[[email protected] ~]# mkdir -p /var/www/benetcom (创建多个目录-p)
[[email protected] ~]# mkdir -p /var/www/accpcom
[[email protected] ~]# echo “www.benet.com” > /var/www/benetcom/index.html
[[email protected] ~]# echo “www.accp.com” > /var/www/accpcom/index.html
备份主配置文件并开启支持虚拟主机
[[email protected] ~]# cp /usr/local/httpd/conf/httpd.conf /usr/local/httpd/conf/httpd.conf.bak
[[email protected] ~]# vim /usr/local/httpd/conf/httpd.conf
Include conf/extra/httpd-vhosts.conf开启支持虚拟主机
配置虚拟主机
[[email protected] ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
(使用ens32当成虚拟主机的话需要将NameVirtualHost选项指定IP地址为本机IP地址不然就会www.benet.com www.accp.com访问同一个主页)
NameVirtualHost *:80下面添加配置可以在apache主配置文件中复制
<Directory “/var/www”> 虚拟主机根目录位置
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
2) 基于IP地址
生成多个新的虚拟网卡
[[email protected] ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens32:0
[[email protected] ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-ens32:1
配置虚拟网卡
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=ens32:0 :1
DEVICE=ens32:0 :1
ONBOOT=YES
IPADDR=192.168.100.20 30
NETMASK=255.255.255.0
重启网卡
Systemctl restart network
修改虚拟主机配置文件
基于IP地址访问的
[[email protected] ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 进入虚拟主机配置文件中
33 <VirtualHost 192.168.100.20:80> 开始和配置IP地址
34 DocumentRoot “/var/www/benetcom/” 网站根目录
35 ServerName www.benet.com 域名
36 ErrorLog “logs/www.benet.com.com-error_log” 错误日志
37 CustomLog “logs/www.benet.com-access_log” common 成功日志
38 结束
40 <VirtualHost 192.168.100.30:80>
41 DocumentRoot “/var/www/accpcom/”
42 ServerName www.accp.com
43 ErrorLog “logs/www.accp.com.com-error_log”
44 CustomLog “logs/www.accp.com-access_log” common
45
验证
3) 基于域名
安装DNS服务
切换系统光盘并挂载
安装DNS服务
备份DNS服务主配置文件
清空主配置文件并手写
[[email protected] ~]# echo “” > /etc/named.conf
检查dns主配置文件是否有问题
[[email protected] ~]# named-checkconf /etc/named.conf
配置正向解析文件
Benet
[[email protected] ~]# vim /var/named/benet.com.zone
$TTL 86400
@ SOA benet.com. root.benet.com. (
2020061141
1H
15M
1W
1D
)
@ NS centos01.benet.com.
www A 192.168.100.20
centos01 A 192.168.100.20
检查dns主配置文件是否有问题
[[email protected] ~]# named-checkzone benet.com /var/named/benet.com.zone
复制benet的正向解析文件到accp中并使用
:%s/benet.com/accp.com/g 进行替换域名
:%s/192.168.100.20/192.168.100.30/g 进行替换IP地址
检查正向解析服务
[[email protected] ~]# named-checkzone accp.com /var/named/accp.com.zone
验证
客户端指定一下DNS地址
4) 基于端口号
在vim /usr/local/httpd/conf/httpd.conf中添加监听端口
配置改为同IP地址同域名不同端口号
<VirtualHost 192.168.100.10:8080>
DocumentRoot “/var/www/benetcom/”
ServerName www.benet.com
ErrorLog “logs/www.benet.com.com-error_log”
CustomLog “logs/www.benet.com-access_log” common
<VirtualHost 192.168.100.10:8181>
DocumentRoot “/var/www/accpcom/”
ServerName www.benet.com
ErrorLog “logs/www.accp.com.com-error_log”
CustomLog “logs/www.accp.com-access_log” common
重启
[[email protected] ~]# systemctl restart httpd
验证
配置使用域名访问验证
注释掉accp.com区域
将benet.com正向解析区域IP地址的绑定改为192.168.100.10
基于上面的端口配置添加这俩条件即可做到域名访问不同端口号
验证