阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 7安装部署Apache网站后配置详解

258次阅读
没有评论

共计 2143 个字符,预计需要花费 6 分钟才能阅读完成。

在一台 CentOS 7 上搭建 Apache 网站后,一般都是允许所有人访问的,那么可能会有一些特殊情况,需要对访问网站的人进行限制,出于这种情况,Apache 可以通过 Require 配置项,来对客户端进行一些访问限制,可以基于 IP 地址、网段、主机名或域名。使用名称“all”时表示任意地址。

安装 apache 服务的参考:https://www.linuxidc.com/Linux/2019-05/158640.htm

1、客户机地址限制:

限制策略的常用格式有下面几种:

  • Require all granted:表示允许所有主机访问(也是默认的);
  • Require all denied:表示拒绝所有主机访问;
  • Require local:表示仅允许本地主机访问;
  • Require [not] host < 主机名或域名列表 >:表示仅允许或拒绝指定主机或域名访问;
  • Require [not] ip < 地址或网段列表 >:表示仅允许或拒绝指定 IP 地址或网段访问;

定义限制策略时,多个不带 not 的 require 配置语句之间是或的关系,就是满足任意一条 require 配置语句就可以访问;

若即有不带 not 的 require 配置语句,又出现了带 not 的 require 配置语句,则语句之间是与的关系,即同时满足所有 require 配置语句才可访问。

来吧,举个栗子(只要更改了服务的配置文件,必须重启服务,才可生效):

做一个策略,仅允许 ip 地址为 192.168.1.2 的主机能够访问 /usr/local/httpd/htdocs 网页目录下的内容,则策略如下(进入网站主配置文件 httpd.conf 后,在末行模式下输入:/Directory,按 n 查找到相应的位置):

<Directory "/usr/local/httpd/htdocs">
    ................   #省略部分内容
    Require ip 192.168.1.2           #仅允许 192.168.1.2 的主机访问网站服务
</Directory>

OK 了,现在只有上面这个 1.2 的 ip 地址可以访问该网站了。

那么,现在换一个策略,禁止 192.168.1.0 网段的主机不能访问网站,但是别的网段的主机都可访问,策略如下:

<Directory "/usr/local/httpd/htdocs">
    ................   #省略部分内容
   <RequireAll>
   Require   all  granted                      #允许所有主机访问
     Require  not  ip  192.168.1.0/24                      #但 1.0 网段不可访问
     </RequireAll>
</Directory>

在上面的配置中,需要注意的是只有访问规则中出现了 not 语句,那么必须把规则放在 <RequireAll> </RequireAll> 标签中。

2、用户授权限制:

基于用户的访问控制包含认证和授权两个过程,httpd 服务器支持使用摘要认证(Digest)和基本认证(Basic)两种方式。使用摘要认证的话需要在编译 http 之前添加 “–enable-auth-digest” 选项,但并不是所有的浏览器都支持摘要认证,所以不推荐使用;而基本认证是 httpd 服务的基本功能,不需要预先配置特别的选项。

这里就写一下基本认证方式吧

1、创建用户认证数据文件:

[root@localhost httpd]# cd /usr/local/httpd/                    #切换至网站安装根目录
[root@localhost httpd]# bin/htpasswd -c /usr/local/httpd/conf/.aaa webadmin              #使用
htpasswd 工具创建用户,该用户与系统用户无关,.aaa 文件以. 开头,表示为隐藏目录,该
目录默认不存在,所以要加 - c 选项,在以后需要添加用户时,不能加 - c 选项,否则会覆盖原来的内容
New password:                                         #输入密码
Re-type new password:                             #确认密码
Adding password for user webadmin                             #提示添加成功

可以确认用户是否添加:


[root@localhost httpd]# cat conf/.aaa
webadmin:$apr1$YCIyEmlx$R57m0/9Tc/SbZLsLiAGev/                    #用户 webadmin 的信息

2、添加用户授权配置:

[root@localhost httpd]# vim /usr/local/httpd/conf/httpd.conf             #编辑网站主配置文件

         .............

<Directory "/usr/local/httpd/htdocs">
    authname "bbb"                 #定义受保护的领域名称
    authtype basic                   #设置认证类型,basic 表示基本认证
    authuserfile /usr/local/httpd/conf/.aaa               #设置用于保存用户账号、密码的认证文件路径
    require valid-user                          #要求只有认证文件中的合法用户才可访问。其中 valid-user 表示所有合法用户,若只授权给单个用户,可改为指定的用户名,如 webadmin。

需要注意的是,用户访问授权与主机访问控制同时设置时,设置的主机访问控制优先生效。所以在进行用户授权限制时,需要删除掉其中的 require 语句。要不然,用户访问授权不会生效。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2143字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中