Installation

adminPC: Installation

Hinweis

Der adminPC soll zur Administration des KVM-Servers dienen. Der Vorteil dieser Variante liegt vor allen Dingen darin, dass der Virtualisierungsserver so schlank wie möglich gehalten werden kann.

../../_images/adminpc-image01.png

Die Hardware sollte folgende Mindestmerkmale aufweisen:

  • DualCore CPU
  • 1GB RAM
  • 20GB HDD

Als Betriebssystem wird Lubuntu in der Version 16.04 LTS verwendet. Es kann auf der Lubuntu Seite heruntergeladen werden.

adminPC: Installation der Updates

Nach der Erstinstallation ist es sinnvoll, das System erst einmal auf den aktuellen Stand zu bringen. Auf der Console wird dies mit folgenden Befehlen durchgeführt:

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get dist-upgrade
# sudo apt-get autoremove
# sudo apt-get autoclean

adminPC: Deaktivierung von IPv6

Um sich später keine Gedanken um Netzwerksicherheit machen zu müssen, sollte IPv6 global deaktiviert werden.

/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

kvm: Installation des KVM-Servers

Hinweis

Der kvm Server bildet das Grundgerüst für die Firewall ipfire und den Schulserver server. Da KVM im Gegensatz zu Xen oder VMWare auf die Virtualisierungsfunktionen der CPU angewiesen ist, müssen diese natürlich vorhanden sein.

../../_images/kvmserver-image01.png

Die folgende Anleitung beschreibt die einfachste Implementierung ohne Dinge wie VLANs, Teaming oder Raids. Diese Themen werden in zusätzlichen Anleitungen betrachtet.

Folgende Hardware sollte der Server mindestens zur Verfügung stellen:

  • CPU mit 4 Kernen
  • 16GB RAM
  • 1TB HDD plus zweite HDD für ein Backup
  • 2x 1GBit/s Netzwerkkarten

Als Betriebssystem wird Ubuntu Server in der Version 16.04 LTS verwendet. Es kann hier heruntergeladen werden.

kvm Tipp: Erstellen eines USB-Sticks

Hilfreiche Befehle sind (Vorsicht - mit dd werden vorhandene Daten unwiderruflich zerstört):

Löschen des MBRs des USB-Sticks
# sudo dd if=/dev/zero of=/dev/sdX bs=1M count=10

Kopieren des ISOs auf den Stick
# sudo dd if=<Name des ISOs> | sudo pv -s <Groesse des ISOs> | sudo dd of=/dev/sdX bs=1M && sync

Natürlich können auch alle anderen gängigen Tools zur Erstellung genutzt werden.

kvm: Installation

Hinweis

Bei der Installation sind folgende Merkmale zu berücksichtigen:

  • Auswahl des HWE Kernels
  • Einrichtung eines LVMs auf der HDD mit 25GB für das Betriebssystem
  • Auswahl der Pakete Virtual Machine host und OpenSSH server

Des Weiteren ist es sinnvoll, die erste Netzwerkkarte des Servers an den Internet-Router anzuschließen, um eventuell notwendige Pakete (Sprachpakete) während der Installation zu installieren.

kvm: Netzwerkkonfiguration des KVM-Servers

In diesem Schritt erfolgt die Anbindung des KVM-Servers an das Schulnetz und an das Internet sowohl für den KVM-Server selbst, als auch für die virtuellen Maschinen. Die Implementierung erfolgt mit Hilfe von Bridges.

Herausfinden der Namen der Netzwerkkarten

# dmesg | grep eth

Anpassen der Netzwerkkonfiguration

/etc/network/interfaces

# Internet Interface
auto <Internet Interface>
iface <Internet Interface> inet manual

auto br-red
iface br-red inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports <Internet Interface>
bridge_stp off
dns-nameservers 192.168.1.1

# Schulnetz Interface
auto <Schulnetz Interface>
iface <Schulnetz Interface> inet manual

auto br-green
iface br-green inet static
address 10.16.1.10
netmask 255.240.0.0
bridge_ports <Schulnetz Interface>
bridge_stp off

kvm: Installation der Updates

Nach der Erstinstallation ist es sinnvoll, das System erst einmal auf den aktuellen Stand zu bringen. Auf der Console wird dies mit folgenden Befehlen durchgeführt:

# sudo apt-get update
# sudo apt-get upgrade
# sudo apt-get dist-upgrade
# sudo apt-get autoremove
# sudo apt-get autoclean

kvm: Einrichten des SSH-Zugangs auf Zertifikatsbasis

Die Remote-Administration des KVM-Servers soll per SSH und Zertifikaten erfolgen. Als Benutzer wird root verwendet.

Setzen des Rootpassworts und Aktivierung des SSH-Zugangs für root

# sudo passwd

/etc/ssh/sshd_config

PermitRootLogin yes

Erstellen von SSH-Zertifikaten auf dem AdminPC und Kopieren auf den KVM-Server

# ssh-keygen

# ssh-copy-id root@192.168.1.10

Deaktivierung des SSH-Zugangs für root per Passwort

/etc/ssh/sshd_config

PermitRootLogin prohibit-password

Löschen des lmadmin Users auf dem KVM-Server

# userdel -r lmadmin

kvm: Einrichten der Zeit-Synchronisation

Immer eine gute Sache ist es, z.B. in Logfiles die korrekte Zeit zu finden. Aus diesem Grund erfolgt die Konfiguration eines NTP-Clients.

Installieren von ntpdate
# apt-get install ntpdate

Einmaliges Stellen der Uhrzeit
# ntpdate 0.de.pool.ntp.org

Installieren des NTP-Daemons
# apt-get install ntp

Anzeigen der Zeitsynchronisation
# ntpq -p

adminPC: Installation des Virt-Managers

In diesem Schritt erfolgt die Installation des Virt-Managers, um die virtuellen Maschinen auf dem KVM-Server zu verwalten.

Suchen des Paketes
# apt-cache search virt-manager

Installieren des Paketes
# apt-get install virt-manager

kvm: Konfigurieren der Virt-Manager-Verbindung im Schulnetz

In diesem Schritt erfolgt nach der Installation der Virt-Managers die Konfiguration

  • der Anbindung des adminPCs an das Schulnetz und
  • die Einrichtung der KVM-Server Verbindung.

kvm: Anpassen des Namens der Virt-Manager-Verbindung

kvm: Einrichtung des LVM-Storage-Pools

In diesem Schritt erfolgt die Einrichtung des Speicherplatzes der virtuellen HDDs. Die Nutzung eines LVM-Storages stellt dabei die performanteste Möglichkeit dar.

Hinweis

Leider ist es nicht möglich, direkt über den Virt-Manager Snapshots zu erstellen, wie z.B. bei Nutzung von qcow2 HDDs. Diese werden jedoch nicht verwendet, da es einen erheblichen Geschwindigkeitsnachteil gibt. LVM bietet aber selbst eine Snapshotfunktionalität, die Du später beim Backup der VMs nutzen kannst.

kvm: Deaktivierung von IPv6

Um sich später keine Gedanken um Netzwerksicherheit machen zu müssen, sollte IPv6 global deaktiviert werden.

/etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1"

kvm: Einstellen der Swappiness

Der Swap-Speicher soll nur im Notfall verwendet werden. Dazu wird die swappiness auf 0 gestellt.

Sofort auf der Konsole
# sysctl vm.swappiness=0

/etc/sysctl.conf
vm.swappiness = 0

adminPC: Erstellung eines ssh-Aliases zum KVM-Server

.bash_aliases
alias kvm="ssh root@10.16.1.10

# source bash.aliases

ipfire: Installation der VM

Hinweis

In diesem Schritt folgt die Installation der Firewall dieser Anleitung und diesen Voraussetzungen.

../../_images/ipfire-image01.png

Die Installation der Firewall erfolgt in folgenden Schritten:

  • Download des ISOs der Installation,
  • Anlegen und Konfigurieren der VM und
  • Installation der VM.

Die VM verfügt über folgende Parameter:

  • 2 CPUs,
  • 3GB RAM,
  • 50GB HDD,
  • 3 NICs.

ipfire: Grundkonfiguration des IPFire

In diesem Schritt werden die Voraussetzungen geschaffen, um den eigentlichen Schulserver zu installieren:

  • SSH Zugang mittels Zertifikaten,
  • Transparenter Proxy für die IP-Adresse (10.16.1.1) des Schuservers.

server: Installation des Servers

Hinweis

In diesem Schritt folgt die Installation der Firewall dieser Anleitung und diesen Voraussetzungen.

