栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

web网站服务(二)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

web网站服务(二)

httpd服务的访问控制

为了更好地控制对网站资源的访问,可以为特定的网站目录添加访问授权。

作用

控制对网站资源的访问

为特定的网站目录添加访问授权

常用访问控制方式

客户机地址限制

用户授权限制

 基于客户端地址的访问控制

使用Require配置项实现访问控制,按先后顺序限制 可用于、、、配置段中, 注:not表示拒绝

用户授权限制

创建用户认证数据库

添加用户授权配置

验证用户访问授权

虚拟Web主机

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

httpd支持的虚拟主机类型

基于域名的虚拟主机

基于IP地址的虚拟主机

基于端口的虚拟主机

操作步骤:

客户机地址限制

Require配置项的常见语法

Require all granted——表示允许所有主机访问。

Require all denied——表示拒绝所有主机访问。

Require local——表示仅允许本地主机访问。

Require [not] host <主机名或域名列表>

Require [not] ip

注:not表示拒绝

通常情况下,网站服务器是对所有客户机开放的,网页文档目录未做任何限制,因此使用的是Require all granted策略,表示允许从任何客户机访问,具体配置如下。

vim /usr/local/httpd/conf/httpd.conf
文本下搜索 

 ......//省略部分内容
 Require all granted         //添加(默认有)
 

若只希望 禁止来自一个内网网段和一个IP地址。但允许其他任何主机访问,可以使用如下限制策略。

vim /usr/local/htpd/conf/httpd.conf
 搜索 
                    //加
Require all granted
Require not ip 192.168.1.10 192.168.2.0/24       //添加要禁止的网段或主机
                   //加

未做路径优化的重启apachectl服务

 /usr/local/httpd/bin/apachectl restart

重启后,未被授权的客户机访问网站目录时,将会拒接访问。

 因为本机地址为1.100,客户机1.10所以访问被拒绝。修改成1.0网段没有地址冲突的地址即可访问。

修改地址后可以访问的默认网页

用户授权限制

基于用户的访问控制包含认证(Authentication)和授权(Authorization)两个过程,是Apache允许指定用户使用用户名的密码访问特定资源的一种方式。

httpd服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证需要在编译httod之前添加“--enable-auth-digest” 选项,但并不是所有的浏览器都支持摘要认证;而基本认证是httpd服务的基本功能,不需要预先配置特别选项。

  • 创建用户认证数据文件

httpd的基本认证通过校验用户名,密码组合来判断是否允许用户访问。使用专门的htpasswd工具程序,可以创建授权用户数据文件,并维护其中的用户账号。

使用htpasswd工具时,必须指定用户数据文件的位置,添加“-c”选项表示新建此文件。

