opened image

Сервисы на серверах Linux и их администрирование с использованием Systemd

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

В данной статье мы подробно рассмотрим, как с помощью Systemd отображать все запущенные сервисы, управлять ими и контролировать порты, используемые этими сервисами. Мы также обсудим, как использовать Systemd для мониторинга безопасности через брандмауэр.

 

Что такое системы управления сервисами в Linux?

 

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

Ранее администрирование сервисами осуществлялось с помощью init — традиционного процесса инициализации, который отвечал за запуск сервисов при загрузке системы. Однако с внедрением Systemd управление стало более гибким и мощным. Systemd пришёл на смену init и стал стандартом де-факто в большинстве дистрибутивов Linux, таких как Ubuntu, CentOS и Fedora.

 

Что такое Systemd?

 

Systemd — системный менеджер инициализации, который управляет процессами и сервисами в Linux. Он был создан для повышения скорости загрузки системы и замены устаревшего init. Systemd выполняет несколько важных функций:

  • Инициализация сервисов при запуске системы.
  • Управление зависимостями между сервисами.
  • Мониторинг состояния сервисов и процессов в системе.
  • Журналирование (systemd-journald) всех событий, связанных с сервисами и процессами.

Одним из главных преимуществ Systemd является его совместимость с SysV и поддержка старых скриптов LSB, что позволяет плавно перейти от использования init к более современному управлению сервисами.

Зачем нужно отображать запущенные сервисы?

Знание того, какие сервисы запущены на вашей системе, критично для администрирования. Это позволяет:

  • Мониторить использование ресурсов: если сервис потребляет слишком много памяти или процессорных мощностей, это может указывать на проблему.
  • Устранять неполадки: в случае сбоев системы можно быстро определить, какой сервис был причиной проблемы.

Оптимизировать производительность: ненужные сервисы можно отключить или настроить их запуск по требованию, что снизит нагрузку на систему.

 

 

Отображение всех сервисов в Linux через Systemd

 

Чтобы отобразить все сервисы, которые активны в системе, можно использовать имеющиеся команды:

systemctl list-units --type=service

Данный способ выведет лист всех системных юнитов типа "сервис", загруженных в систему. Команда показывает как активные, так и завершенные сервисы. Для упрощенного вывода можно использовать сокращенную команду:

systemctl --type=service

 

Как отобразить активные сервисы в Systemd

 

Активные сервисы — это те, которые либо продолжают выполняться, либо завершили свою работу, но ещё не выгружены из памяти. Чтобы увидеть список всех активных сервисов, необходимо выполнить следующую команду:

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

Для вывода с минимальными параметрами можно использовать альтернативную команду:

systemctl --type=service --state=active

Как отобразить только запущенные сервисы

Запущенные сервисы — это те, которые продолжают выполняться в данный момент. Чтобы отобразить их, используйте следующую команду:

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

Альтернативная команда:

systemctl --type=service --state=running

Эти команды помогут системным администраторам быстро получить информацию о том, какие сервисы работают в данный момент.

Ключевые термины в Systemd

  • Unit (Юнит) — это базовая единица в Systemd. Юниты могут быть сервисами, устройствами, монтируемыми точками, сокетами и другими объектами, управляемыми системой.
  • Load (Загрузка) — статус, указывающий, загружен ли юнит в память.
  • Active (Активен) — указывает, активен ли юнит (например, сервис запущен и работает).
  • SUB (Подсостояние) — уточнённый статус юнита, который показывает его текущее состояние, например, "running" (выполняется) или "failed" (сбой).
  • Description (Описание) — краткая строка, которая описывает цель юнита.

 

Создание алиаса для команды Systemd

 

Чтобы упростить вызов команды отображения запущенных сервисов, можно создать алиас. Это особенно полезно, если часто приходится выполнять одну и ту же команду.

Добавьте следующий алиас в файл ~/.bashrc:

alias running_services='systemctl list-units --type=service --state=running'

После добавления этого алиаса обновите текущую сессию командой:

 

source ~/.bashrc

Теперь вы можете быстро отображать запущенные сервисы, используя команду

running_services.

Определение порта, на котором прослушивает сервис

Чтобы узнать, какой порт использует конкретный сервис, можно использовать следующие команды:

netstat -ltup | grep <имя_процесса>

Альтернативная команда с использованием ss:

ss -ltup | grep <имя_процесса>

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

 

Отображение сервисов и портов, открытых в брандмауэре

 

Для контроля безопасности системы важно знать, какие сервисы и порты разрешены в брандмауэре. Рассмотрим, как это сделать с использованием разных брандмауэров.

FirewallD

Для отображения разрешенных сервисов:

firewall-cmd --list-services

Для отображения открытых портов:

firewall-cmd --list-ports

UFW

Для отображения статуса UFW и списка разрешенных сервисов и портов:

sudo ufw status

Эти команды помогут вам определить, какие порты и сервисы разрешены для доступа извне через брандмауэр.

 

 

Заключение

Управление сервисами — это важная часть администрирования Linux-систем. Systemd предоставляет мощные инструменты для мониторинга и управления сервисами, что делает его незаменимым для современных администраторов. С его помощью можно легко отслеживать активные сервисы, проверять их состояние и оптимизировать использование ресурсов. Более того, Systemd позволяет интегрировать безопасность, отслеживая порты и взаимодействие с брандмауэром, что способствует повышению уровня защиты системы.

 

Также предлагаем рассмотреть другие полезные статьи: