Tagarchief: Ubuntu

Let’s encrypt

Sinds gisteren is Let’s Encrypt in public beta en daarmee dus ook voor iedereen beschikbaar. Nou zal dat niet iedereen direct wat zeggen, maar ik denk dat dit een ontwikkeling is die een grote verandering op het internet met zich mee zal brengen. Nou betreft het wel een verandering die voor 90% van de mensen niet zullen merken, maar dat maakt het niet minder belangrijk.

letsencrypt-logo_0

Wat veel mensen niet beseffen is dat verkeer van en naar een website in principe voor alle “hops” tussen jouw pc en de server vrij in te zien is. Voor banken zijn we al wel gewent aan het feit dat er een groen slotje bij de domeinnaam moet staan, maar bij veel andere websites denken we daar niet over na. Het gebruik van encryptie lost dat probleem op, het verkeer tussen de client en de server is met certificaten beveiligd en voor de tussenliggende systemen niet in te zien.

Het probleem is echter dat de certificaten hiervoor geld kosten, alhoewel ze niet heel duur zijn (12 euro per jaar grofweg) wordt het voor veel content niet echt als noodzakelijk gezien om de bezoeken te beveiligen. De complexiteit van het onderhouden van deze certificaten is echter een groter probleem. Niet alleen is het veel handwerk om een certificaat goed op je eigen server te installeren, maar het is ook nog eens iets wat je niet moet vergeten bij te houden (wederom handmatig).

Let’s encrypt brengt hier verandering in, niet alleen zijn de certificaten gratis, maar er wordt een tool meegeleverd die de hele aanvraag en implementatie voor je uitvoerd. Daarbij zorgt de tool ook voor een tijdige vervanging van de certifcaten wanneer de einddatum in de buurt komt (een “le” certificaat is 90 dagen geldig).

Het draaien van de tool geeft een wizard die er grofweg zo uit ziet:

Certificaat Aanvraag

En de rest gaat eigenlijk vanzelf, je kan nog even aangeven of de site zowel via HTTP als HTTPS bereikbaar moet zijn of enkel via HTTPS en dat was het dan.

Wanneer we dan controleren of het certificaat goed geïmplementeerd is zien we dat ook dat helemaal in orde is:

Certificaat Controle

Het mooie aan de automatische implementatie is ook dat er eigenlijk niets in de weg staat om dit ook bij shared hosting oplossingen te implementeren. Het gehele traject kan volledig geautomatiseerd worden en een gebruiker hoeft er dus helemaal niets aan te doen. Wat misschien wel nog een blokkade kan zijn is dat voor een groot aantal providers een aardig stukje omzet kan wegvallen doordat ze nu geen tussenpartij meer hoeven te zijn tussen de grote certificaat verstrekkers en de “consument”.

Voor het testen van dit soort zaken gebruik ik overigens meestal een VM bij Digital Ocean, het grote voordeel is dat je deze per uur betaald, wat een root voordeel is voor het even snel testen van nieuwe dingen. De bovenstaande link is overigens een referral link, die levert je 10 dollar aan start tegoed op (1 maand voor een server met 1 core en 1 GB ram). Mocht je mij geen extra tegoed gunnen kan je natuurlijk altijd zelf even het adres invullen als je een account wil :). De gebruikte testomgeving heb ik gebouwd op Ubuntu 15.10 met Apache, PHP en MySQL.

 

 

Ubuntu NFS en LVM

Ik maak thuis inmiddels al enige tijd gebruik van een Intel Atom servertje waarin de nodige disken zitten die de oplsag verzorgen voor onder andere ons mediacenter. Deze server draait Ubuntu Linux 10.04 (server). Ik maak gebruik van LVM voor het bundelen van de disken en het kunnen vergroten van bepaalde stores als daar de behoefte aan is. Tot nu toe gebruikte ik Samba voor het beschikbaar maken van deze data voor de clients in het netwerk, helaas heeft dat als nadeel dat het opzetten van de verbinding redelijk traag is en de behaalde snelheid wat te wensen over laat. Eerst even een overzicht van de disken en de aangemaakte VG en LV’s:

--- Volume group ---
VG Name               fileserver
System ID
Format                lvm2
Metadata Areas        3
Metadata Sequence No  26
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                8
Open LV               8
Max PV                0
Cur PV                3
Act PV                3
VG Size               2.73 TiB
PE Size               4.00 MiB
Total PE              715398
Alloc PE / Size       693760 / 2.65 TiB
Free  PE / Size       21638 / 84.52 GiB

Met daarbij dus onder andere de volgende “disken” als LV’s:

/dev/mapper/fileserver-fotos
                      119G   94G   19G  84% /srv/fileserver/fotos
/dev/mapper/fileserver-downloads
                      119G   33G   80G  30% /srv/fileserver/downloads
/dev/mapper/fileserver-dropbox
                      345G  170G  158G  52% /srv/fileserver/dropbox
/dev/mapper/fileserver-software
                       99G   20G   75G  21% /srv/fileserver/software

Zoals je kan zien zijn de LV’s gekoppeld aan de gelijknamige mappen in /srv/fileserver en het is dan ook die map die gedeeld is via Samba. Nou heb ik er voor gekozen om NFS te gaan gebruiken omdat dat relatief eenvoudig op te zetten / te beheren is en een grote snelheidswinst opleverd (ik test bijna 100% winst op de snelheid). Over de installatie en configuratie van NFS in Ubuntu zijn meer dan genoeg tutorials te vinden, maar toch kreeg ik het niet helemaal werkend zoals ik dat zelf zou willen.

ik had de map /srv/filserver dus via NFS beschikbaar gemaakt, echter, van alle mappen die daar in zitten waren er maar twee goed te benaderen vanaf mijn clients de overige mappen gaven de melding dat ik geen rechten had om deze mappen in te zien, opvallend was ook dat ik met ls -ln bij deze mappen als user en group ID de waarde “0” terug kreeg. Het was echter een opmerking van Steph die het kwartje deed vallen (Waarvoor dank :)), de mappen die wel naar behoren werkten waaren de mappen die daadwerkelijk mappen waren in de /srv/fileserver map, de mappen die niet functioneerden zijn de LV’s die aan die mappen gekoppeld waren.

Alhoewel ik dus nog niet gevonden heb waardoor het nou precies komt lijkt het niet mogelijk te zijn om een map met een mix van echte mappen en LV’s in een keer aan te bieden via NFS. Ik heb dit nu opgelost door de individuele mappen uit /srv/fileserver via NFS aan te bieden en wat meer koppelingen aan te maken op de clients, helaas wat meer werk dan voorzien, maar het werkt nu in ieder geval.

Ik heb er helaas wat lang over gedaan om er achter te komen wat er nou precies voor zorgde dat het niet werkte zoals ik wilde, maar het is in ieder geval weer gelukt 🙂