Tagarchief: linux

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.

 

 

Joe syntax highlighting aanpassen

Soms loopt je tegen van die problemen aan die je eens in de zoveel tijd tegen komt, maar die net niet vaak genoeg voorkomen om de oplossing te onthouden.. In dit geval is het de kleur van de PHP Syntax Highlighting in Joe via Putty (volg je het nog?)

Standaard is de instelling voor “Constant_sq” blauw, donkerblauw om precies te zijn, en dat leest toch net niet lekker op een zwarte achtergrond:

Joe PHP Syntax

Dus daarom heb ik het liever zo:

Joe PHP Syntax aangepast

Gezien ik dus iedere keer weer op zoek moest naar hoe ik dit definitief aan kon passen (dus niet iedere keer handmatig een andere syntax highlighting selecteren) heb ik besloten er maar een korte blogpost aan te besteden zodat ik de volgende keer niet zo ver hoef te zoeken :).

De configfile staat op ubuntu op deze locatie:

sudo joe /usr/share/joe/syntax/php.jsf

Vrijwel boven in de config staat dit stuk:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq blue
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold

Je wil hier de dikgedrukte regel aanpassen, in mijn voorbeeld heb ik er dit van gemaakt:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq yellow
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold

Lampen aansturen deel 2

Technisch was het niet bijzonder complex om het aansturen van de KlikAanKlikUit schakelaars werkend te krijgen, het installeren van Raspbian duurder langer dan het werkend maken van de aansturing.

De grotere uitdaging zat in  het maken van een beetje normaal werkende “webinterface”, en alhoewel het er niet uit ziet heb ik nu wel een werkend systeem om op alles wat een website kan openen thuis de lampen te kunnen schakelen.

screenshot

Er wordt ook direct nog wat data opgehaald uit een losse database die ik al een paar maanden aan het vullen ben met statistieken over ons gas en stroomverbruik. Sinds kort zit daar ook een tabel met weergegevens bij zodat ik ook nog een patroon zichtbaar kan maken met bijvoorbeeld de invloed van het weer op het gasverbruik. Of gevolgen van het wisselen van zomer en wintertijd op stroomverbruik en dergelijken. Overigens zit er een foutje in het bovenstaande screenshot, het stroomverbruik moet nog even door 10 gedeeld worden :).

Ondanks dat het geheel alleen intern op mijn eigen netwerk beschikbaar is heb ik toch wel wat aandacht besteed aan het “beveiligen” van het geheel zonder dat dit hinder oplevert in het gebruik. Effectief doet de pagina niets anders dan een paar variabelen uit de URL pakken (locatie en status) en aan de hand daarvan wordt er middels een php shell_exec een script aangeroepen dat de schakeling uitvoert. Gezien de gebruikte variabelen met wat geluk en probeerwerk dus misbruikt zouden kunnen worden voor kwalijkere zaken wordt de input vergeleken met de beschikbare opties, als het in orde is wordt het script aangeroepen, klopt het niet gebeurt er verder niets. Dit voorkomt ook meteen dat een foutje van mijn kant niet direct te grote gevolgen heeft ;).

Wat ik nu nog wil maken is dat ik via dezelfde webpagina ook de mogelijkheid krijg om schema’s te maken die de lampen op gezette tijden automatisch aan of uit kunnen zetten.

Lampen aansturen met de Raspberry Pi

Een paar dagen geleden kwam ik een (oude) tweakblog post tegen over het aansturen van een “Klik aan Klik uit” systeem via een Raspberry Pi. Gezien ik sowieso al een Raspberry heb draaien voor het uitlezen van de energiemeter (daarover schijf ik een andere keer nog wel een stukje) was het een leuke uitbreiding die ik voor een paar euro wel kon maken.

kaku - overzicht

Gisteren is dus de 433Mhz zender die ik nodig had binnen gekomen, deze heeft iets meer dan 3 euro gekost, dus dat is nog wel te overzien :). Zoals op de foto’s te zien is stelt het ding zelf helemaal niets voor en na het lezen van de ervaringen van wat andere gebruikers had ik het idee dat het bereik van de zender nog wel eens een probleem zou kunnen worden. Gelukkig blijkt dat uiteindelijk wel mee te vallen. Het werkend maken van de zender in Raspbian is met de eerder genoemde tweakblog geen noemenswaardige uitdaging meer.

Ik gebruik in huis al wat oudere schakelaars, ze komen ongeveer overeen met dit model:

klikaanklikuit

Ik denk wel dat ik met het uitzoeken van de adresseringen van mijn schakelaars wel wat buren heb lastig gevallen met lampen die uit en aan gaan.. Maar na wat puzzelwerk is het me in ieder geval gelukt om via de commandline de lampen aan en uit te kunnen zetten. De volgende stap was om dit via een webinterface te doen, maar dat stelt na de andere stappen niets meer voor.

