Приховувати версію використовуваного програмного забезпечення на сервері - хороша практика, що дозволяє заплутати потенційних зломщиків. Адже знаючи версію, наприклад, web-сервера, можна спробувати скористатися актуальною для цієї версії вразливістю.
А якщо хакер не знає, яка версія ПЗ використовується на сервері, підбір уразливості стає трішки складніше. На цій сторінці представлені параметри деяких додатків, що дозволяють приховати версію і навіть факт використання самого сервісу.
Зміст статті:
- NGINX 1 NGINX
- Apache 2 Apache
- Postfix 3 Postfix
- PHP 4 PHP
- MySQL 5 MySQL
- Lighttpd 6 Lighttpd
- Примечания 7 Примітки
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 1 001)
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"
Примітки
Слід пам'ятати, що після змін конфігураційних файлів кожен сервіс слід перезапускати. ;)
А також дотримуватися правила «Не базікай».