Docker & Træfik – Loadbalancer made easy

Today in Docker. A scalable, nginx based, demo environment behind a loadbalancer in 26 lines and 2 commands.

We’ll be using Træfik and the Nginx based “whoami” container.

Get it

First of, let’s start with our Docker compose file:

version: '2'

services:
  proxy:
    image: traefik
    command: --web --docker --docker.domain=docker.localhost --logLevel=DEBUG
    networks:
      - webgateway
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /dev/null:/traefik.toml

  whoami:
    image: emilevauge/whoami
    networks:
      - webgateway
    labels:
      - "traefik.backend=whoami"
      - "traefik.frontend.rule=Host:whoami.docker.localhost"

networks:
  webgateway:
    driver: bridge

Now, a little more detail, you create the URL that your server will be reachable with the “label” command on line 20:

labels:
      - "traefik.backend=whoami"
      - "traefik.frontend.rule=Host:whoami.docker.localhost"

This will create the service “whoami” in the loadbalancer and will make it accessible trough “whoami.docker.localhost”

Line 7 & 18 create the network and line 24-26 sets the properties.

Run it

Now, up it:

docker-compose up -d

And scale the service whoami:

docker-compose scale whoami=10

Now you can visit the loadbalancer on http://localhost:8080 or docker.localhost:8080 . This will look like:

After that, simply go to http://whoami.docker.localhost and you will get output similar to:

Hostname: 0ba96cbfa379
IP: 127.0.0.1
IP: ::1
IP: 172.18.0.31
IP: fe80::42:acff:fe12:1f
GET / HTTP/1.1
Host: whoami.docker.localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: en-US,en;q=0.8
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
X-Forwarded-For: 172.18.0.1
X-Forwarded-Host: whoami.docker.localhost
X-Forwarded-Proto: http
X-Forwarded-Server: 66978d8364ac

Now, every time you refresh the Hostname and IP should change ( because the loadbalancer is redirecting you to another instance.

And that’s it.

#5985 +(44) [X]

<Foggi> french are good for 2 things
<Foggi> art
<Foggi> and surrendering

OpenVPN server in 30Seconden – HowTo

Vandaag gaan wij een OpenVPN server bakken.

Screenshot 2014-05-26 13.01.06

NOTE: We maken hier gebruik van de OpenVPN acces server. Dit is een stukje software van OpenVPN met een aantal beperkingen ( je kan bijvoorbeeld maar 2 geregistreerde gebruikers tegelijk met je server laten praten, je kan echter wel 1 account op meerdere apparaten tegelijk gebruiken  ).

Voor iedereen die niet weet wat een VPN doet:

Een VPN is een netwerk dat door een ander netwerk (gewoonlijk het internet)[1] getunneld wordt. Hierdoor wordt de theoretische topologievereenvoudigd, de praktische routering daarentegen zal complexer worden afhankelijk van het onderliggende netwerk. Een VPN tracht de voordelen van het onderliggende netwerk te gebruiken en de nadelen ervan te compenseren. De primaire problemen met het datatransport over een onderliggend netwerk zijn de veiligheid en de betrouwbaarheid. Door encryptie en controlemaatregelen (bijvoorbeeld CRC) kan een goed uitgewerkt VPN toch deintegriteitautorisatie en authenticiteit van de verzonden data verzorgen. Al deze beveiligingsmaatregelen moeten bovendien zo transparant mogelijk geïmplementeerd worden, opdat de eindgebruikers er eenvoudig gebruik van kunnen maken. Verder moet er ook rekening gehouden worden met wetten[2] die van kracht zijn omtrent de privacy van data.

Ingrediënten: 

  • VPS of thuisserver met een Linux Smaakje
  • 30 seconden van je leven ( meer als je het niet helemaal snapt )

Stap voor Stap

1. Log in op je server.

2. Wget deze shizzl van OpenVPN:

32 bit: wget http://swupdate.openvpn.org/as/openvpn-as-1.8.5-Debian6.i386.deb

64 bit: wget http://swupdate.openvpn.org/as/openvpn-as-1.8.5-Debian6.amd_64.deb

3. Installeren:

32 bit: dpkg -i openvpn-as-1.8.5-Debian6.i386.deb
64 bit: dpkg -i openvpn-as-1.8.5-Debian6.amd_64.deb

4: To the Web interface:

https://ipadressvanjeserver/admin

Screenshot 2014-05-26 13.00.48

En dat is het eigenlijk. Veel plezier met je VPN. Doe maar vragen stellen in de comments.

@longstag "Time to laugh exceeded!!!" #TTL #protolol

Two factor auth alles G

Omdat wij deze week ( afgelopen week ) zijn begonnen met ethical hacking op het Windesheim vond ik het maar eens hoog tijd om mijn accounts iets beter te beveiligen. Maar waarom dan ? Omdat het allemaal zo makkelijk te hacken is ? Nee. Puur omdat ik nu al kan gokken dat een aantal klasgenoten zeker zullen proberen iets van mij of anderen te “hacken”.

Daarom vandaag, een klein stukje over two factor auth.

Live it

Live it

Wat is Two Factor auth ?

Om de betrouwbaarheid van de authenticatie te vergroten, wordt authenticatie afgedwongen door toepassing van multifactor authenticatie. Te denken valt aan het gebruik van een token met een PINcode. Een aanvaller dient nu niet alleen het kenniskenmerk te kraken, maar ook het token te bezitten.

In dit geval heb ik een aantal accounts beveiligt met Google Authenticator. Dit zorgt ervoor dat ik dus de volgende gegevens nodig heb: Gebruikersnaam + Wachtwoord + PIN. Deze pin wordt op je smartphone, tablet of laptop ( met een kleine workaround ) gegenereerd. Elke PIN is ongeveer 30 seconden geldig. Hierna wordt er automatisch een nieuwe gegenereerd.

Voor WordPress is dit heel makkelijk. Je installeert de plugin. Vervolgens activeer je de plugin op de User pagina. Als laatste scan je de code ( Er wordt een QR code gegenereerd die je kan scannen met de Google Authenticator App. ) En done. Het geheel ziet er dan zo uit:

Google Auth WordPress

Het leukste is niet alleen dat je voor de Google Auth app geen Google account nodig hebt ( het is een op zichzelf staande App ), maar dat het ook met heel veel andere diensten werkt zoals:

That’s it. Leuk om weer meer te bloggen.

TTY exit.

<DigDug> i think i’m gonna walk to the movie theater and see dinosaur…
<kimy-> and be surrounded by like 10 year old girls?
<Amanda_> He said Dinosaur, not N’Sync.