# Primeri k nalogi Z10.2 (tečaj VPS in upravljanje strežnika Linux) Za vsak primer izberite, za katero napako gre in kateri je najboljši prvi korak. Vsa imena in naslovi so primeri. **Napake (iz lekcije 10.2):** A. Prijava kot root z geslom B. Podatkovna baza, predpomnilnik ali iskalna gruča, odprta proti internetu C. Odprt Docker API ali `docker.sock` v vsebniku D. `chmod 777`, da bi se znebili sporočila o napaki E. `curl ... | bash` in programska oprema od kjerkoli F. Brez posodobitev ali posodobitve "pozneje" G. Brez varnostne kopije ali varnostna kopija, ki ni bila nikoli preizkušena H. Skrbniška plošča, odprta za vse, brez dvostopenjskega preverjanja I. Skrivnosti v Gitu ali v Vaši datoteki compose J. "Na hitro" izklopljen požarni zid, vse kot root, brez zapiskov --- **Primer 1.** Na `web1.example.com` je v `compose.yaml` pri storitvi `redis` zapisano: `ports: - "6379:6379"`. `ufw status` prikazuje samo 22, 80 in 443. Pregled od zunaj najde odprta vrata 6379. Prvi korak: (a) znova zagnati ufw (b) odstraniti pravilo za vrata ali ga spremeniti v `"127.0.0.1:6379:6379"` in znova `docker compose up -d` (c) Redisu dodeliti drugo številko vrat (d) znova zagnati strežnik **Primer 2.** Razvijalec spletne aplikacije na `app.example.net` sporoča, da nalaganje datotek ni delovalo. Težavo je "rešil" in zdaj imajo vse datoteke v `/var/www/app` nastavitev `-rwxrwxrwx`. Prvi korak: (a) pustiti tako, zdaj deluje (b) uporabniku spletnega strežnika dati pravico pisanja samo v mapo za nalaganje, ostalo vrniti na 644/755 z drugim lastnikom (c) zagnati spletni strežnik kot root (d) izklopiti AppArmor **Primer 3.** Javni repozitorij od včeraj vsebuje datoteko `.env` z `MAIL_API_KEY=...` strežnika `web2.example.org`. Prvi korak: (a) odstraniti datoteko iz repozitorija (b) preklicati ključ pri poštni storitvi in ustvariti novega ter `.env` vpisati v `.gitignore` (c) preimenovati repozitorij (d) ne storiti ničesar **Primer 4.** `sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"` vrne `permitrootlogin yes` in `passwordauthentication yes`. V dnevniku journal so vsako minuto poskusi prijave kot root. Prvi korak: (a) namestiti fail2ban in nič drugega (b) namestiti ključ za navadnega skrbnika s sudo, ga preizkusiti in nato izklopiti prijavo z geslom in prijavo kot root z geslom (c) prestaviti SSH na vrata 2222 (d) shraniti geslo za root v besedilno datoteko **Primer 5.** `cat /etc/os-release` prikazuje izdajo Ubuntu, katere standardna podpora se je končala pred tremi leti, brez ESM. `apt list --upgradable` je prazen. Prvi korak: (a) biti vesel, saj ni posodobitev (b) načrtovati nadgradnjo ali nov strežnik s podprto različico LTS, s posnetkom stanja in varnostno kopijo (c) znova namestiti unattended-upgrades (d) znova zagnati strežnik **Primer 6.** Vsebnik `portainer` ima nosilec `/var/run/docker.sock:/var/run/docker.sock` in je dosegljiv na `https://beheer.example.com` z geslom `admin123`, brez dvostopenjskega preverjanja. Izberite napako, ki omogoča največjo škodo, če nekdo ugane geslo. Prvi korak: (a) postaviti ploščo za tunel SSH ali fiksni naslov ter nastaviti močno geslo z dvostopenjskim preverjanjem (b) znova zagnati vsebnik (c) izbrati drugo poddomeno (d) znova namestiti Docker **Primer 7.** Po neuspeli posodobitvi podatkovne baze se izkaže, da je edina varnostna kopija dva meseca star posnetek stanja na isti shrambi kot strežnik. Nihče ni nikoli poskusil obnovitve. Prvi korak za prihodnost: (a) ustvariti več posnetkov stanja (b) urediti šifrirane varnostne kopije zunaj strežnika (na primer restic) z nadzorom in preizkusom obnovitve (c) podatkovne baze nikoli več ne posodobiti (d) drugi disk v istem strežniku **Primer 8.** Na strežniku sta `/usr/local/bin/tool` in neznan vir paketov `extra.list` z možnostjo `[trusted=yes]`. Nihče ne ve, od kod sta; prejšnji skrbnik je nameščal "vse z eno vrstico s spletne strani". Prvi korak: (a) pustiti, deluje (b) ugotoviti, kaj sta vir in program, izklopiti vir z `trusted=yes` in nameščati samo še iz distribucije ali uradnega vira izdelovalca z `Signed-By` (c) znova zagnati strežnik (d) odstraniti vse pakete Za vsak primer vpišite: napako (A-J) in prvi korak (a-d).