[Ubuntu] Nginx에서 phpMyAdmin 폴더 접근을 제한하여 보안 강화하기

Last Updated: 2019년 11월 24일 댓글

앞서 해외 가상 호스팅(VPS) 서비스인 Vultr에서 워드프레스를 설치하는 방법에 대해 살펴보았습니다.

이 글의 phpMyAdmin 설치하기 섹션에서 phpMyAdmin을 다운로드하여 설치하는 방법이 간략하게 설명되어 있습니다.

phpMyAdmin을 워드프레스 설치 폴더에 /pmapma라는 서브 폴더를 만들어 설치했다고 가정했을 때, 이 폴더에 접근할 때 추가로 로그인 정보를 입력하도록 만들어서 phpMyAdmin의 보안을 강화할 수 있습니다.

암호화된 비밀번호를 만듭니다.

openssl passwd

그러면 비밀번호를 입력하라는 프롬프트가 표시됩니다. 비밀번호를 입력하면 입력한 비밀번호의 암호화된 버전이 표시됩니다. (입력한 비밀번호를 잊어버리지 않도록 메모해놓습니다.) 예를 들어, 다음과 같이 표시될 수 있습니다.

O5az.RSPzd.HE

이 암호화된 비밀번호를 복사하도록 합니다.

다음으로 인증 파일(authentication file)을 만듭니다. 파일 이름은 임의로 정하면 됩니다. 예를 들어, /etc/nginx/htpasswd/ 폴더 아래에 pma 파일을 만들 수 있습니다.

cd /etc/nginx
mkdir htpasswd
sudo nano /etc/nginx/htpasswd/pma

nano 대신 원하는 텍스트 에디터를 사용할 수 있습니다. 다음과 같은 형식으로 내용을 입력합니다.

demo:O5az.RSPzd.HE

demo 대신 원하는 User ID를 입력합니다. 콜론(:) 뒷부분은 암호화된 비밀번호입니다.

파일을 저장합니다. (nano 사용법은 여기를 참고해보세요.)

이제 Nginx 구성 파일을 수정하도록 합니다.

sudo nano /etc/nginx/sites-available/wordpress

실제 구성 파일은 어떻게 설정했는가에 따라 다를 수 있습니다. 다음과 같은 형식으로 적당한 곳에 추가합니다.

location /pmapma {
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/htpasswd/pma;
}

저장하고 웹서버를 재시작하도록 합니다.

sudo service nginx restart

이제 phpMyAdmin에 접속하면(예: http://www.abc.com/pmapma) phpMyAdmin 로그인 화면이 표시되기 전에 아이디와 비번을 묻습니다. 그러면 위에서 설정한 정보를 입력합니다.

사용자 이름과 비밀번호를 제대로 입력하면 phpMyAdmin 로그인 화면이 표시됩니다.

Vultr나 Digital Ocean을 사용하면 저렴하게 VPS를 사용할 수 있습니다. 다음 제휴 링크를 클릭하여 Digital Ocean에 가입하면 10달러의 크레딧을 받을 수 있습니다. 1~2개월 정도는 무료로 테스트해볼 수 있습니다.

Vultr나 Digital Ocean의 경우 서버를 직접 설치하고 관리해야 하기 때문에 초보자에게 부담이 될 수 있습니다. 그런 경우에는 BluehostiPage 또는 Siteground와 같은 업체에서 제공하는 공유호스팅을 사용하거나 관리형 VPS를 사용할 수 있습니다(현재 이 블로그가 Bluehost VPS를 사용 중입니다.) Siteground의 경우 비교적 안정적이고 괜찮은 속도를 보여주는 것 같습니다.

참고:


댓글 남기기

Leave a Comment