DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Một vài bước để tăng cường bảo mật cho máy chủ Nginx
Nginx là 1 máy chủ reverse proxy mã nguồn mở cho các giao thức HTTP, HTTPS, SMTP, POP3 và IMAP, cũng như là 1 máy chủ cân bằng tải (load balancer), HTTP cache và web. Gần đây, máy chủ web Nginx đã chính thức vượt qua thị phần của máy chủ Apache, để trở thành máy chủ phổ biến nhất thế giới.
Trong bài viết này, mình sẽ hướng dẫn các bạn quản trị viên trang web bổ sung thêm một vài cấu hình quan trọng giúp tăng cường bảo mật của máy chủ web nginx.
Trong bài viết này, mình sẽ hướng dẫn các bạn quản trị viên trang web bổ sung thêm một vài cấu hình quan trọng giúp tăng cường bảo mật của máy chủ web nginx.
- Ẩn thông tin phiên bản máy chủ Nginx.
Với thông tin về phiên bản máy chủ Nginx, kẻ tấn công sẽ có được cái nhìn đầu tiên về các lỗ hổng tồn tại trong phiên bản đó.
Mã:sed -i "s/# server_tokens off;/server_tokens off;/g" /etc/nginx/nginx.conf
- Vô hiệu hóa ETags.
ETags là một thành phần của giao thức HTTP cung cấp tính năng liên quan đến bộ nhớ đệm. Tuy nhiên, tiêu đề Etags lại chứa các thông tin nhạy cảm về máy chủ web như số inode của các tệp được yêu cầu.
Mã:sed -i 's/server_tokens off;/server_tokens off;\netag off;/' /etc/nginx/nginx.conf
- Xóa trang mặc định của nginx server.
Thông thường trang mặc định của máy chủ nginx sẽ có chứa thông tin phiên bản ngnix đang chạy cũng như hệ điều hành của máy chủ web. Từ đó, kẻ tấn công sẽ có được cái nhìn đầu tiên về các lỗ hổng tồn tại trong phiên bản đó.
Mã:echo "" > /var/www/html/index.html
- Sử dụng mã hóa mạnh
Với việc sử dụng giao thức https và các thuật toán mã hóa mạnh, sẽ ngăn ngừa các cuộc tấn công MITM.
Mã:sed -i "s/ssl_prefer_server_ciphers on;/ssl_prefer_server_ciphers on;\nssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;/" /etc/nginx/nginx.conf
- Bật HttpOnly và Secure flags
HttpOnly và Secure flasg giúp giảm thiểu rủi ro tập lệnh phía máy khách truy cập vào cookie.
Mã:sed -i "s|^\s*try_files \\\$uri \\\$uri/ =404;|try_files \\\$uri \\\$uri/ =404;\nproxy_cookie_path / \"/; secure; HttpOnly\";|" /etc/nginx/sites-available/default
- Ngăn ngừa tấn công Clickjacking
Mã:sed -i "s|root /var/www/html;|root /var/www/html;\nadd_header X-Frame-Options DENY;|" /etc/nginx/sites-available/default
- Ngăn ngừa tấn công XSS
Mã:sed -i "s|root /var/www/html;|root /var/www/html;\nadd_header X-XSS-Protection \"1; mode=block\";|" /etc/nginx/sites-available/default
- Bắt buộc các kết nối tới máy chủ phải là bảo mật
Mã:sed -i "s|root /var/www/html;|root /var/www/html;\nadd_header Strict-Transport-Security \"max-age=31536000; includeSubdomains;\";|" /etc/nginx/sites-available/default
- Ngăn ngừa MIME sniffing
Mã:sed -i "s|root /var/www/html;|root /var/www/html;\nadd_header X-Content-Type-Options nosniff;|" /etc/nginx/sites-available/default
- Thiết lập ssl session timeout
Là khoảng thời gian lớn nhất có thể giữa hai lần user request lên server mà session của user chưa bị hủy. Bằng cách rút ngắn thời gian khả dụng giữa hai lần request, sẽ tăng cường bảo mật cho phiên làm việc của quản trị viên trang web.
Mã:sed -i "s/ssl_prefer_server_ciphers on;/ssl_prefer_server_ciphers on;\nssl_session_timeout 5m;/" /etc/nginx/nginx.conf
- Thiết lập ssl session cache
Kích thước bộ nhớ cache phiên SSL giới hạn số lượng phiên được lưu trong bộ nhớ cache cho một cấu hình cụ thể. Khi đạt đến giới hạn bộ nhớ cache của cấu hình, mục nhập phiên SSL cũ nhất được liên kết với cấu hình đó sẽ bị loại bỏ khỏi bộ đệm và phiên SSL mới được lưu vào bộ đệm.
Mã:sed -i "s/ssl_session_timeout 5m;/ssl_session_cache shared:SSL:10m;\nssl_session_timeout 5m;/" /etc/nginx/nginx.conf
Chỉnh sửa lần cuối bởi người điều hành: