1. 程式人生 > >實驗-------basic認證配置

實驗-------basic認證配置

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/,彈出如下用戶認證界面,只有http1http2能訪問,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認證配置