Update omtrent de CentOS 6 / 7 kernel problemen

VPS/server management

Enige tijd geleden kwam er bij de makers van CentOS (Red Hat) een update uit welke een aantal vulnerabilities op zou lossen en de veiligheid van uw server zou moeten verbeteren. Bij nader onderzoek is gebleken dat deze kernel helaas niet compatible is met Xen platformen. De update is op een dergelijke manier geimplementeerd dat deze niet werkt op ons platform.

De 1e workaround was het gebruik van een oude kernel. Wij hadden verwacht dat dit op korte termijn verholpen zou worden door een nieuwe update. Helaas is deze update lastiger gebleken dan verwacht en is deze voor CentOS 7 nog niet uitgekomen.

Wel hebben wij een workaround voor u gevonden welke wij hieronder uitleggen voor u. Er is bij CentOS een repository welke Xen maakt voor CentOS 7. De kernel die hierin gebruikt word word speciaal gemaakt voor Xen en werkt hierdoor ook zonder problemen. In deze post leggen wij u uit hoe u dit op uw server kunt instellen zodat u weer veilig kunt updaten en rebooten.

Voor CentOS 6 is er inmiddels een update van de makers uit waardoor u de normale kernel kunt gebruiken op uw VPS. Als u eerder de workaround heeft geimplementeerd dient u deze ongedaan te maken om te zorgen dat u weer het normale upgradepad volgt.

 

CentOS 7


Als 1e installeert u de Xen repo voor CentOS 7. Dit heeft geen conflicten met andere pakketten binnen CentOS:

 

# yum install centos-release-xen.x86_64

Vervolgens opent u dit repo bestand met uw editor:

# $EDITOR /etc/yum.repos.d/CentOS-Xen.repo

Het bovenste gedeelte van dit bestand moet er zo uitzien:
 

[CentOS-virt-xen]
name=CentOS-$releasever – xen
baseurl=http://mirror.CentOS.org/CentOS/$releasever/virt/$basearch/xen-46
gpgcheck=1
enabled=1
includepkg=kernel*
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization

Hierna moet ook de updates van de normale kernel uitgezet worden. Dit doet u op de volgende manier.

Vervolgens opent u dit repo bestand met uw editor:

# $EDITOR /etc/yum.repos.d/CentOS-Base.repo


Zorg dat het base gedeelte er zo uitziet:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=kernel kernel-devel kernel-PAE-*


Let hier vooral op de exclude regel. Deze moet aanwezig zijn. Anders krijgt u alsnog mogelijk een foute update en dat willen we uiteraard juist niet. Hetzelfde geld voor het updates gedeelte hieronder:
 

#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.CentOS.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.CentOS.org/CentOS/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
exclude=kernel kernel-devel kernel-PAE-*

Ook hier moet u goed letten op de exclude regel.


Als u in het verleden de kernel-plus kernel had geinstalleerd dan dient deze ook verwijderd te worden. Dus hiervoor doet u het volgende:

 

# yum install kernel kernel-headers
# yum remove kernel-plus

Na deze updates raad ik u ook aan om de /boot/grub2/grub.cfg te checken of deze er normaal uitziet. Vervolgens reboot u de server. Na de reboot ziet de juiste kernel staan:

# uname –a
Linux vpsXXXX.public.cloudvps.com 4.9.75-29.el7.x86_64 #1 SMP Fri Jan 5 19:42:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

 

CentOS 6

 

Mocht u de CentOS-Xen 4.9 kernel geinstalleerd hebben op uw VPS dan is deze niet meer nodig. De volgende kernel vanuit Red Hat heeft het probleem opgelost:

# uname -a
Linux vpsxxxxx.public.cloudvps.com 2.6.32-696.20.1.el6.x86_64 #1 SMP Fri Jan 26 17:51:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

 

De volgende instructies geven aan hoe u de 4.9 kernel kunt verwijderen en de normale kernel installeert. Dit hoeft u alleen uit te voeren als u de 4.9 kernel geinstalleerd heeft. U kunt dat controleren met het bovenstaande commando. Als daar 4.9 staat raden we aan deze instructies te volgen.

Verwijder de repository:

yum remove centos-release-xen-44-8-3.el6.x86_64 centos-release-virt-common-1-1.el6.centos.noarch centos-release-xen-common-8-3.el6.x86_64
rm /etc/yum.repos.d/CentOS-Xen-44.repo.rpmsave

 

Pas de Base repository aan en haal de eerder geplaatste excludes weg:

# $EDITOR /etc/yum.repos.d/CentOS-Base.repo

 

Het bestand moet er zo uit zien:

 

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


#released updates

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6 


 

Installeer de nieuwe kernel:

yum update

yum install kernel kernel-headers

Reboot de VPS

reboot


 

Na de herstart verwijdert u de 4.9 kernel:

yum remove kernel-4.9.75-30.el6.x86_64 

Hiermee gebruikt de VPS weer de upstream kernel en gaan de updates ook weer vanuit de leverancier.

U kunt controleren welke kernel u draait met het volgende commando:

 

# uname -a
Linux vpsxxxxx.public.cloudvps.com 2.6.32-696.20.1.el6.x86_64 #1 SMP Fri Jan 26 17:51:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux