Installation Docker auf Debian 9
Ziel war es einen Docker Dienst auf einem öffentlichen Server zu installieren um zukünftig über den Mechanismus der Container einfacher verschiedene Dienste zu fahren die sich mit Ihren Abhängigkeiten nicht in die Quere kommen sollen.
Die bisherigen Beschreibungen sahen allesamt recht einfach aus. Zusätzlich wollte ich noch vorhandene Sicherheitsempfehlungen nachgehen und bin auf Docker Bench gestoßen das wohl die gängigen Empfehlungen im System prüft.
Eigentlich lief alles nach Doku. Dies sind meine Notizen ohne Anspruch auf Korrektheit.
Die Basisbeschreibung stammt von hier
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unbekannt ] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
sudo apt-get update
sudo apt-get install docker-ce
sudo systemctl status docker
sudo usermod -aG docker meinuser
id -nG
meinuser docker ..
docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
sudo systemctl enable docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
Damit war Docker installiert, das Hello World Beispiel erfolgreich gestartet und der Dienst sollte sich automatisch starten.
Jetzt der Sicherheitsscheck auf Basis dieser Beschreibung
git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security/
./docker-bench-security.sh
Der Check selbst brachte das gleiche Ergebnis wie in dem Dokument und bis auf die separate Partition konnte ich allen Empfehlungen folgen
Die Überwachung der Dockerverzeichnisse
sudo apt-get install auditd
vi /etc/audit/rules.d/audit.rules
-w /usr/bin/docker -p wa
-w /var/lib/docker -p wa
-w /etc/docker -p wa
-w /lib/systemd/system/docker.service -p wa
-w /lib/systemd/system/docker.socket -p wa
-w /etc/default/docker -p wa
-w /etc/docker/daemon.json -p wa
-w /usr/bin/docker-containerd -p wa
-w /usr/bin/docker-runc -p wa
sudo systemctl restart auditd
Die Beschränkungen des Docker Daemons
sudo vi /etc/docker/daemon.json
{
"icc": false,
"userns-remap": "default",
"log-driver": "syslog",
"disable-legacy-registry": true,
"live-restore": true,
"userland-proxy": false,
"no-new-privileges": true
}
Docker Trust
echo "DOCKER_CONTENT_TRUST=1" | sudo tee -a /etc/environment
Dann blieben noch zwei Warnungen übrig.
./docker-bench-security.sh | grep WARN
[WARN] 1.1 - Ensure a separate partition for containers has been created
[WARN] 2.11 - Ensure that authorization for Docker client commands is enabled
Die Partition kann ich aktuell nicht separieren und die andere Warnung kann man wohl erst mal ignorieren kann da man keinen externen Zugriff erlaubt.
The audit will continue to flag this test as a WARN, though access to the default local-only Docker socket is protected by requiring membership in the docker group so this can be safely ignored.