워드프레스에서 보안을 위해 로그인 시도 횟수 제한 설정과 로그인 잠금 또는 차단(Lockdown) 등을 설정하는 방법에 대해 알아보겠습니다. 로그인 시도 횟수 제한 설정은 워드프레스의 보안을 효과적으로 올릴 수 있는 방법이지만, 워드프레스 자체 설정에서는 해당 기능이 없기 때문에 코드를 수정하거나 관련 플러그인을 사용해야 합니다.
최근에 잘 사용하지 않는 서브 사이트를 확인했는데 하루에 작게는 50건, 많게는 100건 이상의 로그인 시도가 발생하고 있었습니다. 아무래도 제대로 된 보안 설정을 하지 않은 상태라서 사이트가 공격 대상이 된 거 같습니다. 적절한 보안 설정을 하지 않으시면, 사이트가 쉽게 공격에 노출되실 수 있습니다.
워드프레스에서 로그인 시도 횟수 제한을 설정해야 되는 이유
워드프레스에서 로그인 시도를 제한 설정을 하는 주 목적은 무차별 대입 공격으로부터 사이트를 보호하기 위함입니다. 해커들은 사이트를 해킹하기 위해 무차별 대입 공격을 자주 사용하는데, 로그인 시도 횟수 제한이 설정되어 있지 않은 웹사이트가 주 타겟이 됩니다.
무차별 대입 공격이란?
무차별 대입 공격(Brute Force Attack)이란 봇이나 소프트웨어를 활용해서 무작위로 로그인을 시도하는 공격을 말합니다. 이러한 소프트웨어들은 1분 내, 수백 수천 번의 로그인 시도를 할 수 있기 때문에 따로 제한 설정이 되어 있지 않은 사이트는 매우 위험할 수 있습니다.
워드프레스 로그인 시도 제한 플러그인이란?
워드프레스 로그인 시도 제한 플러그인이란, 실패한 로그인 횟수에 따라 로그인 재시도를 일시적으로 제한(잠금)하거나 차단(블랙리스트)이 가능한 워드프레스 보안 플러그인을 말합니다. 플러그인을 활용하면, 최대 가능한 로그인 시도 횟수, 로그인 잠금 시간(길이), 최대 잠금 가능 횟수 등을 설정하여 무차별 대입 공격을 효과적으로 방어할 수 있습니다.
예시 아래 값으로 설정했다고 가정하에 플러그인 작동 방식 알아보겠습니다.
(최대 로그인 시도 횟수: 3회, 3시간 / 최대 로그인 잠금 횟수: 2회, 24시간)
1️⃣ 최초 로그인을 3회 실패 → 첫 번째 로그인 잠금 발생 → 3시간 동안 로그인 시도 제한
2️⃣ 3 시간 후 로그인 3회 다시 실패 → 두 번째 잠금 발생 → 24시간 동안 로그인 시도 제한
플러그인에 따라, 로그인을 시도한 IP 주소와 실패 사유도 함께 확인하실 수 있으며, 의심되는 로그인 활동이 발생하면 경고 메일을 발송해주는 플러그인도 있습니다. 또한, 본인의 IP 주소를 화이트 리스트에 추가해서 예외 항목으로 설정하는 등 플러그인이 제공하는 기능에 따라 다양한 추가 설정이 가능합니다.
추천 플러그인 3가지
아래 3가지 플러그인 모두 기본적으로 로그인 제한 설정이 포함되어 있어, 주요 기능에서는 큰 차이가 없지만 부가 기능 및 사용 편의성에서 차이가 있습니다. 아래 특징들과 리뷰들을 참고하셔서 원하시는 플러그인을 사용하시면 됩니다.
1. Limit Login Attempts Reloaded 플러그인
- 플러그인 활성화와 동시에 작동
- 간단하고 심플한 UI, 간단한 설정
- 경고 배지 표시
2. Loginizer 플러그인
- 다양한 부가 기능
- IP 주소 범위 허용 및 차단
- 로그에서 IP 주소 확인 후 바로 블랙리스트로 등록
- 화이트리스트 IP 주소만 로그인 허용
3. Login Lockdown 플러그인
- 로그인 시도 실패 IP 주소 및 사유 로그 저장
- 로그인 실패 사유 메시지 숨김 기능
- 시각적으로 잘 정리된 UI
- Built-in Captcha 기능
아래에서 플러그인 별 주요 기능들에 대해서 자세히 알아보겠습니다.
1. Limit Login Attempts Reloaded 플러그인
✔️ 활성화된 수 2,000,000+
Limit Login Attempts Reloaded 플러그인은 2,000,000개 이상의 사이트에서 활성화되어 있는 가장 인기 있는 로그인 시도 제한 플러그인입니다. 플러그인 활성화와 동시에 제한 기능이 작동하며, 로그인 제한 설정, 통계 대시보드, 로그인 잠금 시 이메일 알림, 화이트리스트 & 블랙리스트 IP 주소 설정, 남은 재시도 횟수 표시 등의 기능을 제공합니다. 장점으로는 다양한 언어를 지원하기 때문에 사용하기 편리하다는 점이 있습니다.
유료 버전에서는 악성 IP 차단 목록, 자동 IP 차단 목록, 지능형 IP 차단, 클라우드 차단 목록 액세스, 국가별 차단 등의 기능을 추가적으로 사용하실 수 있습니다.
통계 대시보드
Limit Login Attempts Reloaded 플러그인 대시 보드(알림판)에서는 24시간 동안의 로그인 실패와 날짜 별 통계를 확인하실 수 있습니다. 국가별 실패한 로그인 시도와 실패한 총 로그인 시도는 유로 버전에서만 사용이 가능합니다.
- ① 24시간 동안 실패한 로그인 횟수
- ② 날자 별 실패한 로그인 횟수
로그인 제한 설정
설정 탭에서는 플러그인 관련 설정과 로그인 제한 및 알림 설정을 할 수 있습니다.
- ① GDPR 메시지 생성
- ② 로그인 잠금 시 이메일 알림
- ③ 어드민 상단 바 바로가기 아이콘 표시
- ④ 어드민 사이드바 바로가기 아이콘 표시
- ⑤ 워드프레스 알림판에서 위젯 숨기기
- ⑥ 하루에 100건 이상 로그인 실패 발생 시 경고 배지 표시
설정 탭에서 아래 앱 설정에서는, 로그인 시도 제한을 단계 별로 설정하실 수 있습니다.
화이트리스트 및 블랙리스트 IP 주소 설정
로그 탭에서는 ①화이트리스트와 ②블랙리스트 IP 주소 및 사용자를 설정하실 수 있습니다.
2. Loginizer 플러그인
✔️ 활성화된 수 1,000,000+
Loginizer은 1,000,000개 이상의 사이트에 설치되어 있는 로그인 시도 제한 플러그인입니다. 주요 특징으로는 로그인 제한 설정, 화이트리스트 & 블랙리스트 IP 주소 범위 지정, 화이트리스트 IP 주소만 로그인 허용, 커스텀 오류 메시지 설정, 이메일 알림 등이 있으며, 로그에서 IP 주소를 확인하고 바로 블랙리스트로 추가할 수 있습니다.
유료 버전에서는 2단계 보안 인증, reCAPTCHA, XML-RPC 비활성화, 로그인 페이지 주소 변경, 동시 로그인 수 제한, 관리자 이름 변경, CSRF 보호 등을 추가적을 설정할 수 있습니다. 유료 버전을 사용한다면 추가적인 보안 조치를 모두 이 플러그인 하나로 끝낼 수 있습니다.
통계 대시 보드
Loginizer 플러그인의 대시보드 화면입니다. 간단한 로그인 실패와 관련된 ①보고서와 확인하실 수 있으며, ②시스템 정보, 설정된 파일 권한 등을 확인하실 수 있습니다.
로그인 실패 로그
플러그인의 무차별 대입(Brute Force) 메뉴로 이동하면 아래 로그인 실패 로그(Failed Login logs)를 확인하실 수 있습니다. 로그 항목에서 ①실패한 로그인 IP 주소를 확인하실 수 있으며, ②Blacklist Selected IPs 버튼을 통해 바로 해당 IP 주소를 차단할 수 있습니다.
로그인 제한 설정
Burte Force Settings 에서는 로그인 제한 설정, 이메일 알림, 화이트리스트 IP 주소만 로그인 허용 등을 설정하실 수 있습니다.
- ① 최대 로그인 시도 가능 횟수
- ② 최대 횟수 초과시 잠금 시간
- ③ 최대 잠금 횟수
- ④ 최대 잠금 횟수 도달 시, 차단 시간
- ⑤ 로그인 재시도 횟수 초기화 시간
- ⑥ 설정된 잠금 횟수 도달 시 이메일 알림
- ⑦ 알림 받을 이메일 주소 입력
- ⑧ 화이트 리스트에 등록된 IP 주소만 로그인 허용
블랙리스트, 화이트리스트 IP 주소 범위 설정
Blacklist IP, Whitelist IP 항목에서는 IP 주소 범위를 지정하여 허용하거나 차단할 수 있습니다.
에러 메시지 설정
Error Messages 항목에서는, 유형 별 에러 메시지를 커스텀 설정할 수 있습니다.
3. Login Lockdown 플러그인
✔️활성화된 수 100,000+
Login Lockdown은 100,000개 이상의 사이트에서 활성화되어 있는 로그인 횟수 제한 플러그인입니다. 무료 버전에서 사용가능한 기능들이 제한적이지만, 시각적으로 잘 정리되어 있는 UI가 특징입니다. 플러그인에서는 로그인 시도 제한 설정, 화이트 리스트 IP 주소 설정, 로그인 실패 IP 주소 및 사유 등의 기능들을 사용할 수 있습니다.
유로 버전에서는 시각적 그래프, 방화벽,국가별 차단, 2FA, Capcha, 화이트 레벨 모드, 클라우드 Protection, 임시 로그인 링크 생성 등을 추가로 설정하실 수 있습니다.
통계 대시 보드
Login Lockdown 플러그인에서는 통계 대시 보드는 따로 없으며, 대신 상단에서 24시간 이내 로그인 실패 횟수와 잠금 등의 간단한 통계를 확인하실 수 있습니다.
로그인 제한 설정
Login Protection 탭에서는 로그인 시도 횟수 제한과 관련된 기본 설정들을 하실 수 있습니다.
- ① 잠금 기능 활성화 전, 최대 가능한 로그인 횟수
- ② 로그인 재시도 시간 제한 설정
- ③ 잠금 기능이 활성화된 후, IP 주소가 차단되는 시간 설정
- ④ 존재하지 않는 계정 로그인 시도를 통계에 포함
- ⑤ 로그인 실패 시, 비밀번호 틀림 및 아이디가 없음 등의 내용 표시 삭제
- ⑥ 잠금 기능 활성화 시, 로그인 페이지 또는 사이트 전체 접근 차단 설정
- ⑦ 잠금 발생 시, 표시되는 차단 메시지 설정
- ⑧ 화이트 리스트 IP 주소 설정
로그인 실패 로그
Activity 탭에서는 로그인 실패 및 잠금 로그와 통계 그래프를 확인하실 수 있습니다. 또한 날짜, IP 주소, 실패 사유 등의 정보도 확인이 가능합니다. 국가 별 로그인 시도 통계와 차단 기능은 유료 버전에서만 사용이 가능합니다.
Captcha
Captcha 탭에서 무료로 기본적인 Built-in Captcha 기능을 설정하실 수 있습니다.
로그인 시도 제한으로 사이트 접근이 차단된 경우
비밀번호를 여러 번 틀려서 로그인이 차단된 경우 해결 방법에 대해서 알아보겠습니다. IP BAN으로 사이트 접속 자체는 불가능 하기 때문에, 파일질라(FTP) 프로그램으로 워드프레스 서버에 진입해서 플러그인을 삭제해야 됩니다.
파일질라를 실행한 후, 워드프레스 서버에 연결합니다. 아래 경로로 이동한 후, 설치한 로그인 제한 플러그인을 찾아서 삭제하시면 됩니다. 사이트에 로그인하신 후 플러그인 다시 설치해주시면 됩니다.
wp-content / plugins / 플러그인 폴더 삭제
마치며
관리자 페이지는 웹사이트와 관련된 전반적인 설정이 가능한 페이지이기 때문에, 관리자 외 다른 사용자의 접근을 절대로 허용하면 안되는 중요한 페이지입니다. 사용자 계정과 비밀번호는 각별히 유의해서 관리하셔야 되며, 아래 이전 포스팅을 참고하셔서 보안 조치 추가로 설정하시는 것을 추천드립니다.