워드프레스에서 xmlrpc.php를 통한 Brute Force 공격 차단하기 [XML-RPC 비활성화]

워드프레스 보안 - XML-RPC 비활성화

워드프레스에서 XML-RPC를 비활성화하여 보안을 강화할 수 있습니다. 이 글에서는 여러 가지 방법으로 XML-RPC 비활성화가 가능합니다.

워드프레스에서 XML-RPC 비활성화 방법

XML-RPC란 XML을 사용하여 호출과 HTTP를 전송 메커니즘으로 인코딩하는 원격 프로시저 호출(a remote procedure call which uses XML to encode its calls and HTTP as a transport mechanism)이라고 합니다. 무슨 말인지 어렵네요. 쉽게 말하자면 사용자가 Windows Live Writer와 같은 인기 웹블로그 클라이언트(weblog client)를 사용하여 워드프레스 블로그에 글을 게시하도록 허용하는 시스템이라고 합니다.

이 기능을 사용하지 않는다면 XML-RPC를 비활성화하는 것이 보안상 좋다고 합니다. XML-RPC를 통한 Brute Force 공격(DoS 공격)과 같은 해킹 공격이 자주 발생하는 것 같습니다.

.htaccess 파일에 코드 추가하기

XML-RPC를 비활성화하려면 다음 코드를 .htaccess 파일에 추가하도록 합니다.

# BEGIN protect xmlrpc.php
<files xmlrpc.php>
order allow,deny
deny from all
</files>
# END protect xmlrpc.php

특정 IP를 허용하려면 deny from all 아래에 다음 라인을 추가하도록 합니다.

allow from 123.123.123.123

다른 방법으로 다음 코드를 함수 파일에 추가해도 된다고 합니다. 차일드 테마를 만들어 작업해야 테마가 업데이트되는 경우에 추가한 코드가 초기화되지 않습니다.

add_filter('xmlrpc_enabled', '__return_false');

보안 플러그인에서 XML-RPC 비활성화 설정하기

iThemes Security 같은 일부 보안 플러그인에서 XML-RPC를 비활성화하는 옵션을 제공합니다. iThemes에서는 워드프레스 알림판 > Security > Settings > WordPress Tweaks로 이동하여 XML-RPC 옵션을 "Disable XML-PRC"로 설정하면 됩니다.

워드프레스 XML-RPC 비활성화하기

워드프레스 최적화 플러그인을 통해 XML-RPC 비활성화

Clearfy와 같은 최적화 같은 워드프레스 최적화 플러그인에서 XML-RPC를 비활성화하는 옵션을 제공할 수도 있습니다. Clearfy의 경우 설정 > Clearfy > Defence > Base settings 아래에서 Disable XML-RPC 옵션을 활성화(On)할 수 있습니다.

워드프레스 최적화 플러그인을 통해 XML-RPC 비활성화

캐시 플러그인과 함께 Clearfy와 같은 최적화 플러그인을 사용하여 세팅하면 사이트 속도가 향상될 수 있습니다("워드프레스 사이트 속도 향상을 위한 Clearfy 플러그인 세팅 예시" 참고).

XML-RPC 비활성화 플러그인 사용

XML-RPC를 비활성화하기 위해 플러그인까지 사용하는 것은 별로 바람직하지 않지만, FTP에 접속할 수 없는 경우 워드프레스 알림판 > 플러그인 > 새로 추가로 이동하여 disable xml-rpc를 검색하여 Disable XML-RPC 플러그인을 설치하여 활성화할 수 있습니다.

워드프레스 XML-RPC 플러그인

이 플러그인은 10만 개 이상 사이트에 사용되고 있습니다. 이 플러그인이 제대로 작동하지 않으면 Manage XML-RPC 플러그인을 사용할 수 있습니다.

참고:


5개 댓글

  1. 워드님, 안녕하세요. 혹시 벌쳐 서버에서 xmlrpc를 비활성화 하려면 알려주신 코드를 똑같이 htaccess파일에 적용해도 될까요?

    1. ken님. Vultr 서버의 웹서버가 nginx인 경우에는 상기 코드를 사용할 수 없습니다. 클라우드웨이즈의 Vultr 서버를 이용하는 경우에는 이용이 가능합니다.

      nginx 웹서버인 경우 XMLRPC를 비활성화하는 플러그인을 설치해보시기 바랍니다. 또는, 일부 보안 플러그인에서 이 기능을 비활성화하는 옵션을 제공하기도 합니다.

댓글 남기기

* 이메일 주소는 공개되지 않습니다.