15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
18.08.2025

Що за замовчуванням вимкнено на більшості Linux серверів (і чому це важливо)

Коли ви розгортаєте свіжий Linux сервер — чи то VPS, виділений сервер, або хмарну віртуальну машину — система завантажується в навмисно мінімалістичне та посилене середовище. Це не недогляд або неповна конфігурація. Це навмисна філософія дизайну, вбудована в кожний основний дистрибутив Linux.

Сучасні Linux серверні збірки позбавляються непотрібних сервісів, протоколів та інтерфейсів, щоб мінімізувати поверхню атаки, економити ресурси системи та дати адміністраторам точний контроль над тим, що працює на їхній інфраструктурі. Розуміння того, що вимкнено за замовчуванням — і чому — є фундаментальним знанням для будь-якого системного адміністратора, DevOps інженера або розробника, який керує виробничими навантаженнями.

Цей посібник розбирає найпоширеніші функції та сервіси, які вимкнені або відсутні за замовчуванням на Linux серверах, пояснює безпеку та операційне обґрунтування кожного рішення та показує вам, як саме перевірити кожне налаштування на вашій системі.

Чому «Вимкнено за замовчуванням» — це стратегія безпеки, а не обмеження

Принцип, який працює тут, часто називають «безпечно за замовчуванням, розширюється за вибором». Замість того, щоб поставляти повнофункціональну систему та покладатися на адміністраторів, щоб заблокувати її, сучасні дистрибутиви Linux поставляють заблоковану систему та покладаються на адміністраторів, щоб увімкнути лише те, що їм потрібно.

Цей підхід безпосередньо зменшує ризик неправильної конфігурації — однієї з основних причин порушень безпеки серверів. Кожен сервіс, який не працює, — це сервіс, який не може бути використаний. Кожен протокол, який не увімкнений, — це протокол, який не може бути перехоплений. Кожен відкритий порт, який не існує, — це точка входу, яку зловмисники не можуть зондувати.

З цим контекстом, давайте розглянемо кожне обмеження за замовчуванням детально.

1. Root SSH вхід

Статус: Вимкнено за замовчуванням на практично всіх сучасних Linux серверних дистрибутивах

Прямий root вхід через SSH універсально вимкнений у сучасних Linux серверних збірках — і з чудовою причиною. Дозвіл на віддалений root доступ створює єдину катастрофічну точку відмови: один скомпрометований пароль дає зловмиснику повний, необмежений контроль над всією системою.

Правильний робочий процес — це вхід як непривілейований користувач та підвищення привілеїв за допомогою sudo або su лише коли це необхідно. Це створює журнал аудиту, обмежує радіус вибуху крадіжки облікових даних та змушує свідому дію перед виконанням привілейованих команд.

Як перевірити:

grep PermitRootLogin /etc/ssh/sshd_config

Очікуваний результат на належним чином посиленому сервері:

PermitRootLogin no

Якщо ви бачите PermitRootLogin yes або PermitRootLogin prohibit-password, негайно перегляньте вашу SSH конфігурацію та приведіть її у відповідність з політикою безпеки вашої організації.

Найкраща практика:

Створіть спеціального адміністративного користувача, додайте його до групи sudo та переконайтеся, що PermitRootLogin no встановлено перед розгортанням будь-якого публічного сервісу.

2. Аутентифікація паролем в SSH

Статус: Вимкнено за замовчуванням на більшості хмарних серверів

На багатьох хмарних платформах та керованих хостинг-середовищах аутентифікація SSH паролем повністю вимкнена під час розгортання. SSH пари ключів — це єдиний прийнятий механізм аутентифікації.

Це значне поліпшення безпеки. Аутентифікація паролем уразлива до атак перебору, підстановки облікових даних та словникових атак. SSH ключі — особливо коли захищені парольною фразою — обчислювально неможливо перебирати з поточною технологією.

Традиційні встановлення на основі ISO можуть все ще дозволяти входи паролем за замовчуванням, але найкраща практика — вимкнути їх одразу після налаштування аутентифікації на основі ключів.

Як перевірити:

grep PasswordAuthentication /etc/ssh/sshd_config

Очікуваний результат:

PasswordAuthentication no

Як вимкнути аутентифікацію паролем:

Відредагуйте /etc/ssh/sshd_config та встановіть:

PasswordAuthentication no
PubkeyAuthentication yes

Потім перезавантажте SSH демон:

# Ubuntu/Debian
sudo systemctl reload ssh

# RHEL/AlmaLinux/Rocky Linux
sudo systemctl reload sshd

> Попередження: Завжди переконайтеся, що ваш SSH ключ працює перед вимиканням аутентифікації паролем, інакше ви ризикуєте заблокувати себе на сервері.

3. Застарілі та відкриті текстові мережеві протоколи

Статус: Відсутні в сучасних серверних збірках

Сервіси такі як Telnet, FTP, Rlogin та Rsh не встановлюються на сучасних Linux серверних образах. Ці протоколи були розроблені в епоху, коли шифрування не було пріоритетом. Вони передають облікові дані, команди та дані у відкритому текстовому вигляді — що робить їх тривіально легкими для перехоплення за допомогою аналізатора пакетів на будь-якому сегменті мережі між клієнтом та сервером.

Ці протоколи були замінені безпечними альтернативами:

Застарілий протоколБезпечна заміна
Telnet (порт 23)SSH (порт 22)
FTP (порт 21)SFTP або FTPS
Rlogin / RshSSH

Як перевірити, що жодні застарілі сервіси не працюють:

ss -tulnp

