Infrastructure

En inte alltid noggrant genomtänkt samling tjänster för allt från att säkra uppkopplingar på offentliga WiFi-nätverk till att lagra data och hämta e-post. Här är en lista över de verktyg som jag själv använder, både för personliga och professionella ändamål, och ibland även när jag är på språng.

Internet

mässingskulor, internet och tillgång till det. i många länder och andra geografiska platser kan man idag hitta förbetalda simkort. jag har gått från att exklusivt använda förbetalda till att hitta rimligare lösningar. frånsett det så använder jag även en openwrt baserad router från tplink som jag flashat om med en hemmarullad version av openwrt med lite lokala modifikationer som jag använder för alla mina internet-behov när jag är i rörelse, hemmavid har jag en liknande lösning, men använder alltid en trådad anslutning till dem.

Gratis WiFi, använder jag extremt sparsamt. men det händer men aldrig utan en wireguard-lösning.

VPN

Jag använder VPN för det mesta jag gör online. En VPN är ett av flera verktyg för att göra det svårare för företagsövervakare (Amazon, Facebook, Google, Twitter, osv.) att kartlägga dig. Den kan också vara praktisk för att ladda ner Linux-ISO:er via BitTorrent. Men låt oss vara klara: VPN är inte en magisk lösning för integritet och skyddar definitivt inte mot statlig övervakning – om du inte lägger ned rejält med jobb på att bygga din egen. Och även då…

På tal om det: jag kör min egen VPN-infrastruktur baserad på Wireguard, som jag delar med en liten krets. Infrastrukturen är uppbyggd av VPS-instanser spridda över världen och kan autoprovisioneras via en minimalistisk men effektiv Terraform + Ansible-setup. Det låter mig starta nya eller stänga av befintliga VPN-servrar på några minuter. Jag kan även byta ut servrar och därmed IP-adresser med några timmars eller dagars mellanrum.

För vanlig surfning använder jag ofta den VPS-leverantör som erbjuder bäst pris/prestanda. Men för integritetstunga ändamål kör jag endast på leverantörer som accepterar anonyma betalningar via XMR. Dessa instanser provisioneras genom flera lager av jump-hosts och Tor-proxies.

Notis: Ju färre användare en VPN har, desto enklare blir det att identifiera enskilda användare baserat på mönster. Att rulla sin egen VPN är bara meningsfullt för specifika ändamål, som att skapa ett virtuellt privat nätverk mellan peers för att dela data eller kommunicera över internet. Om allt du vill är att YouTube inte ska bygga en skugglik profil av din kärlek för telenovelas, är du bättre hjälpt av en kommersiell VPN – se bara till att din webbläsare är tillräckligt svår att fingerprinta.

DNS: En läckande säkerhetsventil

DNS är som en gammal rostig trädgårdsslang – en leaky pipe. Även om du kör en VPN eller ett P2P-nätverk kan DNS-förfrågningar ändå råka slinka förbi och avslöja dig. Därför är det avgörande att säkerställa att inga DNS-förfrågningar split-tunnlas. Spoiler alert: De flesta bryr sig inte, men du borde.

Vad jag gör

Jag använder alltid krypterad (och helst anonymiserad) DNS. För detta ändamål har jag konfigurerat DNSCrypt och kopplar mig till offentliga DNSCrypt-servrar som har loggning avstängd. Viktigt att notera: DNSCrypt förhindrar inte DNS-läckor i sig självt. Det enda det gör är att kryptera DNS-trafiken och skydda mot attacker som DNS spoofing eller man-in-the-middle. För extra integritet ser jag till att mina DNS-förfrågningar går genom Tor – något jag implementerat via en dnscrypt-proxy2-setup som kör DoHoT (DNS-over-HTTPS-over-Tor).

Ett varningens ord om Firefox

Firefox använder redan DNS-over-HTTPS (DoH) som standard, vilket är bra för att skydda DNS-förfrågningar. Problemet? Det är inställt på att använda Cloudflare DNS – och om det är det bästa du kan komma på för att förbättra din integritet, är du antagligen den som klickar “acceptera alla cookies” utan att blinka. Byt till en bättre DNS, eller stäng av DoH och kör en riktig DNSCrypt-setup istället. Du gör världen en tjänst – eller åtminstone dig själv.

