Làm cách nào để xóa Server: tiêu đề khỏi phản hồi HTTP với Apache?


20

Tôi muốn xóa dòng:

Server: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch mod_ssl/2.2.8 OpenSSL/0.9.8g

từ các phản hồi HTTP của máy chủ của tôi, nhưng tôi không thể tìm thấy bất cứ điều gì ngoài việc tự sửa đổi include/ap_release.hvà biên dịch Apache. Tôi đã tự hỏi nếu có một cách tôi không biết về?

Câu trả lời:


16

Bạn có thể xóa hoặc che dấu nhận dạng máy chủ khỏi Tiêu đề http bằng cách sử dụng tường lửa ứng dụng web nguồn mở ModSecurity .

Mặt nạ nhận dạng máy chủ

Một kỹ thuật thường giúp làm chậm và gây nhầm lẫn cho những kẻ tấn công là thay đổi nhận dạng máy chủ web. Các máy chủ web thường gửi danh tính của họ với mỗi phản hồi HTTP trong tiêu đề Máy chủ. Apache đặc biệt hữu ích ở đây, không chỉ gửi tên và phiên bản đầy đủ theo mặc định mà còn cho phép các mô-đun máy chủ nối thêm các phiên bản của chúng.

Để thay đổi danh tính của máy chủ web Apache, bạn sẽ phải truy cập mã nguồn, tìm nơi tên "Apache" được mã hóa cứng, thay đổi nó và biên dịch lại máy chủ. Hiệu quả tương tự có thể đạt được bằng cách sử dụng

Chỉ thị SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Cần lưu ý rằng mặc dù điều này hoạt động khá tốt, những kẻ tấn công (và công cụ) lành nghề có thể sử dụng các kỹ thuật khác để "lấy dấu" máy chủ web. Ví dụ: các tệp mặc định, thông báo lỗi, thứ tự của các tiêu đề gửi đi, cách máy chủ phản hồi các yêu cầu nhất định và tương tự - tất cả đều có thể cung cấp danh tính thực. Tôi sẽ xem xét nâng cao hơn nữa sự hỗ trợ cho việc che dấu danh tính trong các phiên bản mod_security trong tương lai.

Nếu bạn thay đổi chữ ký Apache nhưng bạn cảm thấy khó chịu bởi thông báo lạ trong nhật ký lỗi (một số mô-đun vẫn hiển thị - điều này chỉ ảnh hưởng đến nhật ký lỗi, từ bên ngoài nó vẫn hoạt động như mong đợi):

[Fri Jun 11 04:02:28 2004] [notice] Microsoft-IIS/5.0 mod_ssl/2.8.12 OpenSSL/0.9.6b \ configured -- resuming normal operations

Sau đó, bạn nên sắp xếp lại thứ tự tải mô-đun để cho phép mod_security chạy lần cuối, chính xác như được giải thích cho chroot.

chú thích

Để lệnh này hoạt động, bạn phải để / đặt ServerTokens thành Full.

Khi chỉ thị SecServerSignature được sử dụng để thay đổi chữ ký máy chủ công cộng, ModSecurity sẽ bắt đầu viết chữ ký thực vào nhật ký lỗi, để cho phép bạn xác định máy chủ web và các mô-đun được sử dụng.

Nguồn: Hướng dẫn tham khảo ModSecurity


Nó đang chạy ngay bây giờ nhưng tôi nghĩ sẽ không thông minh khi sử dụng tên máy chủ hiện có khác vì bạn có thể kích hoạt các hành động tấn công.
Codebeat

27

Nếu bạn đặt ServerTokensthành " Prod", bạn có thể giảm tiêu đề thành " Server: Apache". Xem tài liệu cho danh sách đầy đủ các tùy chọn:

Tài liệu cho Apache 2.2

Tài liệu cho Apache 2.4

Lưu ý: Các cài đặt giống nhau ở cả hai phiên bản, tuy nhiên tài liệu 2.4 thêm ghi chú này:

Không nên thiết lập ServerTokens dưới mức tối thiểu vì điều này làm cho việc gỡ lỗi các vấn đề tương tác trở nên khó khăn hơn. Cũng lưu ý rằng việc vô hiệu hóa Máy chủ: tiêu đề hoàn toàn không làm gì để máy chủ của bạn an toàn hơn. Ý tưởng "bảo mật thông qua che khuất" là một huyền thoại và dẫn đến một cảm giác an toàn sai lầm.

Nếu bạn muốn xóa hoàn toàn từ "Apache", bạn sẽ phải sửa đổi nguồn.


+1 tnx cho câu trả lời, tôi quên đề cập đến trong câu hỏi Tôi đã nhận thức được điều này nhưng tôi muốn nó nói Microsoft IIS hoặc một cái gì đó. Tôi nên làm rõ điều đó.
Neo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.