본문 바로가기

OS-서버/리눅스-유닉스

리눅스 웹페이지 사용자 인증 - htpasswd,digest

반응형

ி htpasswd 인증


특정 페이지는 사용자 인증을 거쳐야 접속되도록 설정한다.
htpasswd는 암호화되지 않은 Base64 인코딩을 사용하기 때문에 취약한 Basic 인증이다.
일반적으로 https와 같은 전송 계층 보안이 제공된 경우에만 사용해야 한다.


httpd 파일 설정


사용자 인증을 적용할 폴더는 /var/www/html/basic,
계정은 각각 Benmin, anna, kim 을 생성,
인증 타입은 Basic, 허용할 ip 대역은 192.168.0.0/24, 192.168.111.0/24,
인증 패스워드가 저장될 파일은 /etc/httpd/.htpasswd로 설정할 것이다.

# vim etc/httpd/conf.d/auth_basic.conf

<Directory /var/www/html/basic>
AuthType Basic
AuthName "Basic Authentication Test"
AuthUserFile /etc/httpd/.htpasswd
Require user benmin anna kim
Require valid-user
Order deny,allow
Deny from all
Allow from 192.168.0. 192.168.111.
</Directory>



사용자 생성


# htpasswd -c /etc/httpd/.htpasswd benmin
# htpasswd /etc/httpd/.htpasswd anna
# htpasswd /etc/httpd/.htpasswd kim

c 옵션은 비밀번호를 초기화하는 역할을 한다.
두 번째 계정을 만들 때부터는 해당 옵션을 쓰지 않아도 된다.

아래 파일에서 사용자가 제대로 생성됐는지 확인할 수 있다. 

# cat /etc/httpd/.htpasswd


basic 디렉터리를 생성하고 웹 문서를 만든다.

# vim /var/www/html/basic/index.html  
# systemctl restart httpd

웹 브라우저에서 basic 디렉터리로 접속하면 아래와 같이 사용자 인증이 있어야 접근이 가능하게 된다.






ி Digest 인증


Basic 인증보다 보안이 강화된 인증 방법으로
계정 정보, HTTP 요청 값 등을 조합해 생성된 해시값을 사용한다.
구현 방법은 htpasswd와 거의 비슷하다. 

# vim /etc/httpd/conf.d/auth_digest.conf
<Directory /var/www/html/digest>
AuthType Digest
AuthName "Digest Private Area"
AuthUserFile /etc/httpd/.htdigest
Require valid-user
Order deny,allow
Deny from all
Allow from 192.168.0. 192.168.111.
</Directory>
사용자 생성 후 conf에 정의한 디렉터리를 생성한다.
# htdigest -c /etc/httpd/.htdigest 'Digest Privata Area' benmin
# vim /var/www/html/digest/index.html

# systemctl restart httpd

반응형