Hur man sätter upp och konfigurerar en OpenVPN server på Debian 6 och 7

Att börja med

Denna guide sätter upp en enkel OpenVPN anslutning mellan klient och server för krypterad kommunikation.
För att sätta upp OpenVPN servern som ”roadwarrior” VPN-server (dvs så all internet trafik på din dator tunnlas via OpenVPN) så se tilläggsavsnittet längst ned.

Som med alla guider av teknisk karaktär så friskriver vi oss från ansvar för eventuella problem som kan följa. Guiden förutsätter grundläggande teknisk kompetens.

Du behöver en SSH anslutning till din dedikerade server eller molnserver. Du kan installera som root men vi rekommenderar en vanlig användare med sudo access och det är även så vi kommer sätta upp det i denna guide. Om du ändå vill använda root så ignorera ”sudo”-kommandot  i varje kommandorad.
För att komma åt din server via SSH på Linux eller Mac så kan du använda SSH i en vanlig terminal. Under Windows rekommenderar vi SSH med  PuTTY. När du har en terminal uppe så kan du logga in med kommandot:

ssh username@ipaddress

Efter att du skrivit in lösenordet är du redo att installera OpenVPN.

Installera OpenVPN och generera nödvändiga filer


Innan vi installerar så ska vi se till att alla paket på systemet är uppdaterade. Det kan vi göra genom att köra följande kommando:

sudo apt-get update

Ovanstående kommando laddar ned och uppdaterar paketlistor för Debians pakethanterare ”apt”. Kör nu följande kommando för att uppgradera paket som har nya versioner:

sudo apt-get upgrade

När systemet uppdaterat alla paket kan vi nu installera OpenVPN med följande kommando:

sudo apt-get install openvpn udev

När installationen är klar så kan vi börja konfigurera OpenVPN. Till att börja med så kopierar vi distributionsfilerna (exempelfiler) till en faktisk konfigurationskatalog:

sudo cp -r /usr/share/doc/openvpn/examples/easy-rsa /etc/openvpn

När det är klart så kan vi generera filer för RSA algoritmen som används till ditt VPN. Du kommer efterfrågas om ett antal olika värden när du genererar nycklarna. Dessa är valfria att fylla in men du bör tänka på att de kommer inkluderas i certifikatet du genererar så skriv inte in några hemliga uppgifter som du inte vill att någon annan ska få reda på.

Kör följande kommandon:

cd /etc/openvpn/easy-rsa/2.0/

För att generera RSA filer:

sudo ./vars
sudo ./clean-all
sudo ./build-ca

Efter att certifikaten är genererade så kan du skapa en privat nyckel för servern (denna ska inte delas ut till klienten). För att göra detta skriv följande kommandon, och ändra ’server’ till vad du vill att namnet på din OpenVPN servers filer ska vara. Scriptet kommer också fråga dig om annan information samt generera serverns .crt och .key filer:

sudo . /etc/openvpn/easy-rsa/2.0/build-key-server server

Gennerera Diffie Hellman nyckelparet med följande kommando:

sudo . /etc/openvpn/easy-rsa/2.0/build-dh

Nu kan du generera klientnycklarna för denna OpenVPN installation. Du bör göra detta för varje klient som kommer använda denna OpenVPN anslutning.
Se till att ”common name” är unikt för varje framtida certifikat du skapar. Rekommenderar att du har samma namn på client som common name för att förenkla filhanteringen. Kör följande kommando för att skapa nyckelpar .crt och .key filer med namnet ’client’:

sudo . /etc/openvpn/easy-rsa/2.0/build-key client

Flytta nu serverns certifikaten och nycklar till /etc/openvpn katalogen. Byt ut server.crt och server.key med de filnamn du använde.

sudo cp /etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/ca.key /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/dh1024.pem /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/server.crt /etc/openvpn
sudo cp /etc/openvpn/easy-rsa/2.0/keys/server.key /etc/openvpn

För att ta bort någons access till OpenVPN så kan du köra följande kommandon. Byt ut ”commonnameförklienten” mot det common name du använde när du skapade klient-certifikatet.

sudo . /etc/openvpn/easy-rsa/2.0/vars
sudo . /etc/openvpn/easy-rsa/2.0/revoke-full commonnameförklienten

Konfigurera OpenVPN


Nu när filerna är skapade för vår konfiguration så kan vi gå vidare med att konfigurera server och klienter. För att hämta standardfiler kör följande kommandon:

