워드프레스 관리자 로그인 공격 막기


워드프레스는 웹사이트를 만드는 CMS로 가장 많이 사용하고, 오픈소스라 수 많은 플러그인과 테마가 있다. 대신 그 만큼 해킹의 위협도 많다. 특히 관리자 계정을 탈취하려는 시도가 많은데 이를 막는 방법을 정리했다.

워드프레스 관리자 계정 로그인 해킹 시도

슬랙에 갑자기 내 블로그 어드민 게정에 로그인 실패가 감지됐다는 메시지가 연달아 왔다.  나는 로그인한 적이 없는데 말이다.
워드프레스나 플러그인 업데이트나 글 등록시 알림을 받으려고 슬랙에 연결해 놓았는데 이런 메시지는 처음 이었다.
워드프레스 관리자 로그인 공격 막기
 
WP Security 플러그인을 깔아 놓았는데, 어드민에 들어가서 봤다.
워드프레스를 설치 할때 기본 관리자 user name 이 admin 인데 이걸로 로그인을 시도했다.
재미 있는 것은 도메인을 가지고 로그인 계정을 추측해서 로그인 시도를 했다.
dobiho.com 이니깐 dobiho 로 하고, admin@dobiho.com 으로 하고 이런 식이다.  사람들이 많이 이렇게 어드민 계정을 만드는 모양이다.
 
워드프레스 관리자 로그인 공격 막기
 
 

워드프레스 관리자 계정 탈취 막기

관리자 계정의 ID 변경

워드프레스 설치 시 관리자 계정의 id 의 디폴트가 admin 이다.  admin 으로 로그인 시도를 한 모양이다. 많은 사람들은 어드민 계정의 비밀번호는 입력해도 user name 은 변경하지 않으니 말이다. 나도 워드프레스라는 게 생기고나서 얼마 지나지 않아서 블로그를 개설해서 나도 변경하지 않았었다.  다행히도 플러그인에서 꼭 바꿔야 한다고 해서 관리자 계정의 ID를 변경했었다.

워드프레스를 처음 설치 할 때에는 꼭 admin 이 아니라 추측하기 어려운 이름으로 바꿔야 한다.
이미 설정했다면 Username Changer 플러그인으로 바꿀 수 있다.

관리자의 사용자 목록에서 username 은 변경이 안되지만 이 플러그인을 깔면 수정이 가능하다.
워드프레스 관리자 로그인 공격 막기
 
플러그인 갯수는 성능에 영향을 주니깐 username 을 변경 한 후에 비활성화 하면 된다.

멀티사이트의 최고관리자를 변경할때에는 변경 후에 최고관리자 정보에 아이디를 직접 수정해줘야한다. 안그려면 멀티사이트의 네트워크 관리자 메뉴가 보이지 않는 문제가 발생한다.

공격한 IP 막기

.htacces 가 아니더라도 플러그인으로 막을 수도 있다. 그런데 접속한 IP를 보니 다 달라서 의미가 없을 것 같다.

로그인 URL 변경

워드프레스의 관리자 로그인 페이지의 URL은 사이트의 /wp-admin/ 이다.  이 URL은 고정되어 있으므로 로그인 공격을 피하기 위해서 로그인 URL을 변경 하라고 한다.

WP Security 플러그인의 기능으로 로그인 페이지 URL를 변경했었다.


워드프레스 관리자 로그인 공격 막기
 
그런데 어떻게 알아냈는지, 아니면 바로 로그인 함수를 호출했는지 모르겠다.
그래서 일단 또 변경했다.  그런데도 로그인 공격이 들어왔다.  이 방법은 뚫리는 모양이다.

로그인 실패 하면 락다운 시키기

코로나 19 사태에서 도시를 락다운 시킨다는 식의 표현에서 많이 듣던 그, 롹다운이다.

WP Security 플러그인에 보니 정의한 로그인 실패 횟수 후에 같은 ip 에 대해 로그인 시도를 못하게 락다운 시킬 수 있다.  사실 나도 비번을 잘 못 넣어서 로그인 실패 할 수 있으니 나는 두 번 정도로 했다.
 
워드프레스 관리자 로그인 공격 막기
 
 

워드프레스 관리자 로그인 창에 구글 캡차 달기

로그인 실패 하면 락다운 시키고 나서 잠잠해 졌다. 그런데 오늘 또 로그인 시도가 들어왔다.

그래서 로그인 창에 캡차를 달았다. WP Security 플러그인에서 Google reCAPTCHA 를 달아준다.  구글 캡차 콘솔에서 가서 만든 후 생성된 site key 와 secret key 만 저장하면 된다.


워드프레스 관리자 로그인 공격 막기
구글 캡처를 안쓰고 이 플러그인에서 제공하는 것도 있는데 구글 캡처 만드는 것이 어렵지 않아서 그냥 썼다.
구글 캡처 V3 를 넣었는데 캡처가 안되서 V2를 하니 됐다.
 
로그인 페이지에 아래와 같이 구글 캡차가 나온다.
 
워드프레스 관리자 로그인 공격 막기
 
 

내 IP 만 로그인 하게 하기

내 IP를 화이트리스트로 하고 나머지는 모두 막을 수 있다. 그러나 내 사용 환경에서 현실적으로 내가 불편해져서 이건 안했다.

워드프레스인지 숨기기

/wp-admin/ 을 숨기더라도 HTML 에 보면 이미지 디렉토리가 wp-content 가 보여서 워드프레스인지 안다.  사이트 주소를 넣으면 워드프레스를 사용했는지 무슨 테마와 플러그인을 사용했는지 알려주는 사이트도 있다.


그래서 워드프레스로 만든 것인지를 숨기면 워드프레스이기 때문에 알려진 보안 공격을 덜 받을  수도 있을 것 같다.
Hide My Wp 라는 플러그인으로 워드프레스인지 숨길 수 있는데 이건 유료로 $29 이다. 많은 보안 문제를 해결 할 수 있다고 한다.
 

어드민을 내부망에서만 접속할 수 있게

플러그인 보안 문제를 포함해서 로그인 해킹등의 보안 문제를 해결하는 것은 쉬운 방법이 있다. 어드민을 내부망에서만 접속 할 수있게 하는 것이다.  회사 홈페이지를 바꿀때 이 방법을 했는데 나 처럼 호스팅하고 있고 외부에서 마음대로 접속하려면 창과 방패의 문제가 계속 있을 수 밖에 없다.

xmlrpc 막기

xmlrpc 차단은 웹 서버, .htaccess, 테마, 플러그인으로 막는 방법이 있다. xmlrpc 차단은 워드프레스 xmlrpc.php 공격 차단하는 방법 에 정리해 놓았다. 

이게 가장 효과적이었다.

사용한 플러그인

이 글에서 사용한 플러그인은 WP Security (All In One WP Security & Firewall) 으로 전반적인 보안 관련 플러그인이다.

 

계정의 user name 은 Username Changer  플러그인을 사용했다.

마치며

로그인 계정 탈취를 막는 가장 효과적인 것은 워드프레스 xmlrpc.php 공격 차단하는 방법  이었다.







제휴 링크로 구매 시 제휴마케팅 활동의 일환으로 일정액의 수수료를 지급받아 콘텐츠를 제작하는데 큰 도움이 됩니다.



도움이 되셨다면, 댓글이나 소중한 커피 한 잔 부탁드려도 될까요?

커피 사주기
























당신이 좋아할 만한 글







푸쉬업스타: 팔굽혀펴기 카운터

팔굽혀펴기 자동측정 및 음성카운트, 다양한 방식의 푸쉬업측정 및 푸쉬업속도 분석, 경찰공무원,군체력검정, 사관학교, 학생건강체력평가(팝스) 등 각종 체력시험 준비시 측졍만 하면 점수나 등급이 자동으로 계산









Add a Comment

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