sitelink1 https://zesus75.blog.me/221103019900 
sitelink2  
extra_vars5  
extra_vars6  

웹서비스를 안전하게 설정하기 위해서 우리는 .htaccess 파일을 홈페이지 디렉토리에 만들고, 접근할 수 있는 사용자를 설정함으로써 가능해진다. 물론 apache 웹서버가 .htaccess 파일과 .htpasswd 파일을 찾느라 느려질 수 있으나 phpMyAdmin과 같은 아무나 볼 수 있어서 입력해 로그인 시도를 할 수 있는 관리 페이지 웹사이트들이 이렇게 보호하는 것이 좋다.

1. Authentication 도구 설치

다음과 같은 명령으로 필요한 소프트웨어 패키지를 설치한다.

$ sudo apt-get install apache2-utils

설치가 되면 다음으로 인증을 위한 파일 2개를 만든다.

 

2. Apache2 서버 설정 파일 확인 및 수정

Apache 2 서버 설정 파일에 웹서비스를 정의할 수 있다.

$ sudo emacs -nw /etc/apache2/apache2.conf

가상 웹서비스 별로 다음과 같이 설정이 있으며, AllowOverride 설정이 All로 되어 있으면 된다.

filename : /etc/apache2/apache2.conf <Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All . . .

또한 "/etc/apache2/conf-available" 디렉토리에 별도의 설정 파일을 두어 가상 웹서비스를 설정할 수 있으므로 이 디렉토리도 확인해야 한다.

$ sudo service apache2 restart

웹서버의 설정을 변경했으므로 다시 시작한다.

 

3. 파일 .htaccess 생성

디렉토리 (웹사이트)에 접근 제한 설정 파일을 하나 만든다. 다음은 기본 웹사이트인 "/var/www/html" 에 생성한다.

filename : /var/www/html/.htaccess AuthUserFile /etc/apache2/.htpasswd AuthName "Please Eneter Password" AuthType Basic Require valid-user

파일의 내용을 잠깐 살펴 보면, 중요한 것은 사용자인증(".htpasswd") 정보가 있는 파일의 위치이다 

AuthUserFile : 웹서비스에 접근할 사용자와 암호가 저장된 파일의 위치 AuthName : 팝업 윈도우에 표시될 메시지

이 파일을 하나 만들어 두면 복수개의 웹사이트를 운영할 때 복사해서 사용하면 편하다.  예를 들어 phpMyAdmin 사이트를 보호하고 싶다면, 위의 파일을 다음과 같이 복사하면 된다.

$ sudo cp /var/www/html/.htaccess /usr/share/phpmyadmin

물론 보안을 위해서 각 웹서비스 별로 독립적인 .htpasswd 파일을 생성해서 다른 디렉토리에 두어도 된다.

 

4. 파일 .htpasswd 생성

웹서비스에 접근할 사용자와 사용자 암호를 입력하여 .htpasswd 파일을 생성한다.

$ sudo htpasswd -c /etc/apache2/.htpasswd {username}

{username}은 로그인하려는 사용자의 아이디를 입력하면, 암호 입력을 요구 받는다. 암호 재확인 입력하면 사용자 등록이 되고, /etc/apache2 디렉토리에 .htpasswd 파일이 생성된다.

$ sudo cat /etc/apache2/.htpasswd

생성된 파일을 읽어 보면 사용자 아이디와 암호화된 패스워드를 볼 수 있다.

 

참고 : How To Install and Secure phpMyAdmin on Ubuntu 14.04 중에 "Create the .htpasswd file for Authentication" 부분 일부 (link)