Opsæning din egen VPN server med algo


Jeg har tidligere skrevet om VPN udbydere og hvornår det kan være en god ide at anvende en VPN forbindelse.

En anden mulighed er at man kan opsætte sin egen IPSec VPN server med algo. Det er en automatiseret løsning hvor man køre algo setup programmet der så provisionere en virtuel server hos en cloud udbyder (fx digital ocean eller amazon) og konfigurere VPN serveren. Den er så klar til brug efter få minutter.

Ulempen ved denne løsning er at det kræver en smule teknisk forståelse samt at man skal betale for serveren (Kan fås for 5 $ om måneden hos fx digital ocean eller amazon webservices) samt huske at vedligeholde den. Den IP som serveren får bliver også kun brugt af dig så løsningen er ikke særligt anvendelig til at gemme sig, mere til at beskytte trafikken imod inspektion.

Den store fordel er at man ikke er bundet til et abonnement og man ofte kun betaler for serveren i den tid man bruger den. Min usecase for VPN løsninger er især når jeg er ude at rejse og er nødt til at forbinde til usikkert hotel WIFI. Så kan jeg hurtigt installere VPN serveren og betaler kun for de få dage som jeg er afsted.

Efter min opfattelse er løsningen med en server hos digital ocean også langt hurtigere end de fleste kommercielle VPN løsninger.

Algo mobil speedtest

For at køre algo skal du bruge en eller anden form for unix/linux. Du kan køre det på din mac, windows 10 pro (hvis du har installeret bash) eller en anden linux server.

Først skal du oprette en konto hos digital ocean, så skal du oprette en API nøgle (se guide her ).

Nu skal du så installere algo, de har selv en udemærket guide som er kort resumeret herunder.

Nu skal du starte med at hente algo her.

Pak algo ud

Åben en kommando prompt og cd til biblioteket hvor algo blev pakket ud.

Nu skal du installere de ting algo har brug for at køre med disse to kommandoer:

sudo apt-get update && sudo apt-get install \
    build-essential \
    libssl-dev \
    libffi-dev \
    python-dev \
    python-pip \
    python-setuptools \
    python-virtualenv -y

og

python -m virtualenv env && source env/bin/activate && python -m pip install -U pip && python -m pip install -r requirements.txt

Nu skal du eventuelt redigere algo’s liste af brugere, du har sandsynligvis kun brug for en.

Så skal du køre algo med ./algo og følge dens guide.

Algo setup

Først vil den spørge dig hos hvilken udbyder du vil installere den, også skal du indtaste din api nøgle.

Herefter skal du vælge hvilket datacenter du vil oprette VPN løsningen i, her vil jeg anbefale at du vælger det der er fysisk tættest på hvor du vil bruge din VPN (hvilket giver de bedste hastigheder). Derefter kommer der en række tekniske spørgsmål hvor jeg vil anbefale at du i de fleste tilfælde vælger standard svaret.

Hvis du har en iOS enhed eller mac er de interessante spørgsmål:

Do you want to enable “VPN on demand” when connected to cellular networks?

Her spørger den om den automatisk skal oprette forbindelse til VPN over mobilnetværk.

Do you want to enable “VPN on demand” when connected to WIFI?

Her spørger den om den automatisk skal oprette forbindelse til VPN når enheden er forbundet via WIFI.

List the names of WIFI network that should be excluded.

Her spørger den om man har wifi netværk hvor den ikke automatisk skal oprette VPN forbindelse, det skal skrives som en kommasepareret list: MitNetværk1,ArbejdsWIFI

Disse svar gør det muligt at oprette en VPN profil hvor din telefon/ipad/mac automatisk opretter en VPN forbindelse hvis man forbinder til et ukendt WIFI netværk, men ikke på ens hjemmenetværk eller mobilnetværket.

Så i det tilfælde skal man svare n for no, y for yes og indtaste en liste af ens kendte netværk.

Du vil også gerne have den til at bortfiltrerer reklamer så når den spørger om den skal installere en DNS resolver skal du også sige ja.

Så skal du lade den installere og vente på at den er færdig. Når den er færdig får du en besked i stil med den nedenstående:

       "\"#----------------------------------------------------------------------#\"",
        "\"#                          Congratulations!                            #\"",
        "\"#                     Your Algo server is running.                     #\"",
        "\"#    Config files and certificates are in the ./configs/ directory.    #\"",
        "\"#              Go to https://whoer.net/ after connecting               #\"",
        "\"#        and ensure that all your traffic passes through the VPN.      #\"",
        "\"#                    Local DNS resolver 172.16.0.1                     #\"",
     "\"#                The p12 and SSH keys password is XXXXXXXX             #\"",
     "\"#----------------------------------------------------------------------#\"",
     

Her skal du gemme det password den nævner da du skal bruge det til at installere dine VPN certifikater.

Nu er det så tid til at sætte din VPN løsning op på dine enheder. Der hvor du kørte algo er der dukket en mappe op med konfigurations filer.

PS. Det kan ikke anbefales at du deler din VPN server med andre, hvis de laver noget skidt ser det umiddelbart ud som om det er dig der har gjort det da du står som ejer af serveren.

Iphone

Hvis du vil sætte VPN løsningen op på din iphone/ipad skal du sende filen der ender på .mobileconfig til din enhed og køre den, indtaste det password du fik i slutningen af konfigurationen, så bliver det automatisk sat op.

Windows

På windows maskiner installere du nemt VPN klienten ved at køre det powershell script som du finder i config mappen:

powershell -ExecutionPolicy ByPass -File windows_{username}.ps1 Add

Android

Android er lidt mere besværlig at installere da den indbyggede VPN klient ikke understøtter de krypterings protokoller som algo anvender. Algo har en guide til hvordan man gør her