10 biện pháp bảo mật Apache

Tác giả admin+, T.Ba 13, 2011, 01:55:42 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

10 biện pháp bảo mật Apache


1 . Cập nhật liên tục

Việc Apache chạy trên hệ điều hành Linux không có nghĩa là bạn không cần cập nhật. Những lỗ hổng mới và những nguy cơ bảo mật luôn thường trực. Bạn nên thường xuyên cập nhật để vá những lỗ hổng và sửa những lỗi bảo mật đó.

Nếu đã cài đặt Apache cùng với trình quản lý gói của bản phân phối, bạn có thể thực hiện cập nhật rất dễ dàng. Và nếu cài đặt từ nguồn, cần đảm bảo rằng quá trình cập nhật sẽ không làm thay đổi module hay những thành phần phụ của website. Ngoài ra nếu sử dụng PHP thì trong quá trình cập nhật Apache bạn phải đồng thời cập nhật cả hai.


2. Vận hành Apache theo từng đối tượng

Apache thường được cài đặt cho nhiều nhóm hay nhiều người dùng. Một trong những người hay mắc lỗi nhất là root user (có quyền như admin) mà hậu quả là tạo ra một số lỗi rất nghiêm trọng. Hay nói theo cách khác cả Apache và MySQL đều do cùng một đối tượng người dùng hay nhóm người dùng vận hành. Nếu một người gây ra lỗ hổng, thì người khác có thể phải hứng chịu hậu quả. Biện pháp tốt nhất để tránh tình trạng này đó là đảm bảo Apache được vận hành như một Apache dành cho một người dùng hay một nhóm nhất định. Để thực hiện điều này, bạn chỉ cần mở file httpsd.conf và kiểm tra những dòng có dạng:

User Group

Sau đó thay đổi các mục này thành:

User apache Group apache

Nếu gặp lỗi xảy ra trong khi thay đổi có nghĩa là nhóm hay người dùng khai báo không tồn tại và bạn cần phải tạo mới.

3. Tắt bỏ những dịch vụ không cần thiết

Có một vài dịch vụ hay tính năng bạn sẽ muốn tắt bỏ hoặc chặn. Tất cả những dịch vụ này có thể được hủy bỏ trong file httpsd.conf. Những dịch vụ/tính năng này có thể gây ra một số lỗi sau:

* Directory browsing: Dịch vụ này được hủy bỏ trong một thẻ Directory (thường được khởi chạy trong gốc tài liệu) bằng cách sử dụng Options Directive và cài đặt nó với "-Indexing".

* Server side Includes: Đây là một công cụ khác có thể hủy bỏ trong thẻ Directory bằng cách sử dụng Options Directive và cài đặt nó với "-Includes".

* CGI execution: Nếu website không sử dụng đến CGI, bạn nên tắt bỏ dịch vụ này bằng cách sử dụng Options Directive và cài đặt nó với "-ExecCGI" trong tag thư mục.

* Symbolic links: Cài đặt công cụ này trong một thẻ Directory với "-FollowSymLinks".

* None: Bạn có thể tắt bỏ mọi tùy chọn (theo những cách trên) bằng cách sử dụng "None" với Option Directive.

4. Hủy bỏ những module không sử dụng

Apache gồm có rất nhiều module. Để xem có bao nhiêu module đang chạy, dùng lệnh grep –n LoadModule httpsd.conf từ trong thư mục cấu hình Apache. Lệnh này sẽ hiển thị cho bạn mọi module mà Apache đang tải cùng với vị trí dòng của những module này. Để hủy bỏ những module không cần thiết, bạn chỉ cần bổ sung kí tự "#" vào đầu dòng của module cần tắt bỏ.

5. Giới hạn truy cập

Giả sử bạn có một mạng intranet chứa nhiều thông tin quan trong của công ty và bạn không muốn cho người ngoài mạng riêng của mình truy cập vào nhóm thông tin này. Để làm được điều đó, bạn chỉ cần giới hạn truy cập vào mạng nội bộ của bạn bằng cách bổ sung đoạn mã dưới đây vào file httpsd.conf trong thẻ Directory của bạn:

Order Deny, Allow Deny from all Allow from 192.168.1.0/16

Trong đó 192.168.1.0/16 là địa chỉ mạng nội bộ của bạn. Sau khi thực hiện thay đổi trong file httpsd.conf, bạn cần khởi động lại Apache để áp dụng các thay đổi này.

6. Hạn chế yêu cầu

Tấn công từ chối duchj vụ (DoS) luôn có thể xay ra khi bạn cho phép khối lượng yêu cầu lớn trên Apache. Apache có một lệnh điều hướng là LimitRequestBody được đặt trong thẻ thư mục. Số lượng giới hạn phụ thuộc vào nhu cầu của website. Theo mặc định thì LimitRequestBody được đặt giá trị vô hạn.

7. Sử dụng module mod_security

Một trong những module quan trọng nhất của Apache là mod_security. Module này xử lý nhiều tác vụ, gồm lọc, lọc biểu thức thông thường, mã hóa URL và ẩn địa chỉ server. Việc cài đặt mod_security cũng khá phức tạp. Trước tiên bạn phải bổ sung hai lệnh điều hướng unique_id và security2 vào vùng module của Apache. Sau đó chạy lệnh:

service apache2 configtest

Khi nhận được thông báo Syntax OK là bạn đã cài đặt thành công.

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

Việc cho phép duyệt bên ngoài tài liệu gốc có thể gây ra nhiều vấn đề. Nếu không cần thiết phải bật dịch vụ này, tốt nhất bạn nên tắt bỏ nó. Trước tiên, bạn sẽ phải hiệu thẻ Directory của thư mục gốc như sau:

<Directory />

Order Deny, Allow Deny from all Options None AllowOverride None

</Directory>

Sau đó, nếu cần bổ sung tùy chọn cho bất kì thư mục nào trong tài liệu gốc, bạn sẽ phải bổ sung một thẻ Directory mới cho mỗi thư mục.

9. Ẩn số phiên bản của Apache

Một trong những biện pháp phòng ngừa tốt nhất đó là giấu những thông tin về dịch vụ của bạn đến mức có thể. Một trong những thông tin cần ẩn đi đó là số phiên bản của Apache. Làm như vậy bạn sẽ ngăn những người dùng không mong muốn có thể xâm nhập một cách nhanh chóng vào máy chủ web của bạn. Bạn chỉ cần bổ sung đoạn mã sau vào trong thẻ Directory của tài liệu gốc:

ServerSignature Off ServerTokens Prod

10. Ẩn file cấu hình httpsd.conf

Một trong những biên pháp bảo mật tốt nhất đó là làm ẩn đi file httpsd.conf. Bởi vì file này chứa nhiều thông tin cấu hình cũng như những cài đặt. Nếu mọi người không thấy nó, nghĩa là họ không thể thay đổi nội dung bên trong, và tất nhiên những cài đặt của bạn vẫn được giữ nguyên. Để ẩn đi file httpsd.conf bạn chỉ cần sử dụng lệnh sau:

chattr +i /path/to/httpsd.conf

Trong đó /path/to/httpsd.conf là đường dẫn tới file cấu hình Apache.