워드프레스 무차별 로그인 시도에 자주 이용되는 xmlrpc 비활성화 방법

글자 크기

여러분의 워드프레스 블로그에 무차별 로그인 시도가 많다면 xmlrpc 기능이 활성화 되어 있는지 확인해 보세요. xmlrpc는 평소에 사용되지 않는 기능임에도 모르고 활성화 시켜 놓았다가 보안에 문제가 생기는 경우가 많습니다. 이 글에서 무차별 로그인 시도에 자주 이용되는 xmlrpc 비활성화 방법에 대해 알아보겠습니다. 

워드프레스 무차별 로그인 시도에 자주 이용되는 xmlrpc 비활성화 방법

얼마 전 설치한 Loginizer에서 Brute Force를 확인해 보니, 아래 화면과 같이 xmlrpc.php 접속 시도가 있었던 것을 발견했습니다. 그냥 두기 꺼림직해서 xmlrpc 서비스를 비활성화하였고, 이 글에서 그 과정을 자세히 설명드리도록 하겠습니다. 

워드프레스 블로그 보안 강화를 위한 로그인 시도 횟수를 제한하는 방법

Loginizer에 xmlrpc.php 공격 시도가 기록되었습니다



1. xmlrpc의 용도 

xmlrpc가 워드프레스 무차별 로그인 시도에 많이 이용된다고 말씀을 드렸는데요. 문제가 많음에도 불구하고 사용되는 이유와 기능에 대해 알아보겠습니다.

xmlrpc는 웹사이트를 원격으로 관리할 수 있는 프로토콜로, 다른 시스템이나 애플리케이션에서 워드프레스 사이트와 통신하여 글 작성, 수정, 삭제 등을 할 수 있게 합니다. 이는 워드프레스 사이트를 원격으로 조작하는 데 필수적인 기능을 제공하며, 모바일 앱, 데스크탑 애플리케이션, 다른 웹 서비스와의 연동을 가능하게 합니다. 그러나 xmlrpc 기능이 악용될 경우 보안에 문제가 될 수도 있기 때문에, 외부 프로그램을 사용한 워드프레스 블로그의 자동 포스팅이나 플러그인을 통한 자동 글 생성을 하지 않는 경우 비활성화하는 것이 좋습니다.


2. xmlrpc 비활성화 방법

xmlrpc를 비활성화 하는 방법은 전용 플러그인을 설치하여 비활성화 하는 방법과 수작업으로 .htaccess 파일에 xmlrpc 접속을 차단하는 코드를 추가하는 방법이 있습니다. 

1) xmlrpc 차단 플러그인 활용

플러그인을 활용하는 방법은 워드프레스 관리자 화면에서 ‘플러그인’ → ‘Add New Plugin’ 을 순서대로 클릭한 후, 키워드에 ‘xml-rpc’로 검색하면 아래 화면과 같이 여러 개의 xml-rpc 차단 플러그인이 검색됩니다. 이 중에서 활성 사용자가 많은 플러그인을 설치한 후, 해당 플러그인의 설정에서 xmlrpc 서비스를 비활성화 하면 됩니다.

서버에서 직접 파일을 수정하기 어렵거나 경험이 없는 분들이라면 플러그인을 활용하는 것이 좋겠지만, 그렇지 않다면, xmlrpc 비활성화를 위해 플러그인을 설치하는 것은 추천드리고 싶은 방법은 아닙니다.

xmlrpc 비활성화를 위해 워드프레스 xmlrpc 플러그인을 검색한 후, 활성 설치가 많은 것을 선택해서 설치합니다


2) 수작업으로 xmlrpc 기능 차단하기 (.htaccess 파일 수정)

수작업으로 xmlrpc 기능을 차단하는 방법은 .htaccess 파일에 필요한 코드를 추가하는 것으로, 서버에 ssh로 접속하여 .htaccess 파일을 직접 수정하거나, FTP를 사용하여 다운로드 받은 후, 로컬에서 수정하고 다시 upload 하는 방법이 있습니다.


첫번째, 서버에서 .htaccess파일을 직접 수정하는 방법을 알아보겠습니다.

