Brannmur i Linux
Lær hvordan du konfigurerer og administrerer brannmuren i Linux med UFW
Hva er UFW?
UFW (Uncomplicated Firewall) er et brukervennlig grensesnitt for iptables som gjør det enkelt å konfigurere en brannmur i Linux.
Grunnleggende UFW-kommandoer
# Sjekk status
sudo ufw status
# Aktiver brannmur
sudo ufw enable
# Tillat SSH (port 22)
sudo ufw allow 22/tcp
# Tillat HTTP (port 80)
sudo ufw allow 80/tcp
Tips
Husk å alltid tillate SSH-tilgang før du aktiverer brannmuren hvis du administrerer serveren eksternt!
Om UFW
UFW (Uncomplicated Firewall) er en brukervennlig brannmur for Ubuntu. Den er et forenklet grensesnitt til iptables, som gjør det enkelt å:
- Kontrollere innkommende og utgående trafikk
- Definere regler for hvilke tjenester som skal være tilgjengelige
- Beskytte serveren mot uautorisert tilgang
Installasjon og grunnleggende oppsett
Først må vi sjekke om UFW er installert og aktivert:
$ sudo ufw status
Status: inactive
$ sudo apt update
Hit:1 http://no.archive.ubuntu.com/ubuntu jammy InRelease
Get:2 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
[...]
Reading package lists... Done
$ sudo apt install ufw
Reading package lists... Done
Building dependency tree... Done
ufw is already the newest version (0.36.1-4build1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Før vi aktiverer brannmuren, må vi sette opp grunnleggende regler for å unngå å bli låst ute:
$ sudo ufw default deny incoming
Default incoming policy changed to 'deny'
$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'
$ sudo ufw allow ssh
Rule added
Rule added (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
-- ------ ----
22/tcp ALLOW IN Anywhere
22/tcp (v6) ALLOW IN Anywhere (v6)
Administrere brannmurregler
Her er hvordan du legger til og fjerner regler for vanlige tjenester:
$ sudo ufw allow http
Rule added
Rule added (v6)
$ sudo ufw allow https
Rule added
Rule added (v6)
$ sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 443/tcp ALLOW IN Anywhere
[ 4] 22/tcp (v6) ALLOW IN Anywhere (v6)
[ 5] 80/tcp (v6) ALLOW IN Anywhere (v6)
[ 6] 443/tcp (v6) ALLOW IN Anywhere (v6)
$ sudo ufw delete 2
Deleting:
allow 80/tcp
Proceed with operation (y|n)? y
Rule deleted
For å begrense tilgang til spesifikke IP-adresser eller nettverk:
$ sudo ufw allow from 192.168.1.100 to any port 3306
Rule added
$ sudo ufw allow from 192.168.1.0/24 to any port 3306
Rule added
$ sudo ufw status | grep 3306
3306 ALLOW IN 192.168.1.100
3306 ALLOW IN 192.168.1.0/24
Avanserte innstillinger
For å beskytte mot brute-force angrep kan vi bruke rate limiting:
$ sudo ufw limit ssh
Rule updated
Rule updated (v6)
$ sudo ufw status verbose | grep ssh
22/tcp (SSH) LIMIT IN Anywhere
22/tcp (SSH (v6)) LIMIT IN Anywhere (v6)
For å tillate porter i et spesifikt område:
$ sudo ufw allow 3000:3010/tcp
Rule added
Rule added (v6)
$ sudo ufw status | grep 3000:3010
3000:3010/tcp ALLOW IN Anywhere
3000:3010/tcp (v6) ALLOW IN Anywhere (v6)
Feilsøking og logging
For å aktivere logging og se blokkerte tilkoblingsforsøk:
$ sudo ufw logging on
Logging enabled
$ sudo tail -f /var/log/ufw.log
Feb 12 05:45:23 server kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:1a:2b:3c:4d:5e SRC=192.168.1.105 DST=192.168.1.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=25815 DF PROTO=TCP SPT=56789 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
Feb 12 05:45:24 server kernel: [UFW BLOCK] IN=eth0 OUT= MAC=00:1a:2b:3c:4d:5e SRC=192.168.1.105 DST=192.168.1.10 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=25816 DF PROTO=TCP SPT=56789 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
Tips for feilsøking:
- Bruk
sudo ufw status numbered
for å se alle regler med nummer for enkel sletting - Sjekk
/var/log/ufw.log
for å se blokkert trafikk - Bruk
sudo ufw show listening
for å se hvilke porter som er i bruk - Hvis du mister tilgang, start i recovery mode og kjør
sudo ufw disable