基於Cent OS7搭建apache網站後的訪問控制配置詳解

在一臺centos7上搭建apache網站後,通常都是容許全部人訪問的,那麼可能會有一些特殊狀況,須要對訪問網站的人進行限制,出於這種狀況,apache能夠經過Require配置項,來對客戶端進行一些訪問限制,能夠基於IP地址、網段、主機名或域名。使用名稱「all」時表示任意地址。web

安裝apache服務的參考博文:http://www.javashuo.com/article/p-qamvjqdc-mt.htmlapache

一、客戶機地址限制:vim

限制策略的經常使用格式有下面幾種:centos

  • Require all granted:表示容許全部主機訪問(也是默認的);
  • Require all denied:表示拒絕全部主機訪問;
  • Require local:表示僅容許本地主機訪問;
  • Require [not] host <主機名或域名列表>:表示僅容許或拒絕指定主機或域名訪問;
  • Require [not] ip <地址或網段列表>:表示僅容許或拒絕指定IP地址或網段訪問;

定義限制策略時,多個不帶not的require配置語句之間是或的關係,就是知足任意一條require配置語句就能夠訪問;瀏覽器

若即有不帶not的require配置語句,又出現了帶not的require配置語句,則語句之間是與的關係,即同時知足全部require配置語句纔可訪問。服務器

來吧,舉個栗子(只要更改了服務的配置文件,必須重啓服務,纔可生效):ide

作一個策略,僅容許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網段的主機不能訪問網站,可是別的網段的主機均可訪問,策略以下:ui

<Directory "/usr/local/httpd/htdocs">
    ................   #省略部份內容
   <RequireAll>
   Require   all  granted                      #容許全部主機訪問
     Require  not  ip  192.168.1.0/24                      #但1.0網段不可訪問
     </RequireAll>
</Directory>

在上面的配置中,須要注意的是隻有訪問規則中出現了not語句,那麼必須把規則放在 <RequireAll> </RequireAll>標籤中。

二、用戶受權限制:

基於用戶的訪問控制包含認證和受權兩個過程,httpd服務器支持使用摘要認證(Digest)和基本認證(Basic)兩種方式。使用摘要認證的話須要在編譯http以前添加「--enable-auth-digest」選項,但並非全部的瀏覽器都支持摘要認證,因此不推薦使用;而基本認證是httpd服務的基本功能,不須要預先配置特別的選項。

這裏就寫一下基本認證方式吧

一、建立用戶認證數據文件:

[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的信息

二、添加用戶受權配置:

[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語句。要否則,用戶訪問受權不會生效。

相關文章
相關標籤/搜索