Netsensei

Much Ado About Nothing

Server

Ik werd gehackt

Eind maart maakte het Drupal Security team kwetsbaarheid SA-CORE-2018-002 bekend. Het ging om een zeer serieus veiligheidsprobleem met Drupal. Zo serieus dat iedereen alles moest laten vallen op Drupal websites te voorzien van een update. Drupalgeddon dus. Ondertussen maakten gewiekste mensen met slechte bedoelingen gebruik van de gelegenheid om zoveel mogelijk servers met onbeveiligde Drupal sites te hacken.

Mijn eigen server is er daar eentje van. Ik was namelijk in die periode in Californië. Het duurde even voor ik kans had om het nodige te ondernemen. Helaas was het kwaad reeds geschied. Deze week kreeg ik een bericht van Linode – de hosting partij van wie ik een virtuele server lease – dat er problemen waren.

Gehackt!
Gehackt!

Tijd om actie te ondernemen. De eerste stap was de server offline halen om geen verdere schade te veroorzaken. Dat deed ik eerder deze week. Dat betekende dat ik enkele dagen uit de lucht was. Gelukkig gaat het om persoonlijke projecten, niet om die van betalende klanten. In dat geval zou ik met een groter probleem hebben gezeten.

Gisteren heb ik een nieuwe server aangemaakt. Handmatig configureren zou snel een dag of meer kosten. Tegenwoordig automatiseer ik zoveel mogelijk met Ansible. Het kostte me een dik half uur om die operationeel te krijgen. Vervolgens was het een kwestie van de websites één per één terug on line te zetten. In het geval van die ene Drupal website betekende dat: de files folder en de database manueel controleren en schonen. En dan vind je dit soort ongein terug:

Gehackt!
Gehackt!

Juist. Script kiddies die mijn server mismeesteren voor allerlei illegale praktijken. In de database vond ik ook nog eens allerlei  Javascript crypto miners terug. Gelukkig kon ik die met wat RegEx Fu helemaal opschonen. Het ging dan ook om een site met niet zo heel erg veel inhoud. Maar het kostte me wel wat tijd en moeite om alles grondig te controleren.

Tenslotte heb ik ook meteen alle laatste patches en updates toegepast, wachtwoorden vervangen, enzovoorts enzoverder.

Waarom de oude server niet gewoon opschonen? Omdat dat eigenlijk gewoonweg niet doenbaar is. Het is veel eenvoudiger om met een schone lei te beginnen en de gehackte server uiteindelijk te verwijderen.

Waarom Drupal nog blijven gebruiken? Omdat de ontwikkelaars achter Drupal hier de juiste procedure volgden. Kwetsbaarheid breed kenbaar maken en meteen een oplossing voorzien. Dat ik toch in de problemen kwam, ligt geheel en al aan een ongelukkige timing.

Waarom zelf al die moeite met een server doen? Daarom.

Server onderhoud

Sinds 2010 host ik mijn digitale zoo op een VPS van Linode. Op één gelegenheid na, ben ik vrij tevreden van hun diensten.  Tot op heden betaalde ik ook een aardig bedrag voor die server: 20$ per maand. Plus 5$ voor een dagelijkse en wekelijkse geautomatiseerde backups. Sinds 2010 kreeg ik occasioneel wel meer bang for the buck – extra RAM geheugen, meer disk space – maar aan de prijs zelf is nooit gezakt.

Eind vorig jaar merkte ik dat Linode haar tarieven had aangepast en de Linode 2048 VPS naar de low-end was opgeschoven. Voor 10$ plus 2.5$ per maand koop ik exact dezelfde service.

Verder had ik mijn server indertijd manueel had geconfigureerd. Veel werk dat ik niet opnieuw wilde uitvoeren. Sinds enkele jaren bestaan er software tools zoals Puppet, Chef en Ansible die zeer veel server management taken automatiseren en waarmee administrators hele serverparken kunnen beheren. In plaats van elke server apart opnieuw te configureren, schrijf je eenmaal een configuratiebestand en rol je dat dan uit op alle servers.

En dus heb ik in de afgelopen weken af en aan gewerkt om het huishouden op punt te zetten.

Ten eerste heb ik mijn hele configuratie vastgelegd in Ansible scripts gebaseerd op Phansible. Op mijn Macbook laat ik een lokale ontwikkelingskopie van de hosting lopen die ik aanstuur met Vagrant. Met mijn Ansible scripts kan ik die kopie volledig geautomatiseerd dezelfde configuratie geven als de server die bij Linode loopt. Het mooie aan die opzet is dat ik zo zeker ben dat wat ik op mijn laptop bouw, ook zal werken op de server wegens exact dezelfde setup. Verder kan ik nu ook zeer snel naar een andere server, of zelfs een andere hosting dienst, verhuizen mocht dat nodig blijken.

