워드프레스 로그인 보안, 2단계 인증과 관리자 계정 보호
- 워드프레스 코어에는 2단계 인증이 없어 플러그인이나 외부 인증 서비스로 추가해야 합니다.
- 로그인 시도 제한은 CDN·WAF나 웹서버 단계에서 하는 편이 PHP 자원을 덜 쓰며, 어렵다면 보안 플러그인으로 대신할 수 있습니다.
- admin 계정명을 쓰지 않고, 관리자 계정 수를 줄이고, 평소에는 낮은 권한 계정을 쓰는 것이 기본입니다.
워드프레스 관리자 계정이 뚫리면 공격자는 글을 바꾸는 데 그치지 않고 플러그인을 설치해 서버 안까지 들어올 수 있습니다. 그래서 대부분의 보안 사고 대응 글이 로그인 보호를 첫 번째로 꼽습니다.
이 글은 WordPress 개발자 문서의 Brute Force Attacks, Two-Step Authentication, Hardening WordPress 항목(2026년 10월 확인 기준)을 바탕으로 로그인 보호 설정을 정리합니다. 무차별 대입(brute force)은 아이디와 비밀번호 조합을 자동으로 계속 시도하는 공격을 말합니다.
비밀번호는 길고 서로 달라야 한다
기본은 길고 다른 사이트와 겹치지 않는 비밀번호입니다. 사이트 이름, 사용자 이름, 사전에 있는 단어, 짧은 숫자 조합은 피합니다. 비밀번호 관리자를 쓰면 외우지 않아도 되고, 워드프레스의 강도 표시기도 참고할 수 있습니다. 관리자 비밀번호를 다른 서비스와 같이 쓰면 그쪽에서 유출되었을 때 연쇄적으로 뚫립니다.
2단계 인증 켜기
2단계 인증(MFA)은 비밀번호 외에 휴대전화 앱 같은 추가 확인 수단을 요구하는 방식입니다. 워드프레스 코어에는 이 기능이 없어서 플러그인이나 외부 인증 서비스로 추가해야 합니다. WordPress 문서는 예시로 Duo, Google Authenticator, Rublon, Two-Factor, Wordfence를 언급합니다. 이 글은 특정 제품을 권하지 않으며, 설치 전 각 플러그인 페이지에서 지원 방식을 확인하세요.
몇 가지 유의점이 있습니다.
- SMS보다 인증 앱 방식이 더 안전하다고 문서가 안내합니다.
- 휴대전화를 잃으면 로그인할 수 없으므로 복구 코드를 따로 보관합니다.
- 패스키(WebAuthn)를 쓴다면 관리자마다 인증 수단을 두 개 이상 등록하라고 문서가 권합니다.
- 로그인 화면은 HTTPS로 접속해야 비밀번호가 중간에 가로채이지 않습니다.
내 사이트의 HTTPS·인증서·보안 헤더를 바로 확인할 수 있습니다.
무료 보안 검사 시작로그인 시도 제한
로그인 시도 제한(rate limit)은 일정 횟수 이상 실패하면 잠시 차단하는 기능입니다. 문서는 플러그인 단계보다 CDN이나 WAF, 웹서버 단계에서 제한하는 편이 낫다고 설명합니다. 플러그인은 공격 중에도 PHP 자원을 쓰기 때문입니다. 호스팅이 앞단 제한을 제공하지 않으면 보안 플러그인으로 대신할 수 있습니다. 서버 단계에서는 다음과 같은 접근을 쓰며, 문서의 지침대로 wp-login.php와 xmlrpc.php처럼 좁은 범위에 적용하고 스테이징에서 먼저 시험하세요.
| 방법 | 설명 |
|---|---|
| 로그인 페이지 IP 허용 목록 | 관리자 IP만 접근 허용. IP가 바뀌면 접속이 막히므로 주의 |
| 요청 횟수 제한 | 웹서버나 CDN에서 같은 IP의 반복 요청 제한 |
| Fail2ban | 로그의 실패 기록을 보고 반복 IP를 일시 차단 |
| 캡차·Turnstile | 로그인 폼에 자동 입력 방지 추가 |
문서에는 국가 단위 영구 차단 목록이 정상 사용자를 막고 관리가 어렵다는 지적도 있습니다.
admin 계정명과 권한 최소화
사용자 이름이 admin이면 공격자가 비밀번호만 맞추면 되므로 쓰지 않는 것이 좋습니다. 다른 이름의 관리자 계정을 새로 만들어 글과 설정을 옮긴 뒤 기존 admin 계정은 삭제하거나 낮은 권한으로 바꿉니다. 이어서 다음을 지킵니다.
- 관리자 계정 수를 최소로 줄입니다.
- 글만 쓰는 사람은 편집자·저자 등 필요한 만큼의 권한만 줍니다.
- 평소 작업은 관리자가 아닌 계정으로 합니다.
- 퇴사자나 외주 업체 계정은 작업이 끝나면 바로 삭제합니다.
XML-RPC와 연동 계정
XML-RPC는 외부 프로그램이 워드프레스에 접속하는 오래된 통로이며 무차별 대입에도 쓰입니다. 쓰는 연동이 없다면 비활성화하고, 쓰는 경우에는 요청 횟수를 엄격히 제한하라는 것이 문서의 안내입니다. 외부 연동에는 메인 비밀번호 대신 애플리케이션 비밀번호를 만들어 쓰면 연동 하나만 따로 끊을 수 있습니다.
지금 바로 확인할 체크리스트
- 사용자 목록에 모르는 관리자가 없는가
- admin 같은 추측하기 쉬운 계정명을 쓰고 있지 않은가
- 모든 관리자에게 2단계 인증이 켜져 있는가
- 로그인 화면이 HTTPS로 열리는가
- 로그인 시도 제한이 호스팅, CDN, 플러그인 중 어디에서든 동작하는가
- 쓰지 않는 연동 계정과 XML-RPC가 정리되어 있는가
한 항목씩 점검하는 데 오래 걸리지 않으며, 한 번 정리해 두면 이후에는 관리자를 추가할 때마다 같은 기준만 적용하면 됩니다.
계정 침해가 의심될 때
로그인 기록에 낯선 접속이 있거나 모르는 관리자가 생겼다면 워드프레스 해킹 복구 순서 순서에 따라 비밀번호와 보안 키를 교체하세요. 보안 플러그인에 포함된 로그인 보호 기능의 범주는 워드프레스 보안 플러그인 비교 글에서 정리합니다. 서버 접속(SSH) 보호는 SSH 보안 설정 글이 다룹니다.
웹사이트 기본 보안 검사HTTPS·리디렉션·인증서·보안 헤더·서버 정보 노출 10개 항목을 무료로 확인할 수 있습니다.
무료 보안 검사 시작자주 묻는 질문
2단계 인증 코드를 SMS로 받아도 되나요?
WordPress 문서는 SMS가 안전한 통신 수단이 아니어서 앱 기반 방식을 더 선호한다고 안내합니다. 휴대전화를 잃었을 때를 대비한 복구 코드도 따로 보관해 두세요.
로그인 주소를 바꾸면 충분한가요?
로그인 주소를 숨기면 로그인 시도 잡음을 줄일 수 있지만, 이것만으로는 방어가 되지 않는다고 WordPress 문서가 분명히 밝힙니다. 강한 비밀번호와 2단계 인증을 기본으로 두고 보조 수단으로만 쓰세요.
XML-RPC는 꺼야 하나요?
XML-RPC를 쓰는 연동이 없다면 비활성화하라는 것이 WordPress 문서의 안내입니다. 모바일 앱이나 일부 연동에서 쓰이는 경우가 있으므로 끄기 전에 사용 여부를 확인하세요.
확인한 자료
- WordPress Advanced Administration - Brute Force Attacks
- WordPress Advanced Administration - Two-Step Authentication
- WordPress Advanced Administration - Hardening WordPress
기술 정보는 2026-10-24에 위 자료로 확인했습니다. 소프트웨어 버전·기본값·서비스 정책은 바뀔 수 있으므로 적용 전 각 문서의 최신 내용을 확인하세요. 이 글은 일반 정보이며 특정 서비스 가입을 권하지 않습니다.