워드프레스 관리자 페이지 보안 강화하기

2024. 10. 5. 00:10카테고리 없음

워드프레스는 전 세계적으로 가장 많이 사용되는 웹사이트 구축 플랫폼 중 하나입니다. 그만큼 해커들이 워드프레스 사이트를 목표로 삼는 경우도 많습니다. 따라서, 워드프레스 사이트의 보안을 강화하는 것은 매우 중요합니다. 특히, 해커들이 자주 타겟으로 삼는 워드프레스의 관리자 페이지(wp-admin)는 반드시 철저히 보호해야 합니다. 기본적인 보안 조치부터 고급 보안 방법까지 다양하게 적용할 수 있으며, 이를 통해 사이트의 안전성을 크게 향상시킬 수 있습니다. 이 글에서는 워드프레스 관리자 페이지 보안을 강화할 수 있는 여러 가지 방법을 단계별로 살펴보겠습니다.

워드프레스
워드프레스

강력한 비밀번호 설정

워드프레스 관리자 페이지 보안의 첫 번째 단계는 강력한 비밀번호 설정입니다. 비밀번호가 짧거나 단순한 경우, 해커들이 무차별 대입 공격(Brute Force Attack)을 통해 쉽게 침입할 수 있습니다. 이를 방지하기 위해 다음과 같은 비밀번호 설정 규칙을 따르는 것이 좋습니다.

  • 8자 이상의 길이로 설정합니다.
  • 대소문자, 숫자, 그리고 특수문자를 조합하여 사용합니다.
  • 사전에 나오는 단어나 쉽게 예측 가능한 정보는 사용하지 않습니다.
  • 비밀번호를 주기적으로 변경하는 것이 좋습니다.

또한, LastPass1Password 같은 비밀번호 관리 프로그램을 사용하여 복잡한 비밀번호를 저장하고 관리할 수 있습니다.

이중 인증(2FA) 활성화

이중 인증(2FA, Two-Factor Authentication)은 관리자 페이지에 추가적인 보안 계층을 더하는 방법입니다. 비밀번호만으로는 해킹 위험이 높기 때문에, 두 번째 인증 수단을 요구하는 이중 인증은 매우 유효한 보안 강화 방법입니다. 예를 들어, Google AuthenticatorAuthy와 같은 앱을 사용하여 로그인 시 추가적인 인증 코드를 요구할 수 있습니다.

워드프레스에서 이중 인증을 설정하려면 Two Factor Authentication 플러그인을 사용하거나, Wordfence와 같은 보안 플러그인에서 제공하는 기능을 활용할 수 있습니다.

관리자 페이지 URL 변경

기본적으로 워드프레스 관리자 페이지 URL은 example.com/wp-admin으로 설정되어 있습니다. 많은 해커들이 이 URL을 타겟으로 삼아 무차별 대입 공격을 시도하므로, 관리자 페이지의 URL을 변경하는 것이 유리합니다. 이를 통해 해커들이 관리자 페이지의 위치를 쉽게 알 수 없게 만들 수 있습니다.

WPS Hide Login과 같은 플러그인을 사용하면 관리자 페이지의 로그인 URL을 쉽게 변경할 수 있습니다. 예를 들어 example.com/login이나 example.com/secure-login과 같은 형태로 설정할 수 있습니다.

로그인 시도 제한

워드프레스의 기본 설정에서는 사용자가 로그인 시도를 몇 번이나 해도 차단되지 않습니다. 해커들은 이 점을 악용하여 비밀번호를 무차별 대입 공격으로 찾아내려고 합니다. 이를 방지하려면 로그인 시도 횟수를 제한하는 방법이 필요합니다.

Limit Login Attempts ReloadedLogin Lockdown 같은 플러그인을 사용하면 특정 횟수 이상 로그인 시도가 실패할 경우 해당 IP 주소를 차단할 수 있습니다. 이를 통해 해커들이 반복적으로 비밀번호를 시도하는 것을 막을 수 있습니다.

IP 기반 접근 제한

관리자 페이지에 접근할 수 있는 IP 주소를 제한하면 보안이 크게 강화됩니다. 예를 들어, 당신의 사무실 또는 집에서만 관리자 페이지에 접근할 수 있도록 특정 IP 주소만 허용하는 방법입니다. 이를 위해서는 .htaccess 파일을 수정하거나 방화벽 설정을 통해 특정 IP 주소만 wp-admin에 접근할 수 있도록 설정할 수 있습니다.

css
코드 복사
<Files wp-login.php> order deny,allow Deny from all Allow from [허용할 IP 주소] </Files>

이 코드를 .htaccess 파일에 추가하면 지정한 IP 주소 외에는 로그인 페이지에 접근할 수 없게 됩니다.

SSL 인증서 설치

SSL(Secure Sockets Layer)은 사이트와 사용자의 브라우저 사이에 오가는 모든 데이터를 암호화하여 해커가 중간에서 데이터를 가로채는 것을 방지합니다. HTTPS로 보호된 사이트는 브라우저에 자물쇠 아이콘이 표시되며, 사용자 신뢰도 또한 높아집니다. 따라서 SSL 인증서를 설치하여 워드프레스 관리자 페이지로 오가는 데이터를 암호화하는 것이 좋습니다.

워드프레스에서 SSL을 사용하려면 Let's Encrypt와 같은 무료 SSL 인증서를 사용하거나, 호스팅 제공업체를 통해 SSL 인증서를 구입할 수 있습니다. SSL 설치 후에는 워드프레스의 wp-config.php 파일에서 다음 코드를 추가하여 SSL을 강제로 사용하게 설정할 수 있습니다.

sql
코드 복사
define('FORCE_SSL_ADMIN', true);

워드프레스 및 플러그인 최신 버전 유지

워드프레스와 사용 중인 플러그인은 지속적으로 보안 패치가 이루어집니다. 하지만 이를 수동으로 업데이트하지 않으면, 해커들이 이미 알려진 취약점을 통해 사이트를 공격할 수 있습니다. 따라서 워드프레스 코어, 테마, 그리고 플러그인을 항상 최신 버전으로 유지하는 것이 매우 중요합니다.

자동 업데이트 기능을 활성화하거나, 주기적으로 업데이트 여부를 확인하여 사이트를 최신 상태로 유지하세요.

관리자 계정 이름 변경

기본적으로 워드프레스 설치 시 관리자 계정의 이름을 admin으로 설정하는 경우가 많습니다. 이는 해커들이 쉽게 추측할 수 있는 계정 이름이므로, 이를 변경하는 것이 좋습니다. 워드프레스 관리자 페이지에서 계정 이름은 직접 변경할 수 없기 때문에, 다음과 같은 방법을 사용할 수 있습니다.

  1. 새로운 관리 계정을 생성합니다.
  2. admin 계정에서 로그아웃한 후, 새로 만든 관리 계정으로 로그인합니다.
  3. 기존의 admin 계정을 삭제하고, 모든 콘텐츠를 새 계정에 할당합니다.

이렇게 하면 해커들이 계정 이름을 추측하는 것이 더욱 어려워집니다.

로그인 알림 설정

누군가가 관리자 페이지에 로그인하면 이를 즉시 알 수 있도록 로그인 알림 기능을 설정할 수 있습니다. 이를 통해 의심스러운 로그인을 즉시 파악하고, 빠르게 대응할 수 있습니다.

WP Security Audit Log와 같은 플러그인을 사용하면 누가, 언제, 어디서 로그인했는지에 대한 알림을 받을 수 있으며, 비정상적인 로그인을 감지하여 관리자에게 알림을 보낼 수 있습니다.

보안 플러그인 설치

워드프레스 보안을 전반적으로 강화하려면 보안 플러그인을 설치하는 것이 좋습니다. 이들 플러그인은 다양한 보안 기능을 한 번에 제공하며, 보안 취약점을 실시간으로 모니터링하고 경고를 제공합니다. 몇 가지 추천 플러그인은 다음과 같습니다.

  • Wordfence Security: 방화벽, 악성 코드 스캔, 로그인 보호 등의 기능을 제공합니다.
  • iThemes Security: 이중 인증, 로그인 시도 제한, 파일 변경 탐지 등 다양한 보안 기능을 갖추고 있습니다.
  • Sucuri Security: 웹사이트 방화벽, 보안 모니터링, 악성 코드 제거 등의 기능을 제공합니다.

정기적인 백업

보안이 아무리 강력하더라도, 최악의 상황을 대비한 정기적인 백업은 필수입니다. 백업을 통해 문제가 발생했을 때 사이트를 이전 상태로 복원할 수 있으며, 데이터 손실을 최소화할 수 있습니다. UpdraftPlus, BackupBuddy, VaultPress와 같은 플러그인을 사용하여 주기적으로 워드프레스 사이트의 백업을 자동으로 생성할 수 있습니다.

악성 코드 탐지 및 제거

해킹된 사이트는 악성 코드에 의해 손상될 수 있으며, 이러한 악성 코드를 빠르게 탐지하고 제거하는 것이 중요합니다. 이를 위해 MalCare, Wordfence, Sucuri 등의 보안 플러그인을 사용하여 사이트를 정기적으로 스캔하고, 악성 코드나 비정상적인 활동이 발견되면 즉시 제거할 수 있습니다.