创建zhang3用户,/.awspwd为存放目录,新密码输入两次。

 [root@localhost ~]# cd /usr/local/httpd
 [root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd zhang3
 New password: 
 Re-type new password: 
 Adding password for user zhang3
 [root@localhost httpd]# cat /usr/local/httpd/conf/.awspwd 
 zhang3:$apr1$T1/SEmVK$k7VqIYih78oHFcfst3a.B/

已创好/.awpwd目录后创建用户取消“-c”选项,创建li4用户

 [root@localhost httpd]# bin/htpasswd /usr/local/httpd/conf/.awspwd li4
 New password: 
 Re-type new password: 
 Adding password for user li4
 [root@localhost httpd]# cat /usr/local/httpd/conf/.awspwd 
 zhang3:$apr1$T1/SEmVK$k7VqIYih78oHFcfst3a.B/
 li4:$apr1$SLNy2tvP$H36ifUr/wsz.klI1cY1bt0
  • 添加用户授权配置

有了授权用户之后还需要修改httpd.conf 配置文件,在特定的目录区域中添加授权配置,以启用基本认证并配置允许哪些用户访问。例如,若只允许.awspwd 数据文件中的任何一用户访问网页,可以执行以下操作。

注:客户机地址限制的配置需要Require all granted改成Require all denied或者注释掉。
 

   
# Require all granted                // 加#号注释掉,其他不用改
 Require not ip 192.168.1.10 192.168.2.0/24

[root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
 搜索此文件 
 ......省略部分
输入以下四行配置
authname "123.com"
authtype basic
authuserfile /usr/local/httpd/conf/.awspwd
require valid-user
 [root@localhost ~]# systemctl restart httpd.service 

上述配置文件内容中,相关配置项的含义如下:

authname:定义受保护的领域名称,该内容将在浏览器弹出的认证对话框中显示。

authtype:设置认证的类型,basic表示基本认证。

authuserfile:设置用于保存用户账号,密码的认证文件路径。

require valid-user:要求只有认证文件中的合法用户才能访问。

需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。

  • 验证用户访问授权

当再次访问网站的默认首页时,浏览器会首先弹出认证对话框。

构建虚拟web主机

基于域名的虚拟主机:相同IP,相同端口号,不同域名。

基于IP地址的虚拟主机: 不同IP相同端口。

基于端口的虚拟主机: 相同IP,相同域名,不同端口号。

基于域名的虚拟主机

  • 为虚拟主机提供域名解析

安装dns

没有dns需要安装,有的话可省略此部分

挂载系统盘安装源码包

[root@localhost ~]# mount /dev/cdrom /media
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# cd /media/Packages/
[root@localhost Packages]# rpm -ivh bind-9.9.4-37.el7.x86_64.rpm bind-chroot-9.9.4-37.el7.x86_64.rpm 

主配置文件

 [root@localhost ~]# vim /etc/named.conf

配置如图,将红框中的两行删除

添加两个区域

zone "123.com" in {
        type master;
        file "123.com.zone";
};
zone "456.com" in {
        type master;
        file "456.com.zone";
};

保存退出

区域数据1文件(正向)

[root@localhost ~]# vim /var/named/123.com.zone

文件内配置

$ttl 86400
@ in    soa     123.com.        admin.123.com. (
        201801
        3h
        15m
        1w
        1d
)
        in      ns      ns1.123.com.
ns1     in      a       192.168.1.100
www     in      a       192.168.1.100
 

区域数据2文件(正向)

[root@localhost ~]# vim /var/named/456.com.zone

文件内配置

$ttl 86400
@ in soa        456.com.      admin.456.com. (
        202253
        3h
        15m
        1w
        1d
)
        in      ns      ns1.456.com.
ns1     in      a       192.168.1.100
www     in      a       192.168.1.100

重启服务

systemctl   restart named 

 排错(没错跳过)

检查/etc/named.conf文件:

 named-checkconf  -z   /etc/named.conf

检查正向和反向数据文件:

named-checkzone  123.com  /var/named/123.com.zone

为每个虚拟web主机准备网站目录及网页文档。

[root@localhost ~]# mkdir -p /var/www/html/123com
[root@localhost ~]# mkdir -p /var/www/html/456com
[root@localhost ~]# echo "www.123.com" > /var/www/html/123com/index.html
[root@localhost ~]# echo "www.456.com" > /var/www/html/456com/index.html

 ​​​

添加虚拟主机配置

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

 VirtualHost *:80>                                   虚拟站点区域          
     ServerAdmin 123@.com                            邮箱
     DocumentRoot "/var/www/html/123com"             网站根目录 
     ServerName www.123.com                          完整名称(别名)
     ErrorLog "logs/www.123.com-error_log"           错误日志
     CustomLog "logs/www.123.com-access_log" common  访问日志
                          设置访问权限
     require all granted
     
 
 ​
 
     ServerAdmin 456@.com
     DocumentRoot "/var/www/html/456com"
     ServerName www.456.com
     ErrorLog "logs/www.456.com-error_log"
     CustomLog "logs/www.456.com-access_log" common
     
     require all granted
     
 
 

加载独立的配置文件

 [root@localhost ~]# vim /usr/local/httpd/conf/httpd.conf
 # nclude conf/extra/httpd-vhosts.conf   取消#注释

重启服务

 /usr/local/httpd/bin/apachectl restart

在客户机上访问虚拟web主机

基于IP地址的虚拟主机

对于基于IP地址的虚拟主机,每个虚拟web主机各自使用不同的IP地址,但是都通过同一台httpd服务器对外提供web浏览服务。

虚拟机临时配置IP命令如下

[root@localhost ~]# ifconfig ens33:2 192.168.1.200
 [root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
 ​
 插入模式下网站1(不同地址相同端口)
 改成
 ​        网站2 
改成        
 加载独立的配置文件
 [root@localhost ~]# vim //usr/local/httpd/conf/httpd.conf
 # nclude conf/extra/httpd-vhosts.conf   取消#注释
 [root@localhost ~]# systemctl restart httpd

在客户机上访问虚拟web主机

基于端口的虚拟主机

基于端口的虚拟机通常只用于同一个web站点,其针对的网站名称、、IP地址往往都是相同的,但通过不同的TCP端口来提供不同网页内容的服务入口。

配置基于端口的虚拟web主机时,需要通过多个 Listen配置项来指定要监听的TCP端口号,每个虚拟web主机的VirtualHost配置中应同时指定IP地址和端口号。

特别注意的是基于端口的虚拟主机需要监听端口号,如Listen 80。

[root@localhost ~]# vim /usr/local/httpd/conf/extra/httpd-vhosts.conf 
   加端口号
   ......
 ​
 
   ......
 Listen 80                       监听80端口
 Listen 8080                     监听8080端口

加载独立的配置文件并重启

[root@localhost ~]# vim //usr/local/httpd/conf/httpd.conf
 # nclude conf/extra/httpd-vhosts.conf   取消#注释
 [root@localhost ~]# systemctl restart httpd

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891358.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号