För dig som är redo att lämna “gör som alla andra”-klubben och faktiskt fixa ditt DNS: börja här – dnscrypt.info.

Webbläsare: Ett noggrant balanserat val för integritet och funktion

Daglig användning
För daglig surfning använder jag ungoogled Chromium och Firefox. För uppgifter som kräver högre integritet kör jag Tor Browser på en icke-persistent Tails VM.

Tillägg i Chromium

Jag har följande tillägg konfigurerade i ungoogled Chromium:

Tillägg i Firefox

Jag använder följande tillägg i Firefox:

Fingeravtryck och tester

Tillägg bidrar till fingerprinting av webbläsare. Jag rekommenderar att regelbundet testa din webbläsare och se till att den inte är för unik.

Firefox-konfiguration

Jag har anpassat Firefox med följande about:config-inställningar och user.js-anpassningar. Några exempel:

browser.contentblocking.category = strict
browser.safebrowsing.malware.enabled = false
browser.safebrowsing.phishing.enabled = false
network.cookie.cookieBehavior = 5
privacy.resistFingerprinting = true
privacy.trackingprotection.enabled = true
privacy.firstparty.isolate = true

Mer detaljerade inställningar finns här.

Varför Firefox trots dess brister?

Jag vet att säkerhetsfokuserade kritiker och projekt föredrar ungoogled Chromium, och visst blir jag frustrerad över Firefox buggar och långsamma prestanda. Ändå håller jag fast vid Firefox av följande skäl:

  • Konkurrens: Nästan allt idag är baserat på Chromium. Att stödja alternativ är viktigt för ett mångfaldigt ekosystem.
  • Tillgänglighet: Jag får de senaste uppdateringarna snabbt via Gentoo-repositorierna, och kompilering tar bara några minuter. Ungoogled Chromium kräver tredjeparts-repositorier som jag måste lita på, och att kompilera det själv kan ta dagar.
  • Integritetsfokus: Ungoogled Chromium är inte designat för att vara “Bromite för Linux”. Även om det är ett bra projekt saknar det vissa patchar och verktyg som är viktiga för mig.
  • Manifest V3: Firefox erbjuder mer motstånd mot dessa begränsningar.

JavaScript: På bara när det behövs

Jag håller JavaScript avstängt som standard (via uBlock) och aktiverar det endast för betrodda webbplatser. Även om det finns fler attackytor än bara JavaScript-motorn, minskar en begränsad yta risken tillräckligt mycket för att göra potentiella attacker osannolika.

Om du vill balansera integritet och funktion är detta en setup som fungerar – med lite tålamod och finjustering.

Versionskontrollerad data

Mycket av min kritiska data är versionskontrollerad, vilket innebär att jag hanterar den inom ett git-repository. Om datan är konfidentiell använder jag git-crypt för att transparent kryptera och dekryptera filerna med min GPG-nyckel. Mina git-remotes är antingen offentliga eller privata GitHub-repositories, eller en privat git-server som körs på min egen infrastruktur.

Versionskontroll är också min metod för samarbete – jag kan enkelt ge andra personer tillgång till specifika repositories utan att äventyra resten av systemet.

Men: versionering är bara vettigt för data som förändras och där du vill behålla en historik. För statisk data blir det ofta en onödig resursförbrukning.

Synkroniserad data

För data som inte behöver versionskontrolleras – och inte alltid måste vara tillgänglig – använder jag Syncthing. Det här är min lösning för att hålla dokument och filer synkroniserade mellan min dator och telefon. Exempelvis dokument som jag behöver lagra av compliance-skäl men inte aktivt arbetar med.

Genom att kombinera kryptering, versionskontroll och synkronisering har jag en setup som är både flexibel och robust, oavsett var jag befinner mig. Och viktigast av allt: den gör det lätt att hålla huvudet kallt om något oväntat skulle hända.