Якщо порти 21 (FTP) або 23 (Telnet) не з’являються у результаті, ці сервіси не активні. Якщо вони з’являються, негайно дослідіть та видаліть або вимкніть їх, якщо немає конкретної, обґрунтованої потреби.

4. Графічні користувацькі інтерфейси (GUI)

Статус: Не встановлені на серверних виданнях

Серверні дистрибутиви — включаючи Ubuntu Server, Debian, AlmaLinux, Rocky Linux та CentOS Stream — не поставляються з графічними середовищами робочого стола такими як GNOME, KDE Plasma або XFCE. Це навмисний та добре обґрунтований вибір.

Середовище GUI:

  • Споживає значні ресурси RAM та CPU, які мають бути присвячені робочим навантаженням
  • Вводить велику кількість додаткових програмних пакетів, кожен з яких являє собою потенційну вразливість
  • Повністю непотрібна для адміністрування сервера, яке виконується через командний рядок через SSH

Очікування однозначне: сервери керуються через CLI. Якщо ви виявите, що хочете графічного інтерфейсу на виробничому сервері, це зазвичай сигнал того, що процес або робочий процес потребує переосмислення.

> Примітка: Інструменти такі як VPS Панелі керування — такі як cPanel, Plesk або DirectAdmin — надають веб-базовані графічні інтерфейси керування без необхідності встановлення повного середовища робочого стола на сервері.

5. Ланцюги розробки та компілятори

Статус: Не встановлені в мінімальних серверних образах

Компілятори такі як gcc та утиліти збірки такі як make, cmake та autoconf навмисно відсутні в більшості мінімальних Linux серверних образів. Обґрунтування двоїсте:

  1. Зменшений розмір образу: Мінімальні образи розгортаються швидше, легше резервуються та споживають менше ресурсів.
  2. Посилення безпеки: Якщо зловмисник отримає доступ до сервера, відсутність компілятора запобігає йому компіляції шкідливих бінарних файлів або кодів експлойтів безпосередньо на системі. Це значна перешкода в багатьох ланцюгах атак.

Як перевірити:

gcc --version

Якщо ланцюг інструментів не встановлений, ви побачите:

-bash: gcc: command not found

Як встановити, якщо потрібно:

# Ubuntu/Debian
sudo apt update && sudo apt install build-essential

# RHEL/AlmaLinux/Rocky Linux
sudo dnf groupinstall "Development Tools"

Встановлюйте інструменти розробки лише на серверах, де компіляція є справжньою операційною вимогою — такі як серверів збірки або середовищ розробки — та уникайте встановлення їх на виробничих серверах додатків або баз даних.

6. ICMP (відповіді Ping)

Статус: Увімкнено за замовчуванням на рівні ОС; часто обмежено на рівні мережі/брандмауера

Linux сервери відповідають на запити ICMP echo (ping) за замовчуванням на рівні операційної системи. Однак багато постачальників хостингу та хмарних платформ блокують ICMP на рівні мережевого брандмауера або групи безпеки, роблячи сервери недосяжними для ping навіть коли вони повністю функціональні.

Придушення відповідей ICMP робить сервер менш виявляємим під час сканування мережевої розвідки. Однак це також ускладнює законне моніторування та діагностику — інструменти такі як ping та traceroute покладаються на ICMP для правильної роботи.

Як перевірити:

ping your_server_ip

Як блокувати ICMP на рівні ОС за допомогою iptables (якщо потрібно):

sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

Рішення про блокування ICMP має бути прийнято свідомо, зважаючи граничну користь безпеки проти операційної вартості для робочих процесів моніторування та усунення несправностей.

7. IPv6

Статус: Увімкнено за замовчуванням у більшості дистрибутивів; може бути обмежено на рівні постачальника

IPv6 увімкнено за замовчуванням у сучасних дистрибутивах Linux включаючи Ubuntu, Debian, Fedora та похідні RHEL. Однак багато постачальників хостингу вимикають IPv6 на рівні мережі, якщо їхня інфраструктура його не підтримує, що означає, що ОС може бути налаштована для IPv6, але сервер не матиме маршрутизованої адреси IPv6.

Як перевірити адреси IPv6:

ip a | grep inet6

Якщо з’являється лише ::1 (адреса зворотної петлі), IPv6 не налаштований на рівні мережі навіть якщо він увімкнений в ОС.

Якщо ваше робоче навантаження не потребує IPv6 та ваш постачальник його не пропонує, ви можете вимкнути його на рівні ядра, додавши наступне до /etc/sysctl.conf:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1

Потім застосуйте зміну:

sudo sysctl -p

8. Непотрібні системні сервіси та демони

Статус: Варіюється залежно від дистрибутива; мінімальні встановлення вимикають більшість неважливих сервісів

Крім пунктів, перелічених вище, мінімальні встановлення Linux сервера зазвичай вимикають або опускають ряд сервісів, які присутні на настільних або повнофункціональних збірках:

  • Bluetooth — неактуально на серверах; не встановлено
  • Avahi/mDNS — виявлення локальної мережі; непотрібно та потенційно проблема безпеки на серверах
  • Cups (друк) — немає варіанту використання на сервері
  • ModemManager — неактуально на серверному обладнанні
  • NetworkManager — часто замінюється на systemd-networkd або ручну конфігурацію netplan на серверах

Як аудити запущені сервіси:

systemctl list-units --type=service --state=running

Переглядайте цей список періодично та вимикайте будь-який сервіс, який не служить задокументованій меті на цьому конкретному сервері.

Практичний контрольний список безпеки для щойно розгорнутого Linux сервера

Після розгортання нового сервера — чи то спільного веб-хост

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати