Маскируем небезопасные заголовки веб-сервера
В большинстве дистрибутивов linux веб-серверы по умолчанию предоставляют очень много данных, которые могут стать отправной точкой для планирования атаки.
Например, используя curl -I ip_address
можно просмотреть служебную информацию о веб-сервере, используемых модулях и их версиях.
В Debian/Ubuntu по умолчанию доступна следующего рода информация:
HTTP/1.1 200 OK
Date: Fri, 19 Sep 2014 17:11:30 GMT
Server: Apache/2.2.16 (Debian)
X-Powered-By: PHP/5.3.28-1~dotdeb.0
После таких сведений в лучшем случае сервер превращается в плацдарм для испытания эксплойтов у хакеров, в худшем - его ломают и используют для своих нужд.
Маскируем Apache
Для начала необходимо поставить пакет libapache-mod-security (в Ubuntu он может называться libapache2-modsecurity), далее - включить модуль:
# a2enmod mod-security
Далее открываем файл /etc/apache2/conf.d/security (в Ubuntu /etc/apache2/conf-enabled/security.conf), комментируем лишнее, добавив:
ServerSignature Off
ServerTokens Full
SecServerSignature "httpd (OpenBSD)"
После чего перезапускаем apache и проверяем поменлся ли заголовок Server:
# /etc/init.d/apache2 restart
...
$ curl -I localhost
HTTP/1.1 200 OK
Date: Fri, 19 Sep 2014 17:11:30 GMT
Server: httpd (OpenBSD)
X-Powered-By: PHP/5.3.28-1~dotdeb.0
Скрываем версию Nginx
Для скрытия версии nginx достаточно создать файл /etc/nginx/conf.d/nginx.conf со строчкой:
server_tokens off;
и не забыть перезапустить nginx.
Скрываем версию PHP
Для скрытия версии php необходимо открыть файл /etc/php5/apache2/php.ini и поменять значение expose_php с On на Off:
expose_php = Off
И перезапустить apache:
# /etc/init.d/apache2 restart
...
$ curl -I localhost
HTTP/1.1 200 OK
Date: Fri, 19 Sep 2014 17:11:30 GMT
Server: httpd (OpenBSD)