sudo gunzip -d /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf /etc/openvpn
sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf ~/
cd

Du måste nu ändra klientkonfigurationsfil för att det ska ansluta till rätt server och använda rätt nycklelfiler. Det finns ett flertal rader man kan ändra på men till att börja med ska vi ändra raden ’remote’ så att den ansluter mot till OpenVPN servern. Öppna upp filen och ändra remote så att det står ip-adressen eller hostname till din server  följt av 1194 (porten).  T.ex. ”remote 1.2.3.4 1194” Ändra sedan raderna för ’cert’ och ’key’ så de matchar namnet på din egen certifikatfil och nyckel. När du gjort dessa ändringar tryck Ctrl+X och skriv ’y’ följt av enter-tangent för att spara.

nano ~/client.conf

Kopiera nu klient konfigurationsfiler ”client.conf” samt client nycklar och certifikat (client.crt / client.key) som finns i katalogen /etc/openvpn/easy-rsa/2.0/keys till lokala machinen för dina klienter.

Innan vi är klara så behöver vi göra några ändringar till server konfigurationsfilen . Ändra värdena för ’cert’ och ’key’ för att peka på filerna till certifikat och nyckel som din server använder . De som skapades tidigare.

sudo nano /etc/openvpn/server.conf

Efter att det är klart så behöver du bara starta om openvpn för att konfigurationen av OpenVPN ska vara färdig:

sudo /etc/init.d/openvpn restart

RoadWarrior setup


För att konvertera OpenVPN servern till Roadwarrior konfiguration behöver man ändra serverns konfigurationt.

På servern ändrar man i filen /etc/openvpn/server.conf (eller vad du kallat den tidigare)
Lägg till följande rader i slutet (eller avkommentera motsvarande i konfiguratione):

push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

Byt ut 8.8.8.8 och 8.8.4.4 mot valfri DNS server du vill använda. Ovanstående använder googles publika DNS:er.
push ”redirect-gateway” gör så att all trafik på klienten går via openvpn.

 

Installera vmware-tools på CentOS 6

Att installera vmware-tools är alltid rekommenderat om du har möjligheten.
Det görs enklast genom att aktivera vmware-tools installationen via ESXi eller VMWare player.

Jag har skrivit andra guider här på Uppe.nu för andra Linux distributioner men för CentOS 6 gör man på sättet nedan

Kör dessa kommandon i rätt ordning:

 

yum -y install perl
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom
cp /mnt/cdrom/VMwareTools-*.tar.gz /tmp
umount /mnt/cdrom
tar -zxf /tmp/VMwareTools-*.tar.gz -C /tmp
cd /
./tmp/vmware-tools-distrib/vmware-install.pl –default
rm -f /tmp/VMwareTools-*.tar.gz
rm -rf /tmp/vmware-tools-distrib

Klart!

Driftstörning på svenska internet

Idag får vi en mängd olika frågor ifall vi har problem och varför man inte kommer åt sin hemsida.

Normalt sett så brukar vi posta driftstatus gällande Adminors egna tjänster men i detta fall bedömer vi att informationen är av vikt för en del av våra kunder.

Just nu är det strömavbrott i Västerås och detta drabbar en svensk internetoperatör som heter Loopia. Dom är en av de stora domänregistratörerna och har DNS-servrar för många svenska domäner.

Eftersom dessa DNS-servrar är nere just nu så kan det förekomma störningar på webbsidor som hostas hos Loopia eller som använder Loopia DNS servrar.

Adminor kommer inom kort lansera en anycast DNS-tjänst för kunder som behöver mer redundans för deras DNS-utpekningar.

Hur man får Windows 8 att se ut som Windows 7/XP/2000

Vi på kontoret uppgraderade nyligen några av våra datorer till Windows 8.
Tyvärr var vi inte helt nöjda med det nya METRO utseendet så vi bestämde oss för att byta till det gamla klassiska utseendet.

Det visade sig inte vara helt lätt från början men till slut hittade vi ”Classic Shell”. Det publiceras under öppen källkods-licens och är ”gratis”.
Som med alla installationer av program så får man själv ta ansvar. Vi tyckte iallafall att det löste alla våra problem med Windows 8 som egentligen är ett riktigt stabilt och snabbt operativ.

Källa: http://www.classicshell.net/

Säkrare SSL certifikat i NGINX

SSL betyg

Obs: Denna guide kräver grundläggande kunskaper om NGINX och dess konfiguration.
Ett fungerande certifikat (signerade crt-filer, privat nyckel).

