ВОЙТИ
    opened image

    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 позволяет интегрировать безопасность, отслеживая порты и взаимодействие с брандмауэром, что способствует повышению уровня защиты системы.

     

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