web网站管理

    科技2022-07-11  175

    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

    验证:

    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

    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 需要用户授权访问

    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

    Processed: 0.009, SQL: 8