Att konfigurera en webbsida att prata via SSL är ett bra sätt att förbättra säkerheten.
Detta gäller både dig själv och dina besökare.

Vad man ska vara medveten om är att säkerheten kan förbättras ytterligare.
Oftast brukar webbservrar komma förkonfigurerade för ganska bred kompatibilitet. Detta för att SSL certifikatet ska fungera med gamla
Tyvärr skapar detta vissa problem och sårbarheter som illasinnade kan utnyttja.webbläsare eller vissa äldre mobiler.

Vissa exempel är när man tillåter webbläsaren att bestämma allt för mycket om vilka protokoll eller krypteringar som ska användas med certifikatet.

Det kan i värsta fall leda till kryptering som går att knäcka eller att din server blir överbelastad av en illasinnad eller felkonfigurerad klient.

I koden nedan har vi valt att strikt definera vilka ”ciphers” som tillåts och hur krypteringen får sättas upp samt omförhandlas mellan client / server. Den bör stå pall för de flesta certifikattester och bra betyg.

Exempelkod för SSL-konfiguration för en server.
server {[code]

ssl on;
ssl_certificate /etc/nginx/ssl/example.se-bundle.crt;
ssl_certificate_key /etc/nginx/ssl/example.se.key;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_ciphers ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:RC4-SHA:HIGH:!kEDH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
[/code]
Här kan du själv testa din sida om ditt SSL certifikat och konfiguration håller måttet.
Källa: https://www.ssllabs.com/ssltest/

PHP-FPM stöd för apache2 i ISPconfig 3

Nu finns PHP-FPM stöd för apache2 i ISPconfig 3 från och med version 3.0.5.
Det är så enkelt som att installera php-fpm (valfri installationsguide bör fungera) sen uppdatera ISPconfig 3 till senaste version med ”ispconfig_upgrade.sh”-scriptet.

Sen kan du välja PHP-FPM under din sites scriptspråk.

Kontakta oss om du behöver hjälp med uppdatering och konfigurering.
Tänk på att det kan behövas finjusteringar och att vissa funktioner inte funkar i PHP-FPM.

Installera vmware-tools på Debian 6.0 (Squeeze)

Det är väldigt enkelt att installera vmware-tools på Linux Debian 6.0 också känt som Squeeze.

I virtuella maskinen behöver man installera några verktyg via apt-get.

Kör:
apt-get install make gcc
apt-get install linux-headers-$(uname -r)

I vmware esxi görs det genom att man högerklickar virtuella maskinen.

Guest -> Install/Upgrade VMware tools

Gå in på din virtuella maskin, logga in som root eller sudo:a .

Jag väljer att montera och packa upp filerna till /tmp , det går givetvis bra att packa upp till nån annan katalog om man har lite utrymme på /tmp .

cd /tmp

mkdir cdrom

mount /dev/cdrom cdrom

cd cdrom

cp VMwareTools*.tar.gz ../

cd ..

umount cdrom

rm -r cdrom

tar zxvf VMwareTools*.tar.gz

cd vmware-tools-distrib

./vmware-install.pl

rm -r vmware-tools-distrib

Borttagning av kataloger och avmontering av cdrom är valfritt, det sker ändå vid omstart eftersom vi lagt installationsfiler under /tmp .

För de allra flesta räcker det med att bara välja default alternativet på alla frågor.
När installationen är färdig kan ESXi kommunicera med gästen med vmware tools samt uppgradera själv i framtiden.

2010-10-26 (DDOS)

Händelse:

På kvällen den 26:e utsättes en av våra core routrar för en riktad DDOS attack  (överbelastningsattack).

Påverkan:

DDOS trafiken kom i korta trafikanstormningar under kvällen 17:45 fram till 19:55 . Det totala attackantalet var ca 14st och varade mellan 30 och 60 sekunder i taget. Under denna tid upplevdes kapacitetsproblem i form av att upp och nedladdningskapacitet i nätverket minskade. Nätverksaccess var fortfarande tillgänglig men med försämrad prestanda.

Avhjälpning:

Attackmitigering påbörjades på en gång och all trafik var blockerad i vårat eget nät inom ett par minuter. Jour på Adminor kontaktade transitoperatörer på en gång med blockeringsbegäran. Alla operatörer utom en besvarade begäran inom rimlig tid. Operatörens jour var inte bemannad och när de väl ringde tillbaka hade attackerna slutat. Vi för nu diskussion med att upphöra sammarbete och att byta den trafikoperatören.