워드프레스 보안 - 관리자 경로(wp-admin) 숨기기

워드프레스는 사용 편의성으로 인해 많은 사용자가 사용하는 반면 보안의 우려도 있습니다. 특히 외부 플러그인을 자유롭게 설치할 수 있다 보니 본의 아니게 플러그인으로 인해 보안이 취약해지는 경우가 있습니다. 올해 초에 레볼루션 슬라이더가 심각한 보안 취약점에 노출되어 여러 신문사의 인터넷 기사까지 나온 적이 있을 정도니까요.

이뿐만 아니라 워드프레스는 스팸봇에 의해 끊임없이 공격을 받습니다. 워드프레스 사이트를 운영하다 보면 얼마 지나지 않아 각종 스팸 댓글이 마구 달리는 것을 볼 수 있습니다. 개인적으로는 여러 가지 스팸 방지 플러그인 중에서는 Akismet이 강력한 것 같습니다. 저는 댓글 블랙리스트 기능을 사용하여 스팸 댓글을 차단하고 있습니다.

[ 이 글은 2022년 5월 19일에 최종 업데이트되었습니다. ]

워드프레스 보안 - 관리자 경로(wp-admin) 숨기기

스팸봇/해커가 시도하는 워드프레스 관리자 로그인 정보

그리고 IP Blacklist Cloud라는 플러그인도 있습니다. 이 플러그인은 플러그인 이름에서 알 수 있듯이 스팸 IP 블랙리스트를 통해 접근을 차단합니다. (어쩌면 나도 모르게 내 IP가 여기에 등록되어 있을지도 모르겠네요...) IP Blacklist Cloud에서는 로그인에 실패한 IP 목록도 보여줍니다. 목록을 검토하여 의심되는 IP는 블랙리스트로 신고할 수 있습니다.

IP Blacklist - 워드프레스 스팸 IP 블랙리스트

위의 그림은 IP Blacklist 플러그인에 의해 차단된 IP의 목록(IP는 위의 그림에 표시하지 않음)과 그들이 시도했던 로그인 정보를 보여줍니다. 주로 Admin, admin, administrator와 같은 ID(사용자 이름)로 로그인을 시도합니다. 위에서는 특이하게 demo1이라는 사용자 이름으로도 시도하고 있네요. 그러므로 관리자 사용자 이름으로 Admin, admin, administrator 등은 피하는 게 가장 효과적일 것 같습니다.

관리자 경로(wp-admin) 변경

플러그인 사용

원하는 경우 관리자 경로인 /wp-admin/을 변경할 수도 있습니다. 이것이 효과가 있을지는 모르겠습니다. 일부 글을 보면 아무리 숨겨도 해커들은 찾아내므로 무익하다고 한 것을 보았는데요. 아무래도 관리자 경로 URL을 변경하면 관리자 로그인 시도가 줄어들지 않을까 생각됩니다.

iThemes Security 보안 플러그인을 사용하는 경우 플러그인에서 관리자 페이지 경로를 변경하는 옵션을 제공합니다. "iThemes의 Hide Backend 기능을 사용하여 워드프레스 로그인 페이지 숨기기"를 참고해보세요.

이와 관련된 플러그인으로 인터넷 사용자들이 Stealth Login Page 플러그인을 많이 추천하네요. (업데이트: 이 플러그인은 워드프레스 저장소에서 제거되었습니다.)

Stealth Login Page - 워드프레스 보안 플러그인

이 플러그인은 .htaccess 파일을 수정하지 않고 대시보드를 보호해주며, 보안 코드를 입력하지 않는 방문자를 사용자 지정 가능한 URL로 리디렉션시켜 줍니다.

또 다른 플러그인으로 Protect Your Admin이라는 플러그인이 있습니다.

Protect Your Admin - 워드프레스 관리자 보안 플러그인