먼저 여러분이 이용하시는 서비스업체에서 제공하는 ssh로 서버에 접속합니다. AWS Lightsail 의 경우 아래와 같이 ‘>_’ 을 클릭하면 ssh로 접속할 수 있습니다.

ssh를 활용하여 서버에 접속합니다


ssh로 서버에 접속한 후, 아래 명령을 순서대로 실행해서 .htaccess 파일을 오픈합니다.

cd stack/wordpress
ls -a
sudo nano .htaccess


서버에 접속해서 .htaccess 파일을 수정하기 위해 오픈합니다


.htaccess 파일을 수정하기 위해서 ‘sudo nano .htaccess’ 명령을 입력하면 아래와 같이 파일을 오픈됩니다. 

.htaccess 파일에 xmlrpc 비활성화 코드를 추가합니다


오픈 된 .htaccess 파일의 맨 끝으로 이동하여 아래 코드를 추가합니다.

<files xmlrpc.php>
order allow,deny
deny from all
</files>


만약 특정 IP에 대해서만 xmlrpc 접근이 가능하게 하려면, 아래 코드에서 ‘xxx.xxx.xxx.xxx’를 접근이 필요한 IP 주소로 변경한 후, </files> 앞에 추가하면 됩니다.

allow from xxx.xxx.xxx.xxx


코드를 추가하고 Ctrl+X 를 입력하면 ‘Save modified buffer? ’가 나오는데, 이때 ‘Y’를 입력하면 삽입한 코드가 저장되고 xmlrpc 기능이 비활성화 됩니다.


두번째, FTP를 활용하는 방법에 대해 알아보겠습니다. 

Lightsail 서버에 FTP로 접속하는 방법은 아래 링크를 참고하세요.

FTP로 AWS Lightsail 서버에 파일 업로드하기


FTP를 통해 서버에 접속한 후, ‘stack’ → ‘wordpress’ 디렉토리로 이동합니다. ‘wordpress’ 디렉토리 내에서 .htaccess 파일을 마우스로 선택하고, 왼쪽의 폴더로 드래그하여 파일을 다운로드합니다.

FTP로 서버에 접속한 후 .htaccess 파일을 다운로드 합니다


다운로드한 파일을 notepad 나 notepad++로 오픈한 후, 첫번째 ‘서버에서 .htaccess파일을 직접 수정하는 방법’에서 추가했던 <files xmlrpc.php> ~ </files> 의 내용을 추가하고 저장합니다. 

노트패드로 다운로드한 .htaccess 파일을 오픈하고 xmlrpc 비활성화 코드를 추가합니다


xmlrpc 비활성화 코드를 추가한 .htaccess 파일을 FTP를 활용해 아래와 같이 서버에 다시 upload합니다. 이 때 .htaccess 파일을 직접 ‘stack/wordpress’ 디렉토리로 업로드 할 수 없기 때문에, 우선 루트 디렉토리로 업로드 한 후 이동시켜야 합니다.

수정한 .htaccess 파일을 파일에 업로드합니다


서버에 업로드한 .htaccess 파일을 ‘stack/wordprsss’ 디렉토리로 이동시키기 위해 ssh로 서버에 접속한 후 아래 명령어를 실행합니다.

sudo mv .htaccess stack/wordpress/


루트 디렉토리에 업로드한 파일을 stack/wordpress 디렉토리로 이동시킵니다


위와 같이 실행하면 xmlrpc 서비스를 수동으로 비활성화할 수 있습니다. 

오늘은 워드프레스 무차별 로그인 시도에 자주 이용되는 xmlrpc 기능을 비활성화 하는 방법에 대해 알아보았습니다. 해당 기능을 사용하지 않는다면 보안을 위해 위의 내용을 참고하셔서 비활성화 하는 것이 좋습니다. Loginizer 를 통한 무차별 공격 차단 방법에 대해 포스팅 한 글에서도 말씀드렸지만, 한번 뚫리면 돌이키기 힘들 만큼 타격을 받기 때문에, 몇 번을 강조해도 지나치지 않는 것이 보안입니다. 이 글이 여러분의 블로그를 안전하게 운영하는 데 도움이 되기를 바랍니다.