Скрываем версии Apache, Nginx и PHP в Linux
Рассмотрим применение базовых мер безопасности на веб-сервере (Apache), развернутом на Linux (DEB) (Debian 8 Jessie/Debian 9 Stretch/Ubuntu Server 14.04 LTS и т.д.).
JUQwJTlGJUQwJUJFJUQxJTgxJUQwJUJCJUQwJUI1JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJBJUQwJUI4JTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyMCVEMCVCOCUyMFBIUCUyQyUyMCVEMCVCMiUyMCVEMCVCRiVEMCVCNSVEMSU4MCVEMCVCMiVEMSU4MyVEMSU4RSUyMCVEMCVCRSVEMSU4NyVEMCVCNSVEMSU4MCVEMCVCNSVEMCVCNCVEMSU4QyUyMCVEMCVCRCVEMCVCNSVEMCVCRSVEMCVCMSVEMSU4NSVEMCVCRSVEMCVCNCVEMCVCOCVEMCVCQyVEMCVCRSUyMCVEMSU4MSVEMCVCQSVEMSU4MCVEMSU4QiVEMSU4MiVEMSU4QyUyMCVEMCVCMiVEMCVCNSVEMSU4MCVEMSU4MSVEMCVCOCVEMCVCOCUyMCVEMSU4MSVEMCVCMCVEMCVCQyVEMCVCRSVEMCVCMyVEMCVCRSUyMCVEMCVCMiVEMCVCNSVEMCVCMS0lRDElODElRDAlQjUlRDElODAlRDAlQjIlRDAlQjUlRDElODAlRDAlQjAlMjAlRDAlQjglMjBQSFAuJTIwJUQwJTk3JUQwJUJEJUQwJUIwJUQwJUJEJUQwJUI4JUQwJUI1JTIwJUQwJUI3JUQwJUJCJUQwJUJFJUQxJTgzJUQwJUJDJUQxJThCJUQxJTg4JUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQwJUI4JUQwJUJBJUQwJUJFJUQwJUJDJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI4JTIwJUQxJTgzJUQxJTgxJUQxJTgyJUQwJUIwJUQwJUJEJUQwJUJFJUQwJUIyJUQwJUJCJUQwJUI1JUQwJUJEJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJBJUQxJTgyJUQwJUJFJUQwJUIyJTJDJTIwJUQwJUJDJUQwJUJFJUQwJUI2JUQwJUI1JUQxJTgyJTIwJUQwJUJFJUQwJUIxJUQwJUJCJUQwJUI1JUQwJUIzJUQxJTg3JUQwJUI4JUQxJTgyJUQxJThDJTIwJUQwJUI1JUQwJUJDJUQxJTgzJTIwJUQwJUI3JUQwJUIwJUQwJUI0JUQwJUIwJUQxJTg3JUQxJTgzJTIwJUQwJUJGJUQwJUJFJTIwJUQwJUJGJUQwJUJFJUQwJUI4JUQxJTgxJUQwJUJBJUQxJTgzJTIwJUQwJUI4JUQwJUI3JUQwJUIyJUQwJUI1JUQxJTgxJUQxJTgyJUQwJUJEJUQxJThCJUQxJTg1JTIwJUQxJTgzJUQxJThGJUQwJUI3JUQwJUIyJUQwJUI4JUQwJUJDJUQwJUJFJUQxJTgxJUQxJTgyJUQwJUI1JUQwJUI5JTJDJTIwJUQwJUI0JUQwJUJCJUQxJThGJTIwJUQxJThEJUQxJTgyJUQwJUI4JUQxJTg1JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQwJUI5JTIwJUQwJUJGJUQxJTgwJUQwJUJFJUQwJUI0JUQxJTgzJUQwJUJBJUQxJTgyJUQwJUJFJUQwJUIyLg==
Скрытие версии Apache
Изначально при обращении к веб-серверу, он выдает версию самого веб-сервера и системы на которой он работает. Для примера откроем несуществующую страницу на веб-сервере:
JUQwJTlCJUQwJUI4JUQwJUIxJUQwJUJFJTIwJUQwJUIyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUJDJTIwY3VybCUyMCVEMCVCNyVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCRSVEMSU4MSUzQQ==
curl -v http://192.168.1.3/sdf * Trying 192.168.1.3... * TCP_NODELAY set * Connected to 192.168.1.3 (192.168.1.3) port 80 (#0) > GET /sdf HTTP/1.1 > Host: 192.168.1.3 > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 404 Not Found < Date: Tue, 27 Nov 2018 11:30:33 GMT < Server: Apache/2.4.10 (Debian) < Content-Length: 271 < Content-Type: text/html; charset=iso-8859-1 <
JUQwJTkyJTIwJUQwJUJFJUQwJUIxJUQwJUJFJUQwJUI4JUQxJTg1JTIwJUQxJTgxJUQwJUJCJUQxJTgzJUQxJTg3JUQwJUIwJUQxJThGJUQxJTg1JTIwJUQwJUJDJUQxJThCJTIwJUQwJUIyJUQwJUI4JUQwJUI0JUQwJUI4JUQwJUJDJTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThFJTIwJUQwJUIyJUQwJUI1JUQwJUIxLSVEMSU4MSVEMCVCNSVEMSU4MCVEMCVCMiVEMCVCNSVEMSU4MCVEMCVCMCUyMCVEMCVCOCUyMCVEMCU5RSVEMCVBMSUyMCVEMCVCRCVEMCVCMCUyMCVEMCVCQSVEMCVCRSVEMSU4MiVEMCVCRSVEMSU4MCVEMCVCRSVEMCVCOSUyMCVEMCVCRSVEMCVCRCUyMCVEMSU4MCVEMCVCMCVEMCVCMSVEMCVCRSVEMSU4MiVEMCVCMCVEMCVCNSVEMSU4Mi4lMjAlRDAlQTclRDElODIlRDAlQkUlRDAlQjElRDElOEIlMjAlRDElODElRDAlQkElRDElODAlRDElOEIlRDElODIlRDElOEMlMjAlRDElOEQlRDElODIlRDAlQjglMjAlRDAlQjQlRDAlQjAlRDAlQkQlRDAlQkQlRDElOEIlRDAlQjUlMkMlMjAlRDAlQkQlRDElODMlRDAlQjYlRDAlQkQlRDAlQkUlMjAlRDAlQjIlMjAlRDAlQkElRDAlQkUlRDAlQkQlRDElODQlRDAlQjglRDAlQjMlRDElODMlRDElODAlRDAlQjAlRDElODYlRDAlQjglRDAlQkUlRDAlQkQlRDAlQkQlRDElOEIlRDAlQjklMjAlRDElODQlRDAlQjAlRDAlQjklRDAlQkIlMjAoJTJGZXRjJTJGYXBhY2hlMiUyRmFwYWNoZTIuY29uZiklMjAlRDAlQjIlRDAlQjUlRDAlQjEtJUQxJTgxJUQwJUI1JUQxJTgwJUQwJUIyJUQwJUI1JUQxJTgwJUQwJUIwJTIwKEFwYWNoZSklMjAlRDAlQjQlRDAlQkUlRDAlQjElRDAlQjAlRDAlQjIlRDAlQjglRDElODIlRDElOEMlMjAlRDAlQjQlRDAlQjIlRDAlQjAlMjAlRDAlQkYlRDAlQjAlRDElODAlRDAlQjAlRDAlQkMlRDAlQjUlRDElODIlRDElODAlRDAlQjAlM0E=
ServerTokens Prod ServerSignature Off
Перезапускаем веб-сервер и проверяем, выполним аналогичные запросы что делали выше. Результат должен быть такой:
curl -v http://192.168.1.3/sdf * Trying 192.168.1.3... * TCP_NODELAY set * Connected to 192.168.1.3 (192.168.1.3) port 80 (#0) > GET /sdf HTTP/1.1 > Host: 192.168.1.3 > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 404 Not Found < Date: Tue, 27 Nov 2018 11:56:30 GMT < Server: Apache < Content-Length: 201 < Content-Type: text/html; charset=iso-8859-1 <
Теперь информация о версии веб-сервера и ОС на которой он работает, не отображается.
Скрытие версии PHP
JTVCc3RleHRib3glMjBpZCUzRCVFMiU4MCU5OWluZm8lRTIlODAlOTklNUQlRDAlOUQlRDAlQjglRDAlQjYlRDAlQjUlMjAlRDAlQkUlRDAlQkYlRDAlQjglRDElODElRDAlQjAlRDAlQkQlRDAlQkQlRDAlQkUlRDAlQjUlMjAlRDAlQjQlRDAlQjUlRDAlQjklRDElODElRDElODIlRDAlQjIlRDAlQjglRDAlQjUlMjAlRDAlQkYlRDElODAlRDAlQjglRDAlQkMlRDAlQjUlRDAlQkQlRDAlQjglRDElODIlRDAlQjUlRDAlQkIlRDElOEMlRDAlQkQlRDAlQkUlMjAlRDAlQkElMjAlRDAlQjIlRDAlQjUlRDElODAlRDElODElRDAlQjglRDElOEYlRDAlQkMlMjBwaHAlMjA1LjUlMjAlRDAlQjglMjAlRDAlQkMlRDAlQkIlRDAlQjAlRDAlQjQlRDElODglRDAlQjUuJTIwJUQwJTkyJTIwJUQxJTgxJUQxJTgyJUQwJUIwJUQxJTgwJUQxJTg4JUQwJUI4JUQxJTg1JTIwJUQwJUIyJUQwJUI1JUQxJTgwJUQxJTgxJUQwJUI4JUQxJThGJUQxJTg1JTIwcGhwJTIwNy4yJTJDJTIwNy40JTIwJUQwJUI0JUQwJUIwJUQwJUJEJUQwJUJEJUQwJUIwJUQxJThGJTIwJUQwJUJEJUQwJUIwJUQxJTgxJUQxJTgyJUQxJTgwJUQwJUJFJUQwJUI5JUQwJUJBJUQwJUIwJTIwJUQwJUJGJUQxJTgwJUQwJUI4JUQwJUJDJUQwJUI1JUQwJUJEJUQwJUI1JUQwJUJEJUQwJUIwJTIwJUQwJUJGJUQwJUJFLSVEMCVCQyVEMCVCRSVEMCVCQiVEMSU4NyVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4RS4lNUIlMkZzdGV4dGJveCU1RA==
По-умолчанию веб-сервер (Apache), при запросах включает версию PHP в «X-Powered-By» ответа HTTP заголовка.
JUQwJTkyJUQxJThCJUQwJUJGJUQwJUJFJUQwJUJCJUQwJUJEJUQwJUI4JUQwJUJDJTIwY3VybCUyMCVEMCVCNyVEMCVCMCVEMCVCRiVEMSU4MCVEMCVCRSVEMSU4MSUyQyUyMCVEMSU4MSVEMSU4MiVEMCVCMCVEMCVCRCVEMCVCOCVEMSU4NiVEMSU4QiUyMHBocCUzQQ==
curl -v http://192.168.1.3/info.php * Trying 192.168.1.3... * TCP_NODELAY set * Connected to 192.168.1.3 (192.168.1.3) port 80 (#0) > GET /info.php HTTP/1.1 > Host: glpi > User-Agent: curl/7.52.1 > Accept: */* > < HTTP/1.1 200 OK < Date: Tue, 27 Nov 2018 11:40:41 GMT < Server: Apache < X-Powered-By: PHP/5.6.33-0+deb8u1 < Vary: Accept-Encoding < Transfer-Encoding: chunked < Content-Type: text/html; charset=UTF-8 <
Видим что веб-сервер успешно выдал версию PHP, в секции X-Powered-By. Чтобы скрыть версию PHP в HTTP заголовке, нужно в конфигурационном файле (/etc/php5/apache2/php.ini), задать параметр:
expose_php = Off
Перезапускаем веб-сервер и проверяем, выполним curl запрос, станицы php. Теперь в HTTP заголовках ответа не будет секции X-Powered-By.
curl -v http://192.168.1.3/info.php
* Trying 192.168.1.3...
* TCP_NODELAY set
* Connected to 192.168.1.3 (192.168.1.3) port 80 (#0)
> GET /info.php HTTP/1.1
> Host: glpi
> User-Agent: curl/7.52.1
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Tue, 27 Nov 2018 12:14:51 GMT
< Server: Apache
< Vary: Accept-Encoding
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.