Ubuntu – DHCP Release erneuern

Wenn Sie den DHCP-Lease erneuern und sich zum Beispiel aufgrund einer eingerichteten DHCP-Reservierung eine neue IP-Adresse an einem Ubuntu-Client einrichten möchten, können Sie ganz das ganz einfach mit den zwei Kommandos durchführen:

sudo dhclient -r    
sudo dhclient eth0  

Wobei eth0 ggf. gegen den Namen des Netzwerkinterfaces getauscht werden muss.

Viel Erfolg!

NGINX Reverseproxy für Weiterleitung auf anderes HTTPS-Ziel

Ich hatte konkret die Aufgabe, verschiedene Webserver unter einer externen IP-Adresse erreichbar zu machen. Die Webserver verfügen bereits über ein eigenes HTTPS-Zertifikat – ich muss mich als nicht noch um Zertifikate wie Let’sEncrypt etc. kümmern.
Im konkreten Beispiel habe ich für diesen Zweck ein einfaches Ubuntu Server 18.04 LTS aufgesetzt und in meiner DMZ aufgestellt mit dem Ziel, dort nichts weiter als diesen konkreten NGINX darauf laufen zu lassen.

Nach der Installation von Linux erfolgen wie immer die üblichen Befehle zum Aktualisieren des Betriebssystems

sudo apt update
sudo apt full-upgrade

NGINX wird mit einer weiteren einfachen APT-Zeile angestoßen:

sudo apt-get install nginx

Um zu konfigurieren, dass NGINX automatisch zum Systemstart mitgestartet wird, geben wir folgenden Befehl ein:

sudo /etc/init.d/nginx start

Jetzt könnt ihr den NGINX-Webserver einfach testen durch Aufrufen der entsprechenden IP-Adresse im Browser. In meinem konkreten Fall war das die nachfolgende IP-Adresse

http://192.168.140.16

Ziel ist es in diesem konkreten Fall, eine Weiterleitung von HTTPS auf HTTPS zu konfigurieren.
Dafür muss das SSL-Zertifikat vorhanden sein und in die folgenden Dateien kopiert werden:
public Key:
sudo vim /etc/nginx/cert.crt
Private Key
sudo vim /etc/nginx/cert.key

Anschließend ist es schon soweit – ihr könnt die Konfiguration des NGINX öffnen und die Proxy-PASS-Konfig einfügen. In meinem konkreten Beispiel sah das so aus

sudo vim /etc/nginx/sites-enabled/default
server {

    listen 443 ssl;
    server_name subdomain.domain.de;

    ssl_certificate           /etc/nginx/cert.crt;
    ssl_certificate_key       /etc/nginx/cert.key;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log            /var/log/nginx/jenkins.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;

      # Fix the “It appears that your reverse proxy set up is broken" error.
      proxy_pass          https://192.168.140.10:443;
      proxy_read_timeout  90;

      proxy_redirect      https://192.168.140.10:443 https://git.gustini.de;
    }
  }

Abschließend noch ein Neustart von NGINX

 sudo service nginx restart

Anschließend hat die Lösung bei mir schon funktioniert!

Linux Ubuntu- Festplatten und Partitionen anzeigen

Bei der Administration eines Ubuntu-Servers benötigte ich Informationen über verfügbare Festplatten und Partitionen. Ein sehr nützlicher Befehl dafür ist der Befehl lsblk:

sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
Ausgabe des Befehls „sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL“

Auf dieser Grundlage konnte ich anschließend die Partitionen löschen, neu anlegen und an benötigter Stelle mit mount einbinden.

Docker Container automatisch mit Boot von Ubuntu starten

Um mittels Docker Containern Dienste verlässlich, stabil und mit minimalem Wartungsaufwand zu betreiben, ist es erforderlich, dass diese nach Start des Docker-Servers automatisch gestartet werden.

Dies passiert ganz einfach, indem dem Docker RUN Kommando eine einfache Option mit auf den Weg gegeben wird:

--restart always

Die Einstellmöglichkeiten rund um die Restart-Policy sind wesentlich vielfältiger und können hier nachgelesen werden.

Ubuntu von Anfang an optimal für den Einsatz von Docker einrichten

Für den Einsatz von Docker kann man zwar inzwischen auch Windows Server 2016 oder Macs nutzen, für den lizenzbedingt kostenfreien Einsatz ist jedoch immer noch Linux die erste Wahl. Ich nutze dafür gewohnheitsmäßig Ubuntu und möchte hier für Euch als auch für mich dokumentieren, wie ich Docker auf einem frisch installiertem Ubuntu aufsetze.

Ubuntu Grundeinstellungen

Als erstes muss Ubuntu auf den aktuellen Stand gebracht werden. Dies passiert üblicherweise mit apt

sudo apt update

sudo apt full-upgrade

Als nächstes empfiehlt es sich, herauszufinden, mit welcher IP-Adresse man im Netzwerk unterwegs ist, damit man sich per SSH einloggen kann und nicht alles direkt von der Konsole aus machen muss. Bei einer VMWare-Console hat das noch den Nachteil, dass man keine Zwischenablage nutzen kann.

ifconfig

Wenn ihr eine feste IP-Adresse über den DHCP-Server konfigurieren wollt, so ist das jetzt Eure Gelegenheit dazu. Anschließend verbindet ihr Euch per SSH auf Eure Ubuntu-Maschine.

SSH-Authentifizierung mit public/private key einrichten

Sollte ihr Euch mit einem SSH-Schlüssel per SSH verbinden wollen, so müsst ihr Euren public key bekannt machen. Dafür legt ihr ein Verzeichnis .ssh an und erstellt dort eine Datei authorized_keys, in der alle Public Keys für die Anmeldung drin stehen müssen.

mkdir .ssh

cd .ssh

vim authorized_keys

Jetzt den Public Key einfügen und speichern.

Docker mit apt installieren

Quelle: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository

Zuerst die Werkzeuge installieren, damit repositories über https angesprochen werden können (ist per Default aber schon installiert)

sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common


Anschließend den GPG-Key hinzufügen

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88

Jetzt das Repository von Docker hinzufügen

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Anschließend das apt aktualisieren

sudo apt-get update

Und endlich Docker installieren

sudo apt-get install docker-ce

Schritte nach der Installation von Docker

Erstellen einer Docker Gruppe

 sudo groupadd docker

Hinzufügen des aktuellen Nutzers zur Gruppe

sudo usermod -aG docker $USER

Anschließend aus- und wieder einloggen für das Aktualisieren der Gruppenmitgliedschaft.

Jetzt wird es Zeit für einen ersten Check, ob alls läuft mit Hilfe des „Hello-World“ Containers

 docker run hello-world

Wenn jetzt Probleme auftreten, könnt ihr die Problembehebung hier nachlesen

Jetzt stellen wir ein, dass Docker beim Systemstart geladen wird:

sudo systemctl enable docker

Nutzen der grafischen Oberfläche „Portainer“ für die komfortable Administration von Docker

Die grafische Benutzeroberfläche können wir einfach einrichten, indem wir den Container mit dem nachfolgenden Befehl starten:


docker run --rm --name portainer -d --privileged -p \
 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock \
-v /opt/portainer:/data portainer/portainer

Damit ist die grundlegende Einrichtung abgeschlossen.
Im nächsten Beitrag geht es darum, die Infrastruktur von Docker so einzurichten, dass die Container eine Datenumgebung haben und ich per SSH und git die Repositories mit den auszuführenden Applikation verwenden kann.