Officepaket: Minimalism och säkerhet i fokus

Istället för att använda Google Docs eller Microsoft Office 365 hanterar jag data i ren textform, som jag sedan konverterar till andra format, exempelvis PDF. För dokument använder jag främst Markdown i kombination med Pandoc, och för kalkylblad använder jag sc-im. Behöver jag mer avancerade funktioner tar jag till LaTeX eller i vissa fall ett komplett officepaket som LibreOffice.

Samarbete

När jag arbetar tillsammans med andra sker det oftast via ett Git-repository, där vi arbetar med ren textform data. För enklare och samtidigt säkra lösningar använder jag även CryptPad.

Med den här setupen får jag både flexibilitet och kontroll, utan att ge upp mina data till tredjepartstjänster.

Diagram och Säkerhet: Effektivitet och Kontroll

Diagram

För enkla diagram ritar jag ASCII-diagram direkt i NeoVim eller skriver upp dem i PlantUML och renderar till önskat format. För mer visuellt avancerade projekt använder jag Diagrams.net (tidigare Draw.io).

Notis: På macOS finns Monodraw, ett utmärkt verktyg för ASCII-konst och diagram, men tyvärr tillgängligt endast för den plattformen.

Behöver jag rita komplexa arkitekturer för tjänster och nätverk använder jag Cloudcraft, som är särskilt bra för servicearkitekturer i moln.

Backup

De flesta viktiga filer jag arbetar med är redan pushade till git-repositories eller synkroniserade med Syncthing, vilket minimerar behovet av ytterligare backup. För allt som behöver säkerhetskopieras använder jag rsync och rclone för att skapa enkla men effektiva backup-rutiner.

Säkerhet

Utöver kryptering och starka lösenord implementerar jag åtgärder för att snabbt upptäcka dataintrång och, om möjligt, förstå vad som hänt. Exempelvis använder jag honeypots och canary traps.

För enkla canary traps använder jag tjänster som CanaryTokens.org och BlueCloudDrive. Dessa kan placeras strategiskt i:

  • Filstrukturer (som bokmärken eller <img>-taggar i HTML-filer)
  • E-post (t.ex. en “viktig” länk i inkorgen)
  • Digitala adressböcker (som “webbsida” på en falsk kontakt)
  • Kalenderposter (med länkar i mötesbeskrivningar)
  • Fysiska objekt (QR-koder eller textlänkar på utskrivna dokument).

Mer information om canary traps här.

På nätverksnivå övervakar jag min HAN/LAN och får notifieringar om något avviker. Även om fullskaliga IDS-system (Intrusion Detection Systems) som Snort känns överdrivna för ett hemmanätverk, loggar jag och analyserar anslutningar periodiskt.

Molninfrastruktur

Jag använder CDN-baserad lagring för enklare webbprojekt, exempelvis Amazon S3, Google Cloud Storage eller GitHub Pages. För mer komplexa tjänster balanserar jag kostnad, integritet och tillgänglighet. Tidigare använde jag AWS och GCP, men jag migrerade till Hetzner och senare render för bättre pris/prestanda.

För serverlösa lösningar som AWS Lambda och Google Cloud Functions finns tyvärr inga riktiga konkurrenter, så jag kompletterar med en DIY-approach genom containers och Kubernetes. Här är några leverantörer jag testat:

Git

För kod använder jag en kombination av github, GitHub och min egen soft-serve infrastruktur.

Webbteknik

Nästan alla mina webbprojekt körs på Hugo för att minimera komplexitet. För funktionalitet som kräver interaktivitet använder jag så lite JavaScript som möjligt och föredrar Svelte/SvelteKit eller server-side-lösningar som Elixir/Phoenix eller Ruby/Rails.

Håll dig borta från React.js-hajpen – det är ett svart hål av resurser och frustration.

Analytics och Notiser

Jag använder Plausible för integritetsvänlig statistik och Overpush för att få push-notiser om statusuppdateringar på mina molntjänster.


Published: [ November 24, 2024 ] · Collected in: [ ]