Služby v Linuxu

Služby v Linuxu

Filozofie instalace a správy služeb v Linuxu

Linuxové distribuce nabízejí bohatý ekosystém nástrojů pro instalaci, konfiguraci a provoz síťových služeb. Klíčem k úspěchu je standardizace (FHS, systemd jednotky, správci balíčků), deklarativní konfigurace, automatizace a důsledné řízení přístupu. Tento článek poskytuje ucelený přehled postupů a doporučení od výběru distribuce přes instalaci balíčků až po zabezpečení, monitoring a vysokou dostupnost.

Volba distribuce a správce balíčků

Výběr distribuce ovlivňuje životní cyklus i nástroje správy. Debian/Ubuntu používají APT a balíčky DEB, Red Hat/AlmaLinux/Rocky Linux DNF (YUM) a RPM, SUSE pak Zypper. Rolling distribuce (Arch, openSUSE Tumbleweed) přinášejí rychlé aktualizace, enterprise vydání stabilitu a delší podporu. Preferujte oficiální repozitáře, případně ověřené vendor repozitáře; minimalizujte kompilaci ze zdroje v produkci kvůli aktualizacím a bezpečnosti.

Architektura systemd a životní cyklus služby

V moderních distribucích služby spravuje systemd. Jednotky (.service, .socket, .timer) definují spouštění, závislosti a prostředí. Konfigurace se ukládají do /etc/systemd/system (lokální) a /usr/lib/systemd/system (balíčkové). Pro úpravy používejte drop-in adresáře /etc/systemd/system/<nazev>.service.d/override.conf a vyhněte se přímým úpravám souborů dodaných balíčkem. Využívejte wants/requires pro závislosti a EnvironmentFile pro oddělení tajemství a proměnných.

Standardní umístění konfigurace a dat

  • Konfigurace: /etc/<sluzba>/ – verujte v Git a chraňte přístupy.
  • Logy: /var/log/ a journal; nastavte rotaci a retenci.
  • Data: /var/lib/<sluzba>/ – respektujte FHS a oddělte data od konfigurace.
  • Spouštěcí skripty: systemd jednotky a /usr/local/bin pro vlastní nástroje.

Instalace webového serveru (Nginx/Apache) a základní ztvárnění

Instalace probíhá přes správce balíčků. Nginx preferujte pro reverzní proxy a statický obsah, Apache při potřebě modulárního ekosystému a htaccess. Konfiguraci virtual hostů udržujte v separaci (např. /etc/nginx/sites-available a sites-enabled). Zapněte gzip/brotli, HTTP/2 a striktně definujte hlavičky (HSTS, CSP) podle aplikace. Certifikáty spravujte přes ACME klienta a automatickou obnovu.

Instalace databází (PostgreSQL, MariaDB) a hardening

Při nasazení databází nastavte oddělené systémové uživatele, vyhrazené adresáře dat, audit přístupů a šifrování přenosu. Omezte bind adresu na privátní síť, implementujte princip nejmenších práv (samostatné DB účty s minimálními oprávněními) a pravidelnou rotaci hesel nebo přechod na certifikáty/SSO. Sledujte metriky (počet připojení, latence dotazů, I/O) a nastavte zálohování s testem obnovy.

SSH a přístupová politika

Pro vzdálenou správu zakažte přihlášení uživatele root, povolte jen klíčové ověřování, aktivujte Port Knocking či Fail2ban pro mitigaci brute-force. Omezte AllowUsers/AllowGroups a Match bloky dle potřeb. Sudo politiky udržujte granulárně (bez NOPASSWD, pokud to není nezbytné) a logujte eskalace práv.

DNS, SMTP a další síťové služby

Pro DNS autoritativní/rekurzivní servery (BIND/PowerDNS/Unbound) striktně segmentujte role a aktivujte DNSSEC, rate-limity a ACL. U pošty (Postfix/Exim/Dovecot) zaveďte TLS, SPF/DKIM/DMARC, karanténu a antivirovou/antispamovou vrstvu. U DHCP/NTP omezte přístupové rozsahy, logujte požadavky a zvažte HA režimy pro kritické prostředí.

Firewall, síťová segmentace a mikrosegmentace

Na hostu používejte nftables (příp. firewalld) s principem restriktivního defaultu. Povolujte pouze explicitně potřebné porty a protokoly, oddělte management, aplikační a databázovou síť. V prostředích s kontejnery orchestrujte politiku i na úrovni CNI (NetworkPolicy) a udržujte konzistenci pravidel v CMDB.

SELinux/AppArmor a sandboxing služeb

Posilte bezpečnost povoleným SELinuxem v režimu enforcing nebo AppArmor profily. Pro systemd služby použijte sandboxing direktivy jako ProtectSystem, ProtectHome, NoNewPrivileges, PrivateTmp, CapabilityBoundingSet a SystemCallFilter. Tím výrazně snížíte dopady případného kompromisu.

Šifrování, TLS a správa certifikátů

