# Slučajevi uz zadatak Z10.2 (tečaj VPS i upravljanje Linux poslužiteljem) Za svaki slučaj odaberite o kojoj je pogrešci riječ i koji je najbolji prvi korak. Sva imena i adrese su primjeri. **Pogreške (iz lekcije 10.2):** A. Prijava kao root s lozinkom B. Baza podataka, predmemorija ili klaster za pretraživanje otvoren prema internetu C. Docker API otvoren ili `docker.sock` u kontejneru D. `chmod 777` da biste se riješili poruke o pogrešci E. `curl ... | bash` i softver s bilo kojeg mjesta F. Nema ažuriranja ili ažuriranja "kasnije" G. Nema sigurnosne kopije ili sigurnosna kopija koja nikada nije testirana H. Administracijska ploča otvorena za sve, bez provjere u dva koraka I. Tajni podaci u Gitu ili u Vašoj compose datoteci J. "Samo na kratko" isključen vatrozid, sve kao root, bez bilješki --- **Slučaj 1.** Na `web1.example.com` u `compose.yaml` kod usluge `redis` stoji: `ports: - "6379:6379"`. `ufw status` prikazuje samo 22, 80 i 443. Skeniranje izvana pronalazi otvoren 6379. Prvi korak: (a) ponovno pokrenuti ufw (b) ukloniti pravilo za port ili ga promijeniti u `"127.0.0.1:6379:6379"` i ponovno `docker compose up -d` (c) Redisu dodijeliti drugi broj porta (d) ponovno pokrenuti poslužitelj **Slučaj 2.** Razvojni programer web aplikacije na `app.example.net` javlja da prijenosi datoteka nisu radili. On je to "riješio" i sada sve datoteke u `/var/www/app` imaju `-rwxrwxrwx`. Prvi korak: (a) ostaviti tako, sada radi (b) korisniku web poslužitelja dati prava pisanja samo na mapu za prijenose, a ostalo vratiti na 644/755 s drugim vlasnikom (c) pokretati web poslužitelj kao root (d) isključiti AppArmor **Slučaj 3.** Javni repozitorij od jučer sadrži datoteku `.env` s `MAIL_API_KEY=...` poslužitelja `web2.example.org`. Prvi korak: (a) ukloniti datoteku iz repozitorija (b) opozvati ključ kod usluge e-pošte i izraditi novi te staviti `.env` u `.gitignore` (c) preimenovati repozitorij (d) ne poduzimati ništa **Slučaj 4.** `sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"` daje `permitrootlogin yes` i `passwordauthentication yes`. U journalu se svake minute pojavljuju pokušaji prijave kao root. Prvi korak: (a) instalirati fail2ban i ništa više (b) postaviti ključ za običnog administratora sa sudo pravima, testirati ga, a zatim isključiti prijavu lozinkom i prijavu kao root s lozinkom (c) premjestiti SSH na port 2222 (d) spremiti root lozinku u tekstualnu datoteku **Slučaj 5.** `cat /etc/os-release` prikazuje izdanje Ubuntua čija je standardna podrška istekla prije tri godine, bez ESM-a. `apt list --upgradable` je prazan. Prvi korak: (a) biti zadovoljni, nema ažuriranja (b) planirati nadogradnju ili novi poslužitelj na podržanu LTS verziju, uz snimku stanja i sigurnosnu kopiju (c) ponovno instalirati unattended-upgrades (d) ponovno pokrenuti poslužitelj **Slučaj 6.** Kontejner `portainer` ima volumen `/var/run/docker.sock:/var/run/docker.sock` i dostupan je na `https://upravljanje.example.com` s lozinkom `admin123`, bez provjere u dva koraka. Odaberite pogrešku koja omogućuje najveću štetu ako netko pogodi lozinku. Prvi korak: (a) staviti ploču iza SSH tunela ili fiksne adrese te postaviti jaku lozinku s provjerom u dva koraka (b) ponovno pokrenuti kontejner (c) odabrati drugu poddomenu (d) ponovno instalirati Docker **Slučaj 7.** Nakon neuspjelog ažuriranja baze podataka pokazalo se da je jedina sigurnosna kopija snimka stanja stara dva mjeseca, na istoj pohrani kao i poslužitelj. Nitko nikada nije pokušao vraćanje. Prvi korak za budućnost: (a) izrađivati više snimki stanja (b) postaviti šifrirane sigurnosne kopije izvan poslužitelja (na primjer restic), uz nadzor i test vraćanja (c) nikada više ne ažurirati bazu podataka (d) drugi disk u istom poslužitelju **Slučaj 8.** Na poslužitelju se nalazi `/usr/local/bin/tool` i nepoznat izvor paketa `extra.list` s opcijom `[trusted=yes]`. Nitko ne zna odakle dolaze; prethodni administrator instalirao je "sve jednim retkom s neke web stranice". Prvi korak: (a) ostaviti tako, radi (b) istražiti što su izvor i program, isključiti izvor pomoću `trusted=yes` i ubuduće instalirati samo iz distribucije ili službenog izvora proizvođača pomoću `Signed-By` (c) ponovno pokrenuti poslužitelj (d) ukloniti sve pakete Za svaki slučaj upišite: pogrešku (A-J) i prvi korak (a-d).