Як видалити заголовок сервера: з відповіді HTTP за допомогою Apache?


20

Я хотів би видалити рядок:

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

з HTTP-відповідей мого сервера, але я не міг знайти нічого іншого, крім того, щоб сам змінити include/ap_release.hі компілювати Apache. Мені було цікаво, чи існує спосіб, про який я не знаю?

Відповіді:


16

Ви можете видалити або замаскувати ідентифікацію сервера з Http-Header за допомогою брандмауера з відкритим кодом ModSecurity з відкритим кодом .

Маскування ідентичності сервера

Однією з методик, яка часто допомагає сповільнити та заплутати зловмисників, є зміна ідентичності веб-сервера. Веб-сервери, як правило, надсилають свою ідентифікацію з кожним HTTP-відповіддю в заголовку Сервера. Тут Apache особливо корисний, оскільки він не лише надсилає своє ім'я та повну версію за замовчуванням, але також дозволяє серверним модулям також додавати свої версії.

Щоб змінити особу веб-сервера Apache, вам доведеться зайти у вихідний код, знайти, де ім'я "Apache" жорстко закодовано, змінити його та перекомпілювати сервер. Такого ж ефекту можна досягти, використовуючи

Директива SecServerSignature:

SecServerSignature "Microsoft-IIS/5.0"

Слід зазначити, що, хоча це працює досить добре, кваліфіковані зловмисники (та інструменти) можуть використовувати інші методи для «відбитків пальців» веб-сервера. Наприклад, файли за замовчуванням, повідомлення про помилку, впорядкування вихідних заголовків, спосіб сервера реагує на певні запити та подібне - все це може дати справжню особу. Я буду розглядати подальше вдосконалення підтримки маскування ідентичності в майбутніх випусках mod_security.

Якщо ви змінили підпис Apache, але вас дратує дивне повідомлення в журналі помилок (деякі модулі все ще видно - це впливає лише на журнал помилок, ззовні він все ще працює, як очікувалося):

[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

Тоді вам слід переупорядкувати порядок завантаження модулів, щоб дозволити mod_security працювати останньою, точно так, як пояснено для хронування.

Примітка

Для того, щоб ця директива працювала, ви повинні залишити / встановити ServerTokens на повний.

Коли директива SecServerSignature використовується для зміни підпису загальнодоступного сервера, ModSecurity почне записувати реальний підпис до журналу помилок, щоб дозволити ідентифікувати веб-сервер та використовувані модулі.

Джерело: Посібник з ModSecurity


Він працює зараз, але я думаю, що не розумно використовувати інше існуюче ім’я сервера, оскільки ви можете викликати дії атаки.
Codebeat

27

Якщо встановлено ServerTokens" Prod", ви можете зменшити заголовок до " Server: Apache". Повний список опцій див. У документації:

Документація для Apache 2.2

Документація для Apache 2.4

Примітка: налаштування однакові в обох версіях, однак документація 2.4 додає цю примітку:

Встановлювати ServerTokens менше, ніж мінімально, не рекомендується, оскільки це ускладнює налагодження міжопераційних проблем. Також зауважте, що відключення сервера: заголовок взагалі нічого не робить для того, щоб зробити ваш сервер більш захищеним. Ідея "безпеки через незрозумілість" є міфом і призводить до помилкового почуття безпеки.

Якщо ви хочете повністю видалити слово "Apache", вам доведеться змінити джерело.


+1 tnx для відповіді, я забув згадати в питанні, що я знав про це, але я хочу, щоб він сказав Microsoft IIS або щось подібне. Я повинен був це зрозуміти.
Нео
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.