Apache-2.2使用者權限設定與認證

來源:互聯網
上載者:User

標籤:apache   認證   使用者權限   

背景介紹

有時我們使用Apache搭建出來的web網站僅給內部某些主機訪問,或者訪問時需要通過身分識別驗證後才可以顯示,如監控主機的web頁面等,此時就需要控制訪問者的許可權和進行身分識別驗證了,本章就以此來進行介紹

一、使用者權限設定

在/etc/httpd/conf/httpd.conf設定檔中,DocumentRoot是指明web網站的根目錄所在的路徑(預設DocumentRoot "/var/www/html"),而其下的Directory容器中的部分<Directory "/var/www/html">則是對問目錄使用者權限的設定。如果我們要修改web網站的根目錄位置,在httpd-2.2版本中,只需要修改DocumentRoot後的路徑即可,不必給每一個web網站的根目錄設定許可權,而在httpd-2.4以後,每一個web網站的根目錄都需要設定許可權(即每一個DocumentRoot下面都需要有對應的<Directory "/path/to/">設定),此處就以DocumentRoot "/var/www/html"為例說明

使用yum -y install httpd 後,並在預設的DocumentRoot下面添加一些檔案,在httpd的配置文/etc/httpd/conf/httpd.conf檔案中,可以看到預設的使用者權限為

<Directory "/var/www/html">

Options Indexes FollowSymLinks

AllowOverride None

Order allow,deny

Allow from all

</Directory>

避免Apache預設歡迎首頁的幹擾,刪除/etc/httpd/conf.d/welcome.conf,使用瀏覽器登入本機,可以看到此時會將/var/www/html/目錄內的內容以列表的形式顯示650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/37/wKiom1gMhlfx6oF7AAA1aNM3diA513.png" title="1.png" style="float:none;" alt="wKiom1gMhlfx6oF7AAA1aNM3diA513.png" />

此處需要解釋下<Directory "/var/www/html">容器內的常用選項

1.options:定義資源展示方式,後跟空白字元分隔的參數,建議設定為None

(1)Indexes:當網頁不存在時目錄中的檔案已索引方式顯示

(2)FollowSymLinks:允許跟蹤網站資源下的符號連結對應的原檔案

(3)None:所有都不啟用

(4)All:所有的都啟用

(5)ExecCGI:允許使用mod_cgi模組執行CGI指令碼

(6)Includes:允許使用mod_include模組實現伺服器端包含(SSI)

(7)ncludesNOEXEC:允許包含但不允許執行指令碼

(8)MultiViews:允許使用mod_negotiation實現內容協商

(9)SymLinksIfOwnerMatch:在連結檔案屬主屬組與原始檔案的屬主屬組相同時,允許跟隨符號串連所指向的原始檔案

將Options 後面的參數改為None後再次重新整理瀏覽器,可以看到不在以索引顯示了650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/89/37/wKiom1gMhlezBg1VAAAqaGOcGRg331.png" title="2.png" style="float:none;" alt="wKiom1gMhlezBg1VAAAqaGOcGRg331.png" />

2.AllowOverride:表示當前容器的認證授權如Order allow deny等是否被覆蓋,None表示不覆蓋,如果在www/htdocs目錄下有一個/www/htdocs/fin子目錄,在<Directory "/var/www/html/fin">中AllowOverride AuthConfig則表明該容器要實現認證配置650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/89/35/wKioL1gMhliTeqKsAADpZjBkwIk153.png" title="3.png" style="float:none;" alt="wKioL1gMhliTeqKsAADpZjBkwIk153.png" />

3.Order allow|deny:設定允許、拒絕對象次序,需要注意的是allow、deny有先後順序,如果是Order Allow,Deny 則預設是拒絕;如果是Order Deny, Allow預設是允許,Allow from all 是允許所有人訪問。允許、拒絕的對象可以是IP/NETMASK,也可以是FQDN

首先建立一個index.html首頁,可以看到訪問正常(首頁必須命名為index.html

的原因是在/etc/httpd/conf/httpd.conf由設定檔中DirectoryIndex決定)650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/37/wKiom1gMhljBYYVuAAAd5e8hKOA293.png" title="4.png" style="float:none;" alt="wKiom1gMhljBYYVuAAAd5e8hKOA293.png" />

而後修改Director容器中的Order選項,拒絕我的本機電腦IP地址訪問650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/89/35/wKioL1gMhliQPQnRAAAUfavMb7s284.png" title="5.png" style="float:none;" alt="wKioL1gMhliQPQnRAAAUfavMb7s284.png" />

此時再重新整理頁面則無法正常顯示650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/35/wKioL1gMhljCs5B8AAAqaGOcGRg293.png" title="6.png" style="float:none;" alt="wKioL1gMhljCs5B8AAAqaGOcGRg293.png" />

二、路徑別名

