Hướng dẫn cách thiết định httpd.conf năm 2024
Chắc hẳn ai học lập trình web đều rất quen thuộc với server web Apache, nó là một máy chủ web rất phổ biến để lưu trữ các trang web của bạn trên web. Dưới đây là một số mẹo có thể giúp bạn config server Apache trên Linux để bảo mật hơn. Show
Ở đây trong hướng dẫn này, tôi sẽ trình bày một số mẹo chính để bảo mật máy chủ web của bạn. Trước khi áp dụng những thay đổi này trong máy chủ web của mình, bạn nên có một số thông tin cơ bản về máy chủ Apache.
1. Cách ẩn phiên bản Apache và thông tin hệ điều hành khỏi màn hình lỗiKhi cài đặt Apache bằng apt hoặc yum, nó sẽ hiển thị phiên bản của máy chủ web Apache được cài đặt trên server của bạn với tên hệ điều hành của máy chủ của bạn trong trang lỗi 404. Nó cũng hiển thị thông tin về các module Apache đã được cài đặt trong server của bạn. Trong ảnh trên, bạn có thể thấy rằng Apache đang hiển thị phiên bản của nó với hệ điều hành của server. Đây có thể là một mối đe dọa bảo mật lớn đối với server web cũng VPS Linux của bạn. Để ngăn Apache không hiển thị những thông tin này với mọi người, chúng ta cần thực hiện một số thay đổi trong file cấu hình chính của Apache. Mở file cấu hình bằng vim và tìm kiếm “ServerSignature”, theo mặc định là On. Chúng ta cần để Of và dòng thứ hai “ServerTokens Prod” cho Apache chỉ trả lại Apache ở production trong header response của server trên mọi request, Nó sẽ không hiển thị thông tin về hệ điều hành và phiên bản nữa.
2. Không hiển thị danh sách thư mục ApacheMặc định, Apache sẽ liệt kê tất cả folder và file của root folder nếu không có file index. Chúng ta có thể ẩn danh sách thư mục bằng cách sử dụng options indexes trong file
9 hoặc
0 cho 1 thư mục cụ thể như bên dưới:
3. Update ApacheCộng đồng phát triển Apache vẫn đang tiếp tục giải quyết các vấn đề bảo mật và release các phiên bản cập nhật với các option bảo mật mới. Vậy nên, bản mới nhất sẽ luôn được khuyến khích sử dụng. Để kiểm tra phiên bản Apache hiện tại, bạn có thể kiểm tra phiên bản hiện tại của mình bằng lệnh:
Bạn có thể cập nhật phiên bản của mình bằng lệnh sau.
Khi update các phiên bản mới bạn cũng nên kiểm tra độ tương thích với hệ điều hành hiện tại đang sử dụng nhé! 4. Tắt các module không cần thiếtViệc tắt các module không cần thiết vẫn luôn được coi là 1 trong những hành động bảo mật cần thiết để tránh khỏi các rủi ro bị tấn công web. Vì vậy, bạn nên tắt tất cả những module hiện không được sử dụng. Trước tiên, hãy liệt kê các module đã được cài đặt trên server bằng lênh sau:
Trên đây là danh sách các module đã được bật mặc định nhưng thường không cần thiết:
1,
2,
3,
4,
5. Để tắt module cụ thể, bạn có thể chèn “#” vào đầu dòng đó và restart lại apache. 5. Chạy Apache với User và Group riêngVới các cài đặt mặc định của Apache chạy quy trình của nó mà không cần user hoặc daemon. Vì lý do bảo mật, bạn nên chạy Apache trong tài khoản riêng. Ví dụ:
6. Tạo user và group Apache
Bây giờ bạn cần sửa config để Apache chạy với user mới này. Mở
2 tìm kiếm từ khóa “User” và “Group” và nhập tên user mà ình đã tạo và group để sử dụng.
6. Sử dụng Allow và Deny để hạn chế quyền truy cập vào folderApache có config để hạn chế quyền truy cập vào các thư mục với các tùy chọn “Allow” và “Deny” trong file httpd.conf. Bằng cách setting config như thế này:
7. Sử dụng các module mod_security và mod_evasive để bảo mật ApacheHai module “mod_security” và “mod_evasive” là những module rất phổ biến của Apache về mặt bảo mật. 7.1 Mod_security
8 hoạt động như một bức tường lửa cho các web application và cho phép admin theo dõi lưu lượng truy cập theo thời gian thực. Nó cũng giúp admin bảo vệ các trang web hoặc server web khỏi các cuộc tấn công. Bạn có thể chỉ cần cài đặt mod_security trên máy chủ của mình với sự trợ giúp của apt hoặc yum. Cài đặt
8 trên Ubuntu/Debian
0 Cài đặt
8 trên RHEL / CentOS / Fedora /
1 7.2 Mod_evasive
1 hoạt động rất hiệu quả, cần một request để xử lý và xử lý nó rất tốt. Nó ngăn chặn các cuộc tấn công DDOS gây ra nhiều thiệt hại. Tính năng này của mod_evasive cho phép nó xử lý HTTP và cuộc tấn công Dos hoặc DDos. Module này phát hiện các cuộc tấn công bằng ba phương pháp.
Nếu các bạn quan tâm, hãy đọc bài viết này Protect Apache using Mod_Security and Mod_evasive. 8. Vô hiệu hóa các following của Symbolic LinksMặc định Apache tuân theo các Symbolic Links, chúng ta có thể tắt tính năng này bằng tùy chọn FollowSymLinks. Và để làm như vậy, chúng ta cần thực hiện cấu hình như sau trong file httpd.conf.
2 Nếu bất kỳ user hoặc trang web cụ thể nào cần bật FollowSymLinks, admin chỉ cần viết rule trong file “.htaccess ” từ trang web đó.
3 Lưu ý: Để cấu hình này thực thi được trong file “ .htaccess ”, Cần phải config “AllowOverride All" trong file cấu hình httpd.conf chính trên global. 9. Tắt Server Side Includes và CGI ExecutionBạn có thể tắt Server Side Includes ( mod_include ) và CGI Execution nếu không cần thiết bằng cách sửa cấu hình như sau:
4 Bạn cũng có thể sửa nó cho một thư mục cụ thể với tag Directory. Trong ví dụ này, mình đang tắtServer Side Includes và CGI Execution cho “/var/www/html/web1”.
5 Dưới đây là một số giá trị khác có thể được Bật hoặc tắt bằng chỉ thị Tùy chọn.
10. Limit Request SizeTheo mặc định, Apache không có giới hạn về tổng kích thước của yêu cầu HTTP, tức là không giới hạn và khi bạn cho phép các yêu cầu lớn trên máy chủ web, nên bạn rất dễ bị tấn công từ chối dịch vụ. Bạn có thể giới hạn request size của Apache bằng “LimitRequestBody” trong tag Directory. Bạn có thể đặt giá trị theo byte từ 0 (không giới hạn) đến 2147483647 (2GB) được phép trong phần body request và có thể đặt giới hạn này theo nhu cầu trang web của mình, Giả sử bạn có một trang web mà bạn cho phép tải lên và bạn muốn giới hạn size upload cho một thư mục cụ thể. VD:
6 Thư mục
5 là một thư mục chứa các file do người dùng upload. Và mình đang đặt giới hạn 500KB cho nó. 11. Tránh các cuộc tấn công DDOS và HardeningChắc chắn sẽ không thể bảo vệ hoàn toàn trang web khỏi các cuộc tấn công DDos. Nhưng 1 số tips dưới đây có thể giúp bạn kiểm soát được phần nào:
12. Bật tính năng ghi log ApacheApache cho phép bạn ghi log độc lập với ghi log hệ điều hành của bạn. Bạn nên bật tính năng ghi log Apache vì nó cung cấp nhiều thông tin hơn, chẳng hạn như các lệnh được nhập bởi người dùng đã tương tác với máy chủ Web của bạn. Để làm như vậy, bạn cần bao gồm module
6. Có ba Options liên quan đến ghi log có sẵn với Apache.
7 13. Bảo mật Apache bằng SSL CertificatesBạn có thể mua SSL Certificates từ rất nhiều nhà cung cấp SSL khác nhau như namecheap.com. Nếu bạn đang có một web rất nhỏ và không muốn mua SSL Certificates, bạn vẫn có thể cài chứng chỉ tự ký cho trang web của mình. Apache sử dụng mô-đun mod_ssl để hỗ trợ SSL Certificates.
8 Khi Certificates của bạn đã được tạo và ký, hãy thêm nó vào cấu hình apache như sau:
9 Sau đó restart lại apache của bạn và mở trình duyệt, nhập
7 và bạn sẽ thấy web đã có https. KếtĐây là một vài tips bảo mật mà bạn có thể sử dụng để bảo mật server web Apache của mình. Để biết thêm các mẹo và ý tưởng bảo mật hữu ích, hãy xem tài liệu trực tuyến chính thức của Apache HTTP Server nhé. |