Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux Безопасность

Что отключено по умолчанию на большинстве Linux серверов (и почему это важно)

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

Современные сборки Linux серверов удаляют ненужные сервисы, протоколы и интерфейсы, чтобы минимизировать поверхность атаки, сохранить ресурсы системы и дать администраторам точный контроль над тем, что работает на их инфраструктуре. Понимание того, что отключено по умолчанию — и почему — это основополагающее знание для любого системного администратора, инженера DevOps или разработчика, управляющего production рабочими нагрузками.

Это руководство разбирает наиболее распространенные функции и сервисы, которые отключены или отсутствуют по умолчанию на Linux серверах, объясняет причины безопасности и операционной деятельности, стоящие за каждым решением, и показывает вам, как именно проверить каждый параметр на вашей собственной системе.

Почему "Отключено по умолчанию" — это стратегия безопасности, а не ограничение

Принцип, работающий здесь, часто называют "безопасность по умолчанию, расширяемость по выбору." Вместо того чтобы поставлять полнофункциональную систему и надеяться, что администраторы её заблокируют, современные дистрибутивы Linux поставляют заблокированную систему и доверяют администраторам включать только то, что им нужно.

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

Имея этот контекст, давайте подробно рассмотрим каждое ограничение по умолчанию.

1. Root SSH Login

Status: По умолчанию отключено на практически всех современных дистрибутивах 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 Control Panels — такие как cPanel, Plesk или DirectAdmin — предоставляют веб-интерфейсы графического управления без необходимости установки полного окружения рабочего стола на сервер.

5. Development Toolchains and Compilers

Status: Not installed in minimal server images

Compilers such as gcc and build utilities such as make, cmake, and autoconf are intentionally absent from most minimal Linux server images. The rationale is twofold:

  1. Reduced image size: Minimal images are faster to deploy, easier to back up, and consume fewer resources.
  2. Security hardening: If an attacker gains access to a server, the absence of a compiler prevents them from compiling malicious binaries or exploit code directly on the system. This is a meaningful obstacle in many attack chains.

How to verify:

gcc --version

If the toolchain is not installed, you will see:

-bash: gcc: command not found

How to install if required:

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

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

Install development tools only on servers where compilation is a genuine operational requirement — such as build servers or development environments — and avoid installing them on production application or database servers.

6. ICMP (Ping Responses)

Статус: Включено по умолчанию на уровне ОС; часто ограничено на уровне сети/брандмауэра

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

После подготовки нового сервера — будь то общее веб-хостинг обновленное до VPS или совершенно новый выделенный сервер — пройдите через этот контрольный список, чтобы подтвердить вашу базовую позицию безопасности:

ПроверкаКомандаОжидаемый результат
SSH вход от rootgrep PermitRootLogin /etc/ssh/sshd_configno
Аутентификация по паролюgrep PasswordAuthentication /etc/ssh/sshd_configno
Открытые портыss -tulnpВидны только ожидаемые порты
GCC установленgcc --versioncommand not found (если не требуется)
Запущенные сервисыsystemctl list-units --type=service --state=runningТолько необходимые сервисы
Статус IPv6`ip agrep inet6`Как ожидается для вашей среды

Выбор подходящей среды хостинга для ваших требований безопасности

Стандартная безопасность вашего сервера также зависит от выбранной вами среды хостинга. VPS с cPanel предоставляет управляемый веб-интерфейс, который упрощает администрирование, сохраняя при этом базовую модель безопасности Linux. Bare-metal выделенный сервер дает вам полный контроль над каждым уровнем стека, от прошивки до приложения.

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

Заключение

Linux-серверы по умолчанию подготавливаются в намеренно защищенном, минимальном состоянии. SSH-вход от root отключен. Аутентификация по паролю ограничена или исключена. Устаревшие протоколы открытого текста отсутствуют. Графическая среда не установлена. Компиляторы и инструменты сборки исключены из базовых образов.

Напротив, такие сервисы, как ICMP-ответы и IPv6, остаются включенными на уровне ОС по умолчанию, но часто ограничиваются на сетевом уровне или уровне брандмауэра в зависимости от инфраструктуры провайдера и его политики безопасности.

Эта философия «безопасность по умолчанию, расширяемость по выбору» гарантирует, что администраторы сохраняют полный контроль над своей средой. Сервер предоставляет только то, что явно требуется для его предназначения — ничего больше. Каждый сервис, который вы включаете, каждый порт, который вы открываете, и каждый пакет, который вы устанавливаете, — это осознанное решение с документированным обоснованием.

Эта дисциплина — основа операционной безопасности. Это не ограничение Linux-серверов. Это именно то, что делает их платформой выбора для производственной инфраструктуры во всем мире.