一. Httpd服務的訪問控制
實驗環(huán)境:一臺centos6.5+rhl.5.5+2003server
client客戶機兩塊網(wǎng)卡:eth0 ip 192.168.1.1 eth1 ip 192.168.1.10
在配置第二塊網(wǎng)卡的時候,把eth0的配置文件cp一個副本并改名eth1 進入配置正常配置
Chmod +x /etc/sysconfig/network-scripts/ifcfg-eth1 重新激活網(wǎng)卡
紅帽:ip192.168.1.6
2003server:ip 192.168.1.3
1.)客戶機地址限制
httpd服務通過Order、Allow from城瞎、Deny from配置項實現(xiàn)客戶機地址訪問控制
Vim /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
Service network restart
重啟網(wǎng)卡
vim /usr/local/httpd/conf/httpd.conf
Apache主配置文件
配置httpd.conf的目錄區(qū)域
<Directory 目錄位置>.......</Directory>范圍內(nèi)
Order配置選項可以設置為‘a(chǎn)llow,deny’或‘deny惶桐,allow’以決定主機應用“允許”和“拒絕”策略的先后順序
限制策略的格式如
Deny from address1 address2 ...
Allow from address1 address2 ...
Order allow,deny
Allow from all
下面是具體目錄區(qū)域配置:
<Directory “/usr/local/awstats/wwwroot”>
Options None
AllowOverride None
Order allow,deny
allow from 192.168.1.6 (地址或網(wǎng)段)
</Directory>
<Directory “/usr/local/awstats/wwwroot”>
Options None
AllowOverride None
Order deny,allow
deny from 192.168.1.3 (地址或網(wǎng)段)
</Directory>
Service httpd restart
驗證:
192.168.1.6可以訪問awstats,192.168.1.3無權限訪
2.)用戶授權
使用用戶授權在這里需要使用htpasswd工具生成用戶和密碼認證數(shù)據(jù)文件
httpd服務通過AuthName的猛、AuthType耀盗、AuthUserfile、及require valid-user配置項實現(xiàn)目錄的用戶授權
cd /usr/local/httpd
bin/htpasswd –c /usr/local/httpd/conf/.pass_user_lite hehe(用戶名)
//根據(jù)提示設置密碼
/bin/htpasswd /usr/local/httpd/conf/.user_lite xixi(用戶名)
//第二次創(chuàng)建就不需要加 -c
第一次加-c
是因為需要指定用戶數(shù)據(jù)文件的位置所以需要創(chuàng)建一個文件
cat /usr/local/httpd/conf/.user_lite
確定用戶數(shù)據(jù)文件已創(chuàng)建
vim /usr/local/httpd/conf/httpd.conf
<Directory “/usr/local/awstats/wwwroot”>
Options None
AllowOverride None
Order allow,deny
allow from all
AuthName “hehe xixi”
定義受保護的領域名稱卦尊,該區(qū)域會在瀏覽器彈出認證框中顯示出此內(nèi)容(在這里我寫的是我創(chuàng)建的用戶名叛拷,提醒自己的記憶,以免忘了F袢础7揶薄)
AuthType Basic
認證的類型,Basic表示基本認證
AuthUserFile /usr/local/httpd/conf/.user_lite
這里填寫用于保存用戶賬號躏哩,密碼的認證文件路徑
require valid-user
合法有效用戶 若只授權給單個用戶署浩,那么需要指定單個用戶如(hehe) 只有指定的用戶才認證可以訪問
</ Directory >
Service httpd restart
每次配置完就重啟一下服務
基本認證登錄界面
認證失敗拒絕訪問
二.構(gòu)建虛擬web主機
httpd服務支持三種類型的虛擬web主機,分別是基于域名扫尺,基于IP地址筋栋、基于端口的虛擬主機
為了方便,此處我沒有安裝DNS 正驻,因用到域名解析應該要安裝DNS 所以現(xiàn)在測試機上添加hosts文件記錄代替
- 先創(chuàng)建兩個不同網(wǎng)站的站點
mkdir /www/{benet弊攘,accp} -p
echo “welcome to benet server” > /www/benet/index.html
echo “welcome to accp server” > /www/accp/index.html
cat /www/benet/index.html
cat /www/accp/index.html
一)基于域名
vim /usr/local/httpd/conf/httpd.conf
滾動到配置文件99%的地方(也可以使用查找關鍵詞跳轉(zhuǎn)到關鍵詞位置)
#Virtual hosts
Include conf/extra/httpd-vhosts.conf
去掉前面的#號調(diào)用這個配置文件資源
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
編輯剛才需要調(diào)用的文件
在文件26%的地方輸入
NameVirtualHost 192.168.1.1:80
虛擬主機地址+端口
區(qū)域目錄配置允許所有人訪問咱們的網(wǎng)站index.html
<Directory "/www">
Order allow,deny
allow from all
</Directory>
在配置文件89%的地方
<VirtualHost 192.168.1.1:80>
DocumentRoot "/www/benet"
ServerName www.benet.com
ErrorLog "logs/benet.com-error_log"
CustomLog "logs/benet.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.1:80>
DocumentRoot "/www/accp"
ServerName www.accp.com
ErrorLog "logs/accp.com-error_log"
CustomLog "logs/accp.com-access_log" common
</VirtualHost>
service httpd restart
2003客戶端驗證:
http://www.benet.com/
http://www.accp.com/
二)基于IP地址
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
NameVirtualHost 192.168.1.1:80
<Directory "/www">
Order allow,deny
allow from all
</Directory>
<VirtualHost 192.168.1.1:80>
DocumentRoot "/www/benet"
ServerName www.benet.com
ErrorLog "logs/benet.com-error_log" CustomLog
"logs/benet.com-access_log" common
<VirtualHost>
<VirtualHost 192.168.2.1:80>
DocumentRoot "/www/accp"
ServerName www.accp.com
ErrorLog "logs/accp.com-error_log" CustomLog
"logs/accp.com-access_log" common
<VirtualHost>
service httpd restart
客戶端驗證:
http://192.168.1.1/
http://192.168.1.10/
三)基于端口 http默認端口80
vim /usr/local/httpd/conf/extra/httpd-vhosts.conf
listen 8080
監(jiān)聽端口
<Directory "/www">
Order allow,deny
allow from all
</Directory>
<VirtualHost 192.168.1.1:80>
DocumentRoot "/www/benet"
ServerName www.benet.com
ErrorLog "logs/benet.com-error_log" CustomLog
"logs/benet.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.1.1:8080>
DocumentRoot "/www/accp"
ServerName www.accp.com
ErrorLog "logs/accp.com-error_log" CustomLog
"logs/accp.com-access_log" common
</VirtualHost>
service httpd restart
客戶端驗證:
http://192.168.1.1:8080
http://192.168.1.1:80