해킹으로부터 워드프레스 홈페이지를 보호하는 방법

2020. 6. 29. 03:18

워드프레스 홈페이지는 전 세계의 웹사이트에서 가장 많이 사용되는 홈페이지 플랫폼입니다. 그렇다 보니 해커들이 워드프레스를 해킹의 타겟으로 많이 삼는데요. 그러면 우리는 이런 해킹으로부터 우리의 워드프레스 홈페이지를 어떻게 보호할 수 있을까요? 많은 분들이 플러그인은 설치를 잘 하시지만, 그 이외에도 다양한 방법으로 우리의 워드프레스 홈페이지를 보호할 수가 있습니다. 

 

TIP
 
 

절대로 워드프레스의 디폴트 세팅은 사용하지 말아라

 

워드프레스에서 기본적으로 정해놓은 설정은 해커들도 당연히 알고 있는 것이죠. 그래서 우리가 워드프레스의 기본 설정을 사용한다는 것은 해커들에게 우리 웹사이트로 오는 길을 다 알려주게 되는 것이나 마찬가진데요. 그럼 이런 디폴트 세팅에는 어떤 것이 있는지 알아볼까요.

 

  • wp-content 폴더명
  • wp-config.php 저장위치
  • 관리자 로그인 id 와 이름
  • DB 테이블 prefix wp_
  • 로그인 주소
  • xmlrpc.php

그러면 위의 디폴트 세팅들을 하나씩 어떻게 바꾸는 지 알아보겠습니다. 

 

1. 워드프레스 컨텐츠 폴더 wp-content 변경

해킹에 취약한 파일들은 워드프레스 코어 파일, 플러그인 파일, 테마 파일이라고 할 수 있는데요, wp-content 폴더는 플러그인, 테마 그리고 워드프레스의 사용자 화면의 파일들을 저장하는 폴더입니다. 그렇기 때문에 이 폴더명을 변경하면 해커들이 취약한 파일들이 어디에 저장되어 있는지 알 수 없게 되는 거죠.

워드프레스 폴더 구조

그러면 어떻게 wp-content의 폴더명을 변경할 수 있을까요? 바로 워드프레스 환경 설정 파일 wp-config.php에서 변경하면 됩니다.
아래의 그림이 wp-config.php에서 wp-content를 front-content로 변경했을 때를 예로 보여주고 있습니다.

/** Absolute path to the WordPress directory. */
if ( ! defined( 'ABSPATH' ) ) {
	define( 'ABSPATH', __DIR__ . '/' );
}

/* wp-content를 front-content로 변경한 예*/
define('WP_CONTENT_FOLDERNAME', 'front-content');
define('WP_CONTENT_DIR', ABSPATH . WP_CONTENT_FOLDERNAME) ;
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST'] . '/');
define('WP_CONTENT_URL', WP_SITEURL . WP_CONTENT_FOLDERNAME);
/* wp-content를 front-content로 변경한 예 끝*/

/** Sets up WordPress vars and included files. */
require_once ABSPATH . 'wp-settings.php';

 

2. 워드프레스 설정 파일 wp-config을 상위 폴더로 이동

위에서도 wp-config.php 내용을 변경했습니다만, 워드프레스 설정 파일 wp-config.php에는 중요한 정보들이 아주 많이 들어 있습니다. DB이름, 비밀번호 및 각종 보안 키 등이 저장되어 있어서 해커들의 좋은 타겟이 되고 있습니다. 그렇다면 이 설정 파일을 어디로 옮기면 좋을까요? 

wp-config.php 이동한 폴더

서버 환경에 따라서 다를 수 있지만, 웹 서버는 기본적으로 public_html 폴더하위의 있는 파일들만 외부 사용자가 접속할 수 있게 설정되어 있습니다. 그러므로 wp-config.php를 파일을 public_html의 상위 폴더에 저장하면, 해커들이 쉽게 접근할 수가 없게 됩니다. 그리고 워드프레스 홈페이지도 문제없이 설정 파일에 접속할 수 있죠. 위는 제가 실제로 운영하고 있는 워드프레스 홈페이지의 서버의 모습이고, 보시는 대로 wp-config.php 는 public_html의 상위 폴더 저장되어 있습니다.

 

3. 관리자 ID는 admin 또는 도메인명으로 하지 말자

