최근 블로그 vps 서버는 login / xmlrpc 무차별 대입 공격으로 공격받는 경우가 많습니다. 액세스 로그를 보면 평일보다 트래픽이 10 배 증가했습니다. wp-login.php 혹은 xmp-rpc.php를 통해 brute force공격을 당한겁니다. 엑세스로그를 보면 아래와같은 기록이 많이 있습니다.
185.211.245.169 - - [14 / 4 / 2019 : 06 : 13 : 46 +0800] "POST //wp-login.php
fail2ban 설치
fail2ban 과 같은 침입 방지 소프트웨어를 사용 하면 서버 로그를 확인하고 iptables 규칙을 추가하여 문제가되는 IP 주소를 차단할 수 있습니다. 그러나 웹 서버에 액세스로그가 설정되어 있어야합니다. debian / 우분투 아래에 다음 명령을 입력하여 설치하십시오.
apt-get install fail2ban
fail2ban 배치
1. 먼저 /etc/fail2ban/filter.d/wordpress.conf 파일을 다음과 같이 만듭니다.
[Definition]
failregex = ^<HOST> .* "POST .*wp-login.php
^<HOST> .* "POST .*xmlrpc.php
ignoreregex =
2. /etc/fail2ban/jail.conf 파일을 편집하고 다음 필드를 추가하십시오.
[wordpress]
enabled = true
port = http,https
filter = wordpress
action = iptables-multiport[name=wordpress, port="http,https", protocol=tcp]
logpath = /home/wwwlogs/*.log
maxretry = 3
findtime = 10800
bantime = 86400
logpath항목에 로그파일 위치 설정, findtime은 경과시간 bandtime은 액세스거부시간을 뜻합니다. 3시간동안 3번 로그인실패시 1일 서버접근거부로 설정되였습니다.
fail2ban을 재시작하고 결과를 테스트하십시오.
fail2ban을 다시 시작하려면 다음 명령을 입력하십시오.
service fail2ban restart
실행중인 결과를 보려면 다음 명령을 입력하십시오.
fail2ban-client status wordpress
하기와 유사하게 결과가 출력됩니다.
Status for the jail: wordpress
|- filter
| |- File list: /home/wwwlogs/www.yourname.com.log /home/wwwlogs/access.log /home/wwwlogs/nginx_error.log /home/wwwlogs/blog.yourname.log /home/wwwlogs/blog.yourname.com.log
| |- Currently failed: 0
| `- Total failed: 238
`- action
|- Currently banned: 3
| `- IP list: 185.211.245.194 91.210.144.178 185.211.245.169
`- Total banned: 3
fail2ban-client가 시작되지 않은 경우 fail2ban-client start를 입력하여 시작하면 됩니다..