Linux-Sicherheit für das Containerzeitalter

cilium 1.0 veröffentlicht – Linux in Zeiten von Kubernetes

Marcel Richters
cilium 1.0

© Shutterstock.com / Omelchenko

 

Linux ist ein bewährtes und renommiertes Betriebssystem. Allerdings bedeutet bewährt manchmal auch schon ein wenig in die Jahre gekommen, gerade beim Thema Sicherheit. iptables ist nicht mehr ganz zeitgemäß, inzwischen gibt es den Berkeley Paket Filter – und genau den macht sich cilium 1.0 jetzt zunutze. Damit wollen die Entwickler Linux für Kubernetes fit machen.

Linux wurde einst mit Sicherheitseinstellungen konzipiert, die sich um IP-Adressen, Ports und auch um die sogenannten tables der Firewall im Linux-Kernel drehten. Vor gut 20 Jahren, war das durchaus zeitgemäß. Es gab physische Hosts, monolithisches Design und Firewall-Regeln wurden nicht selten noch von Hand programmiert.

Die tables enthalten Ketten (chains) sowie Regeln (rules) und werden (seit 2001) mit dem Tool iptables konfiguriert. iptables ist somit seit 17 Jahren die Paketfilter-Implementierung des Kernels und gehört bis heute zu der am weitesten verbreitete Firewall-Mechanismus für Linux – und ganz sicher nicht veraltet.

Weg mit dem Alten, her mit dem Neuen!

In einer Zeit von Containern und API-basierten Microservices allerdings ist ein solches Sicherheitsdesign nicht mehr zeitgemäß, es kann schlimmstenfalls sogar ein echtes Hindernis darstellen. Dieses Hindernis zu umgehen, soll Cilium helfen, das jetzt in Version 1.0 erschienen ist.

Die zentrale Komponente von Cilium ist der Berkeley Paket Filter (BPF), eine Schnittstelle, mit der Datenpakete der Sicherungsschicht von Linux-Systemen gesendet und empfangen werden können. Auch bei der Filterung von Datenpaketen kann BPF helfen, sodass nur die Datenpakete verarbeitet werden, die für einen Service notwendig sind.

Aufbauend auf BPF ist Cilium ein CNI-kompatibler Networking- und Sicherheitslayer für Kubernetes, Mesos und Docker, der helfen soll, den Linux Networking- und Sicherheitsstack an das Zeitalter von Microservices anzupassen. Hierzu wurde das Programm seinen Entwicklern zufolge von Anfang an für große, hoch dynamische und containerisierte Umgebungen geplant, zudem ist es Open Source.

Container sind als Konzept in Cilium implementiert und API-Protokolle wie HTTP, gRPC und Kafka lassen sich ohne Probleme Parsen. So bietet Cilium weit mehr Sicherheit und Sichtbarkeit bei größerer Einfachheit und Stärke als eine traditionelle Firewall.

Cilium

Diese Übersicht verdeutlicht, wo und wie Cilium arbeitet.

Inzwischen setzen auch Anbieter wie Netflix, Facebook und Google auf Cilium. Für den Erfolg von BPF spricht, dass die Linux-Kernel-Community sich vor Kurzem dazu entschlossen hat, das bisher genutzte Tool iptables im Kernel durch BPF zu ersetzen.

Neuerungen in Cilium 1.0

Mit dem Release von Cilium 1.0 stellen die Entwickler alle notwendigen Garantien und Prozesse bereit, um das Programm auch in Produktionsumgebungen lauffähig zu machen. Dazu gehören API-Stabilität mit Up- und Downgrade-Komptabilität sowie stabile Releases mit Langzeit-Support für Produktionen. Außerdem ein genau definierter Prozess für den Umgang mit sicherheitsrelevanten Bugs und Zwischenfällen sowie Unterstützung auf Slack bzw. GitHub und ein definierter Prozess für das Melden von Bugs und Fearure-Requests.

Um Cilium – beispielsweise mit Kubernetes – zu installieren und zu nutzen, sind folgende Befehle notwendig:

$ curl -sLO

$ https://releases.cilium.io/v1.0.0/examples/kubernetes/cilium.yaml

$ vim cilium.yaml [provide etcd or consul address]

$ kubectl create -f cilium.yaml

$ kubectl create -f demo_app.yaml

$ kubectl create -f http_policy.yaml

$ kubectl exec -ti xwing-68c6cb4b4b-red5 -- curl -s -XPUT

$ deathstar/v1/exhaust-port

$ Access denied

Zwar erreicht Cilium mit Version 1.0 einen wichtigen Meilenstein, aber die Entwickler geben an, bereits eine detaillierte Roadmap für Cilium 1.1 zu haben. So sollen dann Multi-Cluster Service Routinen, die Integration von OpenTracing, Jaeger und Zipkin, zusätzliche API-Protokolle, CRI-Unterstützung und Workloads außerhalb von Containern mit an Bord sein.

Wer sich weitergehen über Cilium informieren will, kann das ganz grundsätzlich oder in den Release Notes zu Version 1.0 tun, bei GitHub mitarbeiten oder sich im Slack-Channel umhören.

Geschrieben von
Marcel Richters
Marcel Richters
Marcel hat Soziologie an der Goethe-Universität in Frankfurt am Main studiert und danach als E-Commerce-Manager gearbeitet. Seit Februar 2018 unterstützt er das Team von JAXenter als Redakteur. Daneben arbeitet er als freier Journalist in der Mainmetropole.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.