Hướng dẫn cấu hình bảo mật cho server web chạy Nginx

Đăng bởi vanthoi, 6/10/17, trong VPS & Dedicated Server. Trả lời: 0 Lượt xem: 577.

  1. vanthoi

    vanthoi Administrator
    Quản Trị Viên
    • 163/202

    Tham gia:
    1/9/12
    Bài viết:
    2,717
    Được thích:
    14,012
    Thành tích:
    163
    Giới tính:
    Nam
    Nghề nghiệp:
    Lập trình viên
    Đến từ:
    Bình Phục, Quảng Nam
    #1 vanthoi, 6/10/17 Lượt xem: 577
    Cấu hình bảo mật cho server nginx luôn là một câu hỏi khó đối với rất nhiều người. Vì vậy nay admin mạng phép chia sẻ cho các bạn những kiến thức mà ad có được. Để mọi người dễ dàng cấu hình hơn ad xin hướng dẫn như sau:

    nginx-security-guide.

    Trong tập tin config cho từng tên miền, các bạn thêm các đoạn bảo mật bên dưới vào giữa thẻ server { chèn vào đây }
    Chú ý các dấu mở và đóng ngoặc để tránh phát sinh lỗi. Sau khi cấu hình chỉ cần chạy service nginx reload là xong.
    Chúc các bạn một ngày làm việc vui vẻ!


    Mã:
    server {
    [...]
    
       ## Block SQL injections
       set $block_sql_injections 0;
       if ($query_string ~ "union.*select.*\(") {
           set $block_sql_injections 1;
       }
       if ($query_string ~ "union.*all.*select.*") {
           set $block_sql_injections 1;
       }
       if ($query_string ~ "concat.*\(") {
           set $block_sql_injections 1;
       }
       if ($block_sql_injections = 1) {
           return 403;
       }
    
       ## Block file injections
       set $block_file_injections 0;
       if ($query_string ~ "[a-zA-Z0-9_]=http://") {
           set $block_file_injections 1;
       }
       if ($query_string ~ "[a-zA-Z0-9_]=(\.\.//?)+") {
           set $block_file_injections 1;
       }
       if ($query_string ~ "[a-zA-Z0-9_]=/([a-z0-9_.]//?)+") {
           set $block_file_injections 1;
       }
       if ($block_file_injections = 1) {
           return 403;
       }
    
       ## Block common exploits
       set $block_common_exploits 0;
       if ($query_string ~ "(<|%3C).*script.*(>|%3E)") {
           set $block_common_exploits 1;
       }
       if ($query_string ~ "GLOBALS(=|\[|\%[0-9A-Z]{0,2})") {
           set $block_common_exploits 1;
       }
       if ($query_string ~ "_REQUEST(=|\[|\%[0-9A-Z]{0,2})") {
           set $block_common_exploits 1;
       }
       if ($query_string ~ "proc/self/environ") {
           set $block_common_exploits 1;
       }
       if ($query_string ~ "mosConfig_[a-zA-Z_]{1,21}(=|\%3D)") {
           set $block_common_exploits 1;
       }
       if ($query_string ~ "base64_(en|de)code\(.*\)") {
           set $block_common_exploits 1;
       }
       if ($block_common_exploits = 1) {
           return 403;
       }
    
       ## Block spam
       set $block_spam 0;
       if ($query_string ~ "\b(ultram|unicauca|valium|viagra|vicodin|xanax|ypxaieo)\b") {
           set $block_spam 1;
       }
       if ($query_string ~ "\b(erections|hoodia|huronriveracres|impotence|levitra|libido)\b") {
           set $block_spam 1;
       }
       if ($query_string ~ "\b(ambien|blue\spill|cialis|cocaine|ejaculation|erectile)\b") {
           set $block_spam 1;
       }
       if ($query_string ~ "\b(lipitor|phentermin|pro[sz]ac|sandyauer|tramadol|troyhamby)\b") {
           set $block_spam 1;
       }
       if ($block_spam = 1) {
           return 403;
       }
    
       ## Block user agents
       set $block_user_agents 0;
    
       # Don't disable wget if you need it to run cron jobs!
       #if ($http_user_agent ~ "Wget") {
       #    set $block_user_agents 1;
       #}
    
       # Disable Akeeba Remote Control 2.5 and earlier
       if ($http_user_agent ~ "Indy Library") {
           set $block_user_agents 1;
       }
    
       # Common bandwidth hoggers and hacking tools.
       if ($http_user_agent ~ "libwww-perl") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "GetRight") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "GetWeb!") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "Go!Zilla") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "Download Demon") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "Go-Ahead-Got-It") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "TurnitinBot") {
           set $block_user_agents 1;
       }
       if ($http_user_agent ~ "GrabNet") {
           set $block_user_agents 1;
       }
    
       if ($block_user_agents = 1) {
           return 403;
       }
    [...]
    }
     

    Chia sẻ

    Đang tải...
    Đang tải...

Chia sẻ

Loading...
Đang tải...