web网站管理

web网站服务

(1)httpd服务的访问控制
作用:
控制对网站资源的访问
为特定的网站目录添加访问授权

常用访问控制方式:
客户机的限制
用户授权限制


*(2)基于客户端地址的访问控制
1.使用Require配置项实现访问控制,按先后顺序限制
2.可用于,,,,配置段中
3.Require配置项的常见语法
Require all granted 允许所有主机访问
Require all denied 拒绝所有主机访问
Require local 仅允许本地主机访问
Require [not] host <主机名或域名列表> 允许或拒绝指定主机或域访问
Require [not] ip <ip地址或网段列表> 允许或拒绝指定ip或网段访问
/usr/local/httpd

4.使用not禁止访问时要将其置于 容器中并在容器中指定相应的限制策略

5.多个不带not的require配置语句之间是‘或’关系,满足一条即可访问

Require 192.168.10.1
Require not 192.168.10.2
Require 192.168.10.10
Require 192.168.10.4

6、出现即不带not又有带not的语句,之间是‘与’关系。同时满足所有要求才可以访问

练习:
linux-1:apache服务器

练习1:仅允许192.168.10.10 访问

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
226 <Directory “/usr/local/httpd/htdocs”>

251 #Require all granted
252 Require ip 192.168.10.10
253

[root@www ~]# systemctl restart httpd

[root@localhost httpd]# netstat -anput |grep httpd

验证:

  1. linux-2 客户机 192.168.10.2
    验证:curl http://192.168.10.1

[root@ns2 ~]# curl http://192.168.10.1

403 Forbidden

Forbidden

You don't have permission to access / on this server.

2.apache服务器
[root@www ~]# tail -f /usr/local/httpd/logs/access_log

其他客户机访问时服务器会返回错误代码的网页(403)

练习2:禁止内网网段192.168.0.0/24和192.168.10.0/24的主机访问,允许其他任何主机访问

