Diese Folge beschreibt, wie du das Betriebssystem Debian auf deinem Server Installieren kannst. Wenn du einen virtuellen Server (vServer) bei einem Hosting-Unternehmen gemietet hast, dann kannst du vermutlich auswählen welches Betriebssystem du Installiert haben möchtest oder es ist schon vorinstalliert. Neben das Betriebssystem zeige ich dir wie du den Port für SSH abändern kannst und wie LXC (Linux Containers) mit statischen IP-Einrichtest. In diesem Artikel werden einige Linux-Befehl ausgeführt auf die ich jetzt noch nicht näher eingehen werde. Für die Linux Befehle werde ich noch diverse Artikel schreiben.

Wenn du noch nie Linux oder Debian Installiert hast, dann schau dir zuerst dieses kleine Video an. Du wirst noch nicht alles verstehen, mach dir also keine Sorgen. Nach diesem Video erkläre ich dir Schritt für Schritt, wie du das Betriebssystem Installieren kannst.

Gut, fangen wir an.

Für die Installation des Servers habe ich die Debian Netinstall CD verwendet. Die kleinere Netzwerkinstallations-CD ist ausreichend - es werden alle erforderlichen Pakete direkt aus dem Internet heruntergeladen.

TIPP: Im Video und in diesem Artikel habe ich die Installation auf 'Deutsch' durchgeführt. Wenn du 'Englisch' kannst, dann wähle 'Englisch' bei der Sprache aus. Solltest du Probleme mit der Installation haben, dann sind die englischen Fehlermeldungen oft aussagekräftiger und du wirst vermutlich eher Hilfe finden mit englischen Fehlermeldungen.

Ich gehe den einfachen Weg und verwende einfach die Komplette Festplatte, da eh alles in LXC ausgelagert wird, macht eine Manuelle Partitionierung in den seltensten fällen wirklich sind.

Hier ein Überblick

  • EFI oder Legacy-Boot (9-500 MB)
  • /swap (mindestens so groß wie der Arbeitsspeicher)
  • / (Rest der Festplatte)

Wie das System Partitioniert wird kommt also darauf an, ob dein Server im (U)EFI oder im Legacy Modus läuft. Hierrüber musst du dir aber keine Gedanken machen, da in den meisten Fällen einfach die Automatische Partitionierung (eine Partition) gewählt werden kann.

Installationsanleitung Schritt für Schritt

Wenn du dir bei der Installation von Debian unwohl ist, keine Angst, ich führe dich Schritt für Schritt durch die Installation durch. Die Installation sollte in wenigen Minuten abgeschlossen sein.

Nach dem Booten vom Installationsmedium wirst du vom Installer .... begrüßt.

Wenn du "Englisch" kannst, empfehle ich "Englisch" zu wählen, dies macht die Fehlersuche im Internet einfacher. Aber auch wenn du alles auf "Deutsch" umstellst ist es später möglich englische Fehlermeldungen zu bekommen Wenn du unsicher bist, wähle "Deutsch" wenn du nicht gut "Englisch" kannst.

Wähle dein geografischen Standort. Dies ist vor allem für die Zeitzonen Einstellung wichtig.

Wähle deine Tastaturbelegung, die dem Layout deiner Tastatur entspricht (oder falls du eine andere Einstellung bevorzugst).

Das Installationsprogramm bereitet weitere Pakete vor, die für den Installationsvorgang benötigt werden.

Netzwerk Erkennung, später werden wir die Netzwerkkarte auf eine Statische-IP Konfigurieren.

Einige Systemadministratoren betrachten dies als den kompliziertesten Schritt. Einen Hostnamen auswählen. Im Grunde ist es egal wie der Server heißt, dieser ist im Internet nicht sichtbar. Ich habe für meinen Server zum Beispiel ein Wortspiel verwendet: daios1 (Debian all in one Server 1). Im Video und Screenshots habe ich lediglich "srv1" verwendet, was für Server1 steht. Du kannst gerne einen passenden Namen für dich auswählen.

Die Domäne des Servers ist unabhängig von deiner Mail-Domäne(n). Wähle einfach eine deiner Domains. Du kannst auch eine Interne Domain aufbauen, wie in meinem Beispiel: knasan.local

