Tùy chỉnh Nginx Server Name và Version

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
    Hôm nay, tôi sẽ hướng dẫn bạn làm thế nào để ẩn phiên bản hoặc tùy chỉnh Nginx server name,
    Tại sao là ẩn Nginx Name hoặc phiên bản là rất quan trọng?

    Như đã đề cập trước đó, điều này là không thực sự là một giải pháp an ninh tốt bởi vì chúng ta chỉ che giấu thông tin từ các header. Tuy nhiên, nó vẫn là quan trọng để ngăn chặn các cuộc tấn công khai thác lỗ hổng đặc biệt đối với các phiên bản Nginx cũ.

    Làm thế nào bạn có thể thiết lập một tên tuỳ chỉnh cho máy chủ Nginx của bạn?
    Điều này chỉ có thể được thực hiện bằng cách thay đổi mã nguồn của Nginx.

    Kiểm tra phiên bản Nginx hiện tại dùng lệnh sau:
    Mã:
     curl -I http://www.yoursite.com/ 
    Mã:
    [my@shell ~]$ curl -I http://www.yoursite.com/
    HTTP/1.1 200 OK
    Server: nginx/1.8.0
    Vary: Accept-Encoding,Cookie
    X-Cacheable: SHORT
    Cache-Control: max-age=600, must-revalidate
    X-Cache: HIT: 114
    Content-Type: text/html; charset=UTF-8
    X-Cache-Group: normal
    Date: Thu, 30 Jul 2015 14:50:29 GMT
    X-Pingback: http://www.yoursite.com/xmlrpc.php
    Keep-Alive: timeout=20
    X-Type: default
    Transfer-Encoding: chunked
    Connection: Keep-Alive
    
    Bạn có thể nhận được các chi tiết của server name và phiên bản với một lệnh đơn giản curl.
    Bây giờ, chúng ta tiến hành ẩn và đổi tên máy chủ của bạn đến một cái gì đó khác.

    Tải mã nguồn Nginx:

    Mã:
    wget http://nginx.org/download/nginx-1.8.0.tar.gz --> Tải mã nguồn về
    tar -xvpzf nginx-1.8.0.tar.gz -> Giải nén tập tin mới tải về
    cd nginx-* -->Điều hướng dến thư mục giải nén
    
    Chỉnh sửa tập tin này tại dòng # 49: src/http/ngx_http_header_filter_module.c
    Mã:
     nano -w +49 src/http/ngx_http_header_filter_module.c 
    Tìm những dòng này:
    Mã:
    static char ngx_http_server_string[] = "Server: nginx" CRLF;
    static char ngx_http_server_full_string[] = "Server:" NGINX_VER CRLF;
    
    Sửa đổi để phù hợp với những dòng sau:
    Mã:
    static char ngx_http_server_string[] = "Server: YourCustomName" CRLF;
    static char ngx_http_server_full_string[] = "Server: YourCustomName" CRLF;
    
    Sửa đổi "YourCustomName" theo ý của bạn. Bạn có thể đặt bất cứ điều gì đó. Nó có thể là tên của trang web của bạn, sản phẩm, công ty, vv

    Biên dịch lại Nginx từ mã nguồn
    Sử dụng đoạn lệnh sau:
    Mã:
    ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-http_spdy_module --with-cc-opt='-O2 -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic'
    
    Mã:
    make
    make install
    
    Khởi động lại Nginx:
    Mã:
     service nginx restart 
    Bây giờ, sử dụng lệnh curl thêm một lần nữa
    Mã:
    [my@shell ~]$ curl -I http://www.yoursite.com/
    HTTP/1.1 200 OK
    Server: MyServernginx/1.8.0
    Vary: Accept-Encoding,Cookie
    X-Cacheable: SHORT
    Cache-Control: max-age=600, must-revalidate
    X-Cache: HIT: 114
    Content-Type: text/html; charset=UTF-8
    X-Cache-Group: normal
    Date: Thu, 30 Jul 2015 14:50:29 GMT
    X-Pingback: http://www.yoursite.com/xmlrpc.php
    Keep-Alive: timeout=20
    X-Type: default
    Transfer-Encoding: chunked
    Connection: Keep-Alive
    
    Bây giờ, bạn sẽ thấy Server: MyServernginx / 1.8.0. Tuy nhiên, nó vẫn sẽ hiển thị các phiên bản Nginx. Nếu bạn cũng muốn giấu phiên bản Nginx của bạn, chỉ cần thêm dòng này trong khối http của bạn:
    Mã:
     nano -w /etc/nginx/nginx.conf 
    Sau đó thiết lập:
    Mã:
    http {
    ...
    server_tokens off;
    ....
    }
    
    Khởi động lại Nginx để áp dụng thay đổi:
    Mã:
     service nginx restart 
     
Tags:

Chia sẻ trang này

Đang tải...