
Praktičan vodič: kako izabrati Linux distribucije za server
Odabir prave Linux distribucije za server utiče na stabilnost servisa, sigurnost, brzinu nadogradnji i podršku za kontejnere i cloud. Ovaj vodič za Linux distribucije za server pomaže administratorima, DevOps inženjerima i studentima da razumeju ključne kriterijume, dobiju praktične komande za inicijalnu instalaciju i osnovni hardening, i pripreme se za konkretnu uporedbu popularnih distri.
Zašto izbor distribucije utiče na rad servera
Različite distribucije donose različite trade‑offove: neke su optimizovane za maksimalnu stabilnost i duži support (npr. Debian stable, RHEL-derived), dok druge nude najnoviji softver i brze inovacije (Fedora). Odabir utiče na:
- frekvenciju ažuriranja i održavanja;
- područje podrške i dostupnost paketa;
- bezbednosne mehanizme (SELinux, AppArmor);
- kompatibilnost sa cloud platformama i kontejnerima.
Cilj je naći balans između sigurnosti, održavanja i kompatibilnosti sa postojećom infrastrukturom.
Krucijalni kriterijumi za upoređivanje distribucija
Pre nego što pređemo na pojedinačne distribucije, definišemo kriterijume koje ćemo koristiti kroz vodič. Svaki kriterijum sadrži i praktične primere komandi gde je to primenjivo.
Stabilnost i model izdanja
Stabilnost podrazumeva koliko rijetko sistem prekida servis zbog nadogradnji ili promena API‑ja. Postoje dva glavna modela:
- Fixed/release‑based (npr. Debian stable, Ubuntu LTS, SUSE): duži ciklusi, konzervativna nadogradnja paketa.
- Rolling/latest (npr. Arch, OpenSUSE Tumbleweed, neke container‑optimized slike): stalne nadogradnje, brže nove verzije.
Paket‑menadžer i upravljanje paketima
Paket‑menadžer određuje kako se instaliraju, uklanjaju i ažuriraju softver i zavisnosti.
Primeri osnovnih komandi za ažuriranje i instalaciju OpenSSH servera (potreban je sudo ili root):
Debian/Ubuntu (apt):
sudo apt update
sudo apt install -y openssh-server
Objašnjenje: prvi red preuzima listu paketa, drugi instalira SSH server.
RHEL/CentOS/AlmaLinux/Rocky (dnf/yum):
sudo dnf update
sudo dnf install -y openssh-server
Objašnjenje: dnf izvršava ažuriranje i instalaciju; na starijim sistemima koristi se yum.
Sigurnosne funkcije: SELinux vs AppArmor
SELinux (Security-Enhanced Linux) i AppArmor su LSM (Linux Security Modules) koji pružaju mandatory access control. SELinux je default u RHEL‑derived i Fedora; AppArmor se koristi u Ubuntu. Preporuka: držati LSM uključenim i naučiti osnovne alate za diagnostiku (audit logs, sealert, aa-status).
U sledećem delu vodiča počinje detaljna uporedna analiza pojedinačnih distribucija: Ubuntu Server i Debian sa praktičnim primerima instalacije, osnovne konfiguracije i specifičnih bezbednosnih podešavanja.
Ubuntu Server i Debian: stabilnost, AppArmor, cloud‑prilagođenost i osnovni hardening
Ubuntu Server i Debian dele mnogo zajedničkog (Debian je upstream za Ubuntu), ali se razlikuju u modelu izdanja i pristupu podršci. Debian stable je izrazito konzervativan i idealan kada želite maksimum stabilnosti; Ubuntu LTS (long‑term support) daje balans — noviji kernel i paketi uz 5 godina podrške za LTS verzije.
- Model izdanja: Debian stable (spor, konzervativan); Ubuntu LTS (release‑based, duže podrške, više backporta).
- Paket‑menadžer: apt/dpkg — jednostavan za skripting i automaciju.
- Sigurnost: Ubuntu koristi AppArmor po defaultu; Debian može dolaziti sa AppArmor ili bez LSM aktiviranog u zavisnosti od instalacione opcije.
- Cloud i kontejnere: odlična podrška — službene cloud slike, cloud‑init, LXD (Ubuntu), Docker/Podman dostupni iz repoa.
Primeri tipičnih post‑install komandi (promenite “adminuser” i koristite sudo gde je potrebno):
# Osnovno ažuriranje i instalacija SSH i firewall
sudo apt update
sudo apt upgrade -y
sudo apt install -y openssh-server ufw fail2ban unattended-upgrades
# Kreiranje administrativnog naloga (Ubuntu/Debian)
sudo adduser adminuser
sudo usermod -aG sudo adminuser
# Onemogući root SSH i restartuj SSH daemon
sudo sed -i 's/^PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl restart ssh
# Uključi UFW i dozvoli samo potrebne servise
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# Proveri i aktiviraj AppArmor (Ubuntu)
sudo systemctl enable --now apparmor
sudo aa-status
# Omogući automatska bezbednosna ažuriranja
sudo dpkg-reconfigure --priority=low unattended-upgrades
Za dodatni hardening preporučuje se instalacija fail2ban (za zaštitu protiv brute‑force napada), ograničavanje pristupa putem SSH ključeva (Disable PasswordAuthentication u /etc/ssh/sshd_config), i konfiguracija audita. Ubuntu ima LXD kao jednostavno rešenje za višeslojnu izolaciju (snap instalacija):
sudo snap install --classic lxd
sudo lxd init
CentOS, AlmaLinux i Rocky: RHEL‑compatible ekosistem, SELinux i Podman
Nakon promene modela CentOS u CentOS Stream, zajednica je razvila AlmaLinux i Rocky Linux kao kompatibilne zamene za RHEL. Ove distribucije su pogodne za produkciju gde je prioritet stabilnost i binarna kompatibilnost sa ekosistemom RHEL.
- Model izdanja: release‑based sa dužim suport ciklusima (RHEL‑kompatibilno).
- Paket‑menadžer: dnf (prethodno yum) — robustan i sposoban za modularne tokove.
- Sigurnost: SELinux je po defaultu uključen i treba ga zadržati aktivnim; alatke kao sealert i ausearch su korisne za dijagnostiku.
- Cloud/kontejner: široka podrška na AWS/Azure/GCP; Podman se preporučuje umesto docker‑da (rootless opcije).
Klasične post‑install komande za RHEL‑derived sisteme (pokrenite kao root ili koristeći sudo):
# Ažuriranje i instalacija osnovnih alata
sudo dnf update -y
sudo dnf install -y openssh-server firewalld policycoreutils-python-utils
# Kreiranje admin korisnika i dozvola
sudo adduser adminuser
sudo passwd adminuser
sudo usermod -aG wheel adminuser
# Aktiviranje SSH i firewalld
sudo systemctl enable --now sshd
sudo systemctl enable --now firewalld
# Otvori neophodne portove
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
# Provera i postavljanje SELinux politke
sestatus
sudo setenforce 1
# Trajno promeni u /etc/selinux/config: SELINUX=enforcing
# Instaliraj Podman za kontejnere (rootless podrška)
sudo dnf install -y podman
Za rad sa SELinuxom često su potrebne dodatne paket‑alate (audit2allow, sepolicy). Ako aplicirate lokalne servise koji izazivaju SELinux greške, najbolje je prvo analizirati audit logove i dodati minimalna pravila umesto potpuno gašenje SELinux‑a. U produkciji RHEL‑derived distribucije često koriste automatske sigurnosne backporte i integraciju sa upravljačkim platformama — to ih čini pogodnim za enterprise okruženja.
Fedora Server — brzina inovacija sa enterprise‑funkcionalnostima
Fedora Server je mesto gde se nove tehnologije prvo testiraju u RHEL‑ekosistemu: moderan kernel, brže osvežavanje paketa i unapređene kontejnere. Po defaultu dolazi sa SELinuxom u enforcing modu i dnf kao paket‑menadžerom; Podman i Buildah su u fokusu za kontejner workflow bez demona.
Praktične komande (pokrenite sa sudo):
- Osnovno ažuriranje i instalacija: sudo dnf update -y && sudo dnf install -y openssh-server firewalld podman
- Uključivanje servisa: sudo systemctl enable –now sshd && sudo systemctl enable –now firewalld
- Provera SELinux stanja: sestatus (ako nije instalirano, sudo dnf install -y policycoreutils-python-utils)
Hardening i preporuke: držati SELinux u enforcing modu i koristiti ausearch/audit2allow za rešavanje problema, aktivirati firewalld sa ograničenim zonama, koristiti rootless Podman za izolaciju procesa i testirati nove pakete na staging okruženju pre produkcije zbog bržeg release ciklusa.
SUSE (openSUSE Leap / SLES) — alatke za enterprise upravljanje i YaST
SUSE nudi openSUSE Leap kao stabilniju, release‑based opciju i SLES (SUSE Linux Enterprise Server) za produkciju sa komercijalnom podrškom. Paket‑menadžer je zypper, a YaST pruža centralizovanu konfiguraciju; AppArmor je dugo bio standardni LSM u SUSE ekosistemu.
Praktične komande (pokrenite sa sudo):
- Osveženje repoa i ažuriranje: sudo zypper refresh && sudo zypper update -y
- Instalacija SSH i uključivanje servisa: sudo zypper install -y openssh && sudo systemctl enable –now sshd
- Uključivanje AppArmor i provera statusa: sudo systemctl enable –now apparmor && sudo aa-status
Hardening i preporuke: koristiti YaST za audit konfiguracija, aktivirati automatska sigurnosna ažuriranja gde je dostupno, primeniti AppArmor profile za sopstvene servise i integrisati SLES sa enterprise alatima (zypper patch, SMT/Proxy za veliki broj instanci).
Minimalne i container‑optimized opcije — immutable, lake i fokusirane na kontejnere
Za infrastrukturu fokusiranu na kontejnere i skaliranje najbolje su minimalne ili container‑optimized slike: primeri su Fedora CoreOS, Flatcar, Bottlerocket ili minimalne cloud slike Ubuntu/Debian. One imaju male attack surface, često immutable root filesystem i automatizovane mehanizme za bezbedna ažuriranja.
Tipični workflow i komande (lokalno ili kroz cloud userdata):
- Pokretanje kontejnera bez instalacije većeg tool‑seta: podman run -d –name app image:tag
- Konfiguracija putem cloud‑init ili Ignition (Fedora CoreOS/Flatcar) za bootstrap—postavite korisnike, SSH ključeve i mount tačke pri prvom startu
- Ažuriranja su često atomizovana (reboot‑to‑update) — planirajte maintenance windows i health checks u orchestratoru
Hardening i preporuke: minimizujte pokrenute servise, koristite read‑only root kada je moguće, oslonite se na orchestration (Kubernetes) za mrežnu politiku i RBAC, koristite image scanning pre deploy‑a i centralizujte logging/monitoring. Container‑optimized sisteme koristite kada je većinske usluge implementirane kao kontejeri i kada želite predvidljive, automatske nadogradnje.
Završne smernice za primenu i dalji rad
Odaberite radnju umesto da nastavljate sa neodlučnošću: testirajte minimalan skup opcija u kontrolisanom okruženju, definišite jasne kriterijume za stabilnost, sigurnost i podršku, pa zatim standardizujte jednu ili dve distribucije u organizaciji. Fokusirajte se na automatizaciju, monitoring i proces ažuriranja — distribucija olakšava, ali ne zamenjuje dobre operativne prakse.
- Postavite reproducibilne image‑e i IaC (Ansible/Terraform) koji implementiraju vašu sigurnosnu bazu (LSM, firewall, korisnička prava).
- Automatizujte patching i rollback mehanizme; testirajte nadogradnje u stagingu sa istim workload‑om kao u produkciji.
- Standardizujte logging, metrics i alerting (centralizovani ELK/Prometheus) — vidljivost je ključ brze reakcije.
- Imenujte odgovornosti i dokumentujte runbook‑ove za česte operacije (deploy, rollback, incident response).
- Ne isključujte LSM (SELinux/AppArmor) radi praktičnosti; umesto toga uložite vreme u razumevanje i fino podešavanje politika.
- Ako koristite container fleet, razmotrite container‑optimized OS za konzistentne, brze i sigurnije nadogradnje.
- Razmotrite komercijalnu podršku kada vam je pouzdanost poslovno kritična; to često opravdava trošak kroz skraćeno vreme rešavanja incidenata.
U konačnom izboru, manje je važno koju distribuciju odaberete koliko je važno kako ćete upravljati, automatizovati i nadgledati svoju infrastrukturu. Investirajte u procese, testiranje i obuku — to će najviše uticati na stabilnost i sigurnost vaših servera.