관리자 페이지 자동 로그아웃 설정

관리자 페이지에 로그인한 상태로 오랫동안 활동하지 않으면 보안에 위험이 발생할 수 있습니다. 특히 공공장소에서 로그인한 경우 해커가 세션을 탈취할 위험이 있습니다. 이를 방지하기 위해 Inactive Logout 같은 플러그인을 사용하여 일정 시간 동안 활동이 없으면 자동으로 로그아웃되도록 설정할 수 있습니다.

데이터베이스 테이블 접두사 변경

워드프레스는 기본적으로 데이터베이스 테이블의 접두사(prefix)를 wp_로 설정합니다. 해커들은 이를 이용해 데이터베이스에 접근하려 시도할 수 있으므로, 데이터베이스 테이블 접두사를 변경하는 것이 좋습니다. 이를 위해서는 워드프레스 설치 시 또는 설치 후에 접두사를 직접 수정할 수 있습니다.

wp-config.php 파일에서 접두사를 변경하는 방법:

php
코드 복사
$table_prefix = '새로운_접두사_';

이 코드를 수정한 후, 데이터베이스 테이블의 접두사도 함께 변경해야 합니다.

REST API 비활성화

워드프레스 REST API는 외부에서 데이터에 접근할 수 있도록 허용하는 기능입니다. 하지만 이 기능이 해커에게 악용될 수 있으므로, 관리자 페이지에 대한 접근을 제한하는 것이 좋습니다. Disable REST API 플러그인을 사용하면 관리자만 REST API에 접근할 수 있도록 설정할 수 있습니다.

XML-RPC 비활성화

XML-RPC는 원격으로 워드프레스 사이트에 접속할 수 있는 기능입니다. 하지만 이 기능이 해킹에 악용될 수 있어, XML-RPC를 비활성화하는 것이 안전합니다. Disable XML-RPC 플러그인을 사용하거나 .htaccess 파일을 수정하여 이를 비활성화할 수 있습니다.

css
코드 복사
<Files xmlrpc.php> order deny,allow Deny from all </Files>

관리자 이메일 주소 보호

워드프레스 관리자 이메일 주소는 사이트 설정 및 로그인 시 중요한 역할을 합니다. 해커들이 관리자 이메일 주소를 알아내면, 이를 통해 무차별 대입 공격을 시도할 수 있으므로, 가능한 이메일 주소를 공개하지 않도록 주의해야 합니다. Contact Form 7 같은 플러그인을 사용하여 방문자와의 소통은 폼으로 대체하고, 이메일 주소는 공개하지 않는 것이 좋습니다.

호스팅 보안 강화

워드프레스 자체 보안 강화도 중요하지만, 사용하는 호스팅 서비스의 보안도 매우 중요합니다. 신뢰할 수 있는 호스팅 서비스를 선택하고, SSL, 방화벽, DDoS 방어 기능 등을 제공하는지 확인해야 합니다. 클라우드플레어 같은 CDN 서비스를 이용하여 추가적인 보안 보호막을 제공할 수도 있습니다.

파일 권한 설정

서버에서 워드프레스 파일 및 폴더의 권한을 적절하게 설정하는 것도 보안을 강화하는 방법 중 하나입니다. 잘못된 파일 권한은 해커가 서버에 접근할 수 있는 문을 열어둘 수 있으므로, 파일 권한을 올바르게 설정해야 합니다. 워드프레스 권장 파일 권한은 다음과 같습니다.

  • 파일: 644
  • 폴더: 755

서버 관리자나 호스팅 서비스에서 파일 권한을 수정할 수 있습니다.

보안 로그 모니터링

워드프레스 관리자 페이지와 관련된 활동을 추적하는 것도 보안을 강화하는 방법 중 하나입니다. 누가, 언제, 무엇을 했는지를 추적할 수 있는 보안 로그를 모니터링하면 비정상적인 활동을 빠르게 감지하고 조치를 취할 수 있습니다. WP Security Audit Log 같은 플러그인을 사용하여 이러한 로그를 모니터링할 수 있습니다.

결론

워드프레스 관리자 페이지 보안을 강화하는 방법은 다양하며, 하나의 방법만으로는 완벽한 보안을 제공할 수 없습니다. 위에서 설명한 여러 가지 보안 방법을 조합하여 적용하면, 워드프레스 관리자 페이지와 전체 사이트의 보안을 크게 향상시킬 수 있습니다. 항상 최신의 보안 상태를 유지하고, 문제가 발생했을 때 신속하게 대응할 수 있도록 준비해 두는 것이 중요합니다.