apache访问控制ip

apache访问控制

apache默认支持两种支持访问控制,一种针对目录,一种针对文件的,两种方式都会受到访问控制列表的影响

针对目录的:
<Directory>
指令1
指令2
</Directory>

针对文件:
<File ~ "file"> ~匹配正则
指令1
指令2
<File>
访问控制的类型
1.设置目录特性
2.基于主机
3.基于用户

基于主机/目录的访问控制
[root@client ~]#echo test.com >/var/www/html/index.html
[root@client ~]# vim /etc/httpd/conf/httpd.conf 修改httpd主配置文件

<Directory "/var/www/html"> 第131行
Options Indexes FollowSymLinks
AllowOverride None
#Require all granted (要求所有授权) 注释此行
Order allow,deny 访问控制匹配顺序为先允许,后拒绝
Allow from 192.168.11.1 192.168.11.12 192.168.11.11 允许此IP的客户机访问此目录的网站
</Directory>
systemctl restart httpd
[root@client ~]# curl 192.168.11.11 分别用客户机192.168.11.1、192.168.11.12、192.168.11.13访问网站,访问结果是11.1、192.168.11.12这台主机能访问网站,11.13是不能访问网站的

# apache用户认证要接上面的一起做
是指客户端在访问网站时会提示输入用户名和密码,通过验证后才能显示网页内容。

papche认证用户账号的创建工具:htpasswd
查htpasswd文件由哪个包提供: yum provides htpasswd
安装htpasswd工具的软件 : yum -y install httpd-tools

访问httpd的离线帮助手册(必须看):firefox 192.168.11.11/manual

<Directory /var/www/html/>
AuthName web1 认证名称为web1,名称是用户取的
AuthType Basic 认证类型为Basic基本认证
AuthUserFile /etc/httpd/htuser 认证的用户账号和密码的文件,此文件用htpasswd命令来生成
Require user lily 允许访问的用户账号

</Directory>

实现思路: 对/var/www/html默认主页目录做基于用户认证的访问控制。
第一步,创建用户认证账号文件。
创建基于用户认证的访问用户账号:
htpasswd -cm /etc/httpd/htuser lucy 创建lucy用户,并生成htuser账号文件,密码01
htpasswd -m /etc/httpd/htuser lily 添加lily用户到htuser文件中
cat /etc/httpd/htuser 查看htuser文件

htpasswd命令选项:
-c 创建新的htpasswd账号文件,仅用于第1次
-m 以MD5方式加密用户密码
-D 删除指定的用户账

第2步,对/var/www/html默认煮主页目录设置基于用户认证的访问控制。
vim /etc/httpd/conf/httd.conf 在文件的如下代码中编辑如下内容
131 <Directory "/var/www/html">
156井 Require all granted 注释此行
159AuthName web1
160AuthType Basic
161AuthUserFile /etc/httpd/htuser
162Require user lily
</Directory>
第3步,重启服务,访问测试
systemctl restart httpd
curl 192.168.11.11 匿名访问网站(无法访问)
curl 192.168.11.11 -u lily:01 使用此用户访问网站(正常访问)
curl 912.168.11.11 -u lucy:01 无法访问
在window10中访问网站http://192.168.11.11验证结果为提示输入用户名和密码才说明设置成功

猜你喜欢

转载自blog.51cto.com/14181888/2350941