블로그

플러그인 없이 WordPress 보안 강화: 모든 관리자가 알아야 할 10가지 수동 단계

플러그인에 의존하지 않고 WordPress 사이트를 보호하는 10가지 필수 수동 보안 강화 단계를 알아보세요. 실용적이고 실행 가능하며 효과적입니다.

요약

많은 WordPress 사이트 소유자는 보안 플러그인을 유일한 방어 수단으로 의존하지만, 이는 잘못된 안전감을 줄 수 있습니다. 진정으로 강화된 WordPress 설치는 어떤 플러그인도 대체할 수 없는 수동 구성이 필요합니다. 이 글에서는 플러그인 없이 즉시 구현할 수 있는 10가지 구체적이고 단계별 보안 강화 조치를 제공합니다. 올바른 파일 권한 설정부터 XML-RPC 비활성화까지, 각 단계는 특정 취약점을 해결합니다. wp-config.php 잠금, 디렉토리 브라우징 제거 등 방법을 배우게 됩니다. 이 단계를 따르면 보안 플러그인을 추가 계층으로 계속 사용하더라도 공격 표면이 크게 줄어듭니다. 마지막에는 일반적인 공격에 훨씬 더 탄력적인 수동 강화 WordPress 사이트를 갖게 됩니다.

소개

인기 있는 보안 플러그인을 설치하고, 방화벽을 구성하고, 정기적인 스캔을 실행했습니다. 그런데도 WordPress 사이트는 여전히 취약할 수 있습니다. 보안 플러그인은 가치 있지만, 수동 강화가 잡아내는 쉬운 공격 지점을 종종 놓칩니다. 플러그인에만 의존하는 것은 현관문을 잠그고 창문을 열어 두는 것과 같습니다. 이 글에서는 사용하는 플러그인에 관계없이 모든 WordPress 관리자가 수행해야 할 10가지 수동 강화 단계를 배웁니다. 이 단계들은 코딩 전문 지식이 필요 없으며 1시간 이내에 완료할 수 있습니다. 지금부터 사이트를 기초부터 강화해 봅시다.

1. 올바른 파일 권한 설정

가장 흔한 잘못된 구성 중 하나는 지나치게 허용적인 파일 및 디렉토리 권한입니다. 이상적으로 모든 파일은 644, 디렉토리는 755여야 합니다. wp-config.php 파일은 특히 민감하므로 설치 후 440 또는 400으로 설정하세요. FTP 클라이언트나 호스트의 파일 관리자를 사용하여 권한을 조정하세요. 현재 설정이 확실하지 않다면 스크립트를 사용하거나 명령줄에서 find /path -type f -exec chmod 644 {} \;find /path -type d -exec chmod 755 {} \;로 빠른 감사를 실행하세요. 이 간단한 변경으로 승인되지 않은 사용자가 중요한 파일을 읽거나 수정하는 것을 방지할 수 있습니다.

2. 대시보드에서 파일 편집 비활성화

기본적으로 WordPress는 관리자가 관리자 패널에서 직접 테마 및 플러그인 파일을 편집할 수 있도록 허용합니다. 공격자가 관리자 계정에 접근하면 악성 코드를 주입할 수 있습니다. wp-config.php 파일에 다음 줄을 추가하여 이 기능을 비활성화하세요:

define('DISALLOW_FILE_EDIT', true);

이렇게 해도 테마나 플러그인을 업로드하는 기능에는 영향을 미치지 않으며, 인라인 파일 편집기만 제거됩니다. 합법적인 편집은 IDE나 FTP를 사용하세요.

3. 디렉토리 브라우징 비활성화

디렉토리 브라우징이 활성화되면 누구나 wp-content/uploads 폴더의 모든 파일을 나열하여 개인 데이터를 노출시킬 수 있습니다. 이를 방지하려면 .htaccess 파일(Apache) 또는 해당 구성에 다음 줄을 추가하세요:

Options -Indexes

Nginx의 경우 서버 블록에 autoindex off;를 추가하세요. 디렉토리 URL을 방문하여 테스트하세요. 파일 목록 대신 403 Forbidden 오류가 표시되어야 합니다.

4. XML-RPC 비활성화

XML-RPC는 원격 게시 및 트랙백에 사용되는 오래된 프로토콜입니다. 무차별 대입 공격 및 DDoS 증폭의 일반적인 경로입니다. 꼭 필요한 경우(예: Jetpack 플러그인 또는 모바일 앱)가 아니라면 완전히 비활성화하세요. .htaccess에 다음을 추가하세요:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

