Хаваць версію выкарыстоўванага праграмнага забеспячэння на сэрвэры - добрая практыка, якая дазваляе заблытаць патэнцыйных узломшчыкаў. Бо ведаючы версію, напрыклад, web-сервера, можна паспрабаваць скарыстацца актуальнай для гэтай версіі уразлівасцю.
А калі хакер не ведае, якая версія ПА выкарыстоўваецца на сэрвэры, падбор уразлівасці становіцца крышачку больш складана. На гэтай старонцы прадстаўлены параметры некаторых прыкладанняў, якія дазваляюць схаваць версію і нават факт выкарыстання самага сэрвісу.
Змест артыкула:
NGINX
Каб схаваць версію выкарыстоўванага сервера nginx, трэба дадаць у канфігурацыйны файл /etc/nginx/nginx.conf радок:
server_tokens off;
Таксама можна змяніць загаловак Спасланы серверам.
Apache
Для ўтойвання версіі Apache адкрываем файл /etc/apache2/conf.d/security.conf і прапісваем там параметр:
ServerTokens Prod
Postfix
Па-змаўчанні, postfix ня адлюстроўвае сваю версію ў адказах пры падключэнні. Але адлюстроўвае, што выкарыстоўваецца менавіта ён і ўсталяваную АС на серверы (Debian, у нашым выпадку :). Гэта можна схаваць.
Адкрываем файл /etc/postfix/main.cf, з параметру smtpd_banner выдаляем (Debian / GNU).
smtpd_banner = $ myhostname ESMTP $ mail_name (Debian / GNU)
Затым прапісваем параметр:
mail_name = MailServer
Пасля перазапуску Postfix пры падключэнні да сервера кліенты будуць бачыць нешта накшталт гэтага.
root @ localhost: ~ # telnet localhost 25 Trying :: 1 ... Trying 127.0.0.1 ... Connected to localhost. Escape character is '^]'. 220 example.com ESMTP MailServer
А ў лістах будзе адлюстроўвацца такі загаловак:
Received: by example.com (MailServer, from userid 1001)
PHP
Вэб-сервер можа ў загалоўках перадаваць версію php.
X-Powered-By: PHP / 5.6.19-0 + deb8u1
За яе утойванне адказвае параметр:
expose_php = Off
Ўсталяваць яго можна некалькімі шляхамі:
- Адрэдагаваць файл /etc/php5/*/php.ini
- У файле пула php-fpm:
php_admin_value[expose_php] = "Off"
- У канфігурацыйным файле віртуальнага хаста apache:
php_admin_value expose_php Off
MySQL
Наогул, датычна MySQL няма сэнсу хаваць версію. Але варта абмежаваць доступ да яго звонку, калі вам не патрэбныя знешнія падлучэння (для якіх варта дазволіць доступ толькі з канкрэтных IP). Таму ў канфігурацыйным файле /etc/mysql/my.cnf змяняны параметр:
bind-address = 127.0.0.1
Lighttpd
Тут таксама нічога складанага няма. За утойванне версіі (і факту выкарыстання) адказвае параметр server.tag. Можна паказаць наогул нешта іншае:
server.tag = "FrontPage"
нататкі
Варта памятаць, што пасля зменаў канфігурацыйных файлаў кожны сэрвіс варта перазапускаць. ;)
А таксама прытрымлівацца правілы «Не болтай».