爲了更好地控制對網站資源的訪問,因此須要爲特定的網站目錄添加訪問受權。
客戶機地址限制:
經過 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 # 重啓服務使新配置生效
須要注意的是,用戶訪問受權與主機訪問控制同時設置時,設置的主機訪問控制優先生效。因此須要拒絕全部訪問,才能使用受權的用戶名來訪問網站ui