워드프레스 보안: Nginx 및 Apache 환경에서 흔한 취약점과 이를 막는 실전 팁
워드프레스 보안은 모든 사이트 운영자가 반드시 고려해야 할 필수적인 요소입니다. 해킹 공격, 악성 코드 감염, 데이터 유출 등의 보안 위협은 워드프레스 사이트에서 빈번하게 발생하며, 적절한 보안 조치가 없으면 사이트의 신뢰도와 검색 엔진 순위에 악영향을 미칠 수 있습니다.
다행히도 몇 가지 핵심적인 보안 설정만 적용해도 워드프레스 해킹 방지가 가능합니다. 본 가이드에서는 **실제로 적용 가능한 보안 전략**을 중심으로 설명하며, 특히 Nginx 및 Apache 환경에서 각각의 설정 방법을 다룰 것입니다.
목차
- 워드프레스의 흔한 보안 취약점
- 관리자 로그인 보안 강화
- 플러그인 및 테마 보안 설정
- Nginx 및 Apache 환경에서 파일 및 디렉터리 보안 설정
- SSL 설정 및 HTTPS 적용
- 방화벽 및 보안 플러그인 활용
- 최종 점검 및 결론
📌 참고: SSL 설정 방법에 대한 상세한 내용은 워드프레스 초기 세팅 가이드에서 확인할 수 있습니다.
1. 워드프레스의 흔한 보안 취약점
워드프레스 사이트는 전 세계에서 가장 널리 사용되는 CMS(Content Management System)이지만, 그만큼 해킹 및 보안 위협에도 자주 노출됩니다. 아래는 해커들이 가장 많이 공격하는 보안 취약점과 이를 방지하는 방법입니다.
1.1 관리자 계정 및 로그인 취약점
- 기본 관리자 계정인 admin 사용 시 해커가 쉽게 접근 가능
- 약한 비밀번호 사용으로 인해 무차별 대입 공격(Brute Force Attack)에 취약
- 이중 인증(Two-Factor Authentication, 2FA) 미설정으로 인한 보안 약화
✅ 해결 방법:
- 관리자 계정명을 admin에서 다른 이름으로 변경
- 비밀번호를 대문자, 소문자, 숫자, 특수문자 포함 12자 이상으로 설정
- 이중 인증(2FA)을 활성화하여 보안 강화
1.2 플러그인 및 테마 취약점
- 워드프레스 공식 디렉터리가 아닌 곳에서 다운로드한 플러그인 및 테마 사용
- 오래된 플러그인 및 테마를 업데이트하지 않아 보안 취약점 발생
- 플러그인 및 테마에 악성 코드 포함 가능
✅ 해결 방법:
- 워드프레스 공식 플러그인 및 테마만 사용
- 사용하지 않는 플러그인 및 테마는 즉시 삭제
- 정기적으로 플러그인 및 테마 업데이트 수행
1.3 파일 및 디렉터리 보안 취약점
- **wp-config.php** 파일이 노출될 경우 데이터베이스 정보 유출 위험
- 디렉터리 인덱싱이 활성화된 경우 해커가 내부 파일 구조를 확인 가능
✅ 해결 방법:
- **wp-config.php** 파일 접근을 차단하여 보안 강화
- 디렉터리 인덱싱을 비활성화하여 내부 폴더가 외부에 노출되지 않도록 설정
1.4 SSL 미설정
- 사이트가 **HTTP**로 운영될 경우 로그인 정보, 결제 정보 등 민감한 데이터가 해킹될 위험
- Google에서 HTTPS 사이트를 우선 노출하는 정책을 시행 중
✅ 해결 방법:
- 무료 SSL 인증서(Let’s Encrypt) 또는 유료 SSL 인증서를 적용
- 워드프레스에서 **HTTPS 강제 리디렉션** 설정
1.5 서버 보안 취약점 (Nginx 및 Apache 공통)
- 서버 방화벽이 설정되지 않으면 해킹 시도 증가
- XML-RPC가 활성화된 경우 공격자가 쉽게 무차별 대입 공격 가능
✅ 해결 방법:
- 서버 방화벽(UFW 또는 iptables)을 활성화하여 보호
- XML-RPC 기능을 비활성화하여 보안 강화
다음으로, **관리자 로그인 보안 강화** 방법을 알아보겠습니다.
2. 관리자 로그인 보안 강화
워드프레스에서 발생하는 해킹 공격의 대부분은 로그인 취약점을 노린 것입니다. 무차별 대입 공격(Brute Force Attack)과 같은 방법으로 해커가 여러 비밀번호 조합을 시도하며 관리자 계정에 접근하려 합니다. 이를 방지하기 위해 로그인 보안을 철저하게 강화해야 합니다.
2.1 강력한 비밀번호 및 사용자명 설정
- 기본 관리자 계정(admin)을 변경하여 해커가 쉽게 로그인하지 못하도록 함
- 비밀번호는 **대문자, 소문자, 숫자, 특수문자 포함 12자 이상**으로 설정
- 비밀번호 관리자(LastPass, Bitwarden)를 사용하여 보안 강화
2.2 로그인 페이지(URL) 변경
기본 로그인 페이지 /wp-admin
또는 /wp-login.php
는 공격자들에게 쉽게 노출됩니다. 이를 변경하면 보안성이 크게 향상됩니다.
✅ WPS Hide Login 플러그인을 사용하여 로그인 페이지 변경 방법:
- 워드프레스 관리자 패널에서 플러그인 → 새로 추가로 이동
- “WPS Hide Login” 검색 후 설치 및 활성화
- 설정 → 일반 → 로그인 URL 변경에서 새로운 로그인 URL 입력 (예:
yourwebsite.com/custom-login
) - 변경 사항 저장 후, 기존
/wp-admin
경로가 차단되는지 확인
2.3 로그인 시도 제한 (Brute Force 공격 차단)
해커가 여러 번 잘못된 비밀번호를 입력하면 해당 IP를 차단하는 기능을 추가해야 합니다.
✅ Limit Login Attempts Reloaded 플러그인을 활용하는 방법:
- 워드프레스 플러그인 페이지에서 “Limit Login Attempts Reloaded” 검색 후 설치
- 설정 → 로그인 제한에서 아래와 같이 설정
- 로그인 시도 횟수: 5회
- 차단 시간: 30분
- IP가 여러 번 차단되면 24시간 차단
- 설정 저장 후 테스트 진행
2.4 이중 인증(Two-Factor Authentication, 2FA) 활성화
이중 인증을 설정하면 로그인할 때 추가 인증 코드 입력이 필요하여 보안이 강화됩니다.
✅ Google Authenticator 플러그인을 활용한 2FA 설정:
- 플러그인 메뉴에서 “Google Authenticator – Two Factor Authentication” 설치 및 활성화
- 설정 → Two Factor Authentication 메뉴에서 QR 코드 생성
- 스마트폰에서 Google Authenticator 앱을 설치하고 QR 코드 스캔
- 이제 로그인 시 비밀번호 입력 후 추가 인증 코드 입력 필요
2.5 로그인 알림 기능 활성화
워드프레스 로그인 시 이메일로 알림을 받으면 **의심스러운 로그인 시도를 빠르게 감지**할 수 있습니다.
✅ WP Security Audit Log 플러그인을 활용하는 방법:
- 플러그인 설치 후 설정 → Security Audit Log로 이동
- 로그인 시도, IP 주소, 시간 기록 확인 가능
- 이메일 알림을 설정하여 로그인 알림을 받을 수 있도록 설정
2.6 reCAPTCHA를 로그인 페이지에 추가
자동화된 로그인 시도를 방지하려면 Google reCAPTCHA를 추가하는 것이 효과적입니다.
✅ WP Login reCAPTCHA 플러그인을 활용하는 방법:
- Google reCAPTCHA(https://www.google.com/recaptcha/)에서 API 키 생성
- 워드프레스에서 “WP Login reCAPTCHA” 플러그인 설치 및 활성화
- Google에서 발급받은 **사이트 키 및 보안 키 입력**
- 설정 저장 후, 로그인 페이지에 reCAPTCHA가 정상 작동하는지 확인
2.7 SSH 로그인 보안 설정 (Nginx 및 Apache 서버 공통)
서버에 직접 접근할 수 있는 SSH 로그인도 보안 강화를 해야 합니다.
✅ SSH 보안 설정 방법:
# root 계정 직접 로그인 차단 sudo nano /etc/ssh/sshd_config PermitRootLogin no # SSH 포트 변경 (예: 2222) Port 2222 # SSH 서비스 재시작 sudo systemctl restart sshd
2.8 관리자 페이지 접근 제한
서버에서 관리자 페이지에 특정 IP만 접근하도록 설정할 수 있습니다.
✅ Nginx 설정 파일에서 관리자 페이지 접근 차단
location /wp-admin { allow 123.456.78.90; # 허용할 IP 입력 deny all; }
✅ Apache .htaccess에서 관리자 페이지 접근 차단
order deny,allow deny from all allow from 123.456.78.90
이제 관리자 로그인 보안이 강화되었습니다. 다음으로, 플러그인과 테마 보안을 설정하는 방법을 알아보겠습니다!
3. 플러그인 및 테마 보안 설정
워드프레스의 보안 취약점 중 상당수가 **플러그인 및 테마의 보안 허점**을 이용한 공격에서 비롯됩니다. 오래된 플러그인, 신뢰할 수 없는 소스에서 다운로드한 테마 등은 보안 위협을 증가시킬 수 있습니다. 이를 방지하기 위해 아래의 보안 설정을 적용해야 합니다.
3.1 신뢰할 수 있는 플러그인 및 테마만 사용
- **워드프레스 공식 디렉터리(WordPress.org)에서 제공하는 플러그인 및 테마만 설치**
- 의심스러운 사이트(불법 다운로드 사이트)에서 유료 플러그인 및 테마를 다운로드하지 않음
- 설치 전 **리뷰, 업데이트 날짜, 활성 설치 수** 등을 확인
3.2 사용하지 않는 플러그인 및 테마 삭제
설치만 되어 있는 불필요한 플러그인과 테마도 보안 취약점이 될 수 있습니다.
✅ 불필요한 플러그인 및 테마 삭제 방법:
- 워드프레스 관리자 패널에서 플러그인 → 설치된 플러그인으로 이동
- 사용하지 않는 플러그인을 비활성화한 후 삭제
- 테마 → 설치된 테마에서 사용하지 않는 테마 삭제
3.3 플러그인 및 테마 자동 업데이트 설정
보안 취약점을 예방하려면 플러그인과 테마를 항상 최신 버전으로 유지해야 합니다.
✅ 플러그인 및 테마 자동 업데이트 활성화:
- 워드프레스 관리자 패널에서 플러그인 → 설치된 플러그인으로 이동
- 자동 업데이트를 원하는 플러그인에서 자동 업데이트 활성화 클릭
- 테마도 테마 → 설치된 테마에서 자동 업데이트 활성화
또는, 아래 코드를 **wp-config.php** 파일에 추가하여 전체 자동 업데이트를 활성화할 수도 있습니다.
define('WP_AUTO_UPDATE_CORE', true); add_filter('auto_update_plugin', '__return_true'); add_filter('auto_update_theme', '__return_true');
3.4 플러그인 및 테마 보안 검사
기존 플러그인이나 테마가 보안에 취약한지 점검하려면 보안 플러그인을 활용하면 됩니다.
✅ Wordfence Security 플러그인을 사용한 보안 점검:
- 워드프레스 관리자 패널에서 “Wordfence Security” 플러그인 설치 및 활성화
- Wordfence → Scan으로 이동
- Start New Scan 버튼을 클릭하여 보안 점검 실행
- 취약한 플러그인이나 테마가 감지되면 업데이트 또는 삭제
3.5 테마 및 플러그인 코드 보호
워드프레스 관리자 패널에서 **테마 및 플러그인 파일을 직접 수정할 수 있도록 하는 기능을 비활성화하면** 보안성을 높일 수 있습니다.
✅ wp-config.php에서 파일 편집 기능 비활성화:
define('DISALLOW_FILE_EDIT', true); define('DISALLOW_FILE_MODS', true);
3.6 악성 코드가 포함된 플러그인 및 테마 제거
사이트에 설치된 플러그인이나 테마가 악성 코드에 감염되었는지 확인하려면 **Sucuri Security** 플러그인을 활용하세요.
✅ Sucuri Security 플러그인을 활용한 악성 코드 점검:
- 플러그인 → 새로 추가에서 “Sucuri Security” 검색 후 설치 및 활성화
- Sucuri Security → Malware Scan으로 이동
- 사이트에 악성 코드가 있는지 검사 실행
- 감염된 파일이 발견되면 업데이트 또는 삭제
3.7 Nginx 및 Apache에서 테마 및 플러그인 보호
✅ Nginx 설정 파일에서 플러그인 및 테마 디렉터리 보호:
location ~* /wp-content/plugins/ { deny all; } location ~* /wp-content/themes/ { deny all; }
✅ Apache .htaccess 파일에서 플러그인 및 테마 디렉터리 보호:
<Directory "/var/www/html/wp-content/plugins"> Order Deny,Allow Deny from all <Directory "/var/www/html/wp-content/themes"> Order Deny,Allow Deny from all
이제 플러그인과 테마의 보안을 강화하는 방법을 알게 되었습니다. 다음으로, Nginx 및 Apache 환경에서 파일 및 디렉터리 보안 설정 방법을 살펴보겠습니다!
4. Nginx 및 Apache 환경에서 파일 및 디렉터리 보안 설정
워드프레스 사이트의 보안을 강화하려면 **파일과 디렉터리의 접근 권한을 적절히 설정**해야 합니다. 잘못된 권한 설정은 해커가 사이트를 조작하거나 악성 코드를 삽입할 수 있도록 만들 수 있습니다.
4.1 올바른 파일 및 폴더 권한 설정
워드프레스의 주요 파일과 폴더에는 특정한 접근 권한이 필요합니다.
파일/폴더 | 권장 권한 값 | 설명 |
---|---|---|
/wp-config.php |
400 또는 440 | 데이터베이스 정보 보호 (읽기만 가능, 쓰기 불가능) |
/wp-content/uploads/ |
755 | 이미지 및 업로드 파일 저장 폴더 (쓰기 가능) |
/wp-admin/ |
755 | 관리자 패널 폴더 |
/wp-includes/ |
755 | 워드프레스 핵심 파일 보관 |
✅ 파일 권한 설정 방법 (SSH 사용)
# wp-config.php 보호 chmod 400 wp-config.php # wp-content/uploads 폴더 권한 설정 chmod -R 755 wp-content/uploads/ # 나머지 핵심 폴더 권한 설정 find /var/www/html/ -type d -exec chmod 755 {} \; find /var/www/html/ -type f -exec chmod 644 {} \;
4.2 Nginx 및 Apache에서 wp-config.php 보호
wp-config.php
파일은 워드프레스의 가장 중요한 설정 파일로, 이를 보호해야 합니다.
✅ Nginx 설정 파일에서 wp-config.php 접근 차단
location ~* wp-config.php { deny all; }
✅ Apache .htaccess 파일에서 wp-config.php 접근 차단
# wp-config.php 접근 차단 order allow,deny deny from all
4.3 디렉터리 인덱싱 비활성화
기본적으로 일부 웹 서버는 디렉터리 목록을 표시할 수 있도록 설정되어 있습니다. 이렇게 되면 wp-content/uploads/ 같은 폴더 내 파일이 노출될 가능성이 있습니다.
✅ Nginx 설정 파일에서 디렉터리 목록 표시 차단
location / { autoindex off; }
✅ Apache .htaccess 파일에서 디렉터리 목록 표시 차단
# 디렉터리 인덱싱 방지 Options -Indexes
4.4 XML-RPC 기능 비활성화
XML-RPC는 외부 애플리케이션과 연결할 때 사용되지만, 보안 취약점으로 인해 해킹에 악용될 수 있습니다.
✅ Nginx에서 XML-RPC 비활성화하는 방법
location ~* xmlrpc.php { deny all; }
✅ Apache .htaccess에서 XML-RPC 비활성화하는 방법
# XML-RPC 차단 order deny,allow deny from all
4.5 .htaccess 및 Nginx 설정 보호
보안 설정을 포함하는 .htaccess
및 Nginx 설정 파일은 외부에서 접근할 수 없도록 차단해야 합니다.
✅ Nginx에서 설정 파일 보호
location ~ /\.ht { deny all; }
✅ Apache .htaccess에서 .htaccess 접근 차단
# .htaccess 파일 보호 order allow,deny deny from all
4.6 보안 설정 최종 점검
- ✅ wp-config.php 접근 차단 여부 확인
- ✅ 디렉터리 인덱싱이 비활성화되었는지 확인
- ✅ XML-RPC가 차단되었는지 확인
- ✅ .htaccess 및 Nginx 설정 파일이 보호되었는지 점검
이제 Nginx 및 Apache 환경에서 파일 및 디렉터리 보안 설정이 완료되었습니다! 다음으로, SSL 설정 및 HTTPS 적용 방법을 살펴보겠습니다.
5. SSL 설정 및 HTTPS 적용
SSL(Secure Sockets Layer)은 웹사이트와 방문자 간의 데이터를 암호화하여 보안을 강화하는 기술입니다. **HTTPS를 적용하지 않으면 로그인 정보, 결제 정보 등 민감한 데이터가 해킹될 위험이 있습니다.**
이 단계에서는 **Nginx 및 Apache 환경**에서 무료 SSL 인증서(Let’s Encrypt)를 설정하고 HTTPS를 강제 적용하는 방법을 안내합니다.
5.1 무료 SSL 인증서 (Let’s Encrypt) 적용 방법
대부분의 웹호스팅 업체에서는 **무료 Let’s Encrypt SSL 인증서**를 제공하며, 간단한 설정으로 적용할 수 있습니다.
✅ Let’s Encrypt SSL 설치 방법 (Certbot 사용, Ubuntu 기준)
# Certbot 설치 (Ubuntu) sudo apt update sudo apt install certbot python3-certbot-nginx python3-certbot-apache -y # Nginx용 SSL 인증서 발급 sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com # Apache용 SSL 인증서 발급 sudo certbot --apache -d yourdomain.com -d www.yourdomain.com # SSL 자동 갱신 설정 sudo systemctl enable certbot.timer
5.2 Nginx에서 HTTPS 강제 적용
SSL 인증서를 적용한 후, 모든 HTTP 요청을 HTTPS로 리디렉션해야 합니다.
✅ Nginx 설정 파일 수정
server { listen 80; server_name yourdomain.com www.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name yourdomain.com www.yourdomain.com; ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers HIGH:!aNULL:!MD5; }
**설정 파일을 저장한 후, 아래 명령어를 실행하여 변경 사항을 적용하세요.**
# Nginx 설정 문법 확인 sudo nginx -t # Nginx 재시작 sudo systemctl restart nginx
5.3 Apache에서 HTTPS 강제 적용
Apache에서도 HTTP 요청을 HTTPS로 리디렉션해야 합니다.
✅ .htaccess 파일에서 HTTPS 강제 적용
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/\ [R=301,L]
✅ Apache 설정 파일에서 HTTPS 적용
ServerName yourdomain.com ServerAlias www.yourdomain.com Redirect permanent / https://yourdomain.com/ ServerName yourdomain.com ServerAlias www.yourdomain.com SSLEngine on SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
**설정을 저장한 후, 아래 명령어를 실행하여 변경 사항을 적용하세요.**
# Apache 설정 테스트 sudo apachectl configtest # Apache 재시작 sudo systemctl restart apache2
5.4 Mixed Content 오류 해결
SSL 적용 후에도 일부 리소스(이미지, 스크립트)가 HTTP로 로드될 경우 **Mixed Content 오류**가 발생할 수 있습니다. 이를 해결하려면 다음 단계를 따라야 합니다.
✅ Really Simple SSL 플러그인을 활용한 자동 변환
- 워드프레스 관리자 패널에서 “Really Simple SSL” 플러그인 검색 후 설치
- 플러그인을 활성화하면 자동으로 HTTPS 변환 실행
- 설정 완료 후 사이트가 올바르게 HTTPS로 작동하는지 확인
✅ 데이터베이스 내 URL 일괄 변경 (Better Search Replace 플러그인 사용)
- “Better Search Replace” 플러그인 설치 및 활성화
- 플러그인 실행 후 **검색할 문자열**에
http://yourwebsite.com
입력 - **바꿀 문자열**에
https://yourwebsite.com
입력 후 실행 - 모든 URL이 HTTPS로 변경되었는지 확인
5.5 SSL 적용 후 최종 점검
- ✅ **브라우저에서 HTTPS로 정상 접속되는지 확인**
- ✅ **Mixed Content 오류 해결 여부 확인** (Chrome 개발자 도구 활용)
- ✅ **Google Search Console 및 애널리틱스 설정 변경** (HTTPS로 변경)
이제 SSL 인증서 적용이 완료되었습니다. 다음으로, 방화벽 및 보안 플러그인 활용 방법을 살펴보겠습니다!
6. 방화벽 및 보안 플러그인 활용
워드프레스 사이트를 보호하려면 **방화벽(WAF, Web Application Firewall)**을 설정하고, 보안 플러그인을 적극 활용해야 합니다. 방화벽은 악성 트래픽을 차단하고, 자동화된 해킹 시도를 방어하는 중요한 역할을 합니다.
6.1 웹 애플리케이션 방화벽(WAF) 적용
WAF는 사이트로 들어오는 트래픽을 필터링하여 **해킹 시도, DDoS 공격, 악성 봇** 등의 위협을 차단하는 역할을 합니다.
✅ 클라우드 기반 WAF 추천 서비스
서비스 | 무료 플랜 | 주요 기능 |
---|---|---|
Cloudflare WAF | ✔ 가능 | 악성 트래픽 차단, 속도 최적화, DDoS 방어 |
Wordfence WAF | ✔ 가능 | 워드프레스 내장 방화벽, 로그인 보안 강화 |
SiteGround WAF | ❌ 유료 | 호스팅 레벨에서 서버 보안 강화 |
✅ Cloudflare를 이용한 WAF 설정 방법
- Cloudflare 가입 후 무료 플랜 선택
- 도메인을 추가하고 DNS 설정을 Cloudflare로 변경
- 보안 설정에서 **WAF 활성화** 및 기본 보안 규칙 적용
- 방화벽 규칙(Firewall Rules)에서 워드프레스 공격 패턴 차단
6.2 서버 레벨 방화벽(Nginx 및 Apache 설정)
Nginx 또는 Apache 서버를 사용 중이라면, 직접 방화벽을 설정하여 특정 공격을 차단할 수 있습니다.
✅ UFW(Uncomplicated Firewall) 기본 설정 (Ubuntu 기준)
# UFW 활성화 sudo ufw enable # SSH(22), HTTP(80), HTTPS(443) 포트만 허용 sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp # 현재 방화벽 설정 확인 sudo ufw status verbose
6.3 Wordfence Security 플러그인을 활용한 보안 강화
워드프레스에서 가장 강력한 보안 플러그인 중 하나인 **Wordfence Security**는 방화벽 기능과 보안 점검 기능을 제공하여 사이트를 보호합니다.
✅ Wordfence 설정 방법
- 워드프레스 관리자 패널에서 “Wordfence Security” 플러그인 설치
- Wordfence → Firewall로 이동
- 방화벽 모드를 “Enabled and Protecting”으로 변경
- IP 차단, 로그인 보안 강화 설정 적용
6.4 Sucuri Security를 이용한 사이트 보호
**Sucuri Security**는 웹사이트를 실시간으로 모니터링하며, 악성 코드 감염 여부를 점검하고 차단할 수 있습니다.
✅ Sucuri Security 설정 방법
- 워드프레스 관리자 패널에서 “Sucuri Security” 플러그인 설치
- Sucuri → Security Hardening 메뉴에서 보안 강화 설정 적용
- 악성 코드 검사 실행 및 보안 점검
6.5 Fail2Ban을 활용한 SSH 보안 강화
Fail2Ban은 SSH 및 로그인 공격을 자동으로 차단하는 리눅스 보안 도구입니다.
✅ Fail2Ban 설정 방법 (Ubuntu 기준)
# Fail2Ban 설치 sudo apt install fail2ban -y # 기본 설정 파일 복사 sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # 편집 sudo nano /etc/fail2ban/jail.local # [sshd] 섹션을 찾아 다음 값 변경 [sshd] enabled = true bantime = 3600 findtime = 600 maxretry = 5 # Fail2Ban 재시작 sudo systemctl restart fail2ban
6.6 방화벽 및 보안 설정 최종 점검
- ✅ WAF(Cloudflare, Wordfence 등)가 활성화되었는가?
- ✅ 서버 방화벽(UFW, iptables)이 설정되었는가?
- ✅ Wordfence 또는 Sucuri에서 보안 점검을 실행했는가?
- ✅ SSH 공격 방어(Fail2Ban)가 적용되었는가?
이제 워드프레스 사이트의 **방화벽 및 보안 설정이 완료**되었습니다! 다음으로, 전체 내용을 정리하며 **최종 점검 체크리스트**를 제공하겠습니다.
7. 최종 점검 및 결론
이제 워드프레스 보안 설정이 모두 완료되었습니다. 마지막으로 지금까지 설정한 보안 항목을 점검하고, 앞으로 지속적으로 관리해야 할 부분을 정리해보겠습니다.
7.1 최종 보안 점검 체크리스트
보안 항목 | 설정 여부 |
---|---|
✅ 관리자 로그인 보안 (이중 인증, 로그인 시도 제한, reCAPTCHA 적용) | ✔ 완료 |
✅ 플러그인 및 테마 보안 (불필요한 플러그인 삭제, 최신 업데이트 유지) | ✔ 완료 |
✅ 파일 및 디렉터리 보안 (파일 권한 설정, wp-config.php 보호, XML-RPC 비활성화) | ✔ 완료 |
✅ SSL 인증서 적용 및 HTTPS 강제 설정 | ✔ 완료 |
✅ 방화벽(WAF) 설정 (Cloudflare, Wordfence, Nginx 방화벽 설정 적용) | ✔ 완료 |
✅ 서버 방화벽(UFW 또는 iptables) 설정 및 SSH 보안 강화 | ✔ 완료 |
✅ 보안 플러그인(Wordfence, Sucuri) 점검 실행 | ✔ 완료 |
7.2 지속적인 보안 유지 관리 방법
- 🔹 정기적인 백업 수행: 자동 백업을 설정하고, 주기적으로 복원 테스트 진행
- 🔹 플러그인 및 테마 최신 상태 유지: 업데이트를 놓치지 않도록 관리
- 🔹 보안 점검 수행: Wordfence 및 Sucuri를 사용하여 정기적인 취약점 검사
- 🔹 로그인 보안 강화: 로그인 시도 기록을 모니터링하고, 의심스러운 접근 감지
- 🔹 방화벽 설정 유지: Cloudflare 및 Nginx 방화벽 정책을 최신 상태로 유지
- 🔹 서버 보안 점검: SSH 보안, Fail2Ban 로그 확인, 방화벽 정책 재검토
워드프레스 보안 설정은 한 번만 적용한다고 끝나는 것이 아니라, 지속적으로 유지 관리해야 합니다. 해커들은 항상 새로운 취약점을 찾고 있으며, 업데이트되지 않은 사이트는 언제든지 공격 대상이 될 수 있습니다.
이 가이드를 통해 **워드프레스 보안을 강화하고, 지속적으로 안전한 환경을 유지할 수 있도록 준비되었을 것입니다.**
다음 단계로는 보안 유지 보수 전략 및 실시간 모니터링 도구 활용에 대한 내용을 다룰 예정입니다. 지속적인 보안 점검과 모니터링을 통해 사이트를 안전하게 운영하는 방법을 알아보겠습니다.
이제 강력한 보안 설정을 적용한 워드프레스 사이트를 운영하세요!