Ten tweede is er het beheer van elke individuele site. Zowel Drupal als WordPress komen met nogal wat plugins en modules die op hun beurt ook regelmatig updates en upgrades krijgen. Dat betekent dus regelmatig werk op de plank om al die code uit te testen en up te daten. Vroeger deed ik dat nog handmatig maar dat is vandaag quasi ondoenbaar. Tegenwoordig gebruik ik Capistrano om updates voor individuele sites als aparte releases te verpakken en uit te rollen op de server. Mijn specifieke setup heb ik gepubliceerd op Github.  Ook hier heb ik met één commando een hele waslijst aan taken geautomatiseerd.

Allemaal goed en wel. Maar wat betekent dat nu concreet? Wel, vandaag heb ik de laatste site gemigreerd naar een nieuwe, goedkopere server en de oude server finaal uitgezet. Een kleine mijlpaal die ik vooral in mijn factuur voor hosting ga voelen. Zo bespaar ik op jaarbasis maar eventjes 150 USD. En verder betekent het ook dat ik minder tijd moet steken in onderhoud naar de toekomst.

20 jaar WWW

Ha! Het web werd vandaag een frisse twenty-something!

On 30 April 1993, CERN made the source code of WorldWideWeb available on a royalty-free basis; the software was free for anyone to use, and remains so today. Web usage exploded as people started setting up their own servers and websites. By late 1993 there were over 500 known web servers, and the WWW accounted for 1% of internet traffic, which seemed a lot in those days (the rest was remote access, e-mail and file transfer). Twenty years on, there are an estimated 630 million websites online.

Meer: info.cern.ch

Olie nakijken

Als je dit bericht kan lezen, dan is de olie van dit blogje nagekeken. Of beter, dan is de verhuis tussen servers geslaagd.

Sinds drie jaar en een dag is dit stukje van de Intertubez gehost bij Joyent. Ik had er zo’n accelerator account. In die tijd was dat zo’n beetje het betaalbare alternatief wilde je een stapje verder gaan dan wat een gewone shared hosting aanbood. Ik kreeg er shell access, kans om te prullen met Ruby on Rails, iets wat in de verte op virtuele hosts leek en dies meer. Onlangs kreeg ik een mailtje in de bus met de melding dat Joyent die service stopzet. Iets met niet meer rendabel en ook niet langer onderhouden.

Tijd dus voor het echte werk. Sinds december lease ik reeds bij Linode een VPS. Noem het maar gerust een volwaardige server. Tegen een betaalbare prijs. Als hacker, DIY mens, what-not was dat de volgende logische stap. Ik was al lang van plan om al mijn projecten te consolideren op die machine, maar tot nu toe kwam het er nooit van. De verhuis van dit blogje is dus bij deze in een stroomversnelling gekomen.

Het kan zijn dat er links en rechts wat mankementen zijn. Laat niet na om te mailen als je een probleem ontdekt!

Bookmarks van September 2nd tot September 6th

Verlof

Eén van mijn betere ideeën was om verlof te nemen deze week. Schoon weer, geen regen, niet te warm en niet te koud. Ideaal! Wilde plannen heb ik niet. Voorlopig heb ik mij eigenlijk voornamelijk bezig gehouden om openid te doorgronden.

Ik heb mij gelijk de JanRain PHP library gedownload om er wat mee te spelen. De uitleg in de API documentatie was zo duidelijk dat ik meteen een eenvoudige consumer kon maken en via mijn blog (een openid delegate in het jargon) mijn openid verifiëren. Meer zelfs, toen ik mijn implementatie even vergeleek met één van de voorbeelden van JanRain bleken die quasi krek hetzelfde te zijn! En zelf een server opzetten en laten draaien is ook niet zo heel erg moeilijk.

Alle technische mumbjumbo goed en wel, maar wat wil ik er nu mee aanvangen? Ik denk aan een aantal dingen. Maar laten we beginnen met openid support in WordPress. Het zou al mooi zijn moest ik een eenvoudige plugin kunnen schrijven die OpenID toevoegt aan comments. Het idee is om zo OpenID nog wat verder te leren kennen. Daarna zien we wel weer…

Spambot

