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.. Để tạo ra sự thay đổi này, hãy mở file httpd.conf và tìm đến dòng: User Group Thay bằng User apache Group apa
Trang 1Tại sao? Đó là do Linux và Apache Điều gì tạo nên sai lầm? Đó là do người quản trị đã không cẩn thận Dưới đây là một số cách để có thể nâng cao tính bảo mật của Apache
1 Nâng cấp: 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:
User
Group
Thay bằng
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
Trang 24 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 Nếu đang chạy server trên window, bạn tìm đến httpd.conf và thêm dấu # ở đầu module muốn tắt
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 Tìm hiểu thêm về htaccess
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:
<Directory />
Order Deny, Allow
Deny from all
Options None
AllowOverride None
</Directory>
Trang 3Bâ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:
ServerSignature Off
ServerTokens Prod
10 Ngắt file httpd.conf: Một cách tốt nhất để bảo mật chính là ẩn file 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:
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