Что отключено по умолчанию на большинстве 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 / Rsh | SSH |
Как проверить, что устаревшие сервисы не запущены:
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:
- Reduced image size: Minimal images are faster to deploy, easier to back up, and consume fewer resources.
- 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 --versionIf the toolchain is not installed, you will see:
-bash: gcc: command not foundHow 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 -p8. Ненужные системные сервисы и демоны
Статус: Варьируется в зависимости от дистрибутива; минимальные установки отключают большинство несущественных сервисов
Помимо элементов, перечисленных выше, минимальные установки Linux-серверов обычно отключают или опускают ряд сервисов, которые присутствуют на настольных или полнофункциональных сборках:
- Bluetooth — неактуально на серверах; не установлено
- Avahi/mDNS — обнаружение локальной сети; ненужно и потенциально представляет угрозу безопасности на серверах
- Cups (печать) — нет применения на сервере
- ModemManager — неактуально для серверного оборудования
- NetworkManager — часто заменяется на
systemd-networkdили ручную конфигурациюnetplanна серверах
Как проверить запущенные сервисы:
systemctl list-units --type=service --state=runningРегулярно проверяйте этот список и отключайте любой сервис, который не служит документированной цели на конкретном сервере.
Практический контрольный список безопасности для недавно подготовленного сервера Linux
После подготовки нового сервера — будь то общее веб-хостинг обновленное до VPS или совершенно новый выделенный сервер — пройдите через этот контрольный список, чтобы подтвердить вашу базовую позицию безопасности:
| Проверка | Команда | Ожидаемый результат | |
|---|---|---|---|
| SSH вход от root | grep PermitRootLogin /etc/ssh/sshd_config | no | |
| Аутентификация по паролю | grep PasswordAuthentication /etc/ssh/sshd_config | no | |
| Открытые порты | ss -tulnp | Видны только ожидаемые порты | |
| GCC установлен | gcc --version | command not found (если не требуется) | |
| Запущенные сервисы | systemctl list-units --type=service --state=running | Только необходимые сервисы | |
| Статус IPv6 | `ip a | grep inet6` | Как ожидается для вашей среды |
Выбор подходящей среды хостинга для ваших требований безопасности
Стандартная безопасность вашего сервера также зависит от выбранной вами среды хостинга. VPS с cPanel предоставляет управляемый веб-интерфейс, который упрощает администрирование, сохраняя при этом базовую модель безопасности Linux. Bare-metal выделенный сервер дает вам полный контроль над каждым уровнем стека, от прошивки до приложения.
Для команд, использующих веб-приложения, защищенные SSL, сочетание вашего сервера с правильно настроенным SSL сертификатом является важным дополнением к усилению безопасности на уровне сервера — шифрование данных при передаче так же, как аутентификация по SSH ключам защищает доступ к самому серверу.
Заключение
Linux-серверы по умолчанию подготавливаются в намеренно защищенном, минимальном состоянии. SSH-вход от root отключен. Аутентификация по паролю ограничена или исключена. Устаревшие протоколы открытого текста отсутствуют. Графическая среда не установлена. Компиляторы и инструменты сборки исключены из базовых образов.
Напротив, такие сервисы, как ICMP-ответы и IPv6, остаются включенными на уровне ОС по умолчанию, но часто ограничиваются на сетевом уровне или уровне брандмауэра в зависимости от инфраструктуры провайдера и его политики безопасности.
Эта философия «безопасность по умолчанию, расширяемость по выбору» гарантирует, что администраторы сохраняют полный контроль над своей средой. Сервер предоставляет только то, что явно требуется для его предназначения — ничего больше. Каждый сервис, который вы включаете, каждый порт, который вы открываете, и каждый пакет, который вы устанавливаете, — это осознанное решение с документированным обоснованием.
Эта дисциплина — основа операционной безопасности. Это не ограничение Linux-серверов. Это именно то, что делает их платформой выбора для производственной инфраструктуры во всем мире.
на всех хостинговых услугах