Computer >> 컴퓨터 >  >> 프로그래밍 >> HTML

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

HTTP 인증으로 로그인 페이지 보호하기: 전 세계에 약 6천만 개의 워드프레스 사이트가 운영되고 있어 워드프레스는 세계에서 가장 인기 있는 웹사이트 제작 플랫폼입니다. 하지만 이러한 인기에는 대가가 따릅니다. 하루 24시간, 매 분마다 약 90,978건의 해킹 시도가 워드프레스 사이트에 이루어지고 있습니다. 해커들이 웹사이트를 침입하는 방법은 다양하지만, 그중 가장 널리 사용되는 방식 중 하나가 바로 '무차별 대입 공격(Brute Force Attack)'입니다. 이 공격 방식에서는 해커가 봇을 프로그래밍하여 로그인 정보를 무작위로 추측하게 만듭니다. 그렇기 때문에 반드시 워드프레스 로그인 페이지를 보호해야 합니다.

이전 로그인 보호 관련 글에서 고유한 사용자 이름 설정과 강력한 비밀번호 적용에 대해 다룬 적이 있습니다. 이는 해커 봇의 침입을 막는 효과적인 방법이지만, 보안의 세계에는 절대적인 안전이란 없습니다. 인터넷은 결코 안전한 곳이 아니었으며, 아무리 많은 보안 조치를 취해도 부족함이 없다고 할 수 없습니다. 따라서 사이트에는 여러 겹의 보호 장치를 마련하는 것이 좋습니다. 고유한 사용자 이름과 비밀번호도 중요하지만, 로그인 페이지 자체를 잠그는 것 역시 보안을 위한 중요한 단계입니다. 그중 한 가지 방법이 HTTP 인증으로 로그인 페이지에 비밀번호를 거는 것입니다. 이 글에서는 그 구현 방법을 소개합니다.

HTTP 인증이란?

HTTP 인증 또는 HTTP 기본 인증(Basic Authentication, BA)은 로그인 페이지에 접근 제한을 적용하는 기술입니다. 간단히 비유하자면, 웹사이트를 하나의 집이라고 생각해 볼 수 있습니다. 현관문이 곧 로그인 페이지입니다. 사람들이 집에 침입하려 할 수 있으므로 튼튼한 자물쇠가 필요합니다. 이 자물쇠가 로그인 정보에 해당합니다. 현관문 너머에는 집에 추가적인 보호막을 제공하는 울타리가 있습니다. HTTP 인증도 마찬가지로 집에 한 겹 더 보호층을 제공하는 역할을 합니다. 즉, 로그인 페이지에 접근하려는 모든 사용자는 먼저 HTTP 인증(울타리)을 통과한 후에야 로그인 정보 입력(현관문) 단계로 넘어갈 수 있습니다.

HTTP 인증으로 로그인 페이지에 비밀번호 거는 방법

HTTP 인증으로 워드프레스 사이트를 보호하려면 먼저 .htpasswd 파일을 생성해야 합니다. 그다음 웹사이트의 .htaccess 파일에 해당 .htpasswd 파일의 위치를 알려주면 됩니다. 이것으로 로그인 페이지가 잠깁니다.

.htpasswd 파일 생성 방법

이 파일에는 로그인 페이지에 접근할 수 있도록 허용할 사용자들의 사용자 이름과 비밀번호를 저장합니다. 본질적으로 집을 둘러싼 울타리의 출입문을 만드는 것과 같아서, 사이트에 접근 권한을 주고 싶은 사람에게만 열쇠를 건네주는 형태입니다. .htpasswd 파일을 만드는 방법을 알아보겠습니다.

새 .htpasswd 파일을 생성하려면 .htpasswd 명령줄 도구를 사용해야 합니다. 온라인에는 여러 도구가 있습니다. 원하는 도구를 찾았다면 열고 명령줄에 다음 코드를 입력하세요.

htpasswd -c .htpasswd harini

명령줄에서 c는 create(생성)를 의미하고, harini는 선택한 사용자 이름입니다. 이 코드를 입력하고 엔터 키를 누르면 해당 사용자 이름에 고유하게 지정될 비밀번호를 생성하라는 메시지가 나타납니다. 걱정하지 마세요. 비밀번호는 암호화됩니다.

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

이미 .htpasswd 파일이 있다면 새 사용자 이름과 비밀번호만 추가하면 됩니다. 다음 명령줄을 입력하면 됩니다.

htpasswd .htpasswd rahul

새 파일을 생성하는 것이 아니므로 -c 옵션을 사용하지 않는다는 점에 유의하세요.

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

일반적으로 .htpasswd 파일은 'username:encrypted_password' 형식으로 작성됩니다. 예를 들어 사용자 이름이 harini이고 비밀번호가 dummy123pass라면 파일 내용은 다음과 같습니다. harini:$apr1$50r17zis$lNbFJs4rQFfkp4ToO2/ZS/

비밀번호는 암호화되어 저장됩니다. 이 파일이 곧 HTTP 기본 인증의 자격 증명이 됩니다.

도구를 사용하기 어렵거나 사용 방법을 모른다면 .htpasswd 생성기를 이용할 수 있습니다. 해당 링크를 열면 아래 이미지와 같은 화면을 볼 수 있습니다.

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

원하는 사용자 이름과 비밀번호를 입력하세요. 랜덤 비밀번호 생성 옵션도 제공됩니다. 완료되면 'Generate .htpasswd file' 버튼을 누르면 결과물이 출력됩니다.

.htaccess 파일 수정하기

.htaccess 파일은 워드프레스 사이트에서 가장 중요한 파일 중 하나입니다. 이 파일에서 우리가 할 일은 두 가지입니다. 첫째, 어떤 항목을 제한할지 지정하고, 둘째, 위 단계에서 생성한 HTTP 기본 인증 자격 증명을 어디서 가져올지 알려주는 것입니다.

.htaccess 파일은 public_html 폴더에 위치합니다. 이 파일에 접근하려면 웹 호스팅 계정에 접속해야 합니다. 호스팅 계정에 로그인한 후 cPanel로 이동하세요. 그곳에서 파일 매니저(File Manager) 옵션을 찾을 수 있습니다. 이를 선택하면 페이지가 열리고 해당 파일을 확인할 수 있습니다.

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

때때로 .htaccess 파일은 숨겨져 있어 public_html 폴더에 나타나지 않을 수 있습니다. 이런 경우 cPanel로 돌아가 파일 매니저를 클릭하세요. 팝업창이 나타나면 'Show Hidden Files'(숨김 파일 표시)를 선택하면 됩니다.

HTTP 기본 인증으로 워드프레스 로그인 페이지 비밀번호 보호하는 방법

다음으로 파일을 다운로드한 후 열어 다음 코드를 추가합니다.

<Files wp-login.php>

AuthUserFile /path/to/.htpasswd

AuthName "Private access"

AuthType Basic

require valid-user

</Files>

코드를 삽입할 때 유의할 몇 가지 사항이 있습니다. AuthUserFile /path/to/.htpasswd는 방금 생성한 .htpasswd 파일의 경로입니다. 경로가 정확한지 반드시 확인하세요. 'valid-user'는 .htpasswd 파일에 등록된 모든 사용자에게 로그인 페이지 접근 권한을 부여한다는 의미입니다. 하지만 접근 권한을 특정 사용자에게만 제한하고 싶다면 'valid-user' 대신 사용자 이름을 직접 명시하면 됩니다.

완료되면 파일을 저장하고 다운로드했던 동일한 위치에 업로드하세요. 이제 끝입니다. 다음에 로그인 페이지에 접속하려고 하면 특정 로그인 정보를 요청하는 작은 창이 나타날 것입니다.

HTTP 인증 외에도 2단계 인증(Two-Factor Authentication)을 함께 적용하면 워드프레스 로그인 페이지에 한 겹 더 강화된 보안층을 추가할 수 있습니다.

또한 사이트를 HTTP에서 HTTPS로 전환하고, 보안 플러그인을 설치하며, 로그인 페이지를 보호하는 등 추가적인 보안 조치도 함께 취하는 것이 좋습니다. 로그인 페이지 보호는 훌륭한 방법이지만, 해커가 웹사이트에 침입하는 경로는 이 외에도 다양합니다. 전체적인 보안을 위해 종합적인 워드프레스 보안 가이드를 참고하시길 강력히 권장합니다.