fail2ban을 이용하여 wordpress라는 string으로 접근하려는 시도를 추가 차단하는 방법
페이지 정보

본문
1. 필터 파일 생성
⦁ /etc/fail2ban/filter.d/wordpress.conf 파일을 열고 다음 내용 추가
[Definition]
failregex = <HOST>.*GET|POST).*wordpress.*
<HOST>.*"(GET|POST).*wp-content.*
ignoreregex =
2. /etc/fail2ban/jail.local 파일에 다음 규칙 추가(없으면 새로 생성)
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/httpd/*access.log
maxretry = 1
bantime = 3600
findtime = 600
⦁ maxretry : 시도 횟수 제한
⦁ bantime : 차단 시간(초)
⦁ findtime : 감지 주기 (600초 동안 1번 이상 감지되면 차단)
3. 설정 적용 및 테스트
⦁ 설정확인
sudo fail2ban-client reload
sudo fail2ban-client status
⦁ 테스트 방법
(1) 로그 파일에 auto.php를 포함한 요청을 수동으로 추가합니다.
echo '192.168.1.100 - - [27/Nov/2024:14:00:00 +0000] "GET /auto.php HTTP/1.1" 404 123 "-" "Mozilla/5.0"' >> /var/log/httpd/samnong-access.log
※ 테스트시 날짜와 시간에 주의
(2) fail2ban이 제대로 차단했는지 확인합니다.
sudo fail2ban-client status wordpress
4. Fail2Ban 재시작
systemctl restart fail2ban
5. 실시간 차단 확인
⦁ 차단된 IP를 확인하려면
sudo fail2ban-client status wordpress
⦁ 특정 IP를 수동으로 차단 해제하려면
sudo fail2ban-client unban
⦁ bantime을 영구적으로 설정하려면
bantime = -1 # -1은 영구 차단
추가 팁
⦁ fail2ban 로그를 모니터링하여 동작을 확인하세요
sudo tail -f /var/log/fail2ban.log
⦁ 과도한 로그 차단으로 인한 오작동을 방지하려면 findtime과 maxretry 값을 조정하세요
⦁ 차단된 로그를 별도 파일로 저장하기
grep "\[wordpress\] Ban" /var/log/fail2ban.log > /var/log/fail2ban.wordpress.log
grep "\[auto-php\] Ban" /var/log/fail2ban.log > /var/log/fail2ban.auto-php.log
⦁ 차단된 로그를 날짜별로 저장하기
cp /var/log/fail2ban.wordpress.log /var/log/fail2ban.wordpress.log241209
cp /var/log/fail2ban.auto-php.log /var/log/fail2ban.auto-php.log241209
⦁ /etc/fail2ban/filter.d/wordpress.conf 파일을 열고 다음 내용 추가
[Definition]
failregex = <HOST>.*GET|POST).*wordpress.*
<HOST>.*"(GET|POST).*wp-content.*
ignoreregex =
2. /etc/fail2ban/jail.local 파일에 다음 규칙 추가(없으면 새로 생성)
[wordpress]
enabled = true
filter = wordpress
logpath = /var/log/httpd/*access.log
maxretry = 1
bantime = 3600
findtime = 600
⦁ maxretry : 시도 횟수 제한
⦁ bantime : 차단 시간(초)
⦁ findtime : 감지 주기 (600초 동안 1번 이상 감지되면 차단)
3. 설정 적용 및 테스트
⦁ 설정확인
sudo fail2ban-client reload
sudo fail2ban-client status
⦁ 테스트 방법
(1) 로그 파일에 auto.php를 포함한 요청을 수동으로 추가합니다.
echo '192.168.1.100 - - [27/Nov/2024:14:00:00 +0000] "GET /auto.php HTTP/1.1" 404 123 "-" "Mozilla/5.0"' >> /var/log/httpd/samnong-access.log
※ 테스트시 날짜와 시간에 주의
(2) fail2ban이 제대로 차단했는지 확인합니다.
sudo fail2ban-client status wordpress
4. Fail2Ban 재시작
systemctl restart fail2ban
5. 실시간 차단 확인
⦁ 차단된 IP를 확인하려면
sudo fail2ban-client status wordpress
⦁ 특정 IP를 수동으로 차단 해제하려면
sudo fail2ban-client unban
⦁ bantime을 영구적으로 설정하려면
bantime = -1 # -1은 영구 차단
추가 팁
⦁ fail2ban 로그를 모니터링하여 동작을 확인하세요
sudo tail -f /var/log/fail2ban.log
⦁ 과도한 로그 차단으로 인한 오작동을 방지하려면 findtime과 maxretry 값을 조정하세요
⦁ 차단된 로그를 별도 파일로 저장하기
grep "\[wordpress\] Ban" /var/log/fail2ban.log > /var/log/fail2ban.wordpress.log
grep "\[auto-php\] Ban" /var/log/fail2ban.log > /var/log/fail2ban.auto-php.log
⦁ 차단된 로그를 날짜별로 저장하기
cp /var/log/fail2ban.wordpress.log /var/log/fail2ban.wordpress.log241209
cp /var/log/fail2ban.auto-php.log /var/log/fail2ban.auto-php.log241209
- 이전글HTTP 헤더에 "천안문 광장" 키워드 삽입 24.12.10
- 다음글fail2ban을 이용하여 auto.php라는 string으로 접근하려는 시도를 차단하는 방법 24.11.27
댓글목록
등록된 댓글이 없습니다.
