예전에 이 홈페이지가 운영되고 있는 서버의 Mysql이 계속 다운되는 현상이 발생했었다.
처음에는 중국에서 무차별적인 DB접속시도를 하는줄 알았다. 그래서 mysql로그를 보고 몇 몇 IP에 대한 접근을 막았다. 그런데 그런 현상이 계속 발생하는 것이 아닌가! 좀 자세하게 알아보니 이 현상은 해커들이 워드프레스 사이트를 대상으로 시도하는 XML-RPC 공격이었다. 이 공격에 대해서 내가 겪은 증상은 다음과 같다.
- 불규칙하게 “Error establishing database connection” error 발생
- 메모리 사용량 증가
XML-RPC에 대한 자세한 사항은 아래 링크에서 자세하게 알 수 있다.
위 글을 보면 XML-RPC 공격에 대한 몇 가지 해결방법이 나오는데 내가 선택한 해결방법은 .htaccess파일을 수정하는 방법이었다. 아래 코드를 .htaccess 파일에 추가만 하면 끝이다. 아파치 서버 설정을 변경하는 방법도 있으나 그렇게 하면 서버를 옮길 때 또 귀찮아 질 것 같아서 그냥 .htaccess 파일을 수정하기로 했다.
<Files xmlrpc.php> order deny,allow deny from all </Files>
그런데 이 방법은 xmlrpc파일에 대한 접근을 막는 방법이기 때문에 jetpack플러그인을 설치할 때 문제가 발생한다.(.htaccess파일을 위와 같이 수정한 상태에서는 jetpack플러그인이 설치되지 않는다.) 그리고 jetpack플러그인이 xmlrpc파일에 접근할 수 없기 때문에 wordpress.com에서 통합관리를 할 수 없다.
물론 .htaccess파일 수정과 같은 조치없이 jetpack 플로그인만 설치해도 어느정도 XML_RPC 공격에 대한 방어가 가능하다고한다. jetpack플러그인이 정상적이지 않은XML_RPC요청을 알아서 블록처리 하기 때문이다. 그런데 나는 jetpack플러그인을 설치했음에도 불구하고 그런 공격을 받은 것이기 때문에 .htaccess 파일을 수정했다.