淺談 Apache 的訪問控制配置

爲了更好地控制對網站資源的訪問,因此須要爲特定的網站目錄添加訪問受權。
客戶機地址限制:
經過 Require 配置項,能夠根據主機的主機名或IP地址來決定是否容許客戶端訪問,在 httpd服務器的主配置文件的 <Location>、<Directory>、<Files>、<Limit> 配置段中都可以使用 Require 配置項來控制客戶端的訪問。
經常使用格式以下:
Require all granted :表示容許全部主機訪問
Require all denied :表示拒絕全部主機訪問
Require local :表示僅容許本地主機訪問
Require [not] host <主機名或域名列表> :表示容許或拒絕指定主機或域訪問
Require [not] IP <IP地址或網段列表> :表示容許或拒絕制定IP或網段訪問
具體用法:
路徑:/usr/local/httpd/conf/httpd.conf
一、容許全部web

<Directory "/usr/local/httpd/htdocs">
  …… // 省略部份內容
        Require all granted    #容許全部主機訪問 
     </Directory>

二、僅容許某臺主機vim

<Directory "/usr/local/httpd/htdocs">
     …… //省略部份內容
        Require ip 192.168.1.20       #容許單個主機訪問
     </Directory>

三、僅拒絕某臺主機或網段(注意:在使用 not 禁止訪問時要將其置於<RequireAll></RequireAll>容器中,在容器中配置相應策略):服務器

<Directory "/usr/local/httpd/htdocs">
        …… //
        <RequireAll>
                  Require   all  granted      # 容許全部主機訪問
                            Require   not   ip  192.168.0.0/24   192.168.1.20    # 拒絕0.0網段,1.20 主機
        </RequireAll>
      </Directory>

當未被受權的客戶機訪問目錄時,將會被拒絕,顯示 HTTP 403 錯誤 報錯
用戶受權限制:
基於用戶的訪問控制包含認證(Authentication)和受權(Authorization)兩個過程,是 Apache 容許指定的用戶使用用戶名和密碼訪問特定資源的一種方式。
Apache支持使用摘要認證(Digest)和基本認證(Basic)兩種方式。注意:使用摘要認證須要在編譯 httpd 以前加上「--enable-auth-digest」
一、建立用戶認證數據文件:ide

[root@www /]# cd /usr/local/httpd/
 [root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd zhangsan
   New password:                    //-c 選項表示新創建此文件 //根據提示設置密碼
   Re-type new password:       // 省略 -c,表示指定的用戶數據文件已存在
   Adding password for user zhangsan    
  [root@www httpd]# cat /usr/local/httpd/conf/.awspwd     //確認用戶數據文件
   zhangsan:$apr1$ROjz961w$dafGJ0Uf2BRIIlaykDkJH/
   lisi:$apr1$Zke/LK3e$zlTZ1W9zwt3u5w.91LDWd/

二、添加用戶受權配置:網站

[root@www /]# vim /usr/local/httpd/conf/httpd.conf 
 <Directory  "/usr/local/httpd/htdocs">
 …… // 省略部份內容
 Require all denied
        authname "webserver"     # 定義受保護的領域名稱
        authtype basic                  # 設置認證類型
        authuserfile /usr/local/httpd/conf/.awspwd     #設置用於保護用戶帳號、密碼的認證文件路徑
        require valid-user              # 要求只有認證文件中的合法用戶才能訪問(若只受權給單個用戶,可改指定的用戶名:如 webadmin)
</Directory>
[root@www /]# systemctl restart httpd   # 重啓服務使新配置生效

須要注意的是,用戶訪問受權與主機訪問控制同時設置時,設置的主機訪問控制優先生效。因此須要拒絕全部訪問,才能使用受權的用戶名來訪問網站
淺談 Apache 的訪問控制配置
淺談 Apache 的訪問控制配置ui

相關文章
相關標籤/搜索