Ich habe bewusst im Video kein Root-Kennwort vergeben, somit ist das Root-Konto gesperrt und der Normale Benutzer kann mit dem Kommando "sudo" zu "root" werden. Gerade Anfänger empfehle ich, einen normalen Benutzer Anzulegen und mit "sudo" zu Arbeiten. Wenn du später doch "root" aktivieren möchtest, kannst du dies ganz einfach tun hierfür musst du mit sudo das Kommando "sudo passwd root" eingeben. Jetzt fragt dich das System welches Kennwort du für den Benutzer "root" setzen möchtest, was du Wiederholen musst. Danach ist der Benutzer "root" aktiviert. 

Debian hat die Gewohnheit von Ubuntu übernommen, direkte SSH-Logins als "root" zu vermeiden. Du wirst also nach dem echten Namen, dem Benutzernamen und dem Kennwort eines zusätzlichen Benutzers gefragt. Ich werde diesen Benutzer in diesem Artikel „smk“ nennen, aber natürlich kannst du ihn beliebig nennen.

Jetzt ist es Zeit, deine Festplatte zu partitionieren. Nimm einfach die Geführte Partitionierung, somit hast du weniger Wartungsaufwand bei geringen Geschwindigkeitsverlust wegen Fehlende Optimierungsmöglichkeiten. Jedoch muss du immer daran Denken, eine Partition ist immer zu klein!

Wähle die Festplatte aus, die du verwenden möchtest. In meinem Beispiel habe ich nur eine Platte namens "vda", da ich die Demo-Installation in einer Kernel virtual maschine (KVM) mit dem VirtIO Treiber verwendet habe. Bei dir heißt die Festplatte vermutlich "sda" :

Auf einem neuen System gibt es keine Partitionen. Das Installationsprogramm fordert Sie daher auf, eine neue Partitionstabelle zu erstellen:

Partitionierung Sicherheitsfrage

Nachdem das Installationsprogramm die Partitionen erstellt hat, werden Basispakete und das Basissystem installiert.

Jetzt wird das Paketmanagement Konfiguriert, es wird nach weiteren CD/DVD gefragt. Diese Option habe ich noch nie benötigt und kann getrost mit nein beantwortet werden

Abhängig von deinem geografischen Standort wirst du gefragt, welchen Download-Server du verwenden möchtest. Normalerweise kannst du einfach die vorgeschlagene Standardeinstellung bestätigen…

Auswahl welcher Spiegelserver verwendet werden soll.

Wenn du keinen Proxy für den Zugriff auf die Download-Server im Internet benötigst, kannst du dieses Feld leer lassen.

Das Installationsprogramm erhält Informationen vom Debian-Download-Server und lädt weitere Pakete herunter.

Die Teilnahme an der Paketumfrage (auch bekannt als  popcon) ist freiwillig. Es zeichnet auf, welche Pakete du installiert hast, um Debian-Entwicklern bei der Beurteilung der üblicherweise verwendeten Pakete zu helfen und besondere Aufmerksamkeit auf sich zu ziehen.

Nun wirst du gefragt, welche Paketgruppen installiert werden sollen. Du benötigst lediglich einen "SSH-Server" (um sich später beim System anmelden zu können) und die "Standard-Dienstprogramme".

Die Ausgewählten Pakete werden heruntergeladen und installiert…

Um dein System bootfähig zu machen, schreibt das Installationsprogramm einen Bootloader in den Anfang deiner ersten Festplatte.

Die Wahl hängt von deinem System ab. Normalerweise ist dies die erste Festplatte.

Der Bootloader Grub wird Installiert

Fast geschafft… Da ich Root nicht aktiviert habe, wird das Programm sudo benötigt damit der User zu root werden kann.

Das ist es. Die Installation ist abgeschlossen und durch Auswahl von "Weiter" wird dein System neu gestartet.

 

Grundkonfiguration - Statische IP-Adresse mit Systemd

Obwohl die Provider oft DHCP mit einer MAC-Reservierung laufen lassen, bin ich ein Fan von Statischen IP-Adressen. Ich möchte dir zeigen, wie eine Statische IP-Adresse mit systemd umgesetzt wird. Debian nimmt Normal die Datei "/etc/network/interfaces", aber der Trend geht eindeutig Richtung Systemd, deswegen habe ich meine Server mit Systemd konfiguriert. Systemd ist ein großes und Komplexes Thema was ich an dieser Stelle nicht alles erklären kann, hierfür werde ich gesondert einen eigenen Artikel schreiben. 

Wenn du dein Server Bootest wirst du folgendes Bild sehen.

Jetzt kannst du dich am Server Anmelden. Gib hier dein Benutzername und Kennwort ein. Das Kennwort wird nicht angezeigt, es kommen nicht einmal *, lass dich nicht beirren, auch wenn nichts angezeigt wird, der Server wird das Kennwort akzeptieren.

Als erstes installieren wir die benötigte Funktionalität für die Linux Containers (LXC) . Einfach gesagt, kann man mit LXC ein Linux in ein Linux installieren. Da wir als Normaler Benutzer Arbeiten und Programme nur als root (Administrator) installiert werden können muss folgenden Befehl mit sudo ausgeführt werden. 

1.

sudo apt install lxc

2.

Hier musst du dein Benutzerkennwort eingeben,nicht das Kennwort für root

Optional:

Wenn du für deinen Server eine bestimmte IP-Adresse bekommen hast, kannst du den Server auf eine Statische IP Konfigurieren. Oft stellen die Server-Provider auch DHCP-Server bereit, damit dein Server immer seine IP und die vom Provider passende DNS-Server bekommt. Debian verwaltet seine IP-Konfiguration unter /etc/network/interfaces. Ich Konfiguriere meine Server jedoch gern Distribution-Unabhängig, so weit es geht. Da fast jede Distribution systemd verwendet, verwende ich gerne die Netzwerk Konfiguration mit systemd, was ja eh schon Installiert ist. systemd bietet hierfür das Unit systemd.network an, hierfür gibt es auch eine Manpage. Am Ende findet man einige Beispiele, für meinen Server war "Example 1" passend.

man systemd.network

Als normalen Benutzer können wir nur in unser Benutzer-Home schreiben, die Netzwerk-Konfiguration muss aber in ein System-Verzeichnis geschrieben werden. Da ich teile aus der Manpage übernehmen möchte und diese nicht komplett abtippen zu müssen nutze ich einige Linux-Befehle und speichere nur das erste Beispiel in einer Datei. Hierfür benötigt man jedoch root Rechte. Deswegen müssen wir dauerhaft root Rechte besitzen, ein einfaches "sudo" reicht in diesem Fall leider nicht.

Mit sudo -s (shell) können wir uns Dauerhaft als root Anmelden.

sudo -s

Jetzt gehen wir in das Verzeichnis wo die Datei Abgelegt werden soll.

cd /etc/systemd/network

Dieser Befehl ist ein Verketteter Befehl den ich kurz etwas genauer Erklären möchte.
Mit dem Kommando "man" wird die Hilfeseite für "systemd.network" aufgerufen, an diesem Befehl wird ein weiterer Befehl "grep" gestartet. Die beiden Befehle müssen mit einem "|" getrennt werden. Grep sucht jetzt nach einem Schlagwort "Example 1" in der Manpage, die Option -A 7 bewirkt das 7 Zeilen die unterhalb unseres Suchbegriffs angezeigt werden sollen. Somit erhalten wir folgende Anzeige:

       Example 1. Static network configuration

           # /etc/systemd/network/50-static.network
           [Match]
           Name=enp2s0

           [Network]
           Address=192.168.0.15/24
           Gateway=192.168.0.1

Wir haben uns den Abschnitt "Example 1" quasi ausgeschnitten, wir benötigen aber die Beschreibung "Example 1. Static network configuration" nicht, deswegen sagen wir mit dem Kommando tail, wir möchten doch nur die letzten 6 Zeilen haben. Da die Leerzeichen stören, entferne ich diese mit dem Kommando "sed" indem ich sage ersetze alle Leerzeichen durch nichts.

man systemd.network | grep "Example 1\. -A 7 | tail -n 6 | sed 's/ //g'

Mit dem kleiner-größer Zeichen ">" wird das Ergebnis in die Datei "50-static.network" geschrieben.

Im Beispiel stimmt natürlich die IP-Adresse des Servers nicht. Mit sed ist es möglich die Fehlerhafte Einträge einfach zu ersetzen. Da meine IP-Adresse lediglich nur die letzten zwei stellen Fehlerhaft waren, konnte ich die ersten beiden stellen unberührt lassen. Wenn dies bei dir nicht der Fall sein sollte, dann musst du in diesem Kommando beide IP-Adressen komplett ausschreiben.

sed -i 's/.0.15/.122.145/
sed -i 's/.0.1/.122.1/

Mit dem Kommando "ip" kann man sich die aktuelle IP-Adresse des Servers anzeigen lassen.

