CẤU HÌNH Cài đặt Nginx với ModSecurity trên CentOS 6

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

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    Trong bài viết này, tôi sẽ hướng dẫn làm thể nào để cài đặt LEMP được bảo vệ bằng modSecurity. ModSecurity là một mã nguồn mở ứng dụng web tường lửa rất hữu ích để bảo vệ chống lại injects, các cuộc tấn công PHP, và nhiều hơn nữa. Nếu bạn muốn thiết lập Nginx với ModSecurity, tiếp tục đọc.

    Tất cả các bước trong bài viết này đòi hỏi quyền root.
    Bước 1: Cài đặt các điều kiện tiên quyết
    Nếu bạn không phải đang chạy như là người dùng root, sử dung câu lệnh sau để chuyển sang root:
    Mã:
    /bin/su
    Tôi cần một trình biên dịch, vì vậy thực hiện những điều sau đây để đảm bảo:
    Mã:
    yum install -y gcc gcc-c++ pcre-devel zlib-devel openssl openssl-devel httpd-devel libxml2-devel xz-devel python-devel libcurl-devel
    yum groupinstall -y 'Development Tools'
    
    Để cài đặt Nginx, tôi tiến hành tải về:
    Mã:
    cd /usr/src && wget http://nginx.org/download/nginx-1.9.9.tar.gz
    Tôi tiến hành tải về mã nguồn của gói php:
    Mã:
    wget http://us2.php.net/distributions/php-5.6.16.tar.bz2
    Tiến theo, tôi tiến hành tải về modsecurity:
    Mã:
    wget https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz
    Bây giờ, untar/unzip các tập tin.
    Mã:
    tar xvf nginx-1.9.9.tar.gz
    tar xvf php-5.6.16.tar.bz2
    tar xvf modsecurity-2.9.0.tar.gz
    
    Sau đó, tôi sẽ cài đặt ModSecurity.
    Mã:
    cd /usr/src/modsecurity-2.9.0 && ./configure --enable-standalone-module --disable-mlogc
    make && make install
    
    Bây giờ tôi đã có được tất cả các điều kiện tiên quyết, sau đây tôi sẽ tiến hành cài đặt Nginx. Các thiết lập các lệnh sau đây là dành cho cài đặt Nginx và ModSecurity.
    Mã:
    cd /usr/src/nginx-1.9.9 && ./configure --add-module=../modsecurity-2.9.0/nginx/modsecurity/
    make && make install
    ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx
    
    Bây giờ, tôi sẽ cài đặt máy chủ MySQL bằng cách câu lệnh sau:
    Mã:
    yum install -y mysql-server
    service mysqld start
    mysql_secure_installation
    
    Đối với lệnh mysql_secure_installation:
    1. Ấn phím enter ở bước đầu tiên của cài đặt wizard.
    2. Nhập phím Y khi được nhắc nhở nếu một mật khẩu MySQL root nên được thiết lập.
    3. Nhập mật khẩu mới, xác nhận bằng cách nhập nó một lần nữa.
    4. Nhập phím Y để loại bỏ người dùng ẩn danh, không cho phép truy cập root từ xa với MySQL bằng cách nhập phím Y một lần nữa.
    5. Nhập phím Y một lần cuối cùng để loại bỏ các kiểm tra cơ sở dữ liệu/người dùng.
    6. Cuối cùng, nhập Y để lưu thay đổi của bạn.
    Một điều cuối cùng để cài đặt, và đó là PHP. Trong bài viết này, tôi sẽ cài đặt PHP từ nguồn.
    Đi tới thư mục nguồn của PHP bằng lệnh:
    Mã:
    cd /usr/src/php-5.6.16
    Bây giờ, cấu hình PHP. Các đối số sau trong lệnh ./configure là như vậy bạn có thể chạy các ứng dụng như WordPress.
    Mã:
    ./configure --with-pear=/usr/lib/pear --enable-libxml --with-pdo-mysql --with-mysqli --with-mysql --enable-mbstring --with-curl
    make
    make install
    
    Cài đặt PHP-FPM cho nginx:
    Mã:
    yum install -y php-fpm
    Tôi cần phải cài đặt PHP-FPM trên PHP vì nginx tự nó không tích hợp trực tiếp với PHP. Thay vào đó, nginx truyền qua xử lý PHP đến PHP-FPM để thực hiện kịch bản của chúng tôi.
    Làm tốt lắm! Bạn đã cài đặt các điều kiện tiên quyết.

    Bước 2: Cấu hình ModSecurity/NGINX
    Hãy bắt đầu bằng việc xây dựng một bộ quy tắc ModSecurity. ModSecurity không có gì cho đến khi bạn cấu hình nó.
    Lấy các quy tắc thiết lập OWASP từ trang web của họ:
    Mã:
    cd /usr/src && wget wget https://github.com/SpiderLabs/owasp-modsecurity-crs/tarball/master
    tar xvf master
    
    Sau khi bạn đã tải về các bộ quy tắc, tôi sẽ kết hợp các cấu hình mặc định với các quy tắc cơ bản.
    Mã:
    cd SpiderLabs-owasp-modsecurity-crs-60c8bc9
    cp /usr/src/modsecurity-2.9.0/modsecurity.conf-recommended /usr/local/nginx/conf/modsecurity.conf
    cp /usr/src/modsecurity-2.9.0/unicode.mapping /usr/local/nginx/conf/
    cat base_rules/*.conf >> /usr/local/nginx/conf/modsecurity.conf
    cp base_rules/*.data /usr/local/nginx/conf
    
    Về lý thuyết, điều này sẽ bảo vệ chống lại hầu hết khai thác web. Tuy nhiên, các plugins/code bạn cài đặt cũng cần được kiểm tra, bởi vì trong khi ModSecurity là một biện pháp an ninh tuyệt vời, nó không phải là hoàn hảo.
    Tạo một thư mục tại thư mục /var/www:
    Mã:
    mkdir /var/www
    Và một thư mục cho máy chủ ảo của bạn:
    Mã:
    mkdir /var/www/yourwebsite.com
    Cuối cùng, thêm những cú pháp sau đây để cấu hình nginx của bạn nằm ở /usr/local/nginx/conf/nginx.conf. Hãy chắc chắn rằng bạn thêm cấu hình này trước khi sự xuất hiện của biểu tượng cuối cùng }.
    Mã:
    server {
    listen 80;
    root /var/www/yourwebsite.com;
    index index.php index.html index.htm;
    server_name yourwebsite.com www.yourwebsite.com;
    location / {
    [B]ModSecurityEnabled on;
    ModSecurityConfig /usr/local/nginx/modsecurity.conf;[/B]
    }
    }
    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass unix:/var/run/php-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    }
    }
    
    Bước 3: Khởi động PHP-FPM và NGINX
    Bước này là khá đơn giản - điều bạn phải làm là thực hiện các lệnh sau đây.
    Mã:
    service php-fpm start
    /usr/sbin/nginx
    
    Xin chúc mừng! Bạn đã thiết lập trang web đầu tiên của bạn với Nginx được bảo vệ bởi ModSecurity. Để đọc thêm về ModSecurity, hãy truy cập trang web chính thức của họ.
     
    #1 quyet1990, 25/10/16
    Sửa lần cuối: 25/10/16

Chia sẻ trang này

Đang tải...