C2018D10: Software updates september 2018

Klantcommunicatie

Aankondigingen

Aankondiging: Software onderhoud hosting omgeving en aankondiging End-Of-Life verouderde software

Beste Klant / collega,

Bij deze vragen we aandacht voor het volgende:

Het NPO-ICT webhosting platform bestaat uit een veelheid van software componenten; denk aan webservers als apache en nginx; programmeertalen als php, java, ruby en python; databases als mysql, mariadb, postgresql, redis en couchdb. Vaak maakt deze software gebruik van externe programmabibliotheken om specifieke taken uit te voeren. Denk aan openssl voor encryptie of imagemagick voor image processing.

Van al deze tientallen tot honderden componenten komen regelmatig nieuwe versies uit en omdat de developers ervan niet alles kunnen ondersteunen worden oude versies vaak op enig moment tot not-supported verklaard.

Vaak kunnen wij software van een oude naar een nieuwe versie updaten zonder dat dat enige impact op de werking van een website of een applicatie heeft. Helaas is dat echter niet altijd mogelijk. Van tijd tot tijd komen er nieuwe zogeheten “major releases” uit, die niet 100% backwards compatible met oudere versies zijn. Het gevolg hiervan is dat als we zo'n upgrade toch zouden uitvoeren er een grote kans bestaat dat een website of applicatie na afloop niet meer werkt. Bij zo'n major upgrade zijn vaak aanpassingen in de code van de website of applicatie nodig om deze weer te laten werken met de nieuwere software versie. En daar is dus actie van de ontwikkelaars van de website voor nodig.

In het verleden is het regelmatig gebeurd dat dit soort major upgrades (te) lang uitgesteld zijn, waardoor er nu op een aantal plekken (te) oude, niet meer gesupporte software draait. Dit is een security risico, wat weer een impact op privacy kan hebben. Denk aan een datalek als gevolg van een oude website die verouderde software draait.

Vanwege de strengere wetgeving t.a.v. privacy en informatiebeveiliging is bij de NPO een project gestart om aan een ISO norm op dat gebied te gaan voldoen (ISO 27001). Gevolg hiervan is dat we op termijn van alle niet meer gesupporte software af willen en dat we in de nabije toekomst onze klanten dus vaker en met meer nadruk zullen vragen om voor ons software updates mogelijk te maken door de websites en applicaties geschikt te maken voor de nieuwere versies. Waarbij uiteindelijk de keuze tussen upgraden of uitzetten gemaakt zal moeten worden.

Omdat het over vrij veel componenten gaat doen we de upgrades gespreid in de tijd. Afgelopen jaar is bijvoorbeeld al met betrokkenen contact opgenomen over het upgraden van oude php-, mysql- en java versies.

Bij deze willen we aandacht vragen voor de volgende componenten:

  1. Php-5.6 wordt nog tot het einde van dit jaar gesupport. Het is dus zaak om bestaande php-5.6 applicaties geschikt te maken voor php-7.1 of php-7.2.
  2. Python 2.7 gaat op 1 januari 2020 met pensioen; python-3 staat al jaren in de startblokken.
  3. We draaien nog een aantal oude, ongesupporte tomcat-6 installaties. We zullen contact opnemen met de klanten die het betreft met het verzoek om deze danwel te upgraden naar tomcat-8.5, danwel ze uit te zetten.
  4. We draaien nog een aantal oude, ongesupporte postgresql-8 installaties. Ook hier zullen we contact opnemen met het verzoek deze te upgraden danwel uit te zetten.

De komende maanden zullen we ook aandacht gaan vragen voor activemq, elasticsearch, couchdb, ffmpeg, gearman, graylog, junction, kibana, node-js, mongodb, redis, resin en ruby. Graag willen we deze componenten upgraden naar nieuwe supporte versies. Wij denken dat een termijn van een 3-6 maanden tussen aankondiging en uitfasering redelijk zou moeten zijn om applicaties met de nieuwe versies te laten werken, maar zijn ook benieuwd wat jullie daarvan denken.

Naast de major upgrades zijn er ook de minor updates. In de periode van 24–26 september zullen we onderstaande updates doorvoeren:

wat van naar changelog
nginx 1.15.2 1.15.3 1
php 5.6 5.6.37 5.6.38 1
php 7.1 7.1.20 7.1.22 1 2
php 7.2 7.2.8 7.2.10 1 2
passenger 5 5.0.21 5.3.4 1
tomcat 8 8.0.15 / 8.0.30 8.5.33 1
ImageMagick 6 6.7.2.7 / 6.9.7-5 6.9.10-11 1
ImageMagick 7 7.0.4-5 7.0.8-11 1
postgresql 9.4 9.4.5 9.4.19 1
postgresql 9.6 9.6.4 9.6.10 1
openssh 7.7 7.8 1

De updates worden voor 19 september op het testcluster doorgevoerd, zodat er gelegenheid is om de nieuwe versies te testen.

In deze ronde zijn een paar aanpassingen die speciale aandacht vragen:

  • Vanaf deze maand gaan we ook standaard postgresql, tomcat en passenger upgrades doen. Dat betekent dat we vanaf nu ook aan onze postgres, java en ruby gebruikers gaan vragen om deze berichten in de gaten te houden en waar nodig actiever te testen.
  • Voor de bestaande tomcat-8.0 installaties (welke niet meer gesupport zijn) voeren we een upgrade uit naar versie 8.5, die wel gesupport is. Deze versie is backwards compatible met 8.0, dus we verwachten daar geen problemen mee.
  • Er is recent een probleem gevonden in Ghostscript waardoor arbitraire commando's op de webserver uitgevoerd kunnen worden. In het bijzonder ImageMagick is hier gevoelig voor omdat het Ghostscript gebruikt om postscript content mee af te handelen. (denk aan plaatjes die geconverteerd worden van pdf naar iets anders) Met deze update ronde worden de Ghostscript en ImageMagick versies die ingebakken zitten in onze php distributie hiervoor gefixed.
  • In het OS ingebakken zat nog een oude versie van ImageMagick (6.7.2.7). (o.a. /usr/bin/convert is hier een onderdeel van) Omdat deze ook kwetsbaar is voor bovenstaand probleem wordt deze vervangen, door een nieuwe 6.x versie. Daarnaast stellen we op afroep een 7.x versie beschikbaar.

Het schema voor de productie clusters is als volgt:

wat actie impact wanneer
nginx herstart webservers geen 24 september 8:00 – 12:00
php herstart applicatieservers geen 24 september 8:00 – 12:00
passenger herstart Ruby-on-Rails applicaties geen 24 september 8:00 – 12:00
ImageMagick nieuwe versie wordt actief geen 24 september 8:00 – 12:00
openssh herstart openssh geen, bestaande sessies blijven bestaan 25 september 8:00 – 12:00
postgresql herstart databases 1 korte onderbreking naar de database instanties 26 september 1:00 – 5:00
tomcat herstart java applicaties ongeveer 1-5 min downtime per instantie 26 september 1:00 – 5:00
  • aankondigingen/2018/software-updates-201809.txt
  • Last modified: 2019/05/28 10:47
  • (external edit)