Damit Debian die Konfiguration bearbeitet muss der Systemd-Network-Dienst aktiviert werden. Außerdem muss der Neztwerk-Dienst von Debian deaktiviert werden, ansonsten wird versucht die Datei /etc/network/interfaces auszuwerten. Dies möchte ich jedoch gar nicht mehr verwenden.

systemd enable systemd.networkd
systemd disable networking

Bevor wie einen LXC-Container stellen muss LXC Konfiguriert werden. Wir schreiben ein Template für die LXC-Konfiguration die beschreibt welches Netzwerk Interface verwendet werden soll. Hierfür muss die Datei /etc/lxc/default.conf bearbeitet werden. 

cd /etc/lxc
cat << EOF > default.conf
# /etc/lxc/default.conf
lxc.network.type = veth
lxc.network.link = lxcbr0
lxc.network.flags = up
lxc.network.hwaddr = 00:16:3e:xx:xx:xx
# Autostart container
lxc.start.auto  = 1
lxc.start.order = 2
lxc.start.delay = 30
lxc.group = onboot
EOF

Damit der Server mit den Linux Container direkt Kommunizieren kann, muss LXC mit einer Bridge (Brücke) Konfiguriert werden. Für die Container werden später statische IP-Adressen benötigt, daher müssen wir LXC sagen wo wir diese Informationen speichern werden. Die Angabe für deine Domain ist Optional, aber es schadet auf keinen Fall.

cd /etc/default
cat << EOF > lxc-net
USE_LXC_BRIDGE="true"
LXC_DHCP_CONFILE="/etc/lxc/dhcp.conf"
LXC_DOMAIN="knasan.local"
EOF

Jetzt benötigen wir noch die LXC-Host DHCP Konfiguration, damit jeder Container eine DHCP-Reservierung erhält und somit immer die selbe Adresse bei jedem start erhält. Dies ist wichtig, damit die Linux Container immer unter der gleichen IP-Adresse erreichbar sind. Ohne diese Konfiguration würden die Linux Container von Zeit zu Zeit eine neue IP-Adresse bekommen.

cd /etc/lxc
cat << EOF > dhcp.conf
dhcp-host=sqlsrv,10.0.3.10
dhcp-host=mail,10.0.3.11
EOF

LXC ist jetzt Konfiguriert. Es ist also an der Zeit unsere Linux Container einzurichten. Bevor wir dies machen, muss der Dienst "lxc-net" neu gestartet werden. Hierfür hält man zu Sicherheit den Dienst einmal an und startet ihn dann wieder.

systemctl stop lxc-net
systemctl start lxc-net

Um einen Container zu erstellen, wir das Kommando "lxc-create" verwendet. Dieses Kommando gibt man mit, welche Linux-Distribution man installieren möchte und vergibt einen Namen.

lxc-create -t debian -n sqlsrv
lxc-create -t debian -n mail

Mit den Parameter -t gibt man an welches Templates man nutzen möchte, in unserem Fall debian. Und die Container Namen werde mit der Option -n gesetzt.

Sobald die Container fertig installiert sind, kann man sich deren Status Ansehen mit "lxc-ls"

lxc-ls -f

Normal sollten die Container noch nicht laufen und müssen erst gestartet werden, dies machen wir mal für einen kleinen test.

lxc-start -n sqlsrv
lxc-start -n mail

Jetzt kann man nochmal mit "lxc-ls" schauen ob die Container laufen und die gewünscht IP-Adresse bekommen haben.

Ich habe den ssh Server einen anderen Port gegeben. Oft wird versucht über den Standardport auf dem Server zuzugreifen. Auch wenn die Angreifer nicht in das System kommen, kostet die Abfrage System Ressourcen, deswegen ändere ich immer den SSH-Port. SSH wird in /etc/ssh/sshd_config Konfiguriert. Möchtest du den Port ändern dann ändere die Zeile "# Port 22" nach "Port DEINPORT".

Als letzten Funktionstest machen wir einen Neustart und Prüfen nach einem erneuten Login ob LXC wie gewünscht funktioniert und ob SSH auf den Wunschport läuft.

sudo lxc-ls -f
sudo ss -tulpen|grep ssh

Glückwunsch! Du hast jetzt ein Linux (Debian) aufgesetzt und sogar Linux Container konfiguriert.

Noch keine Kommentare

Kommentar schreiben

Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA