워드프레스 매크로 공격 방어 방법 (로그인 자동 공격 차단)

워드프레스 매크로 공격 방어 방법 (로그인 자동 공격 차단)

정성 들여 운영하는 워드프레스 블로그가 유명해질수록 기분 좋은 일만 생기지는 않습니다. 글 퍼감을 막기 위한 대책을 고민하게 만드는 무단 복제 봇부터, “누군가 내 비밀번호를 알아내려고 계속 접속하면 어떡하지?”라는 불안감을 주는 해킹 시도까지 점점 늘어나기 때문입니다.

특히 워드프레스 매크로 공격은 자동화된 봇을 이용해 초 단위로 로그인을 반복 시도하며 서버에 과부하를 일으킵니다. 이런 공격은 단순한 로그인 실패 수준이 아니라, 브루트포스 공격으로 이어질 수 있어 각별한 주의가 필요합니다. 로그인 시도가 폭증하면 서버 자원이 낭비되고, 심할 경우 사이트 속도 저하나 서비스 장애로까지 이어질 수 있습니다.

이럴 때 필요한 것이 바로 서버 전용 보디가드, Fail2Ban입니다. Fail2Ban은 특정 횟수 이상 로그인에 실패한 IP를 자동으로 차단해 워드프레스 매크로 공격을 효과적으로 방어합니다. 플러그인에만 의존하는 방식보다 한 단계 높은, 서버 레벨의 워드프레스 보안 강화 방법이라고 볼 수 있습니다.

오늘은 5분 만에 설정할 수 있는 워드프레스 보안 강화 방법과, 효율적인 워드프레스 로그인 차단 설정법을 함께 알아보겠습니다.

1. Fail2Ban이 대체 뭔가요?

쉽게 말해 ‘무단 침입자 자동 차단 시스템’입니다. 도둑이 현관문 번호키를 여러 번 틀리면 경보음이 울리면서 아예 문이 잠겨버리죠? Fail2Ban이 서버에서 바로 그 역할을 합니다. 해킹을 목적으로 반복적인 로그인을 시도하는 수상한 아이피와 악성 매크로 공격을 감지해, 서버 근처에도 못 오게 담장을 높여버리는 것이죠. 이는 단순한 글펌 방지 방법을 넘어 서버 전체의 안전을 지키는 핵심 도구입니다.

워드프레스 데이터 보호

2. Fail2Ban 설치하기 (단 두 줄로 끝!)

리눅스(Ubuntu) 서버를 사용 중이라면 설치는 허무할 정도로 간단합니다. 터미널을 열고 아래 명령어를 순서대로 입력하여 워드프레스 보안의 기초를 다져보세요.

# 1. 패키지 목록 업데이트
sudo apt update
# 2. Fail2Ban 설치
sudo apt install fail2ban -y

설치가 완료되면 이제 보안관이 우리 서버에 상주하며 강력한 워드프레스 로그인 차단 임무를 수행할 준비를 마친 것입니다.

3. 보안관에게 ‘수칙’ 정해주기 (기본 설정)

보안관이 제대로 일하려면 “몇 번 틀리면 차단할지”, “얼마나 오랫동안 가둬둘지” 정해줘야 합니다. 해킹 공격의 패턴에 따라 설정 파일을 직접 건드리는 것보다 복사본을 만들어 관리하는 것이 훨씬 안전합니다.

# 설정 파일 복사본 만들기
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
# 설정 파일 열기
sudo nano /etc/fail2ban/jail.local

파일 안에서 아래 항목들을 찾아 입맛에 맞게 수정해 보세요. 이는 매크로 공격의 효율을 떨어뜨리는 가장 기본적인 수단입니다.

  • bantime: 차단할 시간 (예: 1h는 1시간, 1d는 하루)
  • findtime: 이 시간 동안 반복 시도를 감시 (예: 10m)
  • maxretry: 허용 횟수 (예: 5회 이상 틀리면 차단)

4. 워드프레스 전용 감시망 가동하기

Fail2Ban은 기본적으로 SSH(서버 접속)만 지킵니다. 하지만 우리는 소중한 콘텐츠와 글펌 방지 방법의 연장선인 워드프레스 로그인을 지켜야 하죠? 워드프레스 전용 규칙을 활성화하려면 설정 파일 끝에 아래 내용을 추가하여 워드프레스 로그인 차단 기능을 극대화할 수 있습니다.

[wordpress-auth]
enabled = true
port = http,https
filter = wordpress-auth
logpath = /var/log/nginx/access.log
maxretry = 3
bantime = 24h

위 설정은 “워드프레스 로그인을 3번 이상 실패하면 하루 동안 그놈을 차단해!”라는 강력한 명령으로, 끈질긴 매크로 공격을 원천 봉쇄합니다.