Aktualizujte systémové kryptografické politiky (např. update-crypto-policies v RHEL rodině). Preferujte moderní protokoly a sady šifer, omezte fallbacky, vypněte zastaralé verze. Certifikáty spravujte centralizovaně (ACME/PKI), udržujte krátkou platnost a automatickou obnovu, striktně ukládejte privátní klíče s omezenými přístupy.

Konfigurační management a automatizace

V produkci se vyhněte manuálním zásahům. Využijte nástroje jako Ansible, Puppet, Chef či Salt k deklarativní správě balíčků, konfigurací a služeb. Udržujte inventory, šablony a proměnné v Git, nasazujte přes CI/CD s kontrolou změn a automatickými testy. Standardizace minimalizuje odchylky a urychlí obnovu po incidentu.

Kontajnerizace a systemd integrace

Kontejnery (Podman/Docker) zjednodušují distribuci a izolaci služeb. Preferujte rootless provoz, skenování obrazů a read-only kořenové souborové systémy s minimem schopností. Pro provoz vedle systemd používejte .service jednotky s restart politikami a závislostmi na sítích/objemech. Pro víceinstanční služby zvažte orchestrátor (Kubernetes) a deklarativní nasazení (Helm/Kustomize).

Logování, audit a observabilita

Centralizujte logy (journald, syslog-ng/rsyslog) do SIEM. Aktivujte audit (auditd, osquery) pro klíčové konfigurace a systémové volání. Metriky sbírejte pomocí Promethea/collectd/Node Exporteru, vizualizujte v Grafaně a nastavte alerting. Sledujte dostupnost, latenci, využití zdrojů a chybovost na úrovni služeb i infrastruktury.

Zálohování, snapshoty a obnova

Definujte RPO/RTO a podle toho zvolte nástroje (Borg, Restic, Veeam, Bacula). Pro data využívejte snapshoty souborových systémů (LVM, Btrfs, ZFS) či úložišť. Pravidelně provádějte test obnovy a kontrolu integrity (hashy). Tajemství a klíče ukládejte šifrovaně a odděleně od záloh.

Výkon a škálování

Analyzujte profil zátěže a úzká hrdla (CPU, paměť, I/O, síť). Optimalizujte parametry jádra a služeb uměřeně – vyhněte se globálním změnám bez měření. Využívejte horizontální škálování (load balancery, stateless návrhy), cache vrstvy a fronty. Dokumentujte baseline a při změnách provádějte srovnávací testy.

Vysoká dostupnost (HA) a zotavení po havárii (DR)

Pro HA používejte redundantní instance a sdílené stavové úložiště (replikace). Nástroje jako Keepalived (VRRP), Pacemaker/Corosync nebo nativní clusterovací schopnosti databází a message brokerů udržují služby dostupné i při výpadku. DR zajistí asynchronní replikace do vzdálené lokality, pravidelné „fire drills“ a validované runbooky.

Bezpečnostní provoz: aktualizace a zranitelnosti

Automatizujte bezpečnostní aktualizace a mějte plán pro urgentní záplaty. Integrujte skenery zranitelností a compliance (OpenSCAP, Lynis) a provádějte pravidelné konfigurace benchmarků (CIS). Oddělte prostředí (dev/test/prod), provádějte peer review změn a uchovávejte auditní stopy.

Správa uživatelů, tajemství a identit

Pro větší prostředí využívejte centrální identitu (LDAP/FreeIPA/SSSD) a role. Tajemství ukládejte do trezorů (HashiCorp Vault, Ansible Vault) s krátkou životností tokenů a rotací klíčů. Na úrovni služeb používejte oddělené účty (system users) a omezené capability; vyhýbejte se sdíleným účtům.

Testování konfigurací a změn

Validujte konfigurace před nasazením (lint, syntax check), nasazujte přes kanárky a postupné rollouty. Kde je to možné, udržujte staging prostředí s realistickými daty (maskovanými či syntetickými). Incidenty řešte podle playbooků a každou událost uzavírejte post-mortem analýzou a akčními body.

Dokumentace a provozní standardy

Každá služba má mít přehledný provozní runbook: jak ji nasadit, aktualizovat, zálohovat, obnovit, monitorovat a odstavit. Dokumentujte síťové porty, závislosti a požadované kapacity. Tím zkrátíte dobu řešení incidentů a omezíte závislost na jednotlivcích.

Typické anti-patterny a jak se jim vyhnout

  • „Sněhové vločky“: unikátní ruční konfigurace bez verzování – řešení: Git a IaC.
  • Exponované služby bez TLS/ACL: vždy používejte šifrování a segmentaci.
  • Ignorované logy a metriky: bez observability nelze řídit výkon ani bezpečnost.
  • Monolitické servery „na všechno“: oddělujte role, kontejnery nebo VM.

Závěr: od instalace k udržitelnému provozu

Instalace služby v Linuxu je pouze první krok. Udržitelný a bezpečný provoz vyžaduje standardizaci, automatizaci, nepřetržitou observabilitu, pravidelné aktualizace a disciplinované řízení přístupů. Důsledné dodržování osvědčených postupů snižuje rizika, zvyšuje dostupnost a umožňuje rychlejší doručení hodnoty pro uživatele i byznys.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *