Web網站服務(二)

SunZhongTong發表於2020-10-07

httpd服務的訪問控制

httpd服務的訪問控制
作用:
*控制對網站資源的訪問
*為特定的網站目錄新增訪問授權

常用訪問控制方式:
*客戶機地址限制
*使用者授許可權制

使用者授許可權制
Apache提供了認證(Authentication)與授權(Authorization)機制,當使用者訪問使用此機制控制的目錄時,會提示使用者輸入使用者名稱和密碼,只有輸入正確的使用者名稱和密碼的主機才可以訪問該資源。

Apache的認證型別分為兩種:基本(Basic)認證和摘要認證(Digest)認證兩種。摘要認證比基本認證更加安全,然是並非所有瀏覽器都支援摘要認證,所以本節只針對基本認證進行介紹。基本認證的方式是:當Web瀏覽器請求經過認證模式保護的URL時,將會出現一個對話方塊,要求使用者輸入使用者名稱和口令。使用者輸入後,傳送給伺服器,Web伺服器驗證它的正確性。如果正確,則返回頁面;否則出現401錯誤。

1.建立使用者認證資料庫
[root@www ~]# cd /usr/local/httpd/
新建密碼資料檔案.awspwd,其中包含一個名為webadmin使用者資訊
[root@www httpd]# bin/htpasswd -c /usr/local/httpd/conf/.awspwd webadmin
New password:
Re-type new password:
Adding password for user webadmin
確認使用者資料庫檔案
[root@www httpd]# cat /usr/local/httpd/conf/.awspwd
webadmin:2tmD3LVFynBAE
在已有資料檔案中新增新使用者szt
[root@www ~]# htpasswd /usr/local/httpd/conf/.awspwd szt
2.新增使用者授權配置
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf
226 <Directory “/usr/local/httpd/htdocs”>
251 #RequireAll
252 #Require all granted
253 # Require not ip 192.168.100.0/24 192.168.0.0/24
254 #/RequireAll
255
256 AuthName “xu yao mi ma”
257 AuthType Basic
258 AuthUserFile /usr/local/httpd/conf/.awspwd
259 Require valid-user
260
261 /Directory

註釋:
受保護的領域名稱,該內容在瀏覽器彈出的認證對話方塊中顯示。
256 AuthName “xu yao mi ma”
設定認證的型別(basic基本認證)
257 AuthType Basic
使用者認證賬號檔案
258 AuthUserFile /usr/local/httpd/conf/.awspwd
要求通過認證才能訪問
varlid-user 合法使用者,如果單個使用者可直接指定
259 Require valid-user
[root@www ~]# systemctl restart httpd
驗證使用者訪問授權
1.開啟win7客戶機使用瀏覽器訪問嘗試http://192.168.100.101
檢視是否需要使用者名稱和密碼來進行訪問
2. linux-2 客戶機 192.168.100.102
[root@ns2 ~]# curl http://192.168.100.101
訪問失敗
擴充套件:混合模式設定
注意:主機訪問控制 > 使用者訪問授權
設定了兩種混合模式時。主機訪控中允許的主機可以直接訪問網站,不需要使用者授權;主機訪控禁止的主機在需要使用者授權才能訪問網站
練習:
主機訪問控制:允許192.168.100.102訪問
使用者授權:要求合法使用者訪問
[root@www ~]# vi /usr/local/httpd/conf/httpd.conf
226 <Directory “/usr/local/httpd/htdocs”>
RequireAll
Require all granted
Require ip 192.168.10.2
/RequireAll
AuthName “xu yao mi ma”
AuthType Basic
AuthUserFile /usr/local/httpd/conf/.awspwd
Require valid-user
[root@www ~]# systemctl restart httpd
驗證:
1.win7客戶機 192.168.100.101
需要使用者授權訪問
2. linux-2 192.168.100.102
直接可以訪問

構建虛擬web主機
1.虛擬Web主機
在同一臺伺服器中執行多個Web站點,其中每一個站點並不獨立佔用一臺真正的計算機
2.httpd支援的虛擬主機型別
基於域名的虛擬主機
基於IP地址的虛擬主機
基於埠的虛擬主機

構建虛擬主機——基於域名
1.應用示例:
*構建2個虛擬Web站點:
www.benet.com,IP地址為 192.168.100.101
www.accp.com,IP地址為 192.168.100.101
在瀏覽器中訪問這兩個域名時,分別顯示不同的內容
1.為虛擬主機提供域名解析(有dns環境)
[root@dnssvr ~]# vi /var/named/chroot/etc/named.conf
zone “benet.com” IN {
type master;
file “benet.com.zone”;
};
zone “accp.com” IN {
type master;
file “accp.com.zone”;
};
課本有錯誤(benet.com後面不能有".")
cd /var/named
cp -a named.localhost benet.com.zone
cp -a named.localhost accp.com.zone
ls -ld benet.com.zone accp.com.zone

[root@dnssvr ~]# vi /var/named/chroot/var/named/benet.com.zone
@ IN SOA benet.com. admin.benet.com. (
@ IN NS dnssvr.benet.com.
dnssvr IN A 173.17.17.2
www IN A 192.168.100.101
[root@dnssvr ~]# vi /var/named/chroot/var/named/accp.com.zone
@ IN SOA accp.com. admin.accp.com. (
@ IN NS dnssvr.benet.com.
www IN A 192.168.100.101

為虛擬主機準備網頁文件
[root@www ~]# mkdir -p /var/www/html/benetcom
[root@www ~]# mkdir -p /var/www/html/accpcom
[root@www ~]# echo “www.benet.com” >/var/www/html/benetcom/index.html
[root@www ~]# echo “www.accp.com” > /var/www/html/accpcom/index.html

新增虛擬主機配置
配置獨立的虛擬主機配置檔案,然後在主檔案裡面載入即可,方便配置內容的維護
[root@www ~]# vim /usr/local/httpd/conf/extra/vhosts.conf
<VirtualHost *:80>
ServerName www.benet.com
DocumentRoot /var/www/html/benetcom
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_log common
<Directory “/var/www/html”>
Require all granted
/Directory

/VirtualHost

<VirtualHost *:80>
ServerName www.accp.com
DocumentRoot /var/www/html/accpcom
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_log common
<Directory “/var/www/html”>
Require all granted
/Directory
/VirtualHost

配置選項:
1.虛擬主機區域VirtualHost
2.目錄許可權Directory
繼承其父目錄 的授權許可即可
主檔案裡面載入
[root@www ~]# vim /usr/local/httpd/conf/httpd.conf
485 # Virtual hosts
486 #Include conf/extra/httpd-vhosts.conf
新增此選項–載入獨立的配置檔案
487 Include conf/extra/vhosts.conf
[root@www ~]# /usr/local/httpd/bin/apachectl restart
4.在客戶機分別訪問虛擬Web主機
實驗環境中沒有配置dns,可以的hosts檔案中配置主機ip對映
4.1 win7 客戶機
c:\windows\system32\drivers\etc\hosts
4.2 linux主機
/etc/hosts

構建虛擬主機——基於IP
應用示例:
1,構建2個虛擬Web站點:
www.benet.com,IP地址為 192.168.100.101
www.accp.com,IP地址為 192.168.100.102
[root@www ~]# ifconfig ens33:0 192.168.100.102
[root@www ~]# vim /usr/local/httpd/conf/extra/vhosts.conf
<VirtualHost 192.168.100.101:80>
ServerName www.benet.com
DocumentRoot /var/www/html/benetcom
ErrorLog logs/www.benet.com.error_log
CustomLog logs/www.benet.com.access_log common
<Directory “/var/www/html”>
Require all granted
/Directory
/VirtualHost

<VirtualHost 192.168.100.102:80>
ServerName www.accp.com
DocumentRoot /var/www/html/accpcom
ErrorLog logs/www.accp.com.error_log
CustomLog logs/www.accp.com.access_log common
<Directory “/var/www/html”>
Require all granted
/Directory
/VirtualHost

[root@www ~]# systemctl restart httpd
2.在瀏覽器中訪問這兩個IP時,分別顯示不同的內容
http://192.168.100.101
http://192.168.100.102

相關文章