블로그 매크로 공격 차단 방법

Fail2Ban을 설치했다면 이제 가장 중요한 단계가 남았습니다. 바로 ‘보안 수칙(Jail 설정)’을 만드는 일입니다. 보안관에게 아무런 지시도 내리지 않는다면, 보안관은 그저 대문 앞에 서 있기만 할 뿐이니까요. 오늘은 어떤 해킹 시도를 어떻게 잡을지, 상세한 업무 지침서를 작성하는 법을 배워보겠습니다.

5. 수칙의 핵심: jail.local 파일 이해하기

Fail2Ban은 jail.conf라는 기본 지침서가 있지만, 우리는 이를 직접 고치지 않고 jail.local이라는 우리만의 ‘특별 지침서’를 만들어 사용합니다. 그래야 나중에 업데이트가 되어도 우리가 정한 워드프레스 보안 규칙이 사라지지 않거든요.

sudo nano /etc/fail2ban/jail.local

6. 보안관의 공통 수칙 (Default 설정)

모든 규칙에 공통으로 적용될 ‘기본 벌칙’을 먼저 정합니다. 파일 맨 윗부분 [DEFAULT] 섹션에 아래 내용을 넣습니다. 이는 운영자의 실수를 방지하고 워드프레스 로그인 차단의 정확도를 높여줍니다.

[DEFAULT]
# 내 아이피는 절대로 잡지 마! (화이트리스트 설정)
ignoreip = 127.0.0.1/8 ::1 112.156.116.136

# 한 번 걸리면 1시간 동안 금지 (Ban Time)
bantime = 1h

# 10분 동안 일어나는 일을 감시해 (Find Time)
findtime = 10m

# 5번 틀리면 바로 감옥행 (Max Retry)
maxretry = 5

7. 상황별 개별 수칙(Jail) 만들기

이제 본격적으로 매크로 공격을 감시할 대상을 정해봅시다. 각 대상은 대괄호 [ ] 안에 이름을 적어 구분합니다.

① SSH: 서버 접속 시도 차단

해킹 세력들이 가장 먼저 찌르는 곳입니다. 서버 자체의 비밀번호를 찍어 맞추려는 놈들을 잡아냅니다.

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s

② WordPress: 관리자 로그인 보호

워드프레스 관리자 페이지(wp-login.php)를 매크로 공격하는 놈들을 위한 전용 수칙입니다. 이 규칙은 일반 방문자에게는 영향을 주지 않고, 로그인창만 끈질기게 두드리는 봇들만 골라내어 워드프레스 로그인 차단을 실행합니다.

[wordpress-auth]
enabled = true
port = http,https
filter = wordpress-auth
logpath = /var/log/nginx/access.log # 또는 apache 로그 경로
maxretry = 3 # 로그인은 더 엄격하게 3번만!
bantime = 24h # 로그인 공격자는 하루 동안 차단!

8. 수칙 적용하고 ‘순찰’ 시작하기

수칙을 다 적었다면 Ctrl + O(저장) 후 Ctrl + X(종료)를 누릅니다. 이제 보안관에게 새 지침서를 읽으라고 명령하여 워드프레스 보안을 완성해야 합니다.

# 보안관 재시동
sudo systemctl restart fail2ban
# 보안관이 규칙을 잘 이해했는지 확인
sudo fail2ban-client status

이제 status 명령어를 쳤을 때 wordpress-auth 항목이 보인다면, 여러분의 블로그는 24시간 철통 방어 상태가 된 것입니다. 글펌 방지 방법으로 콘텐츠를 보호하는 것만큼이나, 이런 서버 단의 보안은 매우 중요합니다.

주의할 점은 보안 수칙을 너무 엄격하게(예: 1번 틀리면 영구 차단) 잡으면, 가끔 비밀번호를 까먹은 운영자 본인까지 잡혀갈 수 있습니다. ignoreip에 꼭 본인의 아이피를 등록하고, maxretry는 3~5회 정도로 적당히 여유를 두는 것이 운영의 비결입니다.

Fail2Ban을 설치하고 나면 더 이상 “누가 내 비번 찍어 맞추면 어떡하지?”라거나 해킹의 위협 때문에 밤잠 설칠 필요가 없습니다. 서버 로그에 찍히는 Ban(차단) 소식들은 우리 서버가 얼마나 안전하게 보호받고 있는지 보여주는 훈장과도 같습니다. 글펌 방지를 위한 노력과 함께 이러한 시스템 보안을 구축한다면 여러분의 워드프레스는 무적의 요새가 될 것입니다.

지금 바로 여러분의 서버에 든든한 보디가드 한 명 고용해 보시는 건 어떨까요?

댓글 남기기