# Fall till uppgift Z10.2 (kursen VPS och Linux-serveradministration) Välj för varje fall vilket fel det är och vad som är det bästa första steget. Alla namn och adresser är exempel. **Fel (från lektion 10.2):** A. Root-inloggning med lösenord B. En databas, cache eller sökkluster öppen mot internet C. Docker-API:t öppet eller `docker.sock` i en container D. `chmod 777` för att bli av med ett felmeddelande E. `curl ... | bash` och programvara från var som helst F. Inga uppdateringar, eller uppdateringar "senare" G. Ingen säkerhetskopia, eller en säkerhetskopia som aldrig har testats H. Adminpanel öppen för alla, utan tvåstegsverifiering I. Hemligheter i Git eller i din compose-fil J. "Bara snabbt" stänga av brandväggen, allt som root, inga anteckningar --- **Fall 1.** På `web1.example.com` står det i `compose.yaml` vid tjänsten `redis`: `ports: - "6379:6379"`. `ufw status` visar bara 22, 80 och 443. En skanning utifrån hittar 6379 öppen. Första steget: (a) starta om ufw (b) ta bort portregeln eller ändra den till `"127.0.0.1:6379:6379"` och köra `docker compose up -d` igen (c) ge Redis ett annat portnummer (d) starta om servern **Fall 2.** Utvecklaren av en webbapplikation på `app.example.net` rapporterar att uppladdningarna inte fungerade. Han har "löst" det och nu har alla filer i `/var/www/app` `-rwxrwxrwx`. Första steget: (a) låta det vara, det fungerar nu (b) ge webbserveranvändaren skrivrättigheter endast till uppladdningsmappen, resten tillbaka till 644/755 med en annan ägare (c) köra webbservern som root (d) stänga av AppArmor **Fall 3.** Ett publikt repository innehåller sedan i går en fil `.env` med `MAIL_API_KEY=...` från servern `web2.example.org`. Första steget: (a) ta bort filen från repositoryt (b) återkalla nyckeln hos e-posttjänsten och skapa en ny, och lägga `.env` i `.gitignore` (c) byta namn på repositoryt (d) inte göra något **Fall 4.** `sudo sshd -T | grep -E "permitrootlogin|passwordauthentication"` ger `permitrootlogin yes` och `passwordauthentication yes`. I journalen finns det försök mot root varje minut. Första steget: (a) installera fail2ban och inget mer (b) lägga in en nyckel för en vanlig administratör med sudo, testa, och sedan stänga av lösenordsinloggning och root-inloggning med lösenord (c) flytta SSH till port 2222 (d) spara root-lösenordet i en textfil **Fall 5.** `cat /etc/os-release` visar en Ubuntu-version vars standardsupport tog slut för tre år sedan, utan ESM. `apt list --upgradable` är tom. Första steget: (a) vara glad, det finns inga uppdateringar (b) planera en uppgradering eller en ny server med en LTS som stöds, med snapshot och säkerhetskopia (c) installera om unattended-upgrades (d) starta om servern **Fall 6.** En container `portainer` har volymen `/var/run/docker.sock:/var/run/docker.sock` och nås på `https://beheer.example.com` med lösenordet `admin123`, utan tvåstegsverifiering. Välj det fel som möjliggör störst skada om lösenordet gissas. Första steget: (a) lägga panelen bakom en SSH-tunnel eller en fast adress och ställa in ett starkt lösenord med tvåstegsverifiering (b) starta om containern (c) välja en annan subdomän (d) installera om Docker **Fall 7.** Efter en misslyckad uppdatering av databasen visar det sig att den enda säkerhetskopian är en två månader gammal snapshot, på samma lagring som servern. Ingen har någonsin provat att återställa. Första steget för framtiden: (a) ta fler snapshots (b) sätta upp krypterade säkerhetskopior utanför servern (till exempel restic), med övervakning och ett återställningstest (c) aldrig mer uppdatera databasen (d) en andra disk i samma server **Fall 8.** På servern finns `/usr/local/bin/tool` och en okänd paketkälla `extra.list` med alternativet `[trusted=yes]`. Ingen vet var de kommer ifrån; den förra administratören installerade "allt med en rad från en webbplats". Första steget: (a) låta det vara, det fungerar (b) ta reda på vad källan och programmet är, stänga av källan med `trusted=yes` och från och med nu bara installera från distributionen eller tillverkarens officiella källa med `Signed-By` (c) starta om servern (d) ta bort alla paket Fyll i för varje fall: fel (A-J) och första steg (a-d).