# đď¸ Daglig check-in â Hold øje med din server
> [!info] Dette er ikke en formel rapport
> I behøver ikke skrive en struktureret opgave eller følge et bestemt format.
> Skriv bare hvad I har **set og bemĂŚrket** siden sidst â som om I fortalte det til en kollega ved kaffemaskinen.
> To til fem sĂŚtninger er fint. Det vigtige er at I faktisk logger ind og kigger.
---
## Hvad skal I gøre?
Log ind pĂĽ jeres server og kig i `auth.log`. Brug de kommandoer I allerede kender:
**Hurtig status â hvad er sket de seneste timer?**
```bash
tail -50 /var/log/auth.log
```
I skulle gerne kunne finde jer egen login pü følgende müde
```bash
grep "Accepted publickey" /var/log/auth.log | tail -30
```
En rigtig god ide lige at lave en kontrol af at det stemmer overens med de IP adresser i har kendskab til, altsĂĽ jeres egen respektive IP og fx. skolens IP adresse hvis I logger ind fra EDU netvĂŚrket.
**FiltrÊr for mislykkede forsøg:**
```bash
grep "Invalid user" /var/log/auth.log | tail -30
```
**TÌl hvor mange unikke IP-adresser der har forsøgt sig:**
```bash
grep "Invalid user" /var/log/auth.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -10
```
Er der en IP adresse der er sĂŚrlig aktiv?
---
## đ Ekstraopgave â bryd kommandoen ned
Ovenstüende kommando er et godt eksempel pü hvordan man i Linux kan kÌde (pipe) simple vÌrktøjer sammen til noget kraftfuldt. Prøv at forstü hvad hvert enkelt led gør:
```
grep "Invalid user" /var/log/auth.log | awk '{print $7}' | sort | uniq -c | sort -rn | head -10
[1] [2] [3] [4] [5] [6] [7]
```
En linje i `auth.log` ser sĂĽdan ud â lĂŚg mĂŚrke til at hvert ord er et felt:
```
2026-02-25T10:07:11.522664+00:00 ubuntu-1cpu-1gb-dk-cph1 sshd[18751]: Invalid user guest from 91.202.233.33 port 28006
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13
```
**SpørgsmĂĽl â diskutĂŠr og svar:**
**1.** Hvad gør hvert led i kommandoen? Udfyld tabellen:
| Led | Kommando | Hvad gør den? |
| --- | --------------------- | ------------- |
| 1 | `grep "Invalid user"` | |
| 2 | `/var/log/auth.log` | |
| 3 | `awk '{print $7}'` | |
| 4 | `sort` | |
| 5 | `uniq -c` | |
| 6 | `sort -rn` | |
| 7 | `head -10` | |
**2.** Kommandoen bruger `$7` til at udtrÌkke IP-adressen. Hvilket felt-nummer (`$?`) skal du bruge for at udtrÌkke **brugernavnet** i stedet? Prøv det af og verificÊr at du für det rigtige ud.
> [!tip]- Hint
> Kig pĂĽ feltinddelingen i eksemplet ovenfor. Brugernavnet er `$6`.
```bash
sudo grep "Invalid user" /var/log/auth.log | awk '{print $?}' | sort | uniq -c | sort -rn | head -10
```
**3.** Hvad skal der **ĂŚndres eller tilføjes** i kommandoen for at fĂĽ en **sammentĂŚlling af brugernavne** â altsĂĽ en liste over hvilke brugernavne der er forsøgt flest gange? Skriv den fĂŚrdige kommando i din korte observationsrapport
**4.** Hvad fortĂŚller en sammentĂŚlling af brugernavne dig som sikkerhedsansvarlig â som en sammentĂŚlling af IP-adresser ikke gør?
---
## Hvad skal I rapportere?
Skriv jeres observationer i **Canvas-grupperummet** â kort og uformelt.
Prøv at svare pü disse spørgsmül hvis I kan:
- Har der vÌret forsøg pü login siden sidst?
- Hvilke brugernavne er forsøgt â er der noget der skiller sig ud?
- Fra hvilke IP-adresser? Er der ĂŠn der gĂĽr igen?
- Er der noget der virker anderledes eller mĂŚrkeligt end hvad I forventer?
---
> [!tip] Husk
> I behøver ikke kende svaret pĂĽ alt. Hvis I ser noget I ikke forstĂĽr â skriv det ned alligevel. Det er prĂŚcis sĂĽdan rigtig sikkerhedsovervĂĽgning fungerer: man logger hvad man ser, ogsĂĽ selv om man ikke ved hvad det betyder endnu.
---
> [!example] Eksempel pĂĽ en god check-in (uformel stil)
> *"Vi loggede ind kl. 10:30. Der har vĂŚret ca. 40 mislykkede loginforsøg siden i gĂĽr â primĂŚrt pĂĽ brugernavne som root og admin. Ăn IP dukker op rigtig mange gange: `176.120.22.13`
> Vi ved ikke hvem det er endnu. Ellers intet nyt."*
## Overførsel af logdata fra server til klient
Hvis vi har brug for at analysere vores logdata, kan det vÌre en fordel at hente dem ned pü en lokal maskine og foretage analysen der. Det er god praksis af to grunde: vi undgür unødvendig ressourcebelastning pü produktionsserveren, og vi sikrer bevismateriale til en eventuel efterforskning ved at have en lokal kopi der ikke kan manipuleres fra serveren.
Vi starter med at danne os et overblik over `auth.log`-filens størrelse. Kommandoen `wc` (_word count_) kan tĂŚlle linjer, ord og tegn i en fil â med flaget `-l` tĂŚller den udelukkende linjer:
```bash
wc -l /var/log/auth.log ```
```
Output vil se nogenlunde sĂĽdan ud:
```bash
37039 /var/log/auth.log
```
Der er altsĂĽ pt. 37.039 linjer i logfilen â det svarer til 37.039 registrerede hĂŚndelser siden serveren blev sat op.
Da vi allerede har opsat et SSH-nøglepar og har adgang til serveren, kan vi benytte **SFTP** (_SSH File Transfer Protocol_) til at overføre filen. SFTP kører over den samme krypterede SSH-forbindelse vi allerede bruger, sü vi behøver ikke konfigurere noget nyt.
**Opret forbindelse til serveren via SFTP:**
```bash
sftp ubuntu@<IP-ADRESSE>
```
Nür forbindelsen er oprettet, skifter prompten til `sftp>`. Du er nu i en interaktiv filoverførsels-session.
Hent filen ned til din lokale maskine:
```bash
sftp> get auth.log
```
Filen gemmes i den mappe du stod i pĂĽ din lokale maskine da du startede SFTP-sessionen â typisk din hjemmemappe.
**Afslut sessionen:**
```bash
sftp> exit
```
![[WindowsTerminal_20Gc9zOQWO.gif]]
>[!tip] Hent i one-liner
>Vil du hente filen i Ên kommando uden interaktiv session? Det kan gøres direkte fra din lokale terminal uden at übne en SFTP-session:
>```bash
>sftp ubuntu@<IP-ADRESSE>:/var/log/auth.log ./auth.log
>```
![[WindowsTerminal_5DQhKje1r5.gif]]
---
Vi samler op i klassen
HH-out