Bài viết này là một phần của loạt hướng dẫn máy chủ Apache:

  • Bảo mật Apache trên Ubuntu - Phần 1
  • Bảo mật Apache trên Ubuntu - Phần 2
  • Tối ưu hóa hiệu suất Apache - Phần 1
  • Tối ưu hóa hiệu suất Apache - Phần 2
  • Thiết lập Virtualhost dựa trên tên Apache
  • Thiết lập IP và Virtualhost dựa trên cổng trong Apache
  • Làm thế nào để thiết lập mật khẩu bảo vệ thư mục Web trong Apache
  • Thiết lập máy chủ Apache với hỗ trợ SSL trên Ubuntu
  • Thiết lập Fail2ban để bảo vệ Apache khỏi tấn công DDOS
  • Làm thế nào để thiết lập Webdav với Apache trên Ubuntu
  • Giám sát máy chủ web Apache bằng Mod_status
  • Làm thế nào để bảo vệ chống lại DDoS với Mod_evasive trên máy chủ Apache

Apache là một trong những máy chủ web được sử dụng rộng rãi và phổ biến nhất trên thế giới, và nó chiếm gần 40% tổng số máy chủ trên thế giới. Nếu bạn là quản trị viên web hoặc quản trị viên đang duy trì máy chủ Apache, điều quan trọng là bạn phải biết cách bảo mật Apache và ngăn không cho nó bị tấn công. Trong bài viết này, chúng tôi sẽ mô tả một số mẹo và thủ thuật mà bạn có thể sử dụng để bảo vệ máy chủ Apache của mình.

Lưu ý : chúng tôi đang sử dụng Ubuntu 14.04 cho hướng dẫn này.

Cài đặt và cập nhật Apache

Trước tiên, bạn cần phải cập nhật và cài đặt Apache vào hệ thống của bạn.

Đối với điều này, hãy chạy lệnh sau:

 sudo apt-get cập nhật sudo apt-get cài đặt apache2 

Ẩn phiên bản Apache

Theo mặc định, Apache hiển thị phiên bản của máy chủ web Apache của bạn được cài đặt trên hệ thống của bạn với tên của hệ điều hành máy chủ của bạn.

Trong ảnh chụp màn hình ở trên, bạn có thể thấy phiên bản Apache và hệ điều hành được cài đặt trong máy chủ của bạn. Đây có thể là vấn đề bảo mật lớn cho máy chủ web của bạn. Để ẩn thông tin này, bạn cần chỉnh sửa tập tin cấu hình chính của Apache (“/etc/apache2/conf-enabled/security.conf”).

 sudo nano /etc/apache2/conf-enabled/security.conf 

Thêm / chỉnh sửa dòng sau:

 ServerSignature Tắt ServerTokens Prod 

Lưu tệp và khởi động lại dịch vụ apache.

 sudo /etc/init.d/apache2 khởi động lại 

Tắt duyệt thư mục và tắt liên kết tượng trưng

Theo danh sách thư mục mặc định được kích hoạt trong máy chủ Apache. Danh sách thư mục hiển thị tất cả thư mục với tất cả các tệp từ máy chủ Apache. Nếu điều này được kích hoạt, kẻ tấn công có thể dễ dàng xem bất kỳ tập tin nào, phân tích nó và thu thập thông tin nhạy cảm về một ứng dụng.

Bạn có thể xem danh sách thư mục mặc định trong hình bên dưới.

Bạn có thể tắt cài đặt này bằng cách chỉnh sửa tệp cấu hình Apache.

 sudo nano /etc/apache2/apache2.conf 

Thêm / chỉnh sửa dòng sau:

 Tùy chọn -FollowSymLinks AllowOverride None Yêu cầu tất cả các cấp 

Lưu ý : mã trên giả định rằng các trang web của bạn được phục vụ từ thư mục "/ var / www / html". Nếu bạn đã thay đổi thư mục công cộng thành một vị trí tùy chỉnh, hãy thay đổi đường dẫn Directory trong mã ở trên.

Options -FollowSymLinks dòng Options -FollowSymLinks cũng vô hiệu hóa các liên kết tượng trưng. Nếu bạn muốn bật liên kết tượng trưng, ​​hãy xóa dấu “-” phía trước FollowSymLinks, vì vậy nó sẽ trở thành Options FollowSymLinks.

Lưu tệp và khởi động lại máy chủ Apache.

Sau khi thử truy cập Web trong trình duyệt và bạn sẽ gặp lỗi bị cấm hiển thị trong hình dưới đây.

Tắt mô-đun không cần thiết

Theo mặc định, Apache đi kèm với một số mô-đun đã cài đặt không cần thiết cho việc sử dụng bình thường. Bạn nên cắt giảm chất béo và vô hiệu hóa tất cả các mô-đun không cần thiết đó. Bạn có thể liệt kê tất cả các mô-đun đã bật trên máy chủ của mình bằng cách sử dụng lệnh sau:

 sudo ls / etc / apache2 / mods-enabled / 

Điều này sẽ hiển thị đầu ra như thể hiện trong hình dưới đây.

Từ các mô-đun được liệt kê ở trên, một số mô-đun như “trạng thái” và “autoindex” được bật nhưng không cần thiết.

Bạn có thể vô hiệu hóa các mô-đun này bằng cách sử dụng lệnh sau:

 sudo a2dismod autoindex sudo a2dismod trạng thái sudo /etc/init.d/apach2 khởi động lại 

Sử dụng ModSecurity

Mod bảo mật là một mô-đun Apache miễn phí được sử dụng để bảo vệ máy chủ web của bạn khỏi các cuộc tấn công khác nhau như SQL injection, cross scripting script, session hijacking, brute force và nhiều khai thác khác. Nó cũng cho phép bạn theo dõi lưu lượng truy cập trên cơ sở thời gian thực.

Bạn có thể cài đặt bảo mật mod bằng cách sử dụng lệnh sau:

 sudo apt-get cài đặt libapache2-modsecurity 

Để kiểm tra xem mô-đun mod_security có đang chạy không, sử dụng lệnh sau:

 sudo apachectl -M | grep - bảo mật màu 

Hình ảnh được hiển thị bên dưới cho biết rằng mô-đun đã được tải.

Để kích hoạt các quy tắc mod_security, bạn cần đổi tên và chỉnh sửa tệp cấu hình được bảo mật mod và đặt tùy chọn SecRuleEngine thành On .

Đối với điều này chạy lệnh sau:

 sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf 

Thêm / chỉnh sửa dòng sau:

 SecRuleEngine On 

Bây giờ khởi động lại Apache để các thay đổi có hiệu lực.

Có rất nhiều quy tắc bảo mật đi kèm với Modesecurity (được gọi là Core Rule Set) nằm trong thư mục “/ usr / share / modsecurity-crs”. Bây giờ bạn cần phải kích hoạt các quy tắc này để làm việc với Apache.

Bạn có thể làm điều này bằng cách chỉnh sửa tập tin “/etc/apache2/mods-enabled/security2.conf”.

 sudo nano /etc/apache2/mods-enabled/security2.conf 

Thêm / chỉnh sửa dòng sau:

 IncludeOptional /etc/modsecurity/*.conf IncludeOptional "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf 

Lưu tệp và khởi động lại Apache.

Tắt Server Side Bao gồm và thực thi CGI.

Chúng tôi khuyên bạn nên tắt tính năng bao gồm phía máy chủ và thực thi CGI nếu không cần thiết.

Để thực hiện điều này, bạn cần chỉnh sửa tệp cấu hình chính của Apache.

 sudo nano /etc/apache2/apache2.conf 

Thêm / chỉnh sửa dòng sau:

 Tùy chọn -FollowSymLinks -Includes -ExecCGI AllowOverride None Yêu cầu tất cả các cấp 

Lưu tệp và khởi động lại Apache.

Bạn cũng có thể làm điều này cho một thư mục cụ thể. Ví dụ: để tắt phía máy chủ bao gồm và thực thi tệp cgi cho thư mục “/ var / www / html / webdir1”, hãy ddd / chỉnh sửa dòng sau:

 Tùy chọn -Bao gồm -ExecCGI 

Lưu tệp và khởi động lại Apache.

Giới hạn các yêu cầu lớn

Theo mặc định, Apache không có giới hạn về kích thước của yêu cầu HTTP. Điều này sẽ cho phép kẻ tấn công gửi một lượng lớn dữ liệu. Apache có một số chỉ thị cho phép bạn thiết lập kích thước yêu cầu phù hợp. Điều này sẽ bảo vệ máy chủ web của bạn khỏi tấn công từ chối dịch vụ.

Bạn có thể đặt giá trị từ 0 (không giới hạn) thành 2147483647 (2GB) trong tệp cấu hình chính của Apache.

Ví dụ: giới hạn kích thước yêu cầu của thư mục “/ var / www / html / webdir1” thành 200K.

 sudo nano /etc/apache2/apache2.conf 

Thêm / chỉnh sửa dòng sau:

 LimitRequestBody 204800 

Lưu tệp và khởi động lại Apache.

Không cho phép duyệt bên ngoài tài liệu gốc

Đó là khuyến cáo cho Apache để có thể truy cập chỉ thư mục gốc của tài liệu. Bạn có thể bảo vệ thư mục gốc (/) bằng cách thiết lập dòng sau:

 sudo nano /etc/apache2/apache2.conf 

Thêm / chỉnh sửa dòng sau:

 Tùy chọn Không từ chối đơn hàng, cho phép Từ chối tất cả 

Đây là những gì các mã hiện:

  • Options None : Thao tác này sẽ tắt tất cả các tùy chọn.
  • Order deny, allow : Thứ tự các lệnh cho phép và từ chối được áp dụng.
  • Deny from all : Điều này sẽ từ chối yêu cầu từ tất cả đến thư mục gốc.

Lưu tệp và khởi động lại Apache.

Giữ cho Apache cập nhật

Các bản cập nhật Apache mới sẽ chứa các bản sửa lỗi và bản vá mới sẽ làm giảm tính dễ bị tổn thương của máy chủ Apache của bạn, vì vậy bạn nên sử dụng phiên bản mới nhất của máy chủ Apache.

Bạn có thể cập nhật Apache của mình lên phiên bản mới nhất bằng cách sử dụng lệnh sau:

 sudo apt-get cài đặt apache2 - cài đặt lại 

Phần kết luận

Tôi hy vọng bài viết này sẽ giúp bạn trong việc bảo vệ máy chủ Apache của bạn. Bạn sẽ tìm thấy các mẹo và thủ thuật bảo mật nâng cao hơn để bảo vệ máy chủ Apache trong bài đăng tiếp theo của tôi. Hãy bình luận dưới đây nếu bạn có bất kỳ câu hỏi nào.