HƯỚNG DẪN Block User Agents sử dụng Nginx

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 3/12/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Nginx cung cấp nhiều cách để chặn lưu lượng không mong muốn. Bạn có thể sử dụng các quy tắc allow/deny hoặc thiết lập một thư mục mật khẩu bảo vệ. Bạn cũng có thể thoát khỏi chương trình xấu và tránh các cuộc tấn công từ các HTTP user agent với GET hoặc POST. Sau đây là một số ví dụ để bảo vệ các trang web từ các kết nối bất hợp pháp .

    User agent là gì?
    User agent (UA) chỉ đơn giản là một chuỗi văn bản sẽ giúp các máy chủ và hệ thống nhận diện trình duyệt và hệ điều hành được sử dụng bởi khách hàng.
    Khi bạn đang xem một trang web, trình duyệt của bạn bao gồm một trường user agent trong HTTP header. Các nội dung của chuỗi user agent có thể thay đổi từ trình duyệt đến trình duyệt.
    Về cơ bản, việc xác định user agent là một cách cho trình duyệt biết răng " This is Google Chrome running on Linux," hoặc " This is Internet Explorer running on Windows."

    Tại sao bạn cần thông tin user agent này?
    User agent là một cách tốt để ngăn chặn các cuộc tấn công chống lại phần mềm. Ở đây, bạn sẽ cấu hình Nginx để chặn lưu lượng không mong muốn sử dụng một số user agent rất cụ thể, như curl hoặc wget.
    Chỉnh sửa các tập tin nginx.conf:
    Mã:
     nano -w /etc/nginx/nginx.conf 
    Bên trong của phần HTTP {}, thêm đoạn mã này:
    Mã:
    if ($http_user_agent ~* (Wget) ) {
    return 403;
    }
    
    Trong ví dụ này, công cụ wget bị chặn và trả về một phản ứng 403 Forbidden.


    Làm thế nào bạn có thể ngăn chặn nhiều user agent?
    Mã:
    if ($http_user_agent ~ (Windows 95|Windows 98|wget|curl|libwww-perl) ) {
    return 403;
    }
    
    Bạn có thể thấy ở đây là các trình duyệt hệ điều hành cũ (Windows 95 và 98) đều bị chặn, cùng với wget, curl và libwww-perl (cách phổ biến để tấn công các máy chủ từ xa). Có rất nhiều chương trình và các công cụ để ngăn chặn khác; đây chỉ là một ví dụ cơ bản.

    Trường hợp chữ hoa và thường đều được sử dụng
    Sử dụng ~* để giúp thực hiện trường hợp này
    Ví dụ:
    Mã:
    ### case sensitive http user agent blocking  ###
    if ($http_user_agent ~ (Catall Spider|AcoiRobot) ) {
        return 403;
    }
    ### case insensitive http user agent blocking  ###
    if ($http_user_agent ~* (foo|bar) ) {
        return 403;
    }
    Nếu bạn muốn biết tất cả các chuỗi user agent hiện có, kiểm tra trang web này.

    Phần kết luận
    Bạn có thể chặn gần như bất cứ điều gì, nếu bạn biết các user agent. Điều này có thể được tìm thấy trên các log máy chủ web hoặc với bất kỳ phần mềm thống kê.
     
    #1 quyet1990, 3/12/16
    Sửa lần cuối: 13/12/16

Chia sẻ trang này

Đang tải...