# Indledning Eksperimenter
Sikkerhed er en af de ting, der er bedst udført i lag. [[Defense in Depth]], kalder vi det. Så på ethvert virksomhedsnetværk finder du en firewall-enhed, der adskiller internettet fra den demilitariserede zone (DMZ), hvor dine internetvendte servere placeres. Du vil også kunne finde en firewall-enhed mellem DMZ og det interne LAN samt firewall-software installeret på hver enkelt server og klient. Vi ønsker at gøre det så svært som muligt for en fjendtlig indtrængere at nå deres endelige destinationer inden for vores netværk.
## Table Of Contents
- [[#Firewall default?|Firewall default?]]
- [[#Firewall default?#Spørgsmål til reflektion|Spørgsmål til reflektion]]
- [[#iptables basic|iptables basic]]
- [[#iptables basic#Nærmere inspektion af Ubuntu VM|Nærmere inspektion af Ubuntu VM]]
## Firewall default?
Interessant nok kommer kun SUSE-distributionerne og [[Red Hat Linux]] type-distributionerne med firewalld allerede opsat og aktiveret blandt de større Linux-distributioner. Når du kigger på din Ubuntu-virtuelle maskine, vil du se, at den er vidt åben, som om den byder enhver potentiel indtrænger velkommen.
Du kan jo afprøve det selv ved at finde den nyeste SUSE distribution via [[DistroWatch.com]] og installere den i dit miljø. Jeg har i mit miljø installeret en openSUSE Leap 15.5 Server uden GUI og den velkendte Ubuntu 22.04 LTS som vi har brugt et par gange nu efterhånden.
Jeg kan på begge maskiner udlæse operativ systemet ved følgende kommando:
```bash
cat /etc/os-release
```
![[Pasted image 20231125230355.png]]
![[Pasted image 20231125230548.png]]
Jeg har begge de to ovennævnte maskiner installeret i mit test miljø bag min OPNsense altså på LAN siden.
![[M8_EKSP_firewall_topologi.png]]
Jeg starter med at vil kontrollere status på min firewall på openSUSE maskinen, da denne distribution gør brug firewalld kan vi bruge følgende kommando til at undersøge dens status:
```bash
systemctl status firewalld
```
![[Pasted image 20231125231510.png]]
Flere Linux-distributioner benytter `firewalld` som standard firewall management værktøj. Blandt dem er:
1. **Fedora:** Fedora har benyttet `firewalld` som standard firewall værktøj i nogen tid. Fedora er kendt for at integrere og vedligeholde nyere teknologier, og `firewalld` er en del af denne tilgang.
2. **Red Hat Enterprise Linux (RHEL):** Red Hat, en førende leverandør af kommerciel Linux og Fedora's upstream sponsor, implementerer også `firewalld` som standard i RHEL-distributionen.
3. **CentOS:** Da CentOS er en open-source klon af Red Hat Enterprise Linux, deler den ofte de samme funktioner og værktøjer, herunder brugen af `firewalld`.
Bemærk, at distributionsudviklere kan ændre deres strategi og standardværktøjer over tid, så det er altid en god idé at kontrollere den nyeste dokumentation for den specifikke distribution, du arbejder med.
Ubuntu bruger ikke `firewalld` så derfor før jeg følgende output
![[Pasted image 20231125232641.png]]
Ubuntu bruger ikke `firewalld` som standard firewall management værktøj, men i stedet anvender `ufw` (Uncomplicated Firewall) som standard firewall-løsning. Årsagen til, at Ubuntu har valgt `ufw` i stedet for `firewalld`, kan skyldes forskellige designfilosofier og beslutninger i udviklerfællesskabet.
Så jeg prøver med:
```bash
systemctl status ufw
```
![[Pasted image 20231125232834.png]]
Jeg kan rigtig nok se, at den er ikke aktiveret default ved installation:
![[Pasted image 20231125232938.png]]
### Spørgsmål til reflektion
>[!question]- Diskussion i gruppe eller enkeltvis reflektion
>Ubuntu adskiller sig fra visse andre Linux-distributioner som Red Hat og openSUSE ved ikke at aktivere firewallen som standard ved installation. Dette valg rejser spørgsmål om sikkerhedsstrategi og designfilosofi. Lad os udforske nogle af de overvejelser, der muligvis har ledt til denne beslutning.
**Diskussionsspørgsmål:**
>1. **Principper om IT-sikkerhed:** _Hvad er de grundlæggende principper for IT-sikkerhed, og hvordan kan de anvendes på beslutningen om at aktivere eller deaktivere firewall som standard?_
>2. **CIA-triaden:** _Hvordan relaterer principperne i CIA-triaden (Fortrolighed, Integritet, Tilgængelighed) til beslutningen om firewall-aktivering? Hvordan kan en aktiv eller inaktiv firewall påvirke disse principper?_
>3. **Brugervenlighed vs. Sikkerhed:** _Hvordan påvirker aktivering eller deaktivering af firewall brugervenligheden for en ny Ubuntu-installation? Hvad er potentielle sikkerhedsfordele eller ulemper ved denne tilgang_
>4. **Standardkonfigurationer og Risikovurdering:** _Hvordan kan standardkonfigurationen af en firewall påvirke systemets sikkerhed? Hvad er fordele og ulemper ved at have en firewall, der er slået til som standard i forhold til at kræve brugerintervention?_
>5. **Sammenligning med Andre Distributioner:**_Hvordan sammenligner Ubuntu's tilgang til firewall med andre distributioner som Red Hat og openSUSE? Hvilke sikkerhedsmæssige og brugervenlige overvejelser kan være involveret?_
>
**Afrunding:**
Denne diskussion opfordrer til at tænke kritisk på, hvordan IT-sikkerhedsprincipper og designvalg i operativsystemer påvirker systemernes overordnede sikkerhed. Det er afgørende for en it-sikkerehds specialist at reflektere over, hvordan forskellige distributioner prioriterer brugervenlighed og sikkerhed, og hvilke implikationer dette kan have for både erfarne og nye brugere.
>[!success]- Mulige forslag til svar på ovennævnte spørgsmål
>**Principper om IT-sikkerhed:** _Svar: Principperne for IT-sikkerhed omfatter Fortrolighed, Integritet og Tilgængelighed. Når det kommer til firewall-aktivering, kan det ses som en del af integritets- og tilgængelighedsprincipperne. Aktivering af firewall understreger integriteten af systemet ved at beskytte det mod uautoriseret adgang og sikrer tilgængelighed ved at minimere risikoen for nedbrud forårsaget af sikkerhedsbrud._
>**CIA-triaden:** _Svar: CIA-triaden relaterer sig direkte til firewall-beslutningen. Aktivering af firewall understreger fortrolighed ved at begrænse adgangen til systemet, sikrer integritet ved at forhindre uautoriseret ændring af data og bevarer tilgængeligheden ved at modstå nedbrud forårsaget af ondsindede aktiviteter._
>**Brugervenlighed vs. Sikkerhed:** _Svar: Aktivering af firewall som standard kan øge sikkerheden ved at give en grundlæggende beskyttelse uden behov for brugerintervention. Dog kan dette også opleves som mindre brugervenligt, da det potentielt kan skabe forhindringer for brugere, der ikke er fortrolige med firewall-konfiguration. Deaktivering som standard kan gøre installationen mere brugervenlig men kræver, at brugeren træffer aktive beslutninger om sikkerhedsindstillinger_
>**Standardkonfigurationer og Risikovurdering:** _Svar: Standardkonfigurationen af en firewall kan påvirke systemets sikkerhed ved at minimere angrebsoverfladen og beskytte mod kendte trusler. Dog afhænger det af, hvordan firewallen er konfigureret. En dårligt konfigureret firewall kan skabe en falsk følelse af sikkerhed. Risikovurdering bør overveje den faktiske konfiguration og behovet for tilpasning._
>**Sammenligning med Andre Distributioner:** _Svar: Sammenlignet med Red Hat og openSUSE vælger Ubuntu en mere tilbageholdende tilgang ved ikke at aktivere firewall som standard. Dette kan afspejle forskellige vurderinger af risici og prioriteringer mellem brugervenlighed og sikkerhed. Red Hat og openSUSEs beslutning om at have en aktiv firewall som standard kan skyldes et ønske om at styrke sikkerheden ud af boksen, mens Ubuntu måske prioriterer en mere åben og brugervenlig tilgang._
## iptables basic
**Iptables:** Iptables er et kraftfuldt værktøj til styring af netværkspakker på Linux-systemer. Det fungerer som en firewall ved at tillade eller blokere datatransmission baseret på brugerdefinerede regler. Iptables giver avanceret kontrol over netværkstrafik og er en integreret del af Linux-netværksstakken.
**Standard på Ubuntu:** På Ubuntu er iptables standard firewall management-værktøjet. Dette betyder, at når du installerer Ubuntu, får du allerede adgang til iptables til at konfigurere netværksregler og styrke sikkerheden på dit system. Iptables giver en effektiv måde at administrere indkommende og udgående trafik, samt oprette komplekse regelsæt for forskellige netværksscenarier.
Selvom Ubuntu også bruger andre værktøjer som `ufw` (Uncomplicated Firewall) som en brugervenlig frontend til iptables, er iptables selv det underliggende værktøj, der udfører de faktiske firewall-operationer på systemet.
Brugen af iptables på Ubuntu giver brugerne mulighed for at finjustere netværkssikkerheden og opfylde specifikke krav baseret på deres system- og netværkskonfigurationer.
Iptables organiserer regler i fem forskellige tabeller, hver med sit eget specifikke formål. Her er en kort oversigt over de fem iptables-tabeller:
**Filter Table:**
Denne tabel er standard og bruges primært til filtrering af netværkstrafik. Reglerne i filtertabellen bestemmer, om en pakke skal accepteres, droppes eller afvises. Denne tabel bruges ofte til at oprette grundlæggende firewall-regler.
**NAT (Network Address Translation) Table:**
NAT-tabellen bruges til at ændre netværksadresser og porte i pakker, når de passerer gennem systemet. Dette er nyttigt i situationer som deling af internetforbindelse og oprettelse af netværksadressetranslationer.
**Mangle Table:**
Mangle-tabellen bruges til at ændre specifikke attributter ved pakker, såsom TOS (Type of Service) og TTL (Time to Live). Dette giver mere avanceret kontrol over, hvordan pakker behandles på netværket.
**Raw Table:**
Raw-tabellen bruges normalt meget sjældent. Den giver mulighed for at konfigurere specielle regler for behandling af pakker, inden de gennemgår forudgående forarbejdning af forbindelsessporing og andre tabeller
**Security Table:**
Security-tabellen, også kendt som SELinux (Security-Enhanced Linux) eller AppArmor på visse systemer, bruges til at implementere sikkerhedskontrol på pakkeniveau. Dette giver ekstra beskyttelse ved at specificere tilladelser baseret på applikationsadfærd.
Hver tabel tjener et specifikt formål og indeholder sine egne regelsæt. Når du opretter iptables-regler, skal du vælge den relevante tabel baseret på den ønskede funktionalitet. Samlet set giver dette organisatoriske system en kraftig mekanisme til at styre netværkstrafik på Linux-systemer.
### Nærmere inspektion af Ubuntu VM
Lad os kigge konfigurationen
```bash
sudo iptables -L
```
![[Pasted image 20231126003743.png]]
Som vi kan se er der ingen regler og derfor heller ikke default beskyttelse
Vi kunne jo prøve fra vores Kali Linux og lave en simpel scan via nmap
```bash
nmap 10.10.0.104
```
![[Pasted image 20231126005613.png]]
Se scan af min openSUSE VM her: [[#Nmap scan af openSUSE]]
Nu vil jeg så prøve at slå `ufw` til og den vej igennem aktivere firewall på min ubuntu maskine. Da jeg er forbundet til VM'en via SSH fra en anden maskine (kali) skal jeg selvfølgelig huske at tilføje en regel som tillader trafik på port 22 TCP som jeg er default port for SSH.
```bash
sudo ufw allow 22
```
Herefter vil jeg forsøge at aktivere firewall med kommandoen `sudo ufw enable`
![[Pasted image 20231126010149.png]]
![[Pasted image 20231126010235.png]]
Lad os prøve den samme nmap scanning igen `nmap 10.10.0.104` nu får jeg pludselig et andet output:
![[Pasted image 20231126010420.png]]
Som der bliver foreslået prøver jeg option `-Pn`
![[Pasted image 20231126010527.png]]
>[!question] Spørgsmål til nmap option
> I ovenstående eksempel bruger vi option `-Pn` men hvad betyder det?
> Hvad er formålet med `-Pn`-optionen i Nmap?
> Hvornår og hvorfor ville du overveje at bruge denne option under en netværksafskanning?
> Beskriv kort, hvordan `-Pn`-optionen påvirker Nmap's adfærd.
> **Mulige svarpunkter:**
> 1. Hvordan `-Pn` deaktiverer host discovery-mekanismen i Nmap.
> 2. Hvornår det kan være nyttigt at bruge `-Pn` i scenarier, hvor host discovery mislykkes.
> 3. Hvordan denne option kan anvendes i tilfælde, hvor målsystemer ikke reagerer korrekt på standard host discovery-sonderinger.
> 4. Begrænsninger og potentielle risici ved at deaktivere host discovery med `-Pn`.
> 5. Hvordan kombinationen af `-Pn` med andre Nmap-optioner kan tilpasse afskanningsadfærd i komplekse netværksmiljøer.
## Nmap scan af openSUSE
Uden at vi har foretaget noget ved installationen af openSUSE VM'en prøver vi at udføre samme scanning med Nmap som vores scan mod Ubuntu VM'en. Dette giver os følgende resultat:
![[Pasted image 20231129133536.png]]
## Block af ping (icmp echo request) Ubuntu vm
I vores LAN er det muligt at pinge Ubuntu-01 fra kali-01
![[Pasted image 20231203020638.png]]
Hvis jeg ønsker at fjerne den mulighed for at pinge min Ubuntu Vm er der nogle overvejelser jeg skal foretage.
### Sikkerhedsmæssige Overvejelser:
- Mindre Overflade for Netværksangreb:
- Blokering af ping reducerer den tilgængelige angrebsflade. Potentielle angribere kan ikke længere bruge ping som en metode til at afgøre, om en maskine er aktiv og potentielt sårbar.
- Skjul Identitet:
- Blokering af ping kan bidrage til at skjule eller minimere eksponeringen af dit netværk ved at undlade at reagere på ping-anmodninger. Dette kan gøre det sværere for angribere at kortlægge netværket.
### Funktionalitetsmæssige Overvejelser:
- Netværksdiagnosticering:
- Blokering af ping gør det vanskeligere at udføre nogle former for netværksdiagnosticering og fejlsøgning. [[ICMP - ping]] bruges ofte til at kontrollere netværksforbindelser og teste forsinkelser.
- Overvågning og Fejlsøgning:
- Nogle overvågningsværktøjer og administrationsværktøjer kan bruge ping til at overvåge maskiners tilgængelighed. Blokering af ping kan gøre det sværere at opdage problemer eller fejl i netværket.
- Mulige Hindringer for Protokoller:
- Nogle protokoller og applikationer kan bruge [[ICMP - ping]] til at fungere korrekt. Blokering af ping kan således føre til unødvendige problemer eller forsinkelser for disse applikationer.