[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
226 <Directory “/usr/local/httpd/htdocs”>

251
252 Require all granted
Require ip 192.168.10.10
253 Require not ip 192.168.10.128/25 192.168.0.0/24
254
255

[root@www ~]# systemctl restart httpd

  1. linux-2 客户机 192.168.10.2

[root@ns2 ~]# curl http://192.168.10.1

403 Forbidden

Forbidden

You don't have permission to access / on this server.


(三)用户授权限制
Apache提供了认证(Authentication)与授权(Authorization)机制,当用户访问使用此机制控制的目录时,会提示用户输入用户名和密码,只有输入正确的用户名和密码的主机才可以访问该资源。

2.1  Apache的认证类型分为两种:基本(Basic)认证和摘要认证(Digest)认证两种。摘要认证比基本认证更加安全,然是并非所有浏览器都支持摘要认证,所以本节只针对基本认证进行介绍。基本认证的方式是:当Web浏览器请求经过认证模式保护的URL时,将会出现一个对话框,要求用户输入用户名和口令。用户输入后,传送给服务器,Web服务器验证它的正确性。如果正确,则返回页面;否则出现401错误。

1.创建用户认证数据库

[root@www ~]# cd /usr/local/httpd/

新建密码数据文件.awspwd,其中包含一个名为webadmin用户信息

[root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin

New password:
Re-type new password:
Adding password for user webadmin

确认用户数据库文件
[root@www httpd]# cat /usr/local/httpd/conf/.awspwd
webadmin:2tmD3LVFynBAE

在已有数据文件中添加新用户ly
[root@www ~]# htpasswd /usr/local/httpd/conf/.awspwd ly

2.添加用户授权配置

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf
……

226 <Directory “/usr/local/httpd/htdocs”>

251 #
252 #Require all granted
253 # Require not ip 192.168.10.0/24 192.168.0.0/24
254 #
255
256 AuthName “xu yao mi ma”
257 AuthType Basic
258 AuthUserFile /usr/local/httpd/conf/.awspwd
259 Require valid-user
260
261



注释:

受保护的领域名称,该内容在浏览器弹出的认证对话框中显示。
256 AuthName “xu yao mi ma”
设置认证的类型(basic基本认证)
257 AuthType Basic
用户认证账号文件
258 AuthUserFile /usr/local/httpd/conf/.awspwd
要求通过认证才能访问
varlid-user 合法用户,如果单个用户可直接指定
259 Require valid-user


[root@www ~]# systemctl restart httpd

验证用户访问授权
1.打开win7客户机使用浏览器访问尝试http://192.168.10.1
查看是否需要用户名和密码来进行访问
2. linux-2 客户机 192.168.10.2

[root@ns2 ~]# curl http://192.168.10.1
访问失败

扩展:混合模式设置

注意:主机访问控制 > 用户访问授权
设置了两种混合模式时。主机访控中允许的主机可以直接访问网站,不需要用户授权;主机访控禁止的主机在需要用户授权才能访问网站

练习:
主机访问控制:允许192.168.10.2访问
用户授权:要求合法用户访问

[root@www ~]# vi /usr/local/httpd/conf/httpd.conf
……

226 <Directory “/usr/local/httpd/htdocs”>

Require all granted

Require   ip 192.168.10.2
     AuthName "xu yao mi ma"
    AuthType Basic
    AuthUserFile /usr/local/httpd/conf/.awspwd
    Require valid-user

[root@www ~]# systemctl restart httpd

验证:
1.win7客户机 192.168.10.10
需要用户授权访问

  1. linux-2 192.168.10.2
    直接可以访问

     	二、构建虚拟web主机
    

1.虚拟Web主机、

在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机

2.httpd支持的虚拟主机类型

*基于域名的虚拟主机

*基于IP地址的虚拟主机

*基于端口的虚拟主机


(一)构建虚拟主机——基于域名

1.应用示例:
*构建2个虚拟Web站点:

。www.benet.com,IP地址为 192.168.10.1
。 www.accp.com,IP地址为 192.168.10.1

在浏览器中访问这两个域名时,分别显示不同的内容

1.为虚拟主机提供域名解析(有dns环境)

[root@dnssvr ~]# vi /var/named/chroot/etc/named.conf

……
zone “benet.com” IN {
type master;
file “benet.com.zone”;
};
zone “accp.com” IN {
type master;
file “accp.com.zone”;
};

课本有错误(benet.com后面不能有".")

cd /var/named

cp -a named.localhost benet.com.zone

cp -a named.localhost accp.com.zone

ls -ld benet.com.zone accp.com.zone

[root@dnssvr ~]# vi /var/named/chroot/var/named/benet.com.zone
@ IN SOA benet.com. admin.benet.com. (
……
@ IN NS dnssvr.benet.com.
dnssvr IN A 173.17.17.2
www IN A 192.168.10.1

[root@dnssvr ~]# vi /var/named/chroot/var/named/accp.com.zone
@ IN SOA accp.com. admin.accp.com. (
……
@ IN NS dnssvr.benet.com.
www IN A 192.168.10.1
……为基本的配置命令,需要从样本里面复制

2.为虚拟主机准备网页文档

[root@www ~]# mkdir -p /var/www/html/benetcom

[root@www ~]# mkdir -p /var/www/html/accpcom

[root@www ~]# echo “

www.benet.com

” > /var/www/html/benetcom/index.html

[root@www ~]# echo “

www.accp.com

” > /var/www/html/accpcom/index.html

3.添加虚拟主机配置
*配置独立的虚拟主机配置文件,然后在主文件里面加载即可,方便配置内容的维护

[root@www ~]# vim /usr/local/httpd/conf/extra/vhosts.conf

<VirtualHost *:80>
ServerName www.benet.com
DocumentRoot /var/www/html/benetcom
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

<VirtualHost *:80>
ServerName www.accp.com
DocumentRoot /var/www/html/accpcom
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

配置选项:
1.虚拟主机区域VirtualHost

2.目录权限Directory
继承其父目录 的授权许可即可


主文件里面加载
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf

485 # Virtual hosts
486 #Include conf/extra/httpd-vhosts.conf

添加此选项–加载独立的配置文件
487 Include conf/extra/vhosts.conf

[root@www ~]# /usr/local/httpd/bin/apachectl restart

4.在客户机分别访问虚拟Web主机
实验环境中没有配置dns,可以的hosts文件中配置主机ip映射

4.1 win7 客户机
c:\windows\system32\drivers\etc\hosts

4.2 linux主机
/etc/hosts


(二)构建虚拟主机——基于IP

应用示例:

1,构建2个虚拟Web站点:

www.benet.com,IP地址为 192.168.10.1

www.accp.com,IP地址为 192.168.10.111

[root@www ~]# ifconfig ens33:0 192.168.10.111

[root@www ~]# vim /usr/local/httpd/conf/extra/vhosts.conf

<VirtualHost 192.168.10.1:80>
ServerName www.benet.com
DocumentRoot /var/www/html/benetcom
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

<VirtualHost 192.168.10.111:80>
ServerName www.accp.com
DocumentRoot /var/www/html/accpcom
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

[root@www ~]# systemctl restart httpd

2.在浏览器中访问这两个IP时,分别显示不同的内容
http://192.168.10.1
http://192.168.10.111


(三)构建虚拟主机——基于端口

应用示例:
1.构建2个虚拟Web站点:

www.benet.com,IP地址、端口为 192.168.10.1:80

www.accp.com,IP地址、端口为 192.168.10.1:8353

[root@www ~]# vim /usr/local/httpd/conf/extra/vhosts.conf

Listen 80
Listen 8353

<VirtualHost 192.168.10.1:80>
ServerName www.benet.com
DocumentRoot /var/www/html/benetcom
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

<VirtualHost 192.168.10.1:8353>
ServerName www.accp.com
DocumentRoot /var/www/html/accpcom
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_log common
<Directory “/var/www/html”>
Require all granted

</Directory>

[root@www ~]# systemctl restart httpd

2.在浏览器中访问这两个端口时,分别显示不同的内容
http://192.168.10.1
http://192.168.10.1:8353

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值