opened image

Usługi na serwerach Linux i ich administracja z wykorzystaniem Systemd

Linux — to system operacyjny z otwartym kodem źródłowym, znany ze swojej elastyczności, stabilności i rozbudowanego zestawu narzędzi do zarządzania procesami i usługami. Jednym z takich narzędzi jest Systemd, który stał się standardem zarządzania usługami systemowymi w większości nowoczesnych dystrybucji Linux. Jedną z głównych zalet Systemd jest jego zdolność do efektywnego zarządzania uruchomionymi usługami i zasobami systemowymi.

W tym artykule szczegółowo omówimy, jak za pomocą Systemd wyświetlać wszystkie uruchomione usługi, zarządzać nimi i kontrolować porty używane przez te usługi. Poruszymy również, jak używać Systemd do monitorowania bezpieczeństwa przez zaporę ogniową.

 

Co to są systemy zarządzania usługami w Linuxie?

 

W Linuxie zarządzanie usługami — to kluczowy aspekt administracji. Ważne jest, aby mieć możliwość szybkiego uzyskania informacji o tym, które usługi działają, a które zakończyły swoją pracę lub zostały wyłączone. Jest to niezbędne przy monitorowaniu wydajności systemu i rozwiązywaniu problemów, jeśli takie się pojawią.

Wcześniej administracja usługami odbywała się za pomocą init — tradycyjnego procesu inicjalizacji, który odpowiadał za uruchamianie usług podczas rozruchu systemu. Jednak wraz z wprowadzeniem Systemd zarządzanie stało się bardziej elastyczne i potężne. Systemd zastąpił init i stał się standardem de facto w większości dystrybucji Linux, takich jak Ubuntu, CentOS i Fedora.

 

Co to jest Systemd?

 

Systemd — to menedżer systemowy inicjalizacji, który zarządza procesami i usługami w Linuxie. Został stworzony w celu zwiększenia szybkości rozruchu systemu i zastąpienia przestarzałego init. Systemd wykonuje kilka ważnych funkcji:

  • Inicjalizacja usług podczas uruchamiania systemu.
  • Zarządzanie zależnościami między usługami.
  • Monitorowanie stanu usług i procesów w systemie.
  • Rejestrowanie (systemd-journald) wszystkich zdarzeń związanych z usługami i procesami.

Jedną z głównych zalet Systemd jest jego zgodność z SysV oraz wsparcie dla starych skryptów LSB, co umożliwia płynne przejście od używania init do nowocześniejszego zarządzania usługami.

Dlaczego warto wyświetlać uruchomione usługi?

Znajomość tego, które usługi są uruchomione w twoim systemie, jest kluczowa dla administracji. Pozwala to na:

  • Monitorowanie użycia zasobów: jeśli usługa zużywa zbyt dużo pamięci lub mocy procesora, może to wskazywać na problem.
  • Rozwiązywanie problemów: w przypadku awarii systemu można szybko określić, która usługa była przyczyną problemu.

Optymalizację wydajności: niepotrzebne usługi można wyłączyć lub skonfigurować ich uruchamianie na żądanie, co zmniejszy obciążenie systemu.

 

 

Wyświetlanie wszystkich usług w Linuxie przez Systemd

 

Aby wyświetlić wszystkie usługi, które są aktywne w systemie, można użyć dostępnych poleceń:

systemctl list-units --type=service

Ten sposób wyświetli listę wszystkich jednostek systemowych typu "usługa", załadowanych w systemie. Polecenie pokazuje zarówno aktywne, jak i zakończone usługi. Dla uproszczenia wyjścia można użyć skróconego polecenia:

systemctl --type=service

 

Jak wyświetlić aktywne usługi w Systemd

 

Aktywne usługi — to te, które albo nadal działają, albo zakończyły swoją pracę, ale jeszcze nie zostały usunięte z pamięci. Aby zobaczyć listę wszystkich aktywnych usług, należy wykonać następujące polecenie:

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

Aby uzyskać wyjście z minimalnymi parametrami, można użyć alternatywnego polecenia:

systemctl --type=service --state=active

Jak wyświetlić tylko uruchomione usługi

Uruchomione usługi — to te, które aktualnie działają. Aby je wyświetlić, użyj następującego polecenia:

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

Alternatywne polecenie:

systemctl --type=service --state=running

Te polecenia pomogą administratorom systemu szybko uzyskać informacje o tym, które usługi działają w danym momencie.

Kluczowe terminy w Systemd

  • Unit (Jednostka) — to podstawowa jednostka w Systemd. Jednostki mogą być usługami, urządzeniami, punktami montowania, gniazdami i innymi obiektami zarządzanymi przez system.
  • Load (Załaduj) — status wskazujący, czy jednostka jest załadowana do pamięci.
  • Active (Aktywny) — wskazuje, czy jednostka jest aktywna (na przykład, usługa jest uruchomiona i działa).
  • SUB (Podstan) — szczegółowy status jednostki, który pokazuje jej aktualny stan, na przykład "running" (działa) lub "failed" (awaria).
  • Description (Opis) — krótki ciąg, który opisuje cel jednostki.

 

Tworzenie aliasu dla polecenia Systemd

 

Aby uprościć wywołanie polecenia wyświetlania uruchomionych usług, można stworzyć alias. Jest to szczególnie przydatne, jeśli często trzeba wykonywać to samo polecenie.

Dodaj następujący alias do pliku ~/.bashrc:

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

Po dodaniu tego aliasu zaktualizuj bieżącą sesję poleceniem:

 

source ~/.bashrc

Teraz możesz szybko wyświetlać uruchomione usługi, używając polecenia

running_services.

Określenie portu, na którym nasłuchuje usługa

Aby dowiedzieć się, jaki port używa konkretna usługa, można użyć następujących poleceń:

netstat -ltup | grep <nazwa_procesu>

Alternatywne polecenie z użyciem ss:

ss -ltup | grep <nazwa_procesu>

Te polecenia wyświetlą wszystkie porty, na których usługi nasłuchują połączeń przychodzących, a także informacje o samych usługach.

 

Wyświetlanie usług i portów otwartych w zaporze ogniowej

 

Dla bezpieczeństwa systemu ważne jest, aby wiedzieć, które usługi i porty są dozwolone w zaporze ogniowej. Zobaczmy, jak to zrobić z użyciem różnych zapór ogniowych.

FirewallD

Aby wyświetlić dozwolone usługi:

firewall-cmd --list-services

Aby wyświetlić otwarte porty:

firewall-cmd --list-ports

UFW

Aby wyświetlić status UFW oraz listę dozwolonych usług i portów:

sudo ufw status

Te polecenia pomogą ci określić, które porty i usługi są dozwolone do dostępu z zewnątrz przez zaporę ogniową.

 

 

Podsumowanie

Zarządzanie usługami — to ważna część administracji systemami Linux. Systemd zapewnia potężne narzędzia do monitorowania i zarządzania usługami, co czyni go niezastąpionym dla nowoczesnych administratorów. Dzięki niemu można łatwo śledzić aktywne usługi, sprawdzać ich stan i optymalizować wykorzystanie zasobów. Co więcej, Systemd pozwala na integrację bezpieczeństwa, monitorując porty i interakcję z zaporą ogniową, co przyczynia się do zwiększenia poziomu ochrony systemu.

 

Proponujemy również zapoznać się z innymi przydatnymi artykułami: