Web服務基礎四之Apache訪問控制

基於客戶端地址的訪問控制html

經過對客戶端IP地址的限制能夠加強服務器的安全性,客戶端IP地址限制只能針對服務器上的某個目錄進行設置,大體格式以下:apache

317 <Directory "/var/www/html">
338     AllowOverride None
343     Order allow,deny
344     Allow from all
346 </Directory>

<Directory "/var/www/html">...</Directory>表示對站點的主目錄設置,「Order allow,deny」表示默認拒絕全部客戶端訪問,而後再配合使用「Allow from」語句指定容許訪問的客戶端。若是是要設置拒絕訪問的客戶端,那麼就得反過來,先用「Order deny,allow」容許全部客戶端訪問,而後再配合使用「deny from」拒絕指定的客戶端。設置容許訪問的地址能夠是多個,地址之間用空格間隔,如deny from 10.15.72.73 10.16.72.83vim

如不容許Client訪問Apache Server:安全

Apache server ip:10.15.72.38   Client:10.15.72.73bash

當前訪問Apache Server:服務器

wKioL1Lcutbw4LB_AACJrQbTEFk033.jpg

修改Apache不容許訪問:微信

[root@justin html]# vim /etc/httpd/conf/httpd.conf
 317 <Directory "/var/www/html">
 331     Options Indexes FollowSymLinks
 338     AllowOverride None
 343     Order deny,allow
 344     Deny from 10.15.72.73
 346 </Directory>
[root@justin html]# service httpd restart
中止 httpd:                                               [肯定]
正在啓動 httpd:                                           [肯定]
[root@justin html]#

wKioL1Lcu--AiXw1AAXfLwLAYuw603.jpg


Client沒法訪問Apache Server運維

對虛擬目錄設置訪問控制
ide

如對bbs的虛擬目錄/virdir設置,設置前:學習

wKiom1LcwgijAo88AACanhmxv6o403.jpg

[root@justin html]# vim /etc/httpd/conf/httpd.conf
1010 NameVirtualHost 10.15.72.38:80
1011 <VirtualHost 10.15.72.38:80>
1012     DocumentRoot /var/www/html/bbs
1013     ServerName bbs.justin.com
1014     Alias /virdir "/home/www/virdir"
1015     <Directory "/home/www/virdir">
1016 #   order allow,deny
1017     order deny,allow
1018     deny from 10.15.72.73
1019     </Directory>
1020 </VirtualHost>

設置後:

wKioL1LcwiOQAGxeAAD0sdOFSZk497.jpg


基於用戶的訪問控制

在實際應用中,咱們大都是但願經過對用戶進行身份驗證從而來進行訪問控制,Apache支持的身份驗證方法有基本認證(Basic)和摘要認證(Digest)兩種,應用較多的一樣是基本認證,如下介紹基本認證。

基於用戶的訪問控制也是隻能針對服務器上的某個目錄進行設置,設置內容必須包含在<Directory 目錄> …… </Directory>的區域中。

如設置只容許justin一、justin2能夠訪問apache主目錄,其餘用戶沒法訪問:

一、修改主配置文件中MAIN SERVER參數

317 <Directory "/var/www/html">
331     Options Indexes FollowSymLinks
338     AllowOverride None
343     Order allow,deny
344     allow from all
345     AuthName "html"
346     AuthType Basic
347     AuthUserFile /etc/httpd/conf/.htpasswd
348     require valid-user
349 </Directory>

   AuthName:定義受保護的領域名稱,客戶端訪問時在彈出的認證登錄對話框中將顯示該名稱。

   AuthType:設置認證的類型,Basic爲基本認證

   AuthUserFile:設置用於保存用戶賬號、密碼的認證文件路徑。(文件能夠自由定義,但一般都是保存於/etc/httpd/conf目錄中,並採           用.htpasswd的文件名,文件名前面加.表示隱藏文件。)

    require valid-user:受權給認證文件中的全部有效用戶。這一項也能夠寫成「require user [用戶名]」,指定一個具體的用戶,這樣不管認證文件中如何定義,也只有該用戶才能夠訪問。

二、添加認證用戶

這個認證用戶與系統用戶沒有任何關係,不須要先建立相應的系統用戶,能夠直接來添加認證用戶。

[root@justin html]# htpasswd -cm /etc/httpd/conf/.htpasswd justin1
New password:
Re-type new password:
Adding password for user justin1
[root@justin html]# htpasswd -m /etc/httpd/conf/.htpasswd justin2
New password:
Re-type new password:
Adding password for user justin2
[root@justin html]# cat /etc/httpd/conf/.htpasswd
justin1:$apr1$Zii8HQ7.$0EBdyJmQixiLifXuRDk7O/
justin2:$apr1$uUzIxR4R$e8vtC61eUdURYOY3F6rlj.
[root@justin html]# service httpd restart
中止 httpd:                                               [肯定]
正在啓動 httpd:                                           [肯定]
[root@justin html]#

-c:建立用戶認證文件   -m:MD5加密 ;由於建立justin1時候已經生成了認證文件/.htpasswd,後面就不須要在加參數,只須要把用戶寫入認證文件便可。

三、訪問Apache服務

wKioL1Lcy3rjOcQdAAGysccGoSA243.jpgwKiom1Lcy57jARqjAACFAdqAGn0209.jpg

上面定義的AuthName "html"就顯示在上圖中了

對虛擬目錄設置訪問控制

[root@justin html]# vim /etc/httpd/conf/httpd.conf
1013 NameVirtualHost 10.15.72.38:80
1014 <VirtualHost 10.15.72.38:80>
1015     DocumentRoot /var/www/html/bbs
1016     ServerName bbs.justin.com
1017     Alias /virdir "/home/www/virdir"
1018     <Directory "/home/www/virdir">
1019     AuthName "virdir"
1020     AuthType Basic
1021     AuthUserFile /etc/httpd/conf/.htpasswd
1022     require user justin2
1023     </Directory>
1024 </VirtualHost>
[root@justin html]# service httpd restart
中止 httpd:                                               [肯定]
正在啓動 httpd:                                           [肯定]
[root@justin html]#

訪問Apache服務,這時候輸入http://10.15.72.38/virdir會彈出身份認證對話框,此時輸入聽說justin1是沒法訪問,輸入justin2就能夠正常訪問

###########################################################

                         關注微信平臺,瞭解最新動態                                                                        

wKiom1LXmh6gi0DhAAB9yPan4t4378.jpg因爲學習階段公開的文章隨時進行完善,
修正的文章會經過微信平臺給出提示,
歡迎關注,同時但願獲得你們的指點.

Linux交流QQ羣:333212786

Linux系統運維技術交流################################################################################

相關文章
相關標籤/搜索