../../_images/server-image01.png

server: Download des Ubuntu 12.04.5 ISOs

Der Download des ISOs erfolgt auf dem KVM-Server im Verzeichnis analog zum ISO der Firewall unter /var/lib/libvirt/images.

server: Erstellen, Konfigurieren und Installieren der VM des Servers

In diesem Schritt erfolgt die Erstellung, Konfiguration und Installation des Ubuntu-Systems des Schulservers. Die VM verfügt dabei über folgende Parameter:

  • 2 CPUs,
  • 8GB RAM,
  • HDDs für / (50GB), swap (2GB), /home (500GB) und /var (500GB),
  • 1 NIC.

Hinweis

Die Grössen der virtuellen HDDs sind natürlich auf die eigenen Erfordernisse anzupassen.

server: Installieren aller verfügbaren Updates nach der Installation des Servers

Die Installation der Updates erfolgt mit den üblichen Befehlen:

# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# apt-get autoremove
# apt-get clean

Hinweis

Falls beim apt-get update Fehlermeldungen erscheinen: Fehlschlag beim Holen …, so hilft es, den Inhalt des Verzeichnisses /var/lib/apt/lists zu löschen und den Befehl erneut auszuführen.

server: Grundkonfiguration des Servers

Im letzten Schritt vor der eigentlichen Installation werden folgende Schritte durchgeführt:

  • Setzen des Root-Passwortes und Löschen des lmadmin Accountes,
  • Setzen der vm.swappiness auf 0,
  • Deaktivierung von IPv6 und Setzen des Text-Modes beim Booten.

server: Installation des linuxmuster-base Paketes

Die Installation erfolgt mittels:

# apt-get install linuxmuster-base

server: Start der LinuxMuster-Erstkonfiguration

Endlich ist das Ziel der Vorbereitungen erreicht und mittels

# linuxmuster-setup --first

kann die eigentliche Konfiguration des Servers gestartet werden. Zu Beachten ist hierbei, dass ein Neustart der Firewall erfolgen muss.

Hinweis

Nach dem Start der Installation mittels linuxmuster-setup –first wird im Screencast mit Alt+F2 kurz auf das zweite Terminal des Servers gewechselt um die Konnektivität zum ipfire zu testen.

server Tipp: Schaffung einer einheitlichen Netzwerkzeit mit der Firewall als Quelle

Hinweis

Dieser Schritt ist optional. Aus der Sicht des Schreibers ist es jedoch sinnvoll, pro Netzwerk eine Zeitquelle zu definieren, an der sich Alle orientieren.

Die Firewall holt sich die Zeit aus dem Internet und verteilt sie im Schulnetz. So ist sichergestellt, dass auch bei Ausfall des Internets alle Geräte die selbe Zeit sprechen.

adminPC: Zulassen des Zugriffs auf den Server

Nach der Installation des Schulservers ist der Zugriff auf ihn komplett gesperrt. Ein Eintrag in die /etc/linuxmuster/workstations ist erforderlich. Die einfachste Möglichkeit, diese Datei zu bearbeiten, ist die Schulkonsole. Um auf Diese Zugriff zu erhalten, muss temporär die Firewall deaktiviert werden.

Firewall stoppen/starten
# linuxmuster-base stop/start

Zugriff auf die Schulkonsole über https://server:242

adminPC Tipp: Anpassen der Zeitquelle

Als Zeitquelle des adminPCs soll auch die Firewall dienen.

adminPC: Erstellen eines ssh-Aliases zum Server

server: Anpassen der Linbo-Konfiguration

Zum Abschuss der Installation des servers müssen noch zwei Konfigurationsparameter angepasst werden.

Aktivieren des Bittorrent Dienstes

# /etc/default/bittorrent
START_BTTRACK=1

Anpassen der Startparameter des TFTP-Dienstes nach Deaktivierung von IPv6

# /etc/default/tftpd-hpa
TFTP_OPTIONS="--secure -4"

Neustart des TFTPD-Dienstes
# service tftpd-hpa stop
# service tftpd-hpa start

kvm: Aktivieren des Autostarts der VMs

Damit die VMs zukünftig bei einem Neustart des KVM-Servers nicht immer von Hand gestartet werden müssen, ist es sinnvoll den Autostart zu aktivieren.

Damit ist die Erstinstallation aller Komponenten mittels KVM geschafft.