Убрать версию nginx и apache и php

Убрать версию nginx и apache и php

Для более качественной безопасности, можно закрыть версию различных веб сервисов от глаз. Это возможно не спасет, но даст шанс злоумышленнику изучить ваш сервер дольше и потратить не мало усилий на это.

Хочу рассказать как можно убрать версию nginx и apache и php в Linux. В своей статье «Убрать версию nginx и apache и php» я покажу наглядные примеры.

Nginx.

Если Вы не хотите показывать версию веб-сервера nginx то необходимо в конфигурационном файле данного сервиса nginx.conf в секции http прописать следующую строку:

$ vim /etc/nginx/nginx.conf

[...]
server_tokens off;
[...]

После данного применения можно легко проверить что получилось:

$ curl -i IP_or_server_or_domain

Если хотите вообще скрыть факт присутствия nginx на вашем сервере,  то нужно смотреть информацию в файлах:

src/http/ngx_http_special_response.c
src/http/ngx_http_header_filter_module.c

Apache.

Если Вы не хотите показывать версию веб-сервера apache то необходимо в конфигурационном файле данного сервиса httpd.conf в секции http прописать следующую строки:

$ vim /etc/httpd/httpd.conf

[...]
ServerTokens Prod или ServerTokens ProductOnly
ServerSignature Off
[...]

Для Debian/Ubuntu, есть хорошее решение.

Появилась офигенная возможность скрыть apache2 с помощью очень простой настройки, для этого нужно установить модуль безопасности для веб-сервера apache:

$ apt-get install libapache-mod-security
$ a2enmod mod-security

Редактируем файл настроек:

$ vim /etc/apache2/conf.d/security
[...]
ServerTokens Full 
ServerSignature Off
SecServerSignature "Web server? FUCK OFF"
[...]

В итоге apache информацию о себе давать не будет. Нужно перезапустить сервер:

$ /etc/init.d/apache2 restart

ИЛИ

$ /etc/init.d/apache2 reload

можно конечно и так:

$ /etc/init.d/apache2 stop 
$ /etc/init.d/apache2 start

Для CentOS/RedHat/Fedora, есть хорошее решение тоже.

Ставим модуль безопасности для апача:

$ yum install libapache-mod-security
$ a2enmod mod-security

конфигурационные файлы mod_security

  • /etc/httpd/conf.d/mod_security.conf — Основной конфигурационный файл для mod_security модуля Apache.
  • /etc/httpd/modsecurity.d/ — Все остальные файлы конфигурации для mod_security Apache.
  • /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf — Конфигурация, содержащаяся в этом файле должна быть настроена для ваших конкретных требований до развертывания.
  • /var/log/httpd/modsec_debug.log — Используйте отладочные (debug) сообщения для отладки правил Mod_security и других проблем.
  • /var/log/httpd/modsec_audit.log — Все запросы, которые вызывают ModSecurity события (если обнаруженные) или ошибки Serer («RelevantOnly») вошли в этот файл.

Откройте файл /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf, введите:

# vim /etc/httpd/modsecurity.d/modsecurity_crs_10_config.conf

Убедитесь, что SecRuleEngine установлен в «On», чтобы защитить веб-сервер от атак:

SecRuleEngine On

Включите другие необходимые параметры и политики в соответствии с вашими требованиями. Наконец, перезагрузите HTTPD:

# service httpd restart

Убедитесь, что все работает:

# tail -f /var/log/httpd/error_log

PHP.

Если Вы не хотите показывать версию php то необходимо в конфигурационном файле php.ini прописать строку:

$ vim /etc/php.ini

[...]
expose_php = Off
[...]

PHP-FPM.

Если Вы не хотите показывать версию php-fpm то необходимо в конфигурационном файле php-fpm.conf прописать строку:

$ vim /etc/

[...]
php_admin_flag[expose_php] = off
[...]

Тема «Убрать версию nginx и apache и php» завершена.

 

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.