Help! Het is al erg gesteld als een mens door zijn eigen WordPress installatie wordt herkend als een spambot. Ik maak het mee en het is niét fun. Ik kan bepaalde termen in mijn posts niet gebruiken of ik krijg onderstaande melding. Tegenwoordig kan ik zelfs de ‘options’ van mijn WordPress installatie niet veranderen of ik krijg dit te zien. Very annoying to say the least. Ik heb al allerlei plugins (bad behaviour, spam karma, akismet) uitgezet maar zonder resultaat. Ik vermoed dat het iets is op server niveau. Ik gooi het nog even hier mochten er mensen zijn die zich hierin herkennen…

spambot

Wie weet welk onding dit produceert trakteer ik op een frisse pint!

Alle quiet on the western front

Zondagavond stuur ik een mailtje richting mijn host om te waarschuwen dat er een hacker op mijn website actief is geweest en dat zij daar toch ook wel eens naartoe zouden mogen kijken. Gedeelde verantwoordelijkheden en zo. We zijn nu dinsdag-bijna-avond en ik heb nog altijd geen reactie gehad van de helpdesk. Bizar. Of ’t moet zijn dat ze er geen fluit meer om geven of hun servers lekke mandjes zijn of dat hun klanten het zelf maar moeten uitzoeken. Hmgr.

Als ik morgen nog geen reactie heb gehad stuur ik een iets meer aandringende mail in de hoop ze zo wakker te schudden.

Out of order

Hm. In de mediamarkt hadden ze al geen energiemeter. Ik weet dat ze er eentje op Conrad verkopen, maar ik zou het toch eerst nog eens willen proberen in de Brico of de Hubo.

Verder is mijn mail/webserver uitgevallen. Ik wilde de configuratie van de stekkerblokken wat optimaliseren, en dat betekende dus alles ontkoppelen. Ook chronos, mijn router en mijn kabelmodem. Die moet ik dus herconfigureren. Mijn server is weliswaar “maar” een pentium 2 zonder monitor of zo en die op mail en webservices geen zware processen draait, maar ik wil wel nagaan hoeveel stroom hij verbruikt. Vandaar de energiemeter. Een ruwe schatting levert mij idle een 60-70Wh op. Maar zonder concrete cijfers blijft het behelpen.

Ergens hoop ik hem te kunnen behouden want in de tussentijd ben ik tot de conclusie gekomen dat een centraal digitaal depot voor mijn mail (jaja, Filip.) verdomd handig is.

e-mail woes

Bon. Nu mijn homebrew linux server hier in Antwerpen staat: tijd voor het betere werk. Naast de klassieke LAMP (met apache2) configuratie wilde ik eens iets anders doen. Iets wat écht nuttig is. En wat is nuttiger dan mijn e-mailproblemen onder handen nemen.

Aangezien ik nogal mobiel ben geraakt mijn e-mail al snel verspreid tussen mijn pc’s in Antwerpen en Brugge en mijn laptop. Om toch niet geconfronteerd te worden met een e-mailarchief dat ik ten allen tijde slechts deels kan benaderen (omdat een deel toevallig elders – onbeschikbaar – bewaard wordt) laat ik mijn mail op de mailserver van netsensei.nl staan. So far so good… maar die mailbox is niet oneindig groot en wanneer ik mijn mail dan toch ervan moet halen, dan kan ik elders niet zomaar terugvallen op de kopieën op de server.

Enter: een éigen mailserver waar ik onbeperkt mijn mails op kan bewaren. Twee avonden fiddelen met exim, procmail, fetchmail, imap en squirrelmail en ik heb het zo’n beetje bollen. Mijn mail wordt op gezette tijden afgehaald van netsensei.nl en bewaard in een mailbox op mijn linux server. Via imap kan ik binnen het netwerk in mijn studio met thunderbird op zowel mijn laptop als mijn desktop mijn mail benaderen. Buitenshuis kan ik via squirrelmail/webmail nog altijd mijn e-mail via een browser bekijken.

Blijven nog over: instellen dat ik ook met mijn thunderbird in Brugge mijn mail kan afhalen. Tricky aangezien particuliere relay servers niet graag gezien worden door ISP’s. Verder wil het remote (dus vanaf mijn desktop of laptop) zenden van e-mail via mijn mailserver niet echt lukken. Als ik inlog via SSH lukt me dit wel met mutt. En verder geraken de statusmessages van mijn server (gegeneerd door o.a. cron en logcheck) hopeloos vermengd met de mail van mijn netsensei.nl account. Met procmail zou dat te vermijden zijn, maar dat lukt voorlopig niet al te goed. En dan moet ik het zaakje ook nog eens op een deftige manier proberen te beveiligen.

Nog veel werk voor de boeg dus. Maar als me dit lukt, dan betekent het wel een substantiële verbetering van de huidige situatie. Hmz.

« Vorige blogposts Pagina 1 van 2 pagina's Volgende blogposts »