Bảo mật Apache

Tác giả admin+, T.Ba 18, 2011, 05:58:29 CHIỀU

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

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

Bảo mật Apache

1. Nâng cấp Apache.

Apache chạy trên Linux không có nghĩa là không phải nâng cấp. Những lỗ hổng và những nguy cơ mới được phát hiện thường xuyên. Hãy luôn theo dõi tình hình nâng cấp với những bản vá lỗi mới nhất. Nếu người quản trị cài đặt với file đóng gói, việc nâng cấp sẽ rất dễ dàng. Nếu cài đặt với mã nguồn, hãy kiểm tra chắc chắn rằng quá trình cập nhật sẽ không làm hỏng các modul hay những gì trang web đang phụ thuộc. Và nếu nâng cấp Apache hãy chắc chắn rằng PHP cũng nâng cấp theo để trang web có thể hoạt động được tốt trong môi trường mới.

2. Quản lý các thành viên theo nhóm.

Apache đã thiết lập rất nhiều nhóm và/hoặc thành viên. Tài khoản nguy hiểm nhất chính là tài khoản quản trị (Root). Tài khoản này có thể làm mọi việc trên máy chủ Apache. Hoặc có thể là Apache và MySQL cùng chạy trên một nhóm hoặc tài khoản. Nếu ở một trong hai chương trình có lỗ hổng, hacker có thể tấn công vào cả chương trình kia. Một kịch bản tốt nhất chính là để cho Apache chỉ chạy với tài khoản và nhóm của Apache. Để tạo ra sự thay đổi này, hãy mở file httpd.conf và tìm đến dòng:

Mã nguồn [Chọn]
User
Group


Thay bằng

Mã nguồn [Chọn]
User apache
Group apache


Nếu nhận thấy bất kỳ thông báo nào về nhóm hay thành viên không tồn tại, hãy khởi tạo chúng.

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

Có một vài dịch vụ/tính năng mà người quản trị sẽ muốn tắt/ không cho phép hoạt động. Tất cả các dịch vụ có thể bị ngắt trong file httpd.conf. Một vài lựa chọn để có thể ngắt mà không ảnh hưởng gì:
Directory browsing: Sử dụng Options và thiết lập "-Indexing".

       
  • Server side Includes: Đây là một dịch vụ khác có thể ngắt, sử dụng Options và thiết lập "-Includes".
  • CGI execution: Trừ khi trang web cần một cồng giao tiếp dùng chung, không thì hãy tắt nó đi. Tính năng này có thể ngắt thông qua Options với thiết lập "-ExecCGI".
  • Symbolic links: Hãy thiết lập ở bên trong thư mục với "-FollowSymLinks".
  • None: Người quản trị có thể bỏ đi tất cả các chọn lựa bằng cách sử dụng "None" cùng với Option.

4. Tắt những module không cần thiết.

Apache có hàng "tấn" các module. Để biết được có bao nhiêu module đang hoạt động, hãy sử dụng lệnh (với tài khoản quản trị) grep -n LoadModule httpd.conf. Lệnh này sẽ cho người quản trị thấy tất cả các module của Apache đang hoạt động trên mỗi dòng hiển thị. Hãy ngắt những modul không cần thiết bằng cách đơn giản là thêm ký tự # trước mỗi dòng của module.

5. Hạn chế truy cập.

Khi công ty có mạng nội bộ thì có nghĩa là những thông tin của doanh nghiệp đang gặp nguy hiểm. Người quản trị sẽ muốn từ chối tất cả những người không thuộc công ty truy cập vào mạng và lấy thông tin. Để làm được việc này, người quản trị có thể cấu hình file httpd.conf nhằm hạn chế truy cập của những thư mục nhạy cảm trong mạng bộ theo những dòng lệnh sau.

Mã nguồn [Chọn]
Order Deny, Allow
Deny from all
Allow from 192.168.1.0/16


192.168.1.0/16 là địa IP của các máy trong mạng nội bộ công ty. Với tất cả những thay đổi của file httpd.conf hãy khởi động lại Apache để những thay đổi có hiệu lực.

6. Hạn chế kích thước truy vấn.

Kiểu tấn công từ chối dịch vụ sẽ luôn có tác dụng nếu như trang web chấp nhận những truy vấn có kích thước lớn trong Apache. Apache có hướng dẫn về LimitRequestBody được đặt tại thẻ Directory. Hãy thiết lập giới hạn của câu lệnh truy vấn phù hợp nhất với trang web của mình. Ở chế độ mặc định, LimitRequestBody được thiết lập là không giới hạn.

7. Sử dụng mod_security.

Đây là một điều rất quan trọng. Apache có một modul là mod_security với rất nhiều tính năng như: lọc đơn giản, lọc những truy vấn thường dùng, kiểm soát URL hợp lệ, và dấu địa chỉ IP thật của máy chủ. Việc cài đặt mod_security là tương đối phức tạp. Nhưng người quản trị có thể bắt đầu bằng cách thêm vào Apache hai modul nhỏ là "unique_id" và "security2″. Để thêm hai mục trên, sử dụng lệnh service apache2 configtest. Nếu máy trả lời là Syntax OK thì bạn đã làm việc này rất tốt.

8. Không cho phép duyệt những dữ liệu ngoài thư mục gốc.

Cho phép duyệt những dữ liệu ngoài thư mục gốc là một việc mang lại nhiều rắc rồi. Trừ khi người quản trị có những nhu cầu đặc biệt cần đến sự cho phép làm việc này, ngoài ra thì hãy ngắt tính năng này đi. Đầu tiên, cần phải chính sửa file tài liệu gốc Directory như sau:

Mã nguồn [Chọn]
<Directory />
Order Deny, Allow
Deny from all
Options None
AllowOverride None
</Directory>


Bây giờ, nếu muốn thêm lựa chọn nào cho bất kỳ thư mục trong thư mục gốc , người quản trị phải thêm câu lệnh vào từng thư mục một.

9. Ẩn phiên bản Apache.

Tấn công là cách phòng thủ tốt nhất. Và cách tấn công tốt nhất là có thể che dâu tất cả những thông tin có thể che dấu được. Một thông tin quan trọng cần che dấu chính là phiên bản của Apache. Khi ẩn nó đi, chúng ta có thể hạn chế được phần nào những người có kiến thức bảo mật về phiên bản đó xâm nhập một cách nhanh chóng vào máy chủ Web. Để ẩn phiên bản của Apache, hãy thêm vào file gốc của thư mục những dòng lệnh sau:

Mã nguồn [Chọn]
ServerSignature Off
ServerTokens Prod


10. Ẩn tập tin cấu hình của Apache httpd.conf.

Một cách tốt nhất để bảo mật chính là ẩn tập tin httpd.conf khỏi những con mắt tò mò. Nếu mọi người không thể nhìn thấy file httpd.conf, thì họ không thể thay đổi cấu hình bên trong đó. Vô hiệu hóa httpd.conf bằng cách đưa file đó về chế độ không thể thay đổi theo câu lệnh:

Mã nguồn [Chọn]
chattr +i /path/to/httpd.conf

/path/to/httpd.conf là đường dẫn tới file cấu hình của Apache. Bây giờ, việc thay đổi httpd.conf là một việc vô cùng khó khăn với tất cả mọi người.