HƯỚNG DẪN Block một quốc gia sử dụng Nginx

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

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Ngày trước, tôi đã phải chặn toàn bộ đất nước từ một trang web cụ thể. Có hai cách để chặn một quốc gia, một tôi đã đề cập trong một bài cũ: Chặn một quốc gia sử dụng CSF Firewall. Tuy nhiên, khối tường lửa này hoạt động ở cấp độ máy chủ, và nếu bạn có nhiều trang web thì tất cả các trang web của bạn sẽ bị chặn lưu lượng, điều này sẽ gây ra vấn đề hệ thống.

    Lần này tôi muốn chặn toàn bộ đất nước từ một trang web duy nhất, và cách tốt nhất để làm điều đó là sử dụng tùy chọn allow/deny bên trong các cấu hình virtual host. Chặn một quốc gia sử dụng Nginx là khá dễ dàng, xem ví dụ dưới đây:

    Truy cập trang web http://www.incredibill.me/htaccess-block-country-ips, chọn quốc gia của bạn, bấm vào Generate .htaccess code, và bạn sẽ nhận được nhiều dòng như thế này:
    Mã:
    # BLOCK COUNTRY BY IP RANGE
    
    # IncrediBILL's HTACCESS Tools
    
    # http://incredibill.me
    order allow,deny
    #
    
    # Block from ALBANIA (AL)
    #
    deny from 31.22.48.0/20
    deny from 31.44.64.0/20
    deny from 31.171.152.0/21
    deny from 31.222.40.0/21
    
    Những dòng mà chúng ta cần quan tâm là "deny from ..."
    Lấy tất cả những dòng đó, xóa tất cả những dòng còn lại sau đó thêm ";" vào cuối mỗi dòng, vì vậy, tất cả các dòng sẽ trở thành như thế này:
    Mã:
    deny 31.22.48.0/20;
    deny 31.44.64.0/20;
    deny 31.171.152.0/21;
    deny 31.222.40.0/21;
    
    Vào cuối của tất cả các dòng deny from, thêm dòng này:
    Mã:
     allow all; 
    Và nó sẽ trông như thế này:
    Mã:
    deny 31.22.48.0/20;
    deny 31.44.64.0/20;
    deny 31.171.152.0/21;
    deny 31.222.40.0/21;
    allow all;
    
    Bây giờ chúng ta hãy thêm những IP vào Nginx:
    Mã:
     nano -w /etc/nginx/block-country.conf 
    Bây giờ chỉnh sửa cấu hình virtual host của bạn, ví dụ:
    Mã:
    location / {
      root  /var/www/yoursite.com;
      index  index.php;
      include /etc/nginx/block-country.conf;
    }
    
    Như bạn thấy, chúng tôi sử dụng chỉ thị include để chèn tập tin cấu hình allow/deny vào cấu hình virtual host của chúng tôi.
    Được rồi, bây giờ reload Nginx để áp dụng các thay đổi:
    Mã:
     service nginx reload 
    Kiểm tra kết quả
    Sử dụng một proxy từ đất nước mà bạn đang chặn và nếu cấu hình khối của bạn đang làm việc tốt, bạn không thể xem trang web của bạn.
     

Chia sẻ trang này

Đang tải...