이 플러그인은 비교적 최근에 업데이트되었네요. 일부 플러그인은 업데이트가 잘 안 되어 결국에는 사용하지 못하게 되는 경우가 발생합니다. 그래서 플러그인을 선택할 때에는 먼저 평점과 함께 업데이트가 언제 되었는지 보게 됩니다. 그리고 다양한 기능을 제공하네요:

  • 사용자 정의 wp-admin url(예: http://yourdomain.com/myadmin) 지정
  • 로그인 페이지에서 사용자 정의 로그를 지정하거나 기본 로고 변경
  • 로그인 페이지의 body 배경색 지정
  • SEO에 유리한 "등록" 페이지 URL
  • 기타

다른 방법

사실 워드프레스에서 플러그인을 많이 설치하다 보면 사이트 속도에 영향을 미치고, 간혹 원치 않은 플러그인 간 또는 플러그인과 테마 간 충돌이 발생하기도 합니다. 또, 플러그인으로 인해 보안 문제가 야기되기도 하고요. 그러므로 가급적 플러그인 설치를 최소화하는 게 바람직합니다. 플러그인을 설치하지 않고 다음과 같은 방법으로 관리자 URL을 변경할 수 있습니다. (업데이트: 코드를 사용한 이 방법은 이전에는 잘 되었지만 이제는 더 이상 작동하지 않는 것으로 확인되었습니다.)

1. wp-config.php 파일에 변수를 추가합니다.

define('WP_ADMIN_DIR', 'secret-folder');
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

2. 함수 파일(functions.php)에 아래 필터를 추가합니다.

add_filter('site_url',  'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$old  = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new  = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}

3. 다음 라인을 .htaccess 파일에 추가합니다.

RewriteRule ^secret-folder/(.*) wp-admin/$1?%{QUERY_STRING} [L]
// 출처: stackoverflow

Hide My WP 플러그인

Hide My WP - Amazing Security Plugin for WordPress

Hide My WP 플러그인은 wp-admin 경로뿐만 아니라 거의 모든 고유주소를 변경하여 사이트가 워드프레스로 제작되었다는 사실을 사용자들이 알지 못하도록 하여 보안을 강화해주는 플러그인입니다. 자세한 내용은 이 글을 참고해보시기 바랍니다.

마치며

워드프레스 사이트를 업데이트하지 않고 방치하거나 비밀번호 관리를 소홀히 하다가 간혹 해킹당해 관리자 계정이 삭제되거나 관리자 비밀번호가 변경되어 관리자 페이지에 접속하지 못한다고 호소하는 경우를 본 적 있습니다. 이 경우 이 글을 참고로 관리자 비밀번호 복구를 시도하거나, 다소 복잡하지만 이 글에서 설명하는 방법으로 새로운 관리자 계정을 추가할 수 있습니다. 이상으로 워드프레스에서 보안 강화를 위해 관리자 URL을 변경하는 방법을 살펴보았습니다.

2017_1226 업데이트: 초기 보안 플러그인에는 워드프레스 로그인 페이지/관리자 로그인 페이지를 숨기는 기능이 포함되어 있었지만 이러한 ‘불분명함을 통한 보안(Security through Obscurity, 은둔 보안)’ 방식은 실질적인 보호를 제공하지 않고 오히려 시스템을 불안하게 하고 테마가 깨질 수 있다고 합니다.

따라서 로그인 페이지를 숨기는 방식은 별로 권장하지 않습니다. 보안 플러그인을 설치하고 워드프레스와 워드프레스 테마 및 플러그인을 항상 최신 버전으로 업데이트하고 백업을 생활화하는 것이 보안에 도움이 될 것입니다("워드프레스 보안 강화를 위한 기본적인 세 가지 방법" 참고).

참고

일부 글에 제휴 링크가 포함될 수 있으며 파트너스 활동으로 일정액의 수수료를 받을 수 있습니다.

6개 댓글

  1. 플러그인 설치하지 않고 관리자 url을 변경하는 방법으로 파일들을 수정하였더니. 모든 페이지가 Internal Server Error 가 뜹니다.

    1. 안녕하세요?
      테스트를 해봤는데요 Internal Server Error가 표시되지 않지만 더 이상 작동하지는 않네요.
      이 글을 작성할 당시에는 잘 되었는데 이제는 위에 나온 코드로는 되지 않고, 플러그인을 사용하셔야 할 것 같습니다.

      워드프레스가 계속 업데이트되기 때문에 이전에 잘 되었던 방법이 업데이트가 되면서 안 되는 경우가 많습니다. 알려주셔서 감사합니다.

dohyun에 답글 남기기 응답 취소

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다