워드프레스 보안 설정하는 방법: 플러그인 많이 안 깔고 버티는 운영 기준

얼마 전 오래 운영한 워드프레스 사이트 하나를 복구한 적이 있습니다. 증상은 단순했습니다. 관리자 로그인이 느려지고, 이상한 관리자 계정이 하나 생겼고, 검색 결과에 엉뚱한 일본어 문구가 붙었습니다. 그런데 뜯어보니 원인은 특별한 해킹 기술이 아니었습니다. 1년 넘게 미룬 플러그인 업데이트, 너무 쉬운 관리자 비밀번호, 백업이 없던 운영 습관이 겹친 사고였습니다.
워드프레스 보안은 대단한 장비를 붙이는 일이 아닙니다. 기본값을 그대로 두지 않고, 업데이트와 백업을 밀리지 않게 만들고, 관리자 접근을 줄이는 작업에 가깝습니다. 플러그인 하나로 끝내려는 순간 오히려 구성이 복잡해집니다. 저는 보안 플러그인을 쓰더라도 최소한으로 깔고, 서버와 워드프레스 기본 설정부터 먼저 맞춥니다.
워드프레스 보안은 업데이트에서 시작합니다
운영하면서 가장 많이 본 사고 원인은 오래된 플러그인입니다. 워드프레스 본체보다 플러그인 쪽에서 문제가 나는 경우가 훨씬 많습니다. 특히 폼, 파일 업로드, 회원가입, 쇼핑몰, 페이지 빌더 계열은 외부 입력을 많이 받기 때문에 업데이트를 오래 미루면 위험합니다.
업데이트는 무조건 자동으로 돌리면 편하지만, 운영 사이트에서는 조심해야 합니다. 작은 블로그라면 보안 업데이트와 마이너 업데이트는 자동으로 두고, 주요 플러그인은 주 1회 직접 확인하는 방식이 현실적입니다. 쇼핑몰이나 예약 사이트처럼 매출과 연결된 사이트라면 업데이트 전 백업을 먼저 만들고, 트래픽이 적은 시간에 진행하는 게 낫습니다.
제가 쓰는 업데이트 기준
- 워드프레스 코어 마이너 업데이트는 자동 적용
- 테마는 사용 중인 테마만 남기고 나머지는 삭제
- 플러그인은 쓰지 않으면 비활성화가 아니라 삭제
- 3개월 이상 업데이트가 없는 플러그인은 대체재 검토
- 업데이트 전 파일과 데이터베이스 백업 확인
비활성화된 플러그인도 파일은 서버에 남아 있습니다. 취약점이 있는 파일이 남아 있으면 공격 대상이 될 수 있습니다. 안 쓰는 플러그인을 그냥 꺼두는 습관은 생각보다 위험합니다.
관리자 계정부터 잠가야 합니다
워드프레스 설치 직후 가장 먼저 볼 곳은 관리자 계정입니다. 아직도 아이디를 admin으로 두는 사이트가 있습니다. 공격자는 아이디와 비밀번호를 둘 다 맞히는 게 아니라, 흔한 아이디를 먼저 넣고 비밀번호만 계속 시도합니다. admin, manager, webmaster 같은 계정명은 피하는 편이 좋습니다.
비밀번호는 길이가 중요합니다. 특수문자 하나 넣는 것보다 16자 이상으로 길게 만드는 게 낫습니다. 예를 들어 짧고 복잡한 비밀번호보다, 단어 조합으로 길게 만든 비밀번호가 실제 운영에서는 더 관리하기 쉽습니다. 관리자 수가 여러 명이면 개인별 계정을 따로 만들고, 공용 관리자 계정은 쓰지 않는 게 맞습니다.
권한은 필요한 만큼만 줍니다
글만 쓰는 사람에게 관리자 권한을 줄 필요는 없습니다. 작성자는 작성자 권한, 편집 담당자는 편집자 권한이면 충분합니다. 외주 작업자에게 임시로 관리자 권한을 줬다면 작업이 끝난 뒤 계정을 삭제하거나 권한을 낮춰야 합니다. 이걸 놓쳐서 몇 달 뒤 문제가 생기는 경우가 꽤 많습니다.
2단계 인증은 가능하면 켜는 편이 좋습니다. 다만 2단계 인증 플러그인을 고를 때는 회원 기능, 로그인 제한, 방화벽까지 전부 들어간 무거운 플러그인을 무조건 고를 필요가 없습니다. 사이트 규모가 작다면 2단계 인증만 안정적으로 처리하는 가벼운 플러그인도 충분합니다.
로그인 공격은 제한만 걸어도 많이 줄어듭니다
워드프레스 로그인 페이지는 누구나 접근할 수 있습니다. 그래서 무차별 대입 공격이 흔합니다. 하루 방문자가 많지 않은 블로그도 로그인 시도 로그를 보면 해외 IP에서 수십 번, 많게는 수백 번씩 두드리는 일이 있습니다.
가장 간단한 대응은 로그인 실패 횟수 제한입니다. 예를 들어 5회 실패하면 15분 차단, 반복되면 24시간 차단처럼 설정합니다. 이 정도만 해도 자동화 공격은 대부분 힘을 잃습니다. 관리자 본인이 자주 비밀번호를 틀리는 편이라면 차단 시간이 너무 길지 않게 잡아야 합니다. 운영자가 자기 사이트에 못 들어가는 상황도 실제로 자주 봅니다.
로그인 주소 변경은 선택입니다
로그인 주소를 바꾸는 방식도 많이 씁니다. 효과는 있습니다. 단, 이것만 믿으면 안 됩니다. 주소를 숨기는 건 공격량을 줄이는 장치이지, 취약한 비밀번호나 오래된 플러그인을 대신 막아주는 보안 장치는 아닙니다. 또한 캐시 플러그인, 보안 플러그인, 회원 플러그인이 같이 쓰이는 사이트에서는 로그인 주소 변경이 충돌을 만들기도 합니다.
저라면 처음부터 로그인 주소 변경을 넣기보다 실패 횟수 제한, 2단계 인증, 관리자 계정 관리부터 적용합니다. 그래도 공격 로그가 계속 많다면 그때 로그인 주소 변경을 추가합니다. 보안 설정은 많이 넣는 것보다 충돌 없이 오래 유지되는 쪽이 더 중요합니다.
파일 편집과 업로드 경로를 조심해야 합니다
워드프레스 관리자 화면에는 테마 파일 편집 기능이 있습니다. 편해 보이지만 운영 사이트에서는 꺼두는 게 좋습니다. 관리자 계정이 털렸을 때 바로 악성 코드를 심을 수 있는 통로가 되기 때문입니다. 설정 파일에 한 줄을 추가해서 관리자 화면의 파일 편집을 막을 수 있습니다.
파일 업로드 기능도 주의해야 합니다. 이미지 업로드만 받는 폼인데 실제로는 스크립트 파일이 올라가면 큰 문제가 됩니다. 문의 폼, 게시판, 이력서 접수, 자료 제출 기능을 운영한다면 허용 확장자를 최소로 제한해야 합니다. 가능하면 업로드 파일은 실행되지 않는 위치에 저장하는 게 좋습니다.
건드리기 전 백업이 필요한 영역
- wp-config 설정 변경
- 서버 권한 변경
- 보안 플러그인의 방화벽 모드 적용
- 로그인 주소 변경
- 데이터베이스 접두어 변경
특히 데이터베이스 접두어 변경은 이미 운영 중인 사이트에서 가볍게 할 작업이 아닙니다. 잘못 바꾸면 사이트가 바로 하얀 화면으로 멈출 수 있습니다. 신규 설치 때는 접두어를 기본값이 아닌 값으로 잡는 정도면 충분하고, 운영 중 사이트라면 백업과 복구 방법을 확인한 뒤 작업해야 합니다.
백업은 보안의 일부입니다
많은 분들이 백업을 장애 대비용으로만 생각합니다. 그런데 해킹을 당했을 때도 백업이 없으면 선택지가 거의 없습니다. 악성 파일을 하나씩 찾아 지우는 일은 시간이 오래 걸리고, 초보자가 직접 하면 정상 파일까지 지울 수 있습니다. 깨끗했던 시점으로 되돌릴 수 있어야 복구가 빠릅니다.
백업은 파일과 데이터베이스가 같이 있어야 합니다. 파일만 있으면 글과 설정이 빠지고, 데이터베이스만 있으면 이미지와 테마 파일이 빠집니다. 최소 기준은 주 1회 전체 백업, 매일 데이터베이스 백업입니다. 글이 자주 올라가거나 주문이 들어오는 사이트라면 더 짧게 잡아야 합니다.
백업 파일을 같은 서버 안에만 두는 것도 위험합니다. 서버가 감염되거나 계정이 잠기면 백업까지 같이 못 쓰게 됩니다. 호스팅 자체 백업이 있더라도 별도 저장소에 한 벌 더 두는 편이 안전합니다. 무료로 가능한 범위에서는 클라우드 저장소 연동, 로컬 다운로드, 호스팅 백업을 섞는 방식이 현실적입니다.
보안 플러그인은 하나만 제대로 씁니다
보안 플러그인을 여러 개 깔면 더 안전할 것 같지만 실제로는 충돌 가능성이 커집니다. 로그인 제한, 방화벽, 파일 검사, 2단계 인증 기능이 서로 겹치면 정상 로그인이나 관리자 AJAX 요청이 막히는 경우가 있습니다. 캐시 플러그인과 같이 쓰면 더 복잡해집니다.
무료 플러그인만으로도 기본 보안은 충분히 잡을 수 있습니다. 필요한 기능은 로그인 실패 제한, 2단계 인증, 파일 변경 감지, 기본 방화벽 정도입니다. 악성코드 자동 치료나 고급 방화벽은 유료 기능으로 제공되는 경우가 많지만, 모든 사이트에 꼭 필요한 건 아닙니다. 방문자가 많고 매출이 걸린 사이트라면 유료 보안 서비스도 검토할 만하고, 개인 블로그나 작은 회사 소개 사이트라면 기본 설정을 탄탄히 하는 쪽이 먼저입니다.
제가 현장에서 권하는 순서는 단순합니다. 업데이트를 미루지 않고, 관리자 계정을 줄이고, 로그인 시도를 제한하고, 백업을 외부에 남기는 것. 이 네 가지만 꾸준히 해도 흔한 워드프레스 사고는 상당히 줄어듭니다. 보안은 한 번 세게 설정하고 잊는 일이 아니라, 사이트를 운영하는 동안 계속 챙기는 습관에 가깝습니다.