如果一個圖片在瀏覽器顯示的資源位置為:www.contoso.com/images/picture,按照常規路徑,picture檔案應該是在/var/www/html/images目錄下,有時候我們也可以將images目錄放在別的地方,使用別名的方式重新導向,在主設定檔/etc/httpd/conf/httpd.conf中,使用Alias /images/ "/data/images/"設定重新導向,需要注意的是如果fakename與realname結尾要麼都帶/,要麼都不帶650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/89/37/wKiom1gMhlign3LzAABMhyyHf9Y473.png" title="7.png" style="float:none;" alt="wKiom1gMhlign3LzAABMhyyHf9Y473.png" />

三、使用者認證

用於認證的模組必須是存在於主設定檔並載入的模組,並使用mkdir -p建立/etc/httpd/conf/.htpasswd隱藏檔案存放認證賬戶和密碼650) this.width=650;" src="http://s1.51cto.com/wyfs02/M01/89/35/wKioL1gMhlihre3jAAA5HA3iOgY197.png" title="8.png" style="float:none;" alt="wKioL1gMhlihre3jAAA5HA3iOgY197.png" />

然後再到主設定檔的<Directory "/var/www/html/fin">容器中添加如下內容:

<Directory "/var/www/html/fin">

Options None

AllowOverride AuthConfig

AuthType basic #基於basic的明文認證方式,也可以是digest認證,認證資訊存放於檔案系統、資料庫、Ldap中

AuthName "Private web" #安全區域的提示名稱資訊

AuthBasicProvider file#存放認證的方式,預設是系統檔案格式,可以不寫

AuthUserFile "/etc/httpd/conf/.htpasswd"   #基於使用者密碼認證檔案存放位置,檔案中存放的使用者可以訪問該網站

Require valid-user #所有存在於AuthUserFile中的使用者都可以訪問該網站,或者使用Require user $username  指定AuthUserFile中的那些使用者可以訪問,多個使用者名稱空格隔開

</Directory>

此時再重新整理頁面,就會出現輸入帳號密碼的彈窗650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/89/37/wKiom1gMhliw1nMjAABe3GUYzGY843.png" title="9.png" style="float:none;" alt="wKiom1gMhliw1nMjAABe3GUYzGY843.png" />


使用命令建立tom、jerry、andy使用者,資訊存放在.htpasswd檔案中,重讀設定檔

 htpasswd -c -m /etc/httpd/conf/.htpasswd tom

 htpasswd -c -m /etc/httpd/conf/.htpasswd jerry

 htpasswd -c -m /etc/httpd/conf/.htpasswd andy

-c :首次建立使用者密碼檔案的時候需要指定-c,僅第一次需要,以後就不需要指定了

-d :使用CRYPT密碼編譯演算法對使用者密碼檔案加密

-m :強制指定使用md5密碼編譯演算法對密碼進行密碼檔案加密

-p :不加密使用者密碼檔案

-s :強制使用SHA加密啊演算法對使用者密碼檔案進行加密

-D :刪除指定使用者

建立/var/www/html/fin目錄,再在其中建立一個index.html檔案,此時重新整理瀏覽器

會看到在<Directory "/var/www/html/fin">容器中定義的AuthName在此處顯示(Google瀏覽器不會顯示)

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M02/89/37/wKiom1gMhlnidIj_AAAxQK__TXc096.png" title="10.png" style="float:none;" alt="wKiom1gMhlnidIj_AAAxQK__TXc096.png" />

輸入用htpasswd建立的帳號和密碼後,網頁就正常開啟了

650) this.width=650;" src="http://s1.51cto.com/wyfs02/M00/89/35/wKioL1gMhlmjc0VYAAAn38zImkI463.png" title="11.png" style="float:none;" alt="wKioL1gMhlmjc0VYAAAn38zImkI463.png" />

四、Http伺服器常見響應報文代碼含義

1XX:資訊性狀態代碼

100:Continue

2XX:成功狀態代碼

200:OK

201:Created OK

3XX:重新導向狀態代碼

301:Moved Permanebtly 永久重新導向,在響應報文中使用首部“Location:URL”指定資源現在所在的位置

302:Found 臨時重新導向,在響應報文中使用首部“Location:URL”指定臨時資源位置

304:Not Modified,條件式請求中使用

4XX:用戶端的錯誤

403:Forbidden,請求被伺服器拒絕

404:Not Found,伺服器無法找到請求的URL

405:Method Not Allowed,不允許使用此方法請求響應的URL

5XX:伺服器類的錯誤

500:Internal Server Error,伺服器內部錯誤

502:Bad Gateway:Proxy 伺服器從上遊收到一條偽響應

503:Service Unavailable,伺服器此時無法提供服務,但將來可能可用





本文出自 “兔樣兔森破” 部落格,請務必保留此出處http://arkling.blog.51cto.com/2844506/1864759

Apache-2.2使用者權限設定與認證

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.