• Installera PrivateBin på en Debian/Ubuntu LAMP-server

    Innehållsförteckning

    En egen digital anslagstavla – säkert och privat

    Tänk dig en liten anteckningssida på nätet där du kan klistra in text, dela den med någon – och vara säker på att ingen annan kan läsa den. Det är precis vad PrivateBin gör. Det är ett enkelt men genialiskt verktyg som låter dig skapa krypterade textdelningar direkt i webbläsaren. Allt du skriver krypteras redan innan det lämnar din dator, vilket betyder att själva servern inte vet vad du sparar. Du kan dela en länk med en vän, låta texten raderas automatiskt efter en viss tid eller till och med försvinna direkt efter att den lästs. Perfekt för lösenord, anteckningar eller hemliga projekt – och du kan köra det helt själv hemma på din egen server.

    Vill du ha 100 % koll på vem som tar emot dina anteckningar? Molntjänster i all ära, men du vet aldrig vem som faktiskt läser det du skriver. Med egen hosting har du egen kontroll.

    Vad är PrivateBin och varför använda det?

    PrivateBin är ett självhostat alternativ till Pastebin – en minimalistisk webbapplikation där serven inte vet något om innehållet som lagras. All text krypteras i webbläsaren med kraftig AES-kryptering innan den skickas till servern. Det innebär att bara de som har länken (och eventuellt lösenordet) kan läsa innehållet, vilket gör PrivateBin lämpligt för att dela känslig information, kodsnuttar eller anteckningar på ett säkert sätt. Applikationen är öppen källkod och erbjuder funktioner som lösenordsskydd för pasten, automatisk utgångstid (t.ex. att en text raderas efter en vecka) eller “burn after reading” som förstör texten efter att någon läst den. Genom att köra en egen PrivateBin-server får du full kontroll över datan och slipper lita på externa tjänster.

    PrivateBins webbgränssnitt: ett enkelt formulär där användaren kan skriva eller klistra in text som ska delas. I exemplet syns alternativ för att ställa in hur länge texten ska finnas kvar (Expires), om den ska brännas efter läsning (Burn after reading), möjlighet att tillåta diskussionstråd (Open discussion), samt fält för lösenordsskydd. När användaren klickar på “Create” genereras en unik länk; mottagaren som besöker länken kan läsa texten (och uppmanas ange lösenord om ett sådant sattes).

    Förberedelser: Installera LAMP-stack

    För att köra PrivateBin behöver vi en LAMP-miljö, vilket står för Linux, Apache, MySQL/MariaDB och PHP[. I denna guide utgår vi från en server med Debian eller Ubuntu (Linux) – till exempel en hemmaserver eller VPS. Börja med att se till att ditt system är uppdaterat och att du har administratörsrättigheter (t.ex. via sudo). Nedan följer steg för steg hur du installerar varje del av LAMP-stacken på Debian/Ubuntu:

    1. Uppdatera systemet: Öppna terminalen på servern och uppdatera paketlistor och befintliga paket:
    • sudo apt update && sudo apt upgrade -y
    • Detta säkerställer att du har de senaste säkerhetsuppdateringarna innan du går vidare.
    1. Installera Apache (webbserver): Installera Apache2 med apt:
    • sudo apt install apache2
    • På både Debian och Ubuntu startar Apache automatiskt efter installationen och ställs in att köras vid uppstart. Du kan kontrollera att tjänsten är igång med sudo systemctl status apache2 (den ska visas som aktiv). Som test kan du öppna en webbläsare på en dator i samma nätverk och navigera till http://<serverns-IP> – du bör se Apaches standardsida ”It works!”[4].
    1. Installera MySQL/MariaDB (databas): Kör följande för att installera databasservern (Ubuntu använder numera MariaDB som ersättning för MySQL, men kommandot är detsamma):
    • sudo apt install mysql-server
    • Under installationen kan du bli ombedd att ange ett root-lösenord för databasen – välj ett starkt lösenord om frågan dyker upp. När installationen är klar, kontrollera att databasen kör (t.ex. sudo systemctl status mysql). Kör därefter det inbyggda skriptet för att säkra databasen:
    • sudo mysql_secure_installation
    • Följ anvisningarna för att sätta root-lösenord (om du inte redan gjorde det), ta bort anonyma användare, inaktivera fjärrinloggning för root samt ta bort testdatabasen. Dessa åtgärder förbättrar grundsäkerheten för MySQL/MariaDB.
    1. Installera PHP (scriptspråk) och nödvändiga moduler: Installera PHP tillsammans med kopplingen till Apache och databasen samt några vanliga PHP-tillägg som PrivateBin behöver:
    • sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-json php-gd php-zip
    • Här står libapache2-mod-php för PHP-modulen i Apache (så servern kan köra PHP-filer) och php-mysql låter PHP prata med MySQL/MariaDB[6]. Vi inkluderar också tillägg som XML, mbstring, JSON, GD och Zip eftersom de är vanliga beroenden för webbappar[7]. Du kan behöva ytterligare tillägg beroende på behov, men ovanstående räcker för PrivateBin.

    Tip: Om din server har en aktiv brandvägg (t.ex. UFW på Ubuntu) måste du också tillåta webbtrafik. Du kan exempelvis köra sudo ufw allow ’Apache Full’ för att öppna både port 80 (HTTP) och 443 (HTTPS) i brandväggen[8].

    Ladda ner och konfigurera PrivateBin

    När LAMP-stacken är på plats är det dags att installera PrivateBin själv. Vi kommer att hämta programmet från dess officiella kodförråd på GitHub och placera det i webbserverns katalog.

    1. Hämta PrivateBins filer: Gå till webbroten (där Apache servar filer, vanligtvis /var/www/html/) och hämta senaste PrivateBin-källkoden. Kör följande kommandon i terminalen:
    • cd /var/www/html/
      sudo rm index.html # Ta bort Apaches standardsida
      sudo apt install -y git # installera Git om det inte redan finns
      sudo git clone https://github.com/PrivateBin/PrivateBin.git
      sudo mv PrivateBin/* . # flytta in alla filer i webbroten
      sudo rm -rf PrivateBin/ # rensa tom mapp
    • Först tar vi bort filen index.html (Apache’s “It works!”-sida) så att den inte stör oss. Därefter klonar vi PrivateBins kod från GitHub till katalogen. Kommandot ovan lägger filerna i /var/www/html/PrivateBin. Vi flyttar sedan innehållet upp en nivå till /var/www/html/ så att PrivateBin blir direkt åtkomlig på webbserverns root-path[9]. Efter städning av den tomma mappen är alla relevanta filer (PHP-skript, JavaScript, stilmallar m.m.) nu på plats i /var/www/html/.
    1. Skapa konfigurationsfil: PrivateBin levereras med en exempel-konfigurationsfil som vi behöver kopiera för att göra egna inställningar. Kör:
    • sudo cp /var/www/html/config/cfg.sample.php /var/www/html/config/config.php
    • Detta skapar en ny fil config.php baserat på standardinställningarna. Du kan nu öppna denna fil för redigering (t.ex. sudo nano /var/www/html/config/config.php). I konfigurationsfilen finns många inställningar kommenterade; för grundbruk kan det räcka att lämna det mesta som standard. PrivateBin använder som default filsystemet för att lagra pastes, vilket fungerar utan databas.
    1. (Valfritt) Använd MySQL för lagring: Om du vill att PrivateBin ska lagra sina pastes i databasen istället för filer kan du nu skapa en databas och användare för detta ändamål. Logga in i MySQL/MariaDB med administratörskonto:
    • sudo mysql
    • I MySQL-prompten, kör följande SQL-kommandon för att sätta upp en databas (byt ut lösenordet DinLösenord mot ett unikt starkt lösenord):
    • CREATE DATABASE privatebin;
      CREATE USER ’privatebin’@’localhost’ IDENTIFIED BY ’DinLösenord’;
      GRANT ALL PRIVILEGES ON privatebin.* TO ’privatebin’@’localhost’;
      FLUSH PRIVILEGES;
      EXIT;
    • Här skapar vi en databas privatebin och en användare privatebin som endast har åtkomst lokalt (servern själv). Användaren får full rättigheter på den nya databasen. Kom ihåg det lösenord du angav.
    1. Konfigurera PrivateBin för databasen: Öppna config.php i en textredigerare om du inte redan gjort det. Leta upp sektionen för databasinställningar. Ställ in att PrivateBin ska använda MySQL och fyll i uppgifterna för databasen du nyss skapade. Det kan se ut ungefär så här i filen:

    $config[’database’][’adapter’] = ’mysql’;
    $config[’database’][’dsn’] = ’mysql:dbname=privatebin;host=localhost;charset=utf8mb4’;
    $config[’database’][’username’] = ’privatebin’;
    $config[’database’][’password’] = ’DinLösenord’;
    $config[’database’][’table_prefix’] = ”;

    Kontrollera att adapter är satt till ’mysql’. DSN-raden ska innehålla namnet på databasen (privatebin), host=localhost samt UTF-8 teckenkodning. Ange användarnamn (privatebin) och lösenordet du valde. Spara ändringarna. (Om du istället vill behålla filbaserad lagring kan du låta bli att ändra dessa inställningar – då ignorerar PrivateBin databasen.)

    Sätta rätt behörigheter och testa installationen

    Innan vi provar att köra applikationen behöver vi justera filrättigheterna. Apache kör som användaren www-data på Debian/Ubuntu, så den användaren måste äga filerna för att kunna skriva data (t.ex. spara pastes). Kör följande kommando i /var/www/html/:
    sudo chown -R www-data:www-data /var/www/html/

    Detta ger webbservern (www-data) ägarskap över alla PrivateBin-filer och dess data-katalog. Nu är det dags att testa att allt fungerar:

    Öppna en webbläsare och navigera till http://<din server>/ (använd IP-adressen eller domännamnet till din server). Du bör mötas av PrivateBins gränssnitt – en sida där du kan skriva in text och skapa en ny paste. Om sidan laddas korrekt har installationen lyckats. Prova gärna att skapa en test-paste för att verifiera att det går att spara och läsa data.

    Obs: Om sidan inte laddas, kontrollera följande: att Apache är igång, att PHP är korrekt installerat (du kan skapa en fil info.php med phpinfo() för att testa PHP, glöm inte ta bort den sedan av säkerhetsskäl, samt att ingen brandvägg blockerar trafik (se nästa avsnitt om säkerhet). Eventuella felmeddelanden kan hittas i Apaches fellogg (/var/log/apache2/error.log).

    Tips om säkerhet och åtkomst

    En PrivateBin-server som körs hemma eller på en VPS bör säkras på några punkter innan den används skarpt, särskilt om den ska vara åtkomlig via internet. Här är några viktiga tips:

    • Aktivera HTTPS (SSL/TLS): Använd alltid krypterad anslutning (https://) för att nå din PrivateBin-server. Utan HTTPS finns risken att den hemliga nyckel som ingår i paste-länken snappas upp av någon på nätverket. Du kan gratis skaffa ett SSL-certifikat via Let’s Encrypt. På Debian/Ubuntu installeras lättast paketet Certbot: sudo apt install certbot python3-certbot-apache och kör sedan sudo certbot –apache för att automatiskt hämta och installera ett certifikat för din domän. Om du inte har ett domännamn kan du åtminstone använda ett självsignerat certifikat inom ditt lokala nätverk. HTTPS krypterar trafiken så att ingen utomstående kan avlyssna lösenord eller data som skickas. (På PrivateBins officiella webbplats poängteras att man alltid bör köra tjänsten över HTTPS för att upprätthålla säkerheten.)
    • Begränsa åtkomsten: Kör du PrivateBin enbart för eget bruk eller inom en liten grupp kan det vara klokt att begränsa vem som kan nå tjänsten. Ett sätt är att använda .htaccess-skydd i Apache – till exempel lösenordsskydda katalogen med Basic Auth (då krävs ett användarnamn/lösenord för att se sidan). Du kan också begränsa åtkomst efter IP-adress. Till exempel, om servern bara ska användas i ditt lokala nätverk kan du i brandväggen eller Apache ställa in att endast tillåta trafik från ditt LAN. Med UFW kan du köra: sudo ufw allow from 192.168.0.0/24 to any port 80,443 för att endast släppa in webbtrafik från ditt lokalnät. På så vis blockeras åtkomst utifrån. Generellt bör du inte exponera en hemmaserver direkt mot internet i onödan – låt den helst vara bakom din routers NAT om möjligt, eller använd VPN/tunnel-lösningar om du behöver nå den från internet.

    Sammanfattningsvis, tänk på att säkerhet handlar om flera lager: kryptering (HTTPS), autentisering/åtkomstkontroll, brandvägg, starka lösenord och att hålla systemet uppdaterat. Genom att följa råden ovan kan du köra din egen PrivateBin-tjänst med gott skydd för innehållet. Lycka till med ditt själhostade klotterplank för säkra delningar!

    PrivateBin – säker delning av text, utan att servern ser innehållet

    Zero-knowledge pastebin med klient-sidig kryptering.

    Kärnfunktioner
    • Klient-sidig kryptering (zero-knowledge) – texten krypteras i webbläsaren innan uppladdning.
    • Utgångstid – välj hur länge pasten ska finnas (minuter → veckor).
    • “Burn after reading” – raderas automatiskt efter första visning.
    • Lösenord – extra skydd på delningslänken.
    • Diskussion (valfritt) – kommentars-tråd per paste.
    • Teman/konfiguration – anpassningsbar design och policyer.
    Säkerhet i praktiken
    • HTTPS rekommenderas – skyddar länk + nyckel vid överföring.
    • Ingen metadata-läsning – servern kan inte dekryptera innehållet.
    • Valfri IP-/lösenords-spärr via webbserver (t.ex. Apache .htaccess).
    Drift & lagring
    • Kan köras på LAMP/LEMP (Debian/Ubuntu + Apache/Nginx + PHP).
    • Lagring: filsystem (standard) eller databas (t.ex. MariaDB/MySQL).
    • Låg resursåtgång – passar hemmaserver eller liten VPS.
    Typiska användningsfall
    • Engångsdelning av lösenord/nycklar (med burn after reading).
    • Privata anteckningar, snippets, checklistor.
    • Säker delning internt i team/förening.

    Tips: aktivera HTTPS, sätt rimliga maxstorlekar och utgångstider, och överväg IP-begränsning om tjänsten bara ska användas internt.

Etikett: VPS

  • Installera PrivateBin på en Debian/Ubuntu LAMP-server

    En egen digital anslagstavla – säkert och privat Tänk dig en liten anteckningssida på nätet där du kan klistra in text, dela den med någon – och vara säker på att ingen annan kan läsa den. Det är precis vad PrivateBin gör. Det är ett enkelt men genialiskt verktyg som låter dig skapa krypterade textdelningar…