
Убрать версию 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» завершена.