워드프레스 보안 플러그인의 로그를 보면 우리 워드프레스 사이트에 얼마나 많은 해킹 시도가 일어나고 있는지 알 수 있는데요. 그 로그에서 로그인을 시도하는 ID를 보면 'admin' 또는 도메인명이 대부분입니다. 

로그인 실패 시도 리스트

위는 WordFence 플러그인의 로그인 실패 리스트입니다. admin과 도메인 이름들이 많이 보이실 겁니다. 그렇기 때문에 관리자 로그인 ID를 admin이나 도메인으로 하는 것은 해커들에게 우리 홈페이지 침입할 수 있는 열쇠 중에 하나를 그냥 공짜로 주게 되는 거나 마찬 가지죠.

 

그리고 하나도 바꿔야 할 것이 있는데요, 공개되는 관리자의 이름을 변경해야 됩니다.

관리자의 공개 이름을 변경

위의 그림처럼 예를 들어서 우리가 관리자 로그인 ID 'webadmin'로 변경했다고 했을 때, 기본값으로 공개되는 이름이 'webadmin'로 지정됩니다. 그리고 우리가 이 관리자 ID로 글을 썼다면, 글 작성자에 이 'webadmin'가 바로 나타나게 되죠. 그럼 우리가 기껏 바꿨던 관리자의 ID를 그래도 공개하는 꼴이 됩니다. 

 

4. 워드프레스 관리페이지 로그인 주소 변경

워드프레스의 관리페이지 로그인 주소는 '/wp-login.php'입니다. 해커들도 당연히 알고 있기 때문에 이 주소를 이용해서 해킹 시도를 많이 하고 있습니다. 그렇기 때문에 이 주소를 변경하게 되면 또 다른 해커의 공격을 예방할 수 있겠는데요. 방법은 전용 플러그인 'WPS Hide Login' 을 사용하거나, 'All in All In One WP Security' 보안 플러그인의 경우 로그인 주소 변경기능이 포함되어 있습니다. 

All in  All In One WP Security 플러그인의 로그인 주소 변경화면

 

5. xmlrpc.php이란? 어떻게 차단해야 하는가?

아래 그림은 제가 운영 중인 사이트의 액세스 기록을 보여주는 목록인데요. xmlrpc.php이 꽤 많이 눈에 띄실 겁니다.

xmlrpc.php 해킹 공격

우선 xmlrpc.php 이 무슨 파일인지 간단히 알아볼까요. xmlrpc은 외부 앱에서 워드프레스로 접속할 때 사용되는 파일입니다. 그렇기 때문에 보안면에서 많이 취약한 파일이라고 할 수 있습니다. 그러면 이 xmlrpc.php을 어떻게 비활성화시킬 수 있을까요? 'All in All In One WP Security' 보안 플러그인은 xmlrpc를 차단하는 기능도 포함되어 있습니다.

All in All In One WP Security xmlrpc 차단 화면

'All in All In One WP Security' 플러그인을 사용하지 않으시면 .htaceess 파일에 다음과 같이 코드를 넣어서 차단할 수 도 있습니다.

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
</Files>

'allow from xxx.xxx.xxx.xxx'를 이용해서 특정 IP만 접속 가능하게 할 수 있고, 전부 차단하고 싶은 경우에는 이 내용을 삭제하시면 됩니다. 

 

6. 워드프레스 DB 테이블 prefix wp_ 변경

DB 테이블의 prefix는 대부분의 워드프레스 개발자들이 잘하고 있을 것 같아서, 중요하지만 제일 마지막에 언급합니다만, 워드프레스의 DB 테이블의 prefix인 wp_를 사용하지 말고, 다른 prefix를 사용해야합니다.

 

7. 백업을 자주 하자

위의 방법을 모두 이용해서 보안을 이중삼중으로 강화한다고 해도 해커들이 뚫고 들어올 가능성은 항상 있습니다. 그렇기 때문에 마지막에 제가 강조하고 싶은 것은 항상 백업을 자주 하라는 것입니다.

 

 

우리의 워드프레스 홈페이지는 지금 제가 이 글을 적고 있는 순간에도 엄청난 해킹의 공격을 받고 있습니다. 해킹을 당해보신 분들은 알겠지만, 복구가 무척 힘들고, 백업에 잘 되어 있지 않을 경우에는 거의 초기 상태로 돌려놔야 하는 경우도 발생하죠. 우리가 조금만 주의하고 대비하면 이런 피해를 미연에 방지할 수 있습니다.

 

 

흥미로운 다른글들

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band