🔒 Sikkerhed & Installation
Best practices for sikker brug af SKN
🗺️ The Toxic Triangle
— Bermudatrekanten for dine data —
Gamle søkort advarede med "Here be dragons". Vi advarer om noget værre:
- Følsomme data — regnskab, kundeinfo, forretningshemmeligheder
- Uverificeret kode — software du ikke selv har auditeret
- Internetforbindelse — en åben vej ud for dine data
Når alle tre mødes, er det kun et spørgsmål om hvornår — ikke om — dine data sejler ud i hænderne på pirater.
🏴☠️ SEJL IKKE IND I TREKANTEN
Gør ikke dette selv, medmindre du er IT-kyndig og ved præcis hvad du gør. Hvis din data og sikkerhed betyder noget for dig, så få professionel hjælp — eller brug en hostet løsning hvor andre tager ansvar for sikkerheden.
Ingen internetforbindelse = ingen pirater
Officielle releases, verificér checksums
Hostet løsning med professionel sikkerhed
Sikkerhedspraksis
Data Isolation
Hold dine regnskabsdata adskilt fra andre systemer. Brug dedikerede volumes og begræns adgang til kun nødvendige brugere.
- Separate data-mapper per regnskab
- Restrictive file permissions (700/600)
- Ingen delte credentials
Backup Strategi
Plain text filer gør backup simpelt. Brug git til versionering og automatiske off-site backups.
- Git commit efter hver session
- Daglig push til privat remote
- Krypteret off-site backup (rsync + GPG)
Netværkssikkerhed
Kør SKN bag firewall eller VPN. Eksponér aldrig direkte til internettet uden autentificering.
- Bind kun til localhost (127.0.0.1)
- Brug reverse proxy med TLS
- Firewall whitelist for SSH
Autentificering
Brug SSH-nøgler i stedet for passwords. Deaktiver root login og password-auth.
- Ed25519 SSH-nøgler
- Passphrase på private keys
- Fail2ban for brute-force beskyttelse
Digital Signering & Autenticitet
Hvis du ønsker at dokumentere at regnskabet ikke er manipuleret, kan du signere det digitalt.
⚠️ Juridisk Note
SKN er ikke tilstrækkeligt til at opfylde den nye bogføringslovs krav som bogføringssystem for virksomheder omfattet af loven. Det kan dog være tilstrækkeligt til anden brug (foreninger, privat, hobby-projekter osv.).
Tag Backup & Beregn Hash
Lav en komprimeret backup af dit regnskab og beregn SHA-256 hash:
$ tar -czf regnskab-2024-Q4.tar.gz ~/skn-data/firma/
$ sha256sum regnskab-2024-Q4.tar.gz > regnskab-2024-Q4.sha256
$ cat regnskab-2024-Q4.sha256
a7f3b2c1d4e5f6... regnskab-2024-Q4.tar.gz
Opret Attestering
Lav et simpelt tekstdokument med hash og dato:
# attestering-2024-Q4.txt
ATTESTERING AF REGNSKABSDATA
============================
Dato: 2024-12-31
Periode: Q4 2024
Firma: Mit Firma ApS
CVR: 12345678
Backup-fil: regnskab-2024-Q4.tar.gz
SHA-256: a7f3b2c1d4e5f6...
Jeg attesterer hermed at ovenstående hash
svarer til regnskabsdata for den angivne periode.
___________________________
Underskrift
Signér med MitID
Signér attesteringen digitalt med MitID via en signing-service:
# Upload attestering-2024-Q4.txt til signing-service
# Godkend med MitID
# Download signeret PDF/ASIC-E container
💡 Tjenester som Penneo, Visma Addo eller SignaturGruppen tilbyder MitID-signering.
Timestamp Authority (RFC 3161)
For ekstra bevisværdi kan du tilføje et uafhængigt timestamp fra en Timestamp Authority:
$ openssl ts -query -data regnskab-2024-Q4.sha256 \
-no_nonce -sha256 -out request.tsq
$ curl -H "Content-Type: application/timestamp-query" \
--data-binary @request.tsq \
https://freetsa.org/tsr -o response.tsr
$ openssl ts -reply -in response.tsr -text
💡 RFC 3161 definerer en protokol for trusted timestamping. Timestamp Authority'en beviser at data eksisterede på et bestemt tidspunkt.
🚀 Fremtidig Signing Service
Vi har ambitioner om at tilbyde en integreret signing-service baseret på RFC 3161. Ideelt set tilbydes dette som en samlet pakke med hosting og sikkerhed — så du ikke selv skal håndtere infrastrukturen — samt at blive et godkendt bogføringssystem der opfylder lovens krav.
Sikkerhedsråd
Kritiske anbefalinger for sikker drift af SKN i produktion.
Eksponér ALDRIG direkte
Vi fraråder kraftigt at have SKN liggende på en server der er åben mod internettet.
- Ingen direkte port-exposure
- Ingen public IP binding
- Ingen "bare lige hurtigt" løsninger
Brug WireGuard VPN
Luk SKN inde bag en WireGuard VPN. Kun autoriserede enheder med korrekt nøgle får adgang.
# /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
PrivateKey = <server-private-key>
ListenPort = 51820
[Peer]
PublicKey = <client-public-key>
AllowedIPs = 10.0.0.2/32
iptables Whitelist
Serveren må ikke have adgang til internettet på iptables-niveau — undtagen til manuelt whitelistede servere.
# Bloker alt udgående som default
iptables -P OUTPUT DROP
# Tillad kun specifikke hosts
iptables -A OUTPUT -d 10.0.0.0/24 -j ACCEPT
iptables -A OUTPUT -d apt.debian.org -j ACCEPT
# Tillad established connections
iptables -A OUTPUT -m state \
--state ESTABLISHED,RELATED -j ACCEPT
Sikkerhedscheckliste
- ✓ WireGuard eller anden VPN
- ✓ iptables OUTPUT DROP policy
- ✓ Kun whitelistede udgående hosts
- ✓ SSH kun via VPN
- ✓ Ingen password auth (kun keys)
- ✓ Automatiske sikkerhedsopdateringer
- ✓ Daglig encrypted backup off-site
- ✓ Fail2ban aktiv
⚠️ Hvorfor så paranoid?
Regnskabsdata er ekstremt værdifuldt for angribere — det indeholder kundedata, leverandørinfo, betalingshistorik og forretningshemmeligheder. Et kompromitteret regnskabssystem kan føre til identitetstyveri, svindel og GDPR-bøder. Tag det seriøst.