Tôi đã thiết lập một phiên bản Traefik do công cụ Docker chạy ở chế độ Swarm với cấu hình "cổ điển" (xem bên dưới, để cho ngắn gọn, tôi chỉ đặt các phần [với tôi] có liên quan. Hãy hỏi thêm chi tiết nếu bạn cần như vậy).
Fail2Ban đã được cài đặt, cũng như tường lửa (bản phân phối CentOS). Cho đến nay, tôi đã đặt cấu hình bộ lọc/nhà tù đơn giản, chủ yếu để chặn DOS và bruteforce, bằng cách xem nhật ký truy cập Traefik.
Vấn đề của tôi: khi tôi thử với Nikto hoặc thủy, tôi có thể thấy IP đang dùng thử của mình đã bị đưa vào danh sách đen:
# fail2ban-client status symfony-auth
Trạng thái của nhà tù: symfony-auth
|- Bộ lọc
| |- Hiện tại bị lỗi :3
| |- Tổng số không thành công: 906
| ` - Danh sách tệp: /var/log/traefik/access.log
` - Hành động
|- Đang bị cấm: 1
|- Tổng số bị cấm: 2
` - Danh sách IP bị cấm: 37.19.218.169
Nhưng không có gì thay đổi trên phần quy tắc iptables và tôi có thể thấy IP đã cho không bị chặn.Hơn nữa, nếu tôi cố điều hướng trên trang web từ IP bị cấm, tôi có thể làm điều đó, mặc dù nó bị cấm.
Tôi phải nói thêm rằng tôi có Tệp 00-firewalld.conf
, với các hướng dẫn mặc định liên quan đến các hành động cho bản phân phối này:
# mèo /etc/fail2ban/jail.d/00-firewalld.conf
# Tệp này là một phần của gói fail2ban-firewalld để định cấu hình việc sử dụng
# hành động tường lửa là hành động mặc định. Bạn có thể loại bỏ gói này
# (cùng với gói meta fail2ban trống) nếu bạn không sử dụng tường lửa
[MẶC ĐỊNH]
banaction = tường lửacmd-rich-rules[actiontype=<multiport>]
banaction_allports = tường lửacmd-rich-rules[actiontype=<allports>]
phụ trợ = systemd
Cuối cùng, tôi không có bất kỳ chênh lệch múi giờ nào, chẳng hạn như đã nêu đây.
# đuôi /var/log/tin nhắn
12 Thg7 13:28:05 ....
# timedatectl
Giờ địa phương: Thứ Hai 2021-07-12 13:30:18 UTC
Giờ quốc tế: Thứ Hai 2021-07-12 13:30:18 UTC
Thời gian RTC: Thứ Hai 2021-07-12 13:30:13
Múi giờ: UTC (UTC, +0000)
Đồng hồ hệ thống được đồng bộ hóa: có
Dịch vụ NTP: đang hoạt động
RTC ở TZ địa phương: không
Vậy tại sao IP bị cấm của tôi vẫn có thể truy cập trang web mục tiêu? Cảm ơn bạn đã dẫn và khai sáng.
Đoạn trích
Traefik docker-compose.yml
phần đăng nhập
phiên bản: "3.3"
dịch vụ:
proxy ngược:
hình ảnh: "traefik:v2.4"
chỉ huy:
# Đăng nhập cấu hình
#- "--log.level=DEBUG"
- "--log.filepath=/var/log/traefik/traefik.log"
- "--accesslog.filepath=/var/log/traefik/access.log"
phần khối lượng :
#...
khối lượng:
# Để duy trì chứng chỉ
- chứng chỉ traefik:/letsencrypt
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- /var/log/traefik:/var/log/traefik/
#...
Fail2Ban
bộ lọc của tôi
/etc/fail2ban/filter.d/my_filter.conf
[Sự định nghĩa]
failregex = ^<HOST>.*"(GET|POST|HEAD).*" (404|444|403|400|301) .*$
bỏ quaregex =
nhà tù của tôi
[nhà tù của tôi]
đã bật = đúng
cổng = http, https
bộ lọc = my_filter
logpath = /var/log/traefik/access.log
thử lại tối đa = 10
trạng thái khách hàng
# fail2ban-tình trạng máy khách
Trạng thái
|- Số tù: 2
` - Danh sách tù: sshd, my_jail