Het enige wat ik nu nog wil kunnen doen is via een webinterface een schema in te kunnen stellen waarop lampen “vanzelf” en en uit kunnen gaan, maar dat is een uitdaging voor volgend jaar :).

 

Minecraft server

Een paar dagen geleden ben ik begonnen met het hosten van een eigen Minecraft server. Een aantal van ons had behoefte aan een mod-loze server waar we helemaal opnieuw zouden kunnen beginnen en ik vond de technische uitdagingen er om heen wel leuk, dus heb ik die server maar gestart.

Het draaien van de server zelf stelt na het bouwen van een XML config file niet al te veel meer voor, gezien we een modloze standaard server zochten hoefde ik ook niet al te veel standaard settings aan te passen om de server te kunnen draaien. Dus dat was in een uurtje wel helemaal uitgezocht en werkend. De uitdaging komt pas wanneer je meer wil doen moet die server

Automatische map genereren
Eigenlijk wil ik een google maps like worldmap maken, helaas heb ik natuurlijk weer net de linux distributie waarop dat niet werkt, met een fout diep in JAVA kom ik helaas geen steek verder. Gelukkig had Mattijs een alternatief (mcmap) waarmee ik aan de gang gegaan ben. Alhoewel ook dit niet meteen helemaal deed wat ik wilde is het uiteindelijk gelukt. Maar dan heb je dus een commando waarmee je een kaart kunt genereren, dat is ook nog net niet handig, dus daar moest nog het een en ander aan ge-automatiseerd worden. Nou heb ik daar in linux niet echt ervaring mee, dus het was leuk om dat eens goed uit te zoeken. Het scriptje dat ik nu gemaakt heb doet ongeveer het volgende:

  • Draai de tool om de map te genereren
  • Rename de file
  • Maak een thumbnail van 10% van de originele grote
  • Move de file naar een archief
  • Upload de file en  de thumbnail naar duurtlang.net
Bovenstaande loopt via een cronjob ieder uur 1x en werkt prima naar behoren. Maar ja, het zou niet leuk zijn als de uitdagingen nu al op waren ;).
Minecraft map

Map posten op Twitpic / Twitter

Mattijs had tijdens het Minecraften voor de grap geroepen dat het nu ook nog automatisch dagelijks een nieuwe map op twitpic zou moeten zetten en daar een tweet van moest maken. Alhoewel ik eigenlijk niet van plan ben om dit script inderdaad dagelijks te laten lopen vond ik het wel een leuke uitdaging om zo iets werkend te maken. Ik had nog nooit echt wat gedaan met de Twitpic API, dus dit was wel eens leuk (vooral ook omdat die API sowieso niet al te complex is ;)).

Na ongeveer 20 minuten lezen en prutsen is het in ieder geval gelukt: http://www.twitter.com/HermanRonk/status/90707656507006976

Nu ik het bovenstaande allemaal werkend heb heb ik in ieder geval ook wel een leuk voorbeeld voor een server op CampZone, als iemand nog een leuk idee heeft wat ik nog meer met de minecraft server kan doen hoor ik het graag. Ik heb me er tot op heden in ieder geval een paar uurtjes mee kunnen vermaken :).

Nieuwe server

Tot deze week draaide in ons appartement een klein servertje op basis van een Intel Atom, alhoewel het de zaken die er op draaiden op zich goed gingen was het allemaal maar net aan, daarnaast had ik nog een aantal wensen die ik met deze hardware domweg niet voor elkaar kon krijgen. Toen Andries tijdens The Party zijn nieuwe server hardware binnen gekregen had en daarmee aan de gang ging was voor mij al vrij snel duidelijk dat zijn server krachtig genoeg was om te kunnen draaien wat ik voor ogen had en ook nog eens binnen het gestelde budget zou vallen. Dus, de nieuwe server was onderweg, door wat leverproblemen van het moederbord heb ik helaas wat langer moeten wachten dan gehoopt, maar afgelopen maandag was dan eindelijk alles binnen.

De hardware:

CPU: Intel Core i5 2500 (3,3 Ghz Quadcore)
Moederbord: Intel DQ67OW B3 iQ67, SATA600 RAID, DVI
RAM: 16GB, DDR3, PC10666, CL9
VoedingCorsair Voeding CX430 430W
HDD: 3x Western Digital Harddisk 3.5″ 2TB, SATA300, 64MB
HDD: 1x Western Digital Harddisk 3.5″ 1TB, SATA300
SSD: 1x Intel 160GB
SSD: 1x Corsair 115GB
Case: Fractal Design R3

Zowaar is het me gelukt om deze keer alles in 1x goed in elkaar te zetten en werkend te maken, normaal zit er altijd wel ergens een stekkertje of kabeltje nog niet helemaal goed, maar deze keer ben ik blijkbaar goed te werk gegaan. De case heeft daarbij wel geholpen moet ik zeggen, normaal ga ik voor een zo goedkoop mogelijke case, maar deze keer heb ik daar eens in geinvesteerd.. En ik moet zeggen dat dat het zeker wel waard geweest is, de kabels zijn netjes weg te werken, casefans zijn mee geleverd en bovenal, de hele case zit vol met geluidsisolerend materiaal.

Server met voeding
Server met voeding

 

Dat laatste is niet geheel onbelangrijk, bij de hardware keuze is het energieverbruik en de geluidsproductie van belang geweest, de machine staat in de huiskamer en mag dus eigenlijk geen geluid produceren, wat ook gelukt is. Op meer dan 1 meter afstand hoor je helemaal niets meer van het ssyteem, de casefans draaien wel (aangestuurd door het moederbord), maar zijn onhoorbaar, de CPU blijft koud waardoor die fan ook lekker rustig blijft. De disken zitten op rubber doppen waardoor de resonantie niet doorgegeven wordt aan de case enzovoorts.

 

Server ingericht 1
Server ingericht 1

Softwarematig moest er ook het een en ander gebeuren om gebruik te kunnen maken van de mogelijkheden van het systeem, zo draait er nu ESXi op met daarop een aantal Windows en Linux VM’s die een aantal verschillende zaken regelen, zo heb ik nu eindelijk een Windows 7 VM  waarop ik mijn office zaken kan regelen, is het VPN gebeuren goed ingeregeld en heb ik de storage van Linux naar Windwos over gezet (ik miste in Linux een stukje overzicht op dit gebied) en zo zijn er nog wat meer zaken eindelijk netjes zoals ik het hebben wil.

 

Server ingericht 2
Server ingericht 2

Misschien nog wel het mooiste van dit alles is dat mijn oude Intel Atom server met 1 disk minder en zonder de SSD’s een verbruik had van 58 Watt en de nieuwe tussen de 60 en 85 Watt zit, alleen dan wel met 10 Ghz en 12 GB Ram meer dan de oude.

Al met al een erg goede upgrade die gelukkig zo goed als perfect verlopen is, vooral dankzij al het voorwerk dat Andries al voor zijn eigen server gedaan heeft (waarvoor dank).

 

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 🙂

Zarafa open source Exchange alternatief

Ik had al een paar keer van Zarafa gehoord, een opensource alternatief voor Exchange, inclusief ondersteuning voor MAPI. Gezien ik de laatste tijd toch al aardig aan het spelen was met mijn Debian Linux installatie kon ik dit ook wel eens proberen.. De installatie op zich is niet zo heel erg lastig, echter, alle handleidingen / howto’s en wiki’s die je op internet kan vinden kloppen allemaal NET niet.. Zeer frusterend.. Maar na uren van zoeken en prutsen is het met een klein beetje hulp van Eric uiteindelijk toch gelukt :).

Een dezer dagen zal ik een volledige how to voor het installeren en instellen van Zarafa op Debian Linux online zetten die WEL klopt :).. Tot die tijd heb ik hier een aantal screenshots neergezet.

Nieuwe werkpc


Schermen die je een tijdje niet gebruikt worden doorzichtig


Met 1 toetscombinatie kan je je 4 desktops op een rijtje zetten en applicaties naar de verschillende schermen kan slepen (1 fysiek scherm waarbij je tussen de desktops kan scrollen)


Bovenaan een soort van startbalk en onderaan de draaiende applicaties (als ik de muis er boven houd kan ik ook info over die proggrama’s zien)

Dit zijn 3 screenshots van 1 van mijn 2 werkstations die ik momenteel gebruik, het is een Ubuntu 7.10 installatie met Beryl en Compiz (een linux systeem). De applicaties die ik niet in Linux kan draaien (Office bijvoorbeeld) draai ik via Citrix sessies. Al met al was het denk ik 2 uurtjes werk om de installatie te krijgen zoals hij nu is, en ik moet zeggen dat het het echt waard is geweest. Momenteel doet dit werkstation niet onder voor mijn andere (Windows XP) werkstation, maar dat komt mede door Citrix, ik zou anders nog wel enkele applicaties missen.

Het is min of meer begonnen als een testje voor mezelf of het mogelijk was om een linux desktop zo in een bestaande omgeving te kunnen gebruiken, maar ik denk wel dat ik zelf deze desktop zo zal blijven gebruiken 🙂

Gebruikte applicaties:
Compiz
Beryl
Ubuntu 7.10

Wat voor mij een van de grootste verrassingen was is dat Wifi in een keer goed werkte, ook met WPA, dit was in de vorige versies altijd nog een ramp. Inmiddels werkt ook Bluetooth goed en werd de grafische kaart in 1x goed herkent en ingesteld. Al met al maken ze steeds grotere stappen voorwaarts moet ik zeggen.