워드프레스 로그인 페이지 차단의 필요성
개발 •
꽤 예전에 로그인 페이지를 특정 IP를 제외하곤 접근할 수 없도록 막는 작업을 했었는데, 집 밖에선 로그인이 까다롭단 이유로 다시 모든 IP에서 접근할 수 있도록 바꿔뒀습니다.
최근 유독 /admin/login.asp에 접근을 시도하거나 xmlrpc.php에 post 요청을 보내는 로그가 많이 보여, 이게 과연 괜찮은 걸까 싶어 블랙리스트를 만들 목적으로 로그인 실패 시 제게 메일이 오게 작업해봤습니다.
사용한 코드입니다. wp_login_failed란 훅을 이용해 로그인에 실패하면 메일을 보내는 간단한 방식입니다.
혹시 워드프레스 블로그를 운영하는 중이시라면 functions.php에 위 코드를 넣어보시면 흥미로운 결과가 나올 겁니다.
그래 봤자 하루에 10개쯤 올까 싶었는데 1시간 반 만에 10개를 돌파했습니다.
프랑스, 러시아, 영국, 그리스 등 다양한 국가에서 로그인을 시도하더라고요.
블랙리스트를 만들면 종일 블랙리스트 IP만 추가하고 있어야겠다 싶어서 그냥 다시 모든 IP의 접근을 막고 확인된 IP에서만 접근할 수 있도록 바꿔뒀습니다.
제가 사용한 코드입니다. nginx에선 위 코드를 이용하시면 됩니다.
location 블럭 내부에 php 관련 설정이 없으면 서버가 php 파일을 읽지 못하니 반드시 넣어주세요.
apache2를 사용 중이시면 위 코드를 conf 파일이나 .htaccess에 추가하시면 됩니다.
간혹 접근을 막는 게 아니라 login 페이지의 주소만 변경하는 분이 계신 것 같던데, 굉장히 기초적인 프로그래밍 실력만 있어도 몇 번 포트가 열려있고, 어느 페이지가 200으로 응답하는지 파악 가능합니다. 페이지의 내용을 분석하면 로그인 페이지를 추려내는 것도 전혀 어렵지 않고요. 고로 로그인 페이지 주소 변경은 아무런 도움이 되지 않습니다.