Installation

The installation

Hint

The adminPC should be used to administer the KVM server. The main advantage of this variant is that the virtualization server can be kept as slim as possible.

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

The hardware should have the following minimum characteristics:

  • DualCore CPU
  • 1GB RAM
  • 20GB HDD

The operating system is Lubuntu in version 16.04 LTS. It can be downloaded from the Lubuntu page.

adminPC: Installation of updates

After the initial installation, it makes sense to update the system to the latest version. On the console this is done with the following commands:

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

adminPC: Deactivation of IPv6

IPv6 should be deactivated globally so as not to worry about network security at a later date.

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

kvm: KVM-Server-Installation

Hint

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

The following instructions describe the simplest implementation without things like VLANs, teaming or raids. These topics are discussed in additional instructions.

The server should at least provide the following hardware:

  • CPU with 4 cores
  • 16GB RAM
  • 1TB HDD plus second HDD for a backup
  • 2x 1GBit/s network cards

Ubuntu Server* in version 16.04 LTS is used as operating system. It can be downloaded here.

kvm tip: Create a USB stick

Helpful commands are (Warning - with dd existing data will be irretrievably destroyed):

Deleting the MBR of the USB stick
# sudo dd if=/dev/zero of=/dev/sdX bs=1M count=10

Copying the ISO to the stick
# sudo dd if=<Name des ISOs> | sudo pv -s <Groesse des ISOs> | sudo dd of=/dev/sdX bs=1M && sync

Of course, all other common tools can also be used for creation.

kvm: Installation

Hint

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

After the initial installation, it makes sense to update the system to the latest version. On the console this is done with the following commands:

# 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.

Hint

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

IPv6 should be deactivated globally so as not to worry about network security at a later date.

/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

Hint

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

Hint

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.

Hint

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

Hint

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.

Hint

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

Hint

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.