또는 플러그인 또는 호스트의 방화벽을 사용하여 액세스를 차단하세요. 비활성화 후 사이트가 여전히 작동하는지 테스트하세요. 대부분의 최신 플러그인은 더 이상 XML-RPC에 의존하지 않습니다.

5. 사용하지 않는 테마 및 플러그인 제거

추가 테마나 플러그인은 공격 표면을 증가시킵니다. 비활성화된 경우에도 오래된 코드가 악용될 수 있습니다. 적극적으로 사용하지 않는 테마는 모두 삭제하고, 더 이상 필요하지 않은 플러그인은 제거하세요. 특히 업데이트가 중단된 플러그인의 경우 더욱 중요합니다. 단계별 정리 가이드는 방치된 WordPress 플러그인의 숨은 위험에 대한 글을 참조하세요.

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

기본적으로 WordPress는 데이터베이스에서 wp_를 테이블 접두사로 사용합니다. 이는 널리 알려져 있어 SQL 인젝션 공격을 더 쉽게 만듭니다. 설치 시 고유한 접두사로 변경하세요. 사이트가 이미 운영 중이라면 변경할 수 있지만 더 많은 노력이 필요합니다. "Change Table Prefix"와 같은 플러그인을 사용하거나 phpMyAdmin을 통해 수동으로 수행하세요:

  1. 데이터베이스를 내보냅니다.
  2. 새 접두사(예: mysec_)를 사용하여 모든 테이블 이름을 바꿉니다.
  3. wp-config.php를 새 접두사로 업데이트합니다.
  4. 이전 접두사가 사용된 optionsusermeta 테이블을 업데이트합니다.

이 작업을 시도하기 전에 항상 백업하세요.

7. 로그인 시도 제한

무차별 대입 공격은 공격자가 접근하는 가장 일반적인 방법입니다. WordPress에는 기본 로그인 시도 제한 기능이 없습니다. 테마의 functions.php에 코드를 추가하거나, 더 좋은 방법으로 반드시 사용해야 하는 플러그인(mu-plugin)을 사용하여 수동으로 구현하세요. 또는 호스팅 제공업체가 제어판을 통해 이 기능을 제공할 수도 있습니다. 플러그인을 선호한다면 가볍고 잘 코딩된 것을 선택하세요. 침해 대응에 대한 광범위한 전략은 WordPress 보안 문제 해결 워크플로우를 확인하세요.

8. 관리자 사용자 이름 변경

사용자 이름으로 "admin"을 절대 사용하지 마세요. 무차별 대입 공격에서 첫 번째 추측입니다. 이미 해당 사용자 이름의 계정이 있다면 고유한 이름으로 새 관리자 계정을 만든 후 이전 계정을 삭제하세요. 또한 사용자 이름 대신 이메일 주소로 로그인하는 것을 고려하세요.

9. 데이터베이스 솔트 및 키 강화

WordPress는 솔트와 키를 사용하여 사용자 세션과 쿠키를 암호화합니다. 이들이 손상되면 공격자가 세션을 위조할 수 있습니다. WordPress Salt Generator를 사용하여 새롭고 강력한 솔트를 생성하세요. 출력을 복사하여 wp-config.php의 해당 줄을 바꾸세요. 특히 보안 사고 후에 정기적으로 수행하세요.

10. 핵심 자동 업데이트 활성화

WordPress 핵심을 최신 상태로 유지하는 것은 중요합니다. wp-config.php에 다음을 추가하여 마이너 및 메이저 릴리스에 대한 자동 업데이트를 활성화하세요:

define('WP_AUTO_UPDATE_CORE', true);

메이저 릴리스의 경우 먼저 스테이징 사이트에서 테스트하는 것이 좋지만, 보안 업데이트를 지연하지 마세요. 플러그인 및 테마 업데이트에 대한 정기적인 수동 확인과 결합하세요.

결론

수동 강화는 안전한 WordPress 사이트의 기초입니다. 이 10가지 단계는 스캐너와 플러그인이 종종 간과하는 일반적인 취약점을 해결합니다. 이를 구현함으로써 공격 표면을 줄이고 안심할 수 있습니다. 보안은 지속적인 과정임을 기억하세요. 이러한 구성을 정기적으로 재검토하세요. 포괄적인 접근 방식은 사전 예방적 WordPress 보안 감사 가이드를 참조하세요. 오늘 한 단계부터 시작하여 점차 확장하세요. 사이트의 보안은 지금 당신이 취하는 행동에 달려 있습니다.