Điểm:0

fail2ban có thể thêm quy tắc từ chối vào nginx thay vì sử dụng iptables

lá cờ de

Tôi đang có một máy chủ, nằm sau proxy ngược, mà tôi không kiểm soát. Tôi muốn sử dụng fail2ban để chặn lưu lượng nginx trong một số điều kiện nhất định.

thông thường fail2ban sử dụng iptables để chặn lưu lượng truy cập bắt nguồn từ IP của kẻ xâm nhập

Tuy nhiên, máy chủ của tôi đứng sau proxy ngược và theo quan điểm của máy chủ của tôi, tất cả lưu lượng truy cập đều bắt nguồn từ proxy ngược:

Tôi tìm thấy url sau https://forums.freebsd.org/threads/fail2ban-behind-a-proxy.55041/ điều đó gợi ý bạn sử dụng iptables với gói intropspection như ví dụ:

actionban = iptables -I fail2ban-<name> 1 -p tcp --dport 80 -m string --algo bm --string 'X-Forwarded-For: <ip>' -j DROP

Tuy nhiên, proxy ngược mà tôi không thể kiểm soát sẽ chuyển tiếp lưu lượng truy cập dưới dạng lưu lượng truy cập https, nghĩa là tôi không thể xem xét kỹ lưu lượng truy cập cho X-Forwarded-For tiêu đề vì chúng sẽ được mã hóa.

Vì vậy, câu hỏi của tôi.

Những người khác có một kịch bản tương tự và có một kịch bản hiện có cấm hành động = điều đó cho biết thêm từ chối quy tắc đến nginx?

Hay tôi phải viết thủ công một tập lệnh đang cố gắng thực hiện việc này (chỉnh sửa nginx cấu hình nginx và tải lại nginx)

Giải pháp nào khác sẽ cho phép tôi nói với nginx một cách linh hoạt những yêu cầu nào (có chứa cụ thể X-Chuyển tiếp-Dành cho: tiêu đề) để chặn

Điểm:2
lá cờ il

Bạn có thể sử dụng hành động fail2ban nginx-block-map, xem nginx-block-map.conf để biết chi tiết.

Chỉ cần lưu ý rằng bằng cách lọc X-Forwarded-For tiêu đề, những kẻ xâm nhập có thể thao túng yêu cầu để tránh bị cấm (với việc đặt các giá trị khác nhau cho mỗi yêu cầu mới trong tiêu đề này) khá đơn giản. Câu hỏi liệu kẻ xâm nhập có định vị đằng sau proxy hay chỉ mô phỏng proxy và chỉ đặt tiêu đề X-Forwarded-For tự nó không thể được trả lời một cách đơn giản.

lá cờ cn
`X-Forwarded-For` phải được Nginx đặt thành proxy cho hệ thống phụ trợ (tức là hệ thống mà máy khách trực tiếp không thể truy cập). Vì vậy, trừ khi thiết lập của bạn không hợp lệ, nó sẽ hoạt động tốt.
sebres avatar
lá cờ il
Không, nó không phải là tiêu đề này ...tiêu đề `X-Forwarded-For`, nghĩa là người bắt đầu chủ đề, sẽ được nhận từ máy khách, vì vậy ở phía nginx, không rõ chính xác những gì được đặt ở phía máy khách, do đó nginx không thể nhận được yêu cầu này để phân biệt máy khách (proxy thực sự hay chỉ là kẻ xâm nhập giả làm proxy). Ngược lại với tiêu đề mà bạn muốn nói, có thể so sánh với việc bảo vệ nginx của bạn chống lại chương trình phụ trợ của bạn, điều đơn giản là vô nghĩa (tại sao bạn cần fail2ban cho điều đó).
lá cờ cn
Chắc chắn rồi, nếu Nginx nhận được tiêu đề `X-Forwarded-For`, thì nó phải bị bỏ qua. Vì Nginx là proxy, nên **đặt** nó và sau đó chuyển tiếp yêu cầu tới máy tính phụ trợ. Sau đó, máy tính phụ trợ có thể gửi thông báo "chặn _that_ IP" và đó sẽ là IP của máy khách (như được tìm thấy trong ổ cắm). Và tôi thấy OP nói rằng có một máy chủ proxy khác đang định tuyến. Vì vậy, tôi đoán anh ta không thể biết IP nào để chặn.
Điểm:2
lá cờ cn

fail2ban có thể được sử dụng để chạy một tập lệnh. Kịch bản đó có thể làm bất cứ điều gì bạn muốn.


Chỉnh sửa quy tắc từ chối

Tôi không chắc làm thế nào toàn bộ nội dung có thể hoạt động ở tốc độ tối đa, nhưng bạn có thể dễ dàng thêm các quy tắc Từ chối vào một tệp.

Các tệp cấu hình Nginx có thể bao gồm:

bao gồm /etc/nginx/deny-rules.conf

Và kịch bản của bạn tạo ra điều đó từ chối-rules.conf, bằng cách nào đó... Bạn muốn thêm IP vào một tệp và sau đó sử dụng tệp đó để tạo từ chối-rules.conf tập tin bằng cách sử dụng một vòng lặp hoặc một cái gì đó.

Sau đó, bạn phải khởi động lại Nginx để các quy tắc mới được tính đến. Đó là phần xấu trong kế hoạch này. Sẽ rất chậm để khởi động lại theo cách này.


từ chối niêm yết

Một giải pháp khác là sử dụng bộ lọc sau:

Từ chối danh sách địa chỉ IP động

Tôi chưa bao giờ sử dụng cái đó nên tôi e rằng bạn sẽ phải đọc tài liệu và xem cách thiết lập mọi thứ và biến mọi thứ thành hiện thực... Tuy nhiên, cái đó sẽ hoạt động ở tốc độ tối đa. Tập lệnh trong hệ thống fail2ban của bạn có thể đảm nhiệm việc cập nhật danh sách động đó.

gelonida avatar
lá cờ de
cảm ơn câu trả lời của bạn. Sẽ chờ xem liệu một số người dùng có biết về tập lệnh actionbab hiện có hay không. Nếu không tôi sẽ chấp nhận như câu trả lời

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.