實驗-------basic認證配置
前提:清除防火墻和selinux策略
iptables -F ; setenforce 0
basic認證配置示例:
一、基於用戶認證:
(1) 定義安全域
<Directory “/var/www/html/secret ">
AuthType Basic 認證方式
AuthName "String“ 提示信息
AuthUserFile "/etc/httpd/conf.d/.htusers" 存放用戶的文件(利用htpasswd生成,下面有示例)
Require user http1 http2 ... 定義允許訪問的用戶
</Directory>
允許賬號文件中的所有用戶登錄訪問:Require valid-user
或者把directory裏的四行內容寫到需要認證的目錄下的文件(/var/www/html/secret/.htaccess),
然後在配置文件裏寫上AllowOverride authconfig(允許安全認證),如下所示
vim /var/www/html/secret/.htaccess
authtype basic
authname "tingjie dir"
uthuserfile "/etc/httpd/conf.d/.htusers"
require user http1 http2
vim /etc/httpd/conf/httpd.conf
<directory "/var/www/html/secret">
AllowOverride authconfig
</directory>
(2) 提供賬號和密碼存儲(文本文件)
使用專用命令完成此類文件的創建及用戶管理
htpasswd [options] /PATH/HTTPD_PASSWD_FILE username
-c:自動創建文件,僅應該在文件不存在時使用
-m:md5格式加密,默認方式
-s: sha格式加密
-D:刪除指定用戶
比如創建http1,http2,http3用戶,並分別設置密碼
(3)重新加載服務service httpd reload
測試:在linux上測試如下:
curl http://192.168.119.129/secret/
在Windows上測試如下:
http://192.168.119.129/secret/,彈出如下用戶認證界面,只有http1和http2能訪問,http3不能
二、基於組賬號進行認證
(1) 定義安全域
<Directory “/path">
AuthType Basic
AuthName "String“
AuthUserFile "/PATH/HTTPD_USER_PASSWD_FILE"
AuthGroupFile "/PATH/HTTPD_GROUP_FILE"
Require group grpname1 grpname2 ...
</Directory>
具體示例如下圖所示,允許group1組的用戶訪問
(2) 創建用戶賬號和組賬號文件
組文件:每一行定義一個組
GRP_NAME: username1 username2 ...
vim /etc/httpd/conf.d/.htgroup
group1:http1 http2
group2:http3
(3)重新加載服務service httpd reload
(4)測試方法同上(結果:http3不能訪問,http1和http2可以訪問)
說明:basic認證是明文的,不安全,可以配合安全的https來使用。https的實現請參看博文:
實驗-------basic認證配置