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)

 

번호 제목 글쓴이 날짜 조회 수
70 Nginx: 413 – Request Entity Too Large file 황제낙엽 2024.02.17 0
69 nginx 설치, 실행, SSL 설정, 프록시 설정 황제낙엽 2024.02.04 3
68 [bard] Nginx로 서브 도메인에 따라 내부의 포트만 다르게 실행중인 웹서버들을 라우팅 황제낙엽 2024.02.01 0
67 [Bing] "Apache"와 "Nginx" 의 차이점 황제낙엽 2024.01.31 4
66 Nginx 에 대하여 황제낙엽 2024.01.18 0
65 "org.apache.tomcat.util.net.SecureNioChannel.getSslEngine()" is null 황제낙엽 2023.06.22 11
64 windows tomcat 에 Let's Encrypt(SSL) 적용 황제낙엽 2023.06.21 2
63 AutoSet PHP 버전 업그레이드 (7.2.10 to 7.4.32) 황제낙엽 2022.10.09 64
62 401 - Unauthorized: Access is denied due to invalid credentials 황제낙엽 2021.08.27 34
61 iis error - Service Unavailable / HTTP Error 503. The service is unavailable. 황제낙엽 2020.09.23 411
60 [Bitnami WAMP] 설치후 PHP 설정 황제낙엽 2020.07.23 28
59 Autoset의 대안 Bitnami WAMP file 황제낙엽 2020.04.01 61
58 HTTP 오류 403.14 - Forbidden file 황제낙엽 2020.03.04 119
57 바인딩 편집 (사이트 바인딩) file 황제낙엽 2020.03.04 75
56 웹사이트에서 여러 도메인을 사용하는 방법 황제낙엽 2020.03.04 37
55 32비트 응용 프로그램 사용 (ASP, C#) file 황제낙엽 2019.10.31 2034
54 [Tomcat 7] org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15 황제낙엽 2019.10.16 285
53 톰캣과 방화벽 file 황제낙엽 2019.09.17 112
» 안전한 웹사이트 설정하기 (.htaccess 및 .htpasswd 사용법) 황제낙엽 2019.07.21 190
51 IIS 시작,정지,재시작 file 황제낙엽 2019.05.10 411