본문 바로가기

웹서버의 특정폴더에 사용자 인증 비밀번호 걸기

◀↗↓↖▶바인 발행일 : 2020-04-23

이번 포스팅은 웹서버를 운영하는 분에 한정된 암호를 거는 방법에 대해 알아 보려 합니다.
솔직히 말하면 제가 나중에 사용하기 위해 기록형 포스팅이라고 보는게 더 정확하겠네요. ^^

목차
1. 목적
2. 준비사항
3. 방법 및 절차
4. 결론

 

목적

먼저 지금 부터 하는 작업의 목적은 무엇일까요?
웹호스팅으로 웹사이트를 운영하는 분들에게는 해당되지 않지만 웹서버를 운영 하는 분들 경우 보안상 모든 사람이 아닌 특정인에게 접속을 허용해야 하는 경우가 종종 있습니다.
쉽게 말해 특정 폴더 이하에 암호를 걸기라고 생각 하면 됩니다.

 

준비사항

2개의 파일이 필요합니다.

.htaccess
0.00MB
.htpasswd
0.00MB

아래와 같은 계정이 있습니다.
사이트를 전체에 암호를 걸어 이 사이트를 접속해서 사이트 내용을 확인 하기 위해서는 비밀번호/암호를 알고 있는 사람만 접속 가능 합니다. 말 그대로 웹사이트 통째로 암호를 걸었습니다.
실제 제가 운영을 하려고 준비했던 모바일 성경 제공 사이트 였습니다. 하지만 알고 보니 저작권 문제가 있다는 것을 뒤늦게 알게 되어 사이트 폐쇄를 했죠. 나만 또는 암호를 알고 있는 사람만 들어가서 봐야겠다는 생각으로....

이렇게 몇년을 묵혀 뒀다가 얼마전 제가 가지고 있는 성경 디비중 2개는 성경저작권이 만료가 되어 사용이 가능 하다는 것을 우연히 알게 되었습니다. 그래서 다시 오픈 하기로 하면서 걸어 뒀던 암호 방식에 대해 인지하게 되었고 다음에 또 이런 경우에 잊지 않기 위해 포스팅을 하고 있습니다. ^^

위 두개 파일의 위치를 설명 하겠습니다.
.htaccess 파일은 index 파일과 동일한 위치
.htpasswd 파일은 일반적인 접근이 불가능한 root폴더(public_html) 상위에 pw 란 폴더안에 위치 

Public_html 폴더 아래 사이트가 구성되어 있습니다.
일반적으로 사이트에 접속 하면 public_html/index.php 파일을 읽어서 웹사이트가 작동 하기 시작 한다라고 생각 하면 됩니다. 
인덱스(index.php)와 같은 위치에 .htaccess 파일을 업로드 합니다.

.htaccess 파일 내용

AuthType Basic
AuthName "restricted area"
AuthUserFile /home/mbible/pw/.htpasswd
require valid-user

[간단해설]
AuthType Basic => 기본 인증방법 
AuthName "restricted area" => 웹인증 할 때 기본적으로 나오는 메세지
AuthUserFile /home/mbible/pw/.htpasswd  => 사용자 인증을 위해 id/password가 있는 파일 위치
require valid-user => 인증된 유저만 승인 하겠다는 뜻

 

.htpasswd 파일 내용

암호와 비밀번호를 입력 하는 파일로 아래와 같은 형식으로 표시 해 둡니다.
아이디:암호 (예. admin:akxdiakd#847adei )
그리고 파일 위치는 가급적이면 일반유저가 볼 수 없는 위치로 서버구석에 넣어 두는게 좋습니다.

 

방법 및 절차

.htpasswd 파일에 넣을 아이디와 암호를 생성 해 보겠습니다. 그냥 간단하게 만들지 않고 아래 사이트에 가서 만들면 됩니다. 아래 사이트 중간정도에 .htpasswd username & password generator 란 아이디/암호 생성 툴이 있습니다.
https://davidwalsh.name/web-development-tools

 

Web Development Tools

Here are a few development tools you can use to improve your website: CSS Compressor, Domain Checker, .htpasswd Username / Password Generator, JavaScript Compressor, and XHTML Compressor

davidwalsh.name

 

사용할 아이디와 비밀번호를 입력 후 하단의 gnerate user/pass 를 누르면 Result에 아이디와 암호가 만들어 집니다.
그대로 복사해서 .htpasswd 파일에 입력 하고 저장하면 됩니다.

아래 사이트에서도 암호생성을 할 수 있습니다.
* https://www.askapache.com/online-tools/htpasswd-generator/

 

위와 같이 다 설정 후 사이트에 접속해 보겠습니다.
아래와 같이 사이트 접속시 아이디와 비밀번호를 요구 합니다.

 

 

정확한 정보를 입력하지 못하면 아래와 같은 페이지를 보여 줍니다.
정상적인 접근이 아니라며 사이트에 접속을 할 수 없습니다.

 

 

결론

파일도 2개만 있으면 되고 설정도 의외로 간단한 보안설정 방법 이라 생각 합니다. 
웹사이트를 운영함에 있어 보안문제는 언제나 중요시 되고 있습니다. 어떤 용도로 사용하더라도 이렇게 간단한 방법은 알아 두면 웹운영에 유용할 것입니다.

이상으로 기록형 포스팅을 마치겠습니다.

댓글