linuxmuster.net 6.2 documentation¶
Welcome to the documentation of linuxmuster.net! This documentation describes all the important steps from installation, setting up Windows and Ubuntu computers, managing users and customizations.
In addition to these detailed instructions, our community and our telephone support are at your disposal. Further information can be found on the Website of Linuxmuster.net.
On the one hand, the documentation serves as a step-by-step guide for the setup and administration tasks, and on the other hand as a reference for the possibilities of the free school server solution linuxmuster.net. For teachers and pupils, the educational functions for teaching and beyond are described.
What is linuxmuster.net?¶
linuxmuster.net is a comprehensive complete solution for the operation of school IT infrastructure.
- easy-to-use
- adaptive
- supportive
- sustainably
What is new in 6.2?¶
Perceive the upgrade to linuxmuster.net 6.2 and follow the Upgrade Guide. Nevertheless, first read the list of new features and known problems.
What’s New in the school console¶
Most of the new features are available for network administrators. However, there are also some innovations for teachers and pupils. Finally, the program interface has been partially reworked.
For the last point javascript and jQuery was used. Therefore it is now necessary to activate Javascript on the clients in the browser at least for the school console.
General¶
The package linuxmuster-schulkonsole-template is now integrated and thus not necessary in the future. It should be uninstalled.
The design of many tables has been extended with line numbers for a better overview.
The rights structure has become configurable. Thus, e.g. it is possible to deprive teachers of the right to deactivate the web filter. More details can be found under Technical documentation of the school consoles. There it is also explained how the menu structure can be adapted by e.g. suppression or shifting of menu items to local conditions.
The encoding is internally now completely changed to utf8.
Network adminsitrator’s Perspective¶
Repairs¶
There are some repair possibilities for the home directories and other important system directories. These can be found in the menu Repairs (these pages call sophomorix-repair).
Settings for repairs¶
Program names can be linked to their configuration directories. These can then also be used for repairs.
user administration¶
passwords¶
Under Settings → School console there is the possibility to have the password quality checked. This is used to deny simple passwords.
Settings¶
There are many other setting options on the User Management Settings page. The most important is the encoding for the respective files.
Private mail addresses can be managed in the LDAP attribute mail. To do this, the administrator must enable the corresponding function as described in Individuelle E-Mail-Adressen verwalten.
History¶
Under User, there is the new menu item History, which can be used to download specific password lists at a particular time.
Create, move, delete¶
In this area, the log file for a running process is now displayed automatically. This allows for better ongoing control.
Plugins¶
It is possible to write plugins for the school console. Writing plugins is documented on the Technical Documenatation page of the school console.
Currently there are 2 plugins.
Printer quotation (Pykota)¶
The plugin allows you to set and adjust the quotation via the school console. The package is called linuxmuster-pk-schulkonsole. It supplements the menu of the network controller by a menu point in the Settings menu and a menu Print Quotas.
Backup with MondoRescue¶
MondoRescue is an already quite old reliable back-up program. The plugin linuxmuster-schulkonsole-backup supplements the menu of the network administrator by a menu point in the menu Settings to configure the backups.
Settings for Classes and Projects¶
There are menu items for classes and projects under the Settings menu for the network administrator. There, default settings can be defined.
- Mailing list specifies whether a mailing list is created for the relevant group.
- Mailalias specifies whether members of the group receive mailalias in the specified pattern.
- WLAN indicates whether the WLAN is switched on or off by default for the members of the concerned group.
Computer Administration¶
Hosts¶
- The hosts table can be sorted in ascending or descending order by different columns. This makes it easier, for example, to find out the free IP addresses of a room.
- The /etc/linuxmuster/workstations file can also contain comments. If a comment character is inserted in front of the room name, the line remains intact but is deactivated. If the comment character is removed, the line becomes active again.
- The log file is displayed for an import_workstations, that is, when the changes are transferred to the system.
grub.cfg files¶
In the school console in the LINBO menu, the network administrator can edit grub startup files of a group directly.
Regpatch Files¶
Regpatch files can be edited directly in the menu Linbo via the entry Regpatch.
start.conf¶
There are several extensions to the start.conf file, some of which have to do with the conversion to grub2 and the associated support of UEFI computers.
- efi is a new partition type required for UEFI hosts to boot.
- System type** is a new field that specifies the computer type (bios, bios64, efi32, efi64).
- Label is a new field in which you can enter a label for each partition. This can be used e. g. for mounting.
Linbo¶
In the Linbo menu there is a new menu item Linbo-Remote. There you can create new tasks, monitor ongoing tasks and remove scheduled tasks.
Teacher’s Perspective¶
Repairs¶
On the Classes and Projects pages there is a submenu to repair the personal folders of each member.
Control WLAN access¶

In the menus for classes and projects there is a menu item Teaching, which allows you to enable or disable WLAN access for selected users of projects, classes, on a scheduled basis.
Handing out, collecting, providing¶

In many places where you used to have to access the underscore directories, you now have buttons in the school console for downloading, uploading and possibly removing them. This eliminates the need for long paths for Windows clients.
Projects¶
A project administrator can change/display student passwords directly from the Projects menu similar to Student passwords in classes.
Student Perspective¶

New student menus (My Room, My Class, My Project) have been added due to the handing out, collecting, providing.
All users¶
passwords¶
If the network administrator has activated password verification, new passwords are checked for their quality.
Repairs¶
On the start page there is a point to repair your own personal folder.
Mail Forwarding¶
Under Horde you can set up a mail forwarding address. This is awkward. This setup can now be done by any user on the home page of the school console. This item is only available if the server has also been set up as a mail server.
Alternative mail address¶
Depending on the settings for mail (see Individuelle E-Mail-Adressen verwalten) each user can set up a different mail address on the start page, which is stored in the LDAP attribute mail.
General Interface¶
Floating Help¶

The floating help hides itself time-controlled and thus no longer hides important page elements.
WLAN Administration¶
WLAN access is managed internally via a special project. By default, the project is called p_wifi. It is created if it does not exist during the installation.
Default settings¶
For the default settings for WLAN there is the file /etc/linuxmuster/wlan_defaults with the content
# wlan_defaults will be processed by /usr/sbin/linuxmuster-wlan-reset.
# It defines the default wlan status for all users,classes and projects.
#
# Three columns have to be present:
# Identify colum: u - user, g - class/project/unix group
# user/class/project: user, class or project name
# wlan status: on/off/-
#
# Place a "-" in wlan column, if you want the current
# status not to be changed.
#
# There has to be one user, class or project definition per line.
# Note: the users, classes and projects are processed in the sequence
# that is defined here.
#
# identity:user/class/project wlan status
#
# Examples:
#g:07a off
#g:11b -
#u:test on
#
# next entries set the default values for users/classes/projects,
# which are not defined explicitly.
g:default off
u:default off
g:teachers on
Any number of users and groups can be entered there. You can use the program linuxmuster-wlan-reset with the syntax
linuxmuster-wlan-reset resets wlan access to defaults
Options
-h / --help
--kill terminate group sessions
users/groups to work on:
--userlist=<user1,user2,user3,...> [--kill] list of users to be processed
--grouplist=<group1,group2,group3,...> list of groups to be processed
--all [--kill] process all users and groups from wlan_defaults
It is used to reset settings for individual users/groups back to the default settings. The default settings are in the wlan_defaults file described above. The school console uses this file or the program to make settings.
If the group teachers
is equipped with WLAN access, teachers can temporarily assign permissions to classes or projects via WLAN and the school console during lessons.
WLAN Administration via School Console¶
The /etc/linuxmuster/wlan_defaults file can also be changed via the school console. To do this you log in as an administrator and can select under Settings Classes or Settings Projects which class / project can use the Internet permanently.

Configure WLAN for Class

Configure WLAN for Projects
What’s new in linuxmuster-linbo 2.3¶
- Kernel 4.9.x with current hardware drivers.
- Native support of 64bit hardware at LINBO-runtime
- Automatic recognition of 32bit PAE, 32bit non-PAE and 64bit hardware
- New Partition Mechanism
- Change of local and PXE boot system to Grub 2.
- Simplified boot configuration in just one Grub configuration file for local and networkboot
- Pre-configured grub boot menus can be easily activated and customized
- Automatic reboot before each start of operating system minimizes hardware problems
- Automatic Linbo- or Grub-update on locally booted clients with automatic reboot.
- Support for grub themes
- Support for UEFI boot clients
- Partitioning in GPT mode on EFI systems
- The start.conf files are given a new option SystemType, which can be assigned the values *biosbios64|efi32|efi64*. The default value bios is entered, which works for all clients with a conventional BIOS boot.
- Support of multiboot systems with UEFI
- Automatic creation and simplified download of boot media images for USB storage or direct CD/DVD burning
- Support for setting System time by a time server
- Unit specification for partition variables in the start.conf file (M for megabytes, G for gigabytes, T for terabytes)
Repair and recreate an image after partitioning¶
As of version 2.3.0, another partition program is used to create valid partition tables for UEFI and BIOS. For re-partitioning, Windows requires a system boot repair and then re-creating an image. Read :ref: here <howtos-upgrade-image-label> how it works.
Boot configuration with grub¶
linuxmuster-linbo Version 2.3.0 uses Grub as bootloader for networkboot and local boot.
Important
The previous PXE-bootconfiguration under “/var/linbo/pxelinux.cfg” is obsolete with that.
Kernel options are taken over from start.conf. Therefore there is a new option KernelOptions, where you can add kernel parameters separated by whitespace (no whitespaces within a parameter):
KernelOptions = quiet splash dhcpretry=10 acpi=noirq
Specific PXE-boot-settings for a certain hardware class are now conducted in the boot-config files that are created under the filename of the corresponding hardware class with extension .cfg in the directory “/var/linbo/boot/grub”. In this file, adjustments for special reasons can be made.
At the start via Grub, the configuration file, which is stored locally under /cache/boot/grub/grub.cfg or on the server under /var/linbo/boot/grub/grub.cfg is loaded. This file causes the Grub bootloader to read out a possible local cache stored grub configuration. If a Grub environment variable reboot_grub was previously loaded with a partition information by a operating system startup initiated by Linbo, Grub starts the operating system installed on this partition. If the variable is not set, the group-specific configuration file is loaded, which contains specific menu entries for the relevant computer group.
Group-specific boot configuration¶
The group-specific boot-configuration-file is created automatically at workstation import (see chapter :doc:’../clients/windows10clients/registration’) from the start-conf file of the group. It contains a menu entry for Linbo and three more for every operating system defined in start.conf. By default, the menu is hidden and configured in a way, that Linbo will be booted automatically.
To activate the boot menu, you have to set the
/var/linbo/boot/grub/win10.cfg
to the Timeout-value in the file/var/linbo/boot/grub/win10.cfg
. Use the value for `gfxpayload <www.gnu.org/software/grub/manual/grub.html#gfxpayload`__ to adjust resolution and color depth. Alternative Grub Themes can be configured via `theme <http://www.gnu.org/software/grub/manual/grub.html#theme`__ variable (set theme=
). These must be placed in a directory under/var/linbo/boot/grub/themes
.The boot menu entries usually do not have to be adjusted. Depending on your own requirements, it may be necessary to change the order or the text of the menu items or to remove individual entries (for example, for the unsynchronized start). In the last case, simply delete the complete line range from menuentry to the closing brace.
Under set-Default the entries 0 - 6 mean the following:
set default = x;
For x:;
0 = linbo;
1 = first operating system unsynchronized;
2 = first operating system synced;
3 = first operating system new+sync;
4 = Second operating system unsynchronized;
5 = Second operating system sycned;
6 = second operating system new+sync;
Important
If you add your own customizations to the file, you should change the line ##### managed by linuxmuster. net ####
in #### not managed by linuxmuster. net ###
to avoid overwriting the changes during workstation import.
Here is an example of a system with Windows 10, first of all the global part:
# global part of group specific grub.cfg template for linbo net boot
# thomas@linuxmuster.net
# 12.02.2016
#
# if you don't want this file being overwritten by import_workstations remove the following line:
# ### managed by linuxmuster.net ###
# edit to your needs
set default=0
set timeout=10
set fallback=1
set gfxpayload=800x600x16
# 32bit pae, non pae or 64bit kernel
if cpuid -l; then
set linbo_kernel=/linbo64
set linbo_initrd=/linbofs64.lz
elif cpuid -p; then
set linbo_kernel=/linbo
set linbo_initrd=/linbofs.lz
else
set linbo_kernel=/linbo-np
set linbo_initrd=/linbofs-np.lz
fi
# theme settings (modify for custom theme)
set theme=/boot/grub/themes/linbo/theme.txt
set font=/boot/grub/themes/linbo/unifont-regular-16.pf2
# load theme
# if [ -e "$theme" -a -e "$font" ]; then
# loadfont "$font"
export theme
# fi
clear
The global part is followed by the menu entries for LINBO and the operating systems (one each for Start, Sync and New).
The first menu entry (No. 0) starts LINBO, if possible from the local cache, otherwise via network:
# linbo part, boot local or net (default #0)
menuentry 'LINBO' --class linux {
echo LINBO $bootflag for group win10
echo
set root="(hd0,6)"
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
else
if [ "$grub_platform" = "pc" ]; then
set ipxe="/ipxe.lkrn"
fi
if [ -e "$ipxe" ]; then
echo -n "Initiating pxe boot ..."
linux16 $ipxe dhcp
boot
fi
fi
}
This is followed by the entry (No. 1) for the unsynchronized start of the operating system:
# group specific grub.cfg template for linbo net boot, should work with linux and windows operating systems
# thomas@linuxmuster.net
# 20160804
#
# start "Windows 10" directly
menuentry 'Windows 10 (Start)' --class win_start {
set root="(hd0,1)"
set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi"
if [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz root=/dev/sda1
initrd /initrd.img
elif [ -e /vmlinuz -a -e /initrd ]; then
linux /vmlinuz root=/dev/sda1
initrd /initrd
elif [ -e /grub.exe -a -e /noinitrd_placeholder ]; then
linux /grub.exe root=/dev/sda1
initrd /noinitrd_placeholder
elif [ -e /grub.exe ]; then
linux /grub.exe root=/dev/sda1
elif [ -s /boot/grub/grub.cfg ] ; then
configfile /boot/grub/grub.cfg
elif [ "$grub_platform" = "pc" ]; then
if [ -s /bootmgr ] ; then
ntldr /bootmgr
elif [ -s /ntldr ] ; then
ntldr /ntldr
elif [ -s /grldr ] ; then
ntldr /grldr
else
chainloader +1
fi
elif [ -e "$win_efiloader" ]; then
chainloader $win_efiloader
boot
fi
}
The next menu entry (No. 2) enables the synchronized start of the operating system:
# boot LINBO, sync and then start "Windows 10"
menuentry 'Windows 10 (Sync+Start)' --class win_syncstart {
set root="(hd0,6)"
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet linbocmd=sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Finally, the menu entry (No. 3) for New Start follows:
# boot LINBO, format os partition, sync and then start "Windows 10"
menuentry 'Windows 10 (Neu+Start)' --class win_newstart {
set root="(hd0,6)"
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel splash quiet linbocmd=format:1,sync:1,start:1 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Now the entries for the Ubuntu boot
# group specific grub.cfg template for linbo net boot, should work with linux and windows operating systems
# thomas@linuxmuster.net
# 20160804
#
# start "ubuntu 16.04" directly
menuentry 'ubuntu 16.04 (Start)' --class ubuntu_start {
set root="(hd0,2)"
set win_efiloader="/EFI/Microsoft/Boot/bootmgfw.efi"
if [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz root=/dev/sda2 ro splash
initrd /initrd.img
elif [ -e /vmlinuz -a -e /initrd ]; then
linux /vmlinuz root=/dev/sda2 ro splash
initrd /initrd
elif [ -e /vmlinuz -a -e /initrd.img ]; then
linux /vmlinuz root=/dev/sda2 ro splash
initrd /initrd.img
elif [ -e /vmlinuz ]; then
linux /vmlinuz root=/dev/sda2 ro splash
elif [ -s /boot/grub/grub.cfg ] ; then
configfile /boot/grub/grub.cfg
elif [ "$grub_platform" = "pc" ]; then
if [ -s /bootmgr ] ; then
ntldr /bootmgr
elif [ -s /ntldr ] ; then
ntldr /ntldr
elif [ -s /grldr ] ; then
ntldr /grldr
else
chainloader +1
fi
elif [ -e "$win_efiloader" ]; then
chainloader $win_efiloader
boot
fi
}
# boot LINBO, sync and then start "ubuntu 16.04"
menuentry 'ubuntu 16.04 (Sync+Start)' --class ubuntu_syncstart {
set root="(hd0,6)"
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel linbocmd=sync:2,start:2 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
# boot LINBO, format os partition, sync and then start "ubuntu 16.04"
menuentry 'ubuntu 16.04 (Neu+Start)' --class ubuntu_newstart {
set root="(hd0,6)"
if [ -e "$linbo_kernel" -a -e "$linbo_initrd" ]; then
set bootflag=localboot
elif [ -n "$pxe_default_server" ]; then
set root="(tftp)"
set bootflag=netboot
fi
if [ -n "$bootflag" ]; then
echo LINBO $bootflag for group win10
echo
echo -n "Loading $linbo_kernel ..."
linux $linbo_kernel linbocmd=format:2,sync:2,start:2 $bootflag
echo
echo -n "Loading $linbo_initrd ..."
initrd $linbo_initrd
boot
fi
}
Tip
The group-specific boot configuration can also be adapted via the school console.
If the Grub boot menu has been activated, it will be displayed the next time the client is started like this:

Linux clients with UEFI boot¶
To install a Linux distribution on UEFI systems, an EFI partition (200 MB) is to be provided in the start.conf file. In addition, the option SystemType must be set to efi64. This allows the client hard disk to be partitioned according to the GPT-Scheme. A sample file is located on the server under /var/linbo/examples/start.conf.ubuntu-efi.
The procedure is not different from the BIOS system: after you have partitioned the client hard disk with Linbo, you boot the installation media (of course in the UEFI mode) and installed according to the instructions.
Alternatively, the Cloop-Image of an installation of a BIOS-Computer can be imported on a UEFI-computer ((Has worked with Ubuntu 14.04 easily and should work with other Linux)). Once you have booted the UEFI machine, you simply create a new image and distribute it to the rest of your computer. The image can be used for BIOS and UEFI computers as well.
Windows clients with UEFI boot¶
For Windows on UEFI systems, a Microsoft reserved partition (msr)) (128 MB) must also be provided in addition to the EFI partition so that the operating system is installed in the third partition. A corresponding start.conf example is located under /var/linbo/examples/start.conf.win10-efi on the server. The procedure is as usual: first partitioning with Linbo, then installation.
Also with Windows, it is possible to use an image created on a BIOS computer on the UEFI machine. Initially, the operating system will not start, but the chances are good, that it will work after a start-up repair with the installation media. If you are lucky and Windows is finally booting, you can use the image created on the UEFI computer also on BIOS systems.
How to install Windows with UEFI¶
Create the start.conf file¶
In the first step, create an EFI-compatible start. conf file for a new group of computers win10-efi under /var/linbo for the computer group win10-efi. Simply copy the sample file start. conf. win10-efi to /var/linbo (as root user on the server):
# cp /var/linbo/examples/start.conf.win10-efi /var/linbo/start.conf.win10-efi
If your computer group is named differently, adjust the name of the target file accordingly.
Customize the partition sizes in the start.conf file to suit your needs. You can specify units for the quantities (M for megabytes, G for gigabytes, T for terabytes):
# LINBO start.conf Beispiel mit EFI (GPT)
# EFI 64 Partition 1
# MSR Partition 2
# Windows 10 Partition 3
# Cache auf Partition 4
# Daten auf Partition 5
# Festplatte 160G
[LINBO] # globale Konfiguration
Server = 10.16.1.1 # IP des Linbo-Servers, der das Linbo-Repository vorhaelt
Group = win10-efi # Name der Rechnergruppe fuer die diese Konfigurationsdatei gilt
# Achtung: Server und Group werden beim Workstationsimport automatisch gesetzt!
Cache = /dev/sda4 # lokale Cache Partition
RootTimeout = 600 # automatischer Rootlogout nach 600 Sek.
AutoPartition = no # automatische Partitionsreparatur beim LINBO-Start
AutoFormat = no # kein automatisches Formatieren aller Partitionen beim LINBO-Start
AutoInitCache = no # kein automatisches Befuellen des Caches beim LINBO-Start
DownloadType = torrent # Image-Download per torrent|multicast|rsync, default ist rsync
BackgroundFontColor = white # Bildschirmschriftfarbe (default: white)
ConsoleFontColorStdout = lightgreen # Konsolenschriftfarbe (default: white)
ConsoleFontColorStderr = orange # Konsolenschriftfarbe fuer Fehler-/Warnmeldungen (default: red)
SystemType = efi64 # moeglich ist bios|bios64|efi32|efi64 (Standard: bios fuer bios 32bit)
KernelOptions = quiet splash # Beispiele:
#KernelOptions = acpi=noirq irqpoll # LINBO Kerneloptionen (z. B. acpi=off), m. Leerz. getrennt
#KernelOptions = server=10.16.1.5 # Abweichende Linbo-Server-IP als Kerneloption gesetzt
# falls gesetzt wird diese IP beim Workstationsimport verwendet
[Partition] # Partition fuer EFI
Dev = /dev/sda1 # Device-Name der Partition (sda1 = erste Partition auf erster Platte)
Label = efi # Partitionslabel efi (efi system partition)
Size = 200M # Partitionsgroesse 200M, ist keine Einheit (M, G oder T) angegeben, wird kiB angenommen
Id = ef # Partitionstyp (83 = Linux, 82 = swap, c = FAT32, 7 = NTFS, ef = efi)
FSType = vfat # Dateisystem auf der Partition (FAT32)
Bootable = yes # Bootable-Flag gesetzt
[Partition] # Partition fuer MSR
Dev = /dev/sda2 # Device-Name der Partition (sda2 = zweite Partition auf erster Platte)
Label = msr # Partitionslabel msr (microsoft reserved partition)
Size = 128M # Partitionsgroesse 128M
Id = 0c01 # Partitionstyp 0c01
FSType = # kein Dateisystem
Bootable = no # kein Bootable-Flag
[Partition] # Partition fuer Windows
Dev = /dev/sda3 # Device-Name der Partition (sda3 = dritte Partition auf erster Platte)
Label = win10 # Partitionslabel win10
Size = 50G # Partitionsgroesse 50G
Id = 7 # Partitionstyp 83
FSType = ntfs # Dateisystem ext4
Bootable = no # kein Bootable-Flag
[Partition] # Cache-Partition
Dev = /dev/sda4 # Device-Name der Partition (sda4 = vierte Partition auf erster Platte)
Label = cache # Partitionslabel cache
Size = 50G # Partitionsgroesse 50G
Id = 83 # Partitionstyp 83
FSType = ext4 # Dateisystem ext4
Bootable = no # kein Bootable-Flag
[Partition] # Daten-Partition
Dev = /dev/sda5 # Device-Name der Partition (sda5 = sechste Partition auf erster IDE-Platte)
Label = daten # Partitionslabel daten
Size = # Partitionsgroesse nicht angegeben = Rest der Platte
Id = 7 # Partitionstyp 7
FSType = ntfs # Dateisystem ntfs
Bootable = no # kein Bootable-Flag
[OS] # Beginn einer Betriebssystemdefinition
Name = Windows 10 # Name des Betriebssystems
Version = # Version (unbenutzt, leer lassen)
Description = Windows 10 SP1 # Beschreibung
IconName = win10.png # Icon für den Startbutton, muss unter /var/linbo/icons abgelegt sein
Image = # differentielles Image (Erweiterung .rsync, Verwendung nicht empfohlen)
BaseImage = win10.cloop # Dateiname des Basisimages (Erweiterung .cloop)
Boot = /dev/sda3 # Bootpartition (unbenutzt, immer gleich Rootpartition)
Root = /dev/sda3 # Rootpartition, in die das BS installiert ist
Kernel = auto # Windows: auto (LINBO & Grub erkennen die Startparameter automatisch)
Initrd = # Windows: leer
Append = # Windows: leer
StartEnabled = yes # "Start"-Button anzeigen
SyncEnabled = yes # "Sync+Start"-Button anzeigen
NewEnabled = yes # "Neu+Start"-Button anzeigen
Autostart = no # automatischer Start des Betriebssystems (yes|no)
AutostartTimeout = 5 # Timeout in Sekunden für Benutzerabbruch bei Autostart
DefaultAction = sync # Standardaktion bei Autostart: start|sync|new
Hidden = yes # verstecke OS-Reiter (unbenutzte Option, auf "yes" lassen)
If you do not need a data partition, simply delete the definition for the fifth partition. You can also add more partitions (up to a total of 128).
Note that for EFI operation as the first and second partition, an EFI and MSR partition must be defined. So you should not change these partitions.
If the start.conf file has been created, you should add the computer to the win10-efi group via the workstation import.
Setup Client¶
If you have not already done, activate the UEFI network boot in the computer firmware of the prepared computer. The BIOS settings are often differentiated between Legacy and UEFI booting. If necessary, you must access the computer manual to find the appropriate setting.
Before booting the computer with the changed setting, first start partitioning via linbo-remote on the server. Assuming the computer is called r100-pc01, prepare the following command on the server:
# linbo-remote -i r100-pc01 -p format,halt
Alternatively, you can create a corresponding task in the school console as user administrator under LINBO|remote control.
Then, after switching on the prepared computer, LINBO will repartition the hard disk according to the partition scheme defined in the start.conf file and then shut it down again.
Now install Windows 10 using the installation media as usual. At the beginning of the installation, select the correct partition for the installation (in the example it is the third partition). If necessary, it must be formatted.
If the computer is configured, use LINBO to create an image that you can roll out to other computers in the same group as usual.
Multiboot systems with UEFI¶
Several parallel operating systems are no problem for Linbo. It automatically creates and manages the necessary UEFI boat records.
LINBO boot media¶
When installing linuxmuster-linbo, an ISO file is created automatically under /var/linbo/linbo.iso
, which can be used to create boot media. This is useful when certain hardware does not boot over the network. Then simply burn the file linbo.iso
to a CD blank or copy it with a tool like for example ROSA ImageWriter on a USB stick. The boot media created in this way can be used universally, because it automatically detects which system (BIOS, UEFI, 64bit, 32bit, non-PAE) is started.
To set up a computer using the LINBO boot media, you boot it with the network cable connected. The LINBO start menu is slightly different depending on whether it is a BIOS or UEFI system:

LINBO start menu in BIOS mode (using Syslinux), see Syslinux Menu-System

LINBO start menu in UEFI mode (using Grub), see Grub-Manual
The starting options in detail:
- Default boot
- Booting with the default parameters up to the client interface.
- First setup + restart
- The client disk is automatically partitioned and formatted according to the specifications of the start.conf file of the computer group downloaded from the server. The client then restarts. After this, the boot medium can be removed and you can continue with the locally installed LINBO cache.
- Debug Mode
- Boot in the text mode only to the console.
After a timeout of 10 seconds, the option //Default boot// is automatically activated.
The LINBO boot parameters can be adapted as required.
In BIOS mode, a line is displayed after pressing the [TAB] key, in which the start parameters can be edited. Once the necessary adjustments have been made, the [ENTER] button starts the boot process:

Edit the LINBO start menu in BIOS mode
In the UEFI mode, the corresponding boot menu entry can be edited by pressing the [E] button. Press [CTRL-X] or [F10] to start the boot process.

Edit LINBO start menu in UEFI mode
LINBO can set the system clock¶
Since LINBO version 2.3.13, LINBO is able to set the system time ( hwclock
) and has integrated the ntpd
program to query an NTP server. This means that you can use a postsync script to synchronize the current time with the IPFire and then set the hardware clock to this time.
echo -n "Setting date from: [$(date)] to ...wait for it... "
ntpd -nq -p 10.16.1.254
hwclock -u -w
echo -n "[$(date)]"
Synchronization takes about 6 seconds. The hardware clock is thus set to UTC, where upon Windows clients must be adapted, e.g. with
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
"RealTimeIsUniversal"=dword:00000001
Further information can be found here.
What’s New Firewall¶
The IPFire firewall is updated from the server as of version 6.2.
The developers of linuxmuster.net regularly test whether the newer versions of IPFire are fully compatible with linuxmuster.net. In order to prevent new IPFire versions from being installed immediately after publication and possibly incompatibilities occur, the update of the IPFire is initiated from the server using a script.
Read the new procedure in the Step-by-step guide.
Release notes for previous releases
Installation Xen¶
This document provides instructions to install the XenAppliance of linuxmuster.net solution in version 6.2 (provided by Netzint). The installation is automated as much as possible, so no advanced skills for installation are required. A complete installation of the hypervisor, the import of all VMs and configuration takes about 80 minutes.
Citrix XenServer is particularly suitable for virtualising linuxmuster.net because it seamlessly matches the Open Source concept. It is the leading enterprise open source hypervisor and is used in the world’s largest data centers. Operation is supported on any brand hardware and there are numerous professional 3rd party software for backup and other features. Most “Noname hardware” can also be used natively. For much of the rest of hardware extensions are often offered by manufacturers for XenServer.
For the installation you need
- an installation disc Citrix XenServer 7.1 (download from the XenServer Webseite)
- and the expansion DVD “XenServerSupplementalPack” (http://www.netzint.de/education/linuxmuster-net/xenserver-appliance-6-2)
After the installation you’ll have a ready-to-use environment consisting of
- Server,
- Firewall (IPFire) and
- Administration interface (XOA) and
- optional extensions.
All other steps for custom adjustments, see the further guidelines and howtos.
Content
System Requirements¶
The table below lists the system requirements for operating the deployed virtual machines. The system requirements for installing XenServer itself can be found on the Web at support.citrix.com and xenserver.org.
The values in the column Default are the default values of the VMs during the import, these values represent the minimum requirements. Disk space and memory of VMs must be added up to determine the total requirement.
Note:
If you have multiple images, or want to maintain multiple backups of the images, the HDD storage space should be significantly more!
Example:
Three Windows7 images à 30 G. Three copies of each image should be stored, then you’ll need already 270 G HDD memory. It is not yet taken into account that space is also needed in /home. This location depends on the number of users and applications. Here you should plan between 500 G and 1000 G.
IP | VM | HDD | RAM | ||
---|---|---|---|---|---|
Default | Recommended | Default | Recommended | ||
10.16.1.1 | Server | 70GB | 250GB+ | 4GB | 8GB+ |
10.16.1.2 | Opsi | 50GB | 50GB+ | 2GB | 2GB+ |
10.16.1.3 | Unifi | 20GB | 20GB | 512MB | 512MB+ |
10.16.1.4 | XOA | 8GB | 8GB | 1GB | 1GB+ |
10.16.1.5 | Chilli | 20GB | 20GB | 512MB | 512MB+ |
10.16.1.254 | IPFire | 4,5GB | 4,5GB+ | 256MB | 1GB+ |
The hypervisor (XenServer) needs about 2 to 5 GB of memory. To install according to instructions, the server should have at least 2 network cards. If you use VLANs one NIC is enough, for example. a 10Gbit network card connected to the core VLAN switch.
Installation XenServer¶
Download XenServer¶
The hypervisor can be downloaded from the project website www.xenserver.org. This manual refers to the version 7.0. In older versions of XenServer the VMs lmn62 can not be imported.
The ISO file must be downloaded and burned to a CD.
Installation XenServer¶
Boot from the CD and follow the setup:

Select your keyboard layout. We use [querz] de
.

If you need additional drivers you can load by pressing F9
.

Accept the license conditions with Accept EULA
.

Select the disk to be used and set the check mark for “Enable thin provisioning”. Confirm with Ok
.

Here you can choose the installation media. We use the local disk (CD).

Select Yes
to be able to install NI XenServer Tools.

Select “Verify installation source” and confirm with Ok
.

If “no problems were found” appears, you can confirm the message with OK
.

Enter your desired root password. This will be needed later to connect with the hypervisor.

Now select the network card, that is connected to the green network (GREEN) later.

Select “Static configuration” and enter the address of the screenshot. Confirm your entry with Ok
.

Enter the host name and the DNS server 10.16.1.1
and 10.16.1.254
.

Select your time zone and confirm with Ok
.

Select your time zone and confirm with Ok
.

If you operate a time server, you can specify this. We set the time manually. Select “Manual time entry” and confirm with Ok
.

Now start the installation by selecting Install XenServer
.

Wait for the “New Media” dialog to appear. Insert the “linuxmuster-SupplementalPack” CD into the drive and confirm with Ok
.

“linuxmuster-hv-tools” should already be selected. Check the CD with Verify
.

Start the test with Ok
.

Confirm the successful test with Ok
.

Now select button Use
and confirm with Ok
.

After installation, you will be prompted to insert additional CDs again. Select Skip
and confirm with Enter
.

Set the correct time and confirm with Ok
.

After successful installation, you can reboot the server with Ok
.

After the setup a console appears where you can managed the server.

Initialize XenServer¶
On the XenServer select Local Command Shell
and press Enter
.

Enter the user root and the password you have assigned during installation.

Note
In case you have installed a raid, you should wait until the raid is completely initialized before doing this step. The larger the raid, the longer the waiting time. It is possible to calculate a waiting time of one night (e. g. 6 Terrabyte hard disk space). If you don’t wait, the import of the machines can fail, because the raid is not yet ready and therefore the hard disk is not available.
Enter the command linuxmuster-hv-setup --first
and press Enter.

Start the installation with Ok
.

If there are enough NICs this message appears:

Disconnect all network cables except the GREEN network cable (internal school network). There must be a connection between the switch and server. Then confirm with Ok
.

Now connect the RED network card with your modem or switch for the RED network. The affected NIC is recognized and configured.

Now connect the BLUE network with the desired interface at the server.

Now insert the CD “linuxmuster-SupplementalPack” again into the drive and press Ok
.

You will now be asked which VMs you want to import. Select for each VM Yes
or No
and confirm with Enter
.



Now remove the CD and confirm with Ok
.

You will be asked whether you want to use the Autostart function. If you enable this feature you can select VMs to be automatically started when the XenServer in the following step. Select Yes
or No
.

You will now be called one after another which VMs should start automatically. Select each Yes
or No
and confirm with Enter
.



You can now restart the system by selecting Yes
.

The system shuts down and starts thereafter. The VMs that you have imported will start directly - if accordingly configured - and are ready for configuration.
Management Options for the XenServer¶
For the operation, you have several options available. If you have a Windows computer in the network, you can use the program XenCenter.
For Linux computers, there is a clone of XenCenter called OpenXenManager.
Alternatively, if you have the VM “lmn62.xoa” imported, you can manage the XenServer platform independent from web browser.
XenCenter¶
Open a web browser and navigate to the page http://10.16.1.10.

Click “XenCenter installer” and save the file and execute it directly. Follow the wizard to install the program.

Run the program and click with the right mouse button on XenCenter. Select Add
.

Enter the IP address 10.16.1.10
and the user data for root.

Now click on a VM from the list and switch to the tab Console
. You can now use the VM.

Xen Orchestra (XOA)¶
Note
To use XOA the VM “lmn62.xoa” must be imported!
Open a web browser and navigate to the page http://10.16.1.4. Enter the user admin@admin.net
with the password admin
and click on Login.

Click on the tile icon on the top right and select Settings.

Enter IP address 10.16.1.10
and the root password that you have assigned. Click to apply to Save
.

If you move your mouse over a VM some buttons appear directly. Click “VM Console” to operate a machine.

You can now use the Virtual Machine.

OpenXen Manager¶
To use OpenXen Manager you must first install the package. Proceed as follows.
Open a terminal and enter the following command:
$ nano /etc/apt/sources.list.d/netzint.list

Now write in the line:
deb http://pkg.netzint.de/ precise main

Exit the editor with Ctrl+x
. You will be asked whether you want to save the changes. Press Y
and confirm the location / filenames with Enter
.
Enter the following commands in the console and confirm each with `` Enter``:
$ wget http://pkg.netzint.de/netzint.pub.key
$ apt-key add netzint.pub.key

Enter the command apt-get update
in the console and press Enter
.
$ apt-get update

Enter the command apt-get install netzint-xenmanager
in the console and press Enter
. Continue with Y
.
$ apt-get install netzint-xenmanager

After installation, you can start OpenXenmanager with the command
$ xenmanager

Click on Add New Server
and enter the IP address and the username root and the password. Confirm with Connect
.

Now you can see the management interface that allows you to manage the XenServer.

Linuxmuster.net Configuration¶
Configuration IPFire¶
Enter root
as the username and the password muster
. Confirm each with Enter
. Then enter the command setup
and confirm with Enter
.
$ setup

Select “Networking” and press Enter
.

Select “Drivers and card assigments” and confirm with Enter
.

Select “GREEN” and confirm with Enter
.

Select the appropriate network card and press Enter
.

Note
Find out the appropriate network card based on the MAC address. You can compare this here:


In the default configuration, the order of the NICs is mostly true, therefore it must be selected just one after the other.
Repeat the process for the RED and BLUE interface. Then, select “Done” and press Enter
.

Confirm your entries with Done
.

Select “‘root’ password” and confirm with Enter
.

Enter a new password for the root account and confirm with Ok
.

Repeat the process for the user “admin”. This user / password is used to login later to the web interface of the firewall. Exit the setup with the button Quit
.

If necessary, run the command “reboot” to reboot.
Configuration Server¶
Enter the user name root
and muster
as password. Then enter the commands
$ aptitude update
$ aptitude upgrade
$ aptitude dist-upgrade
and confirm it with Enter
or Y
.

Note
With this command you update the server to the latest version. You may have to confirm the update with Y
.
Enter the command
$ passwd
to change the root password.

Enter the command
linuxmuster-setup --first
and confirm with Enter
.

Confirm the message with the hints by clicking Ok
.

Enter your country code, or confirm “DE” with Enter
.

Enter your state, or confirm “BW” with Enter
.

Enter the school location (city).

Enter the name of your school.

Enter the domain name you want to use. In the example, “SCHOOL”.

Enter the server name. It is recommended to name the server server
.

Enter the domain name of the school network that you want to use. For example, an internal network such as “linuxmuster-net.lokal” or, of course, an external domain such as “internal.my-school.com”.

Select the desired internal IP address range you want to use.

Specify the external url on which your server is accessible from the Internet. If no external communication is planned, you can leave the field blank.

Specify which firewall you are using. In the XenAppliance uses ipfire
.

Enter a SMTP host for the email function or leave the field blank. For example, mbox1.belwue.de
.

If you want to use subnetting, you can activate it here.

Select a password for the administrative domain users and confirm it in the next step.

Enter the root password of the firewall that you assigned in the “IPFire Configuration” step and confirm it in the next step.

Select the network card that is connected to the school network (GREEN). Unless you haven’t installed additional adapters confirm your selection with Enter
.

Adjustments¶
Installation Netzint-lmntoolbox¶
There is a script in the Netzint lmn-toolbox
to extend the LVM on the VM server. This tool is used later in the manual, so the toolbox should be installed. But there are also other useful tools for example, to edit the LDAP, customize Linbo, to control Unifi or even the Netzint-multitool.

Enter the following command on the server to create and edit a repository list:
$ nano /etc/apt/sources.list.d/netzint.list

Enter the following line in the file:
deb http://pkg.netzint.de/ precise main

Exit the editor with Ctrl+x
. You will be asked whether you want to save the changes. Press Y
and confirm the location / filenames with Enter
.
Enter the following commands in the console and confirm each with `` Enter``:
$ wget http://pkg.netzint.de/netzint.pub.key
$ apt-key add netzint.pub.key

Enter the command
$ apt-get update
in the console and press Enter
.

Enter the command
$ apt-get install netzint-lmntoolbox
in the console and press Enter
. Continue with Y
.

Create the basic configuration files with the command
$ /usr/share/netzint/tools/createdefaults.sh

The command
$ nano /usr/share/netzint/etc/main.cfg
you can edit the default settings for some tools.

Customizing the system resources¶
XenCenter¶
Click with the right mouse button on the server and select Shut Down
. Switch to the General tab and click on Properties
.

Select CPU on the left side and enter the desired number of virtual cores and confirm the setting with Ok
.

Switch to the Memory tab and click on the ``Edit … ``.

Enter the desired amount of memory and confirm the setting with OK
.

Repeat the steps for the adjustment of CPU and memory for the other virtual machines in your pool.
Select the server in the inventory list on the left and navigate to the Storage tab. Double-click the hard disk ..._home
or select it and click on Properties
.

Enter the desired disk size in the size field and confirm the entry with OK
.

Note
Hint: The home directories of students and teachers as well as the exchange directories are deposited here later.
Repeat this step with the hard disk ..._var
. The images of the school network computers are stored here later.
XOA / XenKonsole¶
Open XOA in a web browser and log in. Click on the stop icon to shut down the server. Then click on the server to access the overview page.

Click on the edit icon in the field General. Enter the desired number of virtual CPUs and the amount of memory for the VM and complete the setting with the button Save
.

Open a root console on the XenServer.

Enter the command
$ xe vm-disk-list vm=lmn62.server
and confirm with Enter
.

Note
Hint: By pressing “TAB” you can use auto-completion. Once you have entered the first few letters of a command or the name of the VM pressing TAB completes the command or the name.
All all virtual hard disks of the server “lmn62.server” will be listed. You must look for the Virtual Disk (VDI) thats label ends with ..._var
. Write down the first letters of the UUID.

Enter the command
$ xe vdi-resize uuid=<UUID> disk-size=XXXGiB
and confirm with Enter
.

Note
Hint: Use autocompletion! Enter the first character of the UUID, then press “TAB” to complete the UUID.
Repeat the process for the VDI ..._home
.
Now start the VM with the command
$ xe vm-start vm=lmn62.server

Expanding the LVMs on the server¶
Enter the following commands in the console of the server and confirm each with Enter
:
$ /usr/share/netzint/tools/resize.sh --home
$ /usr/share/netzint/tools/resize.sh --var

The command
$ df –lh
you can check the amount of memory.

Completion of the basic installation¶
Your environment is now ready for the regular use of linuxmuster.net.
For most of the administrative tasks you can use the school console. You can open it from a computer in the school network with any web browser under the url https://server:242.
If you have the new linuxmuster-WebUI installed you can open it with https://server:8000.
Note that you can use the school console and ssh to the server only from computers that are listed in the workstation file on the server! Read the documentation about Linbo to learn how you can register a computer in the school network.
Configuration automatic backup¶
To back up your server there is a script included in the linuxmuster-hv-tools
which creates snapshots and shifts them to a storage of your choice. Keep in mind that the backups are not stored incrementally and thereby take a lot of storage space. Therefore usually only a few full backups can be stored . In the main.cfg
file you can use the parameter Maxage
to specify how many backups are retained on disk. These backups are used primarily in the case of disaster. For version secure backups over a longer period of time, we recommend special software.
You can use any storage you want (NAS, USB disk, internal disk, …). You can enter the location for the backup in the file /usr/share/linuxmuster-hv-tools/etc/main.cfg
. If nothing is entered, it will search for an SR, which is labeled “BackupStore”. This is then used as a target. In our example, we connect to an NFS share on a NAS device with the IP 10.16.1.9.
Configuration XenCenter¶
Open XenCenter and click with the right mouse button on xen
, select New SR
.

Select one of the items under ISO library.

Name your Storage. If you use the name “BackupStore” you do not need to adjust the main.cfg later. This name is automatically detected as a target.

Enter the path to the share that that you want to use and click on Finish
.

You have successfully set up the storage if it is displayed on the left in the overview.

To set which VMs should be backed up, it is sufficient to set a specific tag in the VMs that should be backed up. Click with the right mouse button on the desired VM and select Properties
.

In the General
section click on Edit tags...
.

Enter ni-backup
as tag. Click on Create
and then on OK
. Because of this tag the machine is included in the backup. For all other machines the tag is already listed and only needs to be activated with the checkbox.


Configuration XenServer¶
To start a backup, go to the console of the XenServer and enter the following command:
$ /usr/share/linuxmuster-hv-tools/tools/backup.sh
and confirm with Enter
.

You will now see a snapshot on your share, that you can restore in case of emergency.

Automatic backups¶
To automatically perform backups at certain times, you can create a cron job. To do this, enter the command in the XenServer console
$ nano /etc/crontab
and confirm with Enter
.

For a weekly backup that starts every Friday at 20:00, enter the following line in the file:
0 20 \* \* 5 /usr/share/linuxmuster-hv-tools/tools/backup.sh

Exit the editor and save the file. The time for the backup follows this time specification which is read as a filter:
Only at minute 0 [0-60] | Only at hour 20 [0-20] | Only at day * (every day of the month) [1-31] | Only at month * (every month of the year) [1-12] | Only at weekday 5 [0-7] 0,7 = Sunday |
---|---|---|---|---|
0 | 20 | * | * | 5 |
Weiterführende Dokumentation¶
- Todo: are there pages in the Anwenderwiki
- Todo: are there howtos under docs.linuxmuster.net
- Todo: is there development documentation or techsheets under docs.linuxmuster.net
Linux Clients¶
This guide describes how to install Linux on a sample workstation. A ready-made pre-configured image is available for download from linuxmuster.net and can be immediately distributed to all workstations.
Workstations (“clients”) are installed in the linuxmuster.net with the software Linbo (“GNU/Linux Network Boot”).
All work steps that require changes to the server are done at a server console. Alternatively, these steps can also be executed on the web interface as described in the instructions Windows 10 Clients.
Downloading the Default Linux Client¶
Install the linuxmuster-client-servertools
package on the server.
server ~ # apt-get install linuxmuster-client-servertools
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
libcrypt-openssl-random-perl makepasswd
The following NEW packages will be installed:
libcrypt-openssl-random-perl linuxmuster-client-servertools makepasswd
0 upgraded, 3 newly installed, 0 to remove and 4 not upgraded.
Need to get 31.8 kB of archives.
After this operation, 239 kB of additional disk space will be used.
Do you want to continue [Y/n]? Y
View the list of all available client images:
server ~ # linuxmuster-client -a list-available
Hole Liste der verfügbaren cloops...OK
Imagename Info
-----------------------------------------------
xenial-qgm Ubuntu 16.04 LTS 64Bit
trusty714 Ubuntu 14.04 LTS 64Bit
xenial916 Ubuntu 16.04 LTS 64Bit
-----------------------------------------------
Download the image of your choice (here: xenial916) with
server ~ # linuxmuster-client -a auto -c xenial916 -H xenial
The computer group (hardware class) xenial is created and several files are created. The most important ones are
/var/linbo/start.conf.xenial
/var/linbo/xenial916.cloop
/var/linbo/xenial916.cloop.postsync
/var/linbo/linuxmuster-client/xenial/...
Now you can add client computers to the computer group xenial.
Note
If a file already exists, the program terminates first. The -f
option resumes a download and overwrites existing files, automatically backing up /var/linbo/start. conf. xenial and /var/linbo/linuxmuster-client/xenial.
Register computer in the network¶
New machines are added by direct entry into the file /etc/linuxmuster/workstations and then called import_workstations.
Determine the MAC address of the first client, e.g. by booting the client via PXE.

Read the “MAC address” on the LINBO start screen.
Open the /etc/linuxmuster/workstations file on the server.
server ~ # nano /etc/linuxmuster/workstations
Enter the computer with the following syntax
Raum;Rechnername;Gruppe;MAC;IP;;;;;;PXE-Flag;
- room
- Enter the name of the room (for example, r100 or g1r100). Please note that the name of the room or the building must begin with a lowercase letter. Special characters are not allowed.
- Hostname
- e.g. In the form r100-pc01 (up to 15 characters), (if necessary, take the building into account g21r100-pc01). Please note that only characters and numbers are allowed as characters. Only the hyphen
-
may be used as a separator. You may not use spaces, underlines or other special characters (such as german Umlaute, ß or punctuation marks) under any circumstances. - IP Address
- The IP address should fit to the room and must be outside the default DHCP range. Depending on your network data, you can enter e.g. 10.16.100.1 for this PC, usually not between 10.16.1.100 and 10.16.1.200 (default DHCP range).
- Host Group
- In the computer group, e.g. xenial, several (almost all) similar computers are combined, which get an (nearly) identical configuration.
Sample configuration.
r100;r100-pc01;xenial;08:00:27:57:1D:C5;10.16.100.1;;;;;;1;
The registered client is now using the console command
server ~# import_workstations
into the system and assigned to the computer group xenial. If you have created a computer group xenial with the previously downloaded standard Linux client, the computer can now be set up.
Sync Clients¶
In order to partition, format and synchronize the client initially, initiate the following command on the server
server ~ # linbo-remote -i r100-pc01 -p partition,format,initcache:torrent,sync:1,start:1
(Re-)boot the client now and watch the fully automated setup or drink a cup of your favourite drink.
The Ubuntu client starts and registered users can login now to the system.
More clients with known MAC addresses can be added with the same method directly in the file “/etc/linuxmuster/workstations”.
Alternatively every PC that has to be added can be booted into LINBO and registered via the graphical user interface of LINBO. All relevant data is incremented automatically. For this purpose read :ref:’registration-linbo-label’.
Additional Documentation¶
- Howto: Linbo
- Howto: Standardclient updaten
- Todo: are there pages in the Anwenderwiki
- Todo: are there howtos under docs.linuxmuster.net
- Todo: is there development documentation or techsheets under docs.linuxmuster.net
First user admission¶
In a school, usually several hundred to several thousand students have to be created as users. Therefore, this complex task at linuxmuster.net is handled by the program Sophomorix.
Sophomorix reads all students from a text file, e.g. from the school administration program. All students in this list that do not yet exist in the system are then created, assigned a new class, and students that are no longer listed are deleted from the system.
The School Console is a web-based tool for network administrators that makes it much easier to use Sophomorix. The individual steps are explained below. The network administrator only has to work with the command line in exceptional cases.
To add new users, the following steps must be carried out one after the other:
- Export Students and Teacher List from the School Administration Program.
- Import the user lists on the server.
- Check all user lists for incorrect entries or similarities with existing users.
- Then correct the user lists accordingly.
- Transfer user data, i.e. create users now actually
- Print out password lists or login cards (usually by the teaching staff)
The following shows how the first recording of students is done.
Initial admissions of students¶
Note
All the student names listed here are exemplary and fictitious. If there are people with the same name combination, then this is coincidence.
User administration is up to the administrator, so the administrator logs into the school console.

In the school console, choose User Maintain student list from the menu.

and see an empty window.

Note
In principle, the student list can be inserted into the empty window by “Copy and paste”. Shows how to import the file.
Note
The student list must be in CSV format in the form of "class; surname; first name; date of birth; no.
. The last field is optional. It contains the unique student number assigned in the school administration program. If it is present, it is essential to take it with you so that it makes it much easier to identify the correct data set in the event of transfers, name changes, and so on. If the number does not exist, each line consists of only 4 fields.
Note
Student Management Programs usually have a function to export student data as a CSV file. This file must be handed over to you as an administrator if you do not have access to the Student Administration program yourself.
After clicking on Browse

navigate to the location where the file exported from the Student Administration file is located. Here on the desktop the file schueler_aus_export. txt
.

You select the file by double-clicking it and click on Upload in the following window

Depending on the number of students, it may take a while for the list of students to appear in the following window.

Click on Save changes

to save the students to be recorded in the schueler.txt
file on the server under /etc/sophomorix/user/
.
Now the file schueler.txt has to be checked. This is done by selecting Check user lists in the menu User Check user lists,

to click on Check user lists.

When the check is finished you will get a list similar to the one shown here
Note
Verification is necessary to detect possible errors. In at least one federal state it is possible to provide the pupil name with numbers. Sophomorix reports such errors. Birth data that do not correspond to reality or are not within the period of the /etc/sophomorix/user/sophomorix.conf
are also reported.
Note
To avoid problems it is advisable to convert special characters ä; ö; ü; ß to ae; oe; ue; ss.

You may need to rework the file schueler.txt if errors are reported in the list. Revisions can of course be done in the school console.

If all errors have been fixed, click on Accept user data.
Note
You can - even if not all bugs have been fixed yet - click on Copy user data and Create user. The system then creates the students whose records are OK. You then proceed with the step Check user lists, see above.
A list of the students to be created is displayed again.

Below this list you click on Create user.
The following status messages are displayed as shown in the following figure

With a large number of students it can take several hours until the following picture shows the end of the user import

This completes the first recording.
Note
In the sense of a reasonable division of labour, the printing of the cards with login names and passwords should be left to the teachers who use the computer room with the students. Teachers should also change students’ passwords if the password is forgotten.
Manual Installation¶
In addition to the packages for XenServer, you can also manually install linuxmuster.net. The necessary steps are now explained in detail.
Content:
Preface and Preparations¶
The linuxmuster.net 6.2 operates as a two-server solution (IPFire firewall and linuxmuster.net server). First you start with the installation of IPFire firewall and after pre-configuring the firewall, proceed to the installation of linuxmuster.net server.
Checklist¶
Use the Checklist
to retain all settings made during installation. It is a PDF form so you can fill it on the PC, too. Keep this checklist handy, if you want to contact the phone support.
Download the Software¶
First download the necessary software and note the release notes carefully.
IPFire¶
Download the Iso-Image ( IPFire Version 2.19 - Core Update 103 (x86_64) ) und burn it to a CD.
Warning
Newer version of IPFire have not been tested for compatibility. It is strongly recommended to use only tested versions of IPFire.
To make sure that the file was downloaded correctly, you can check the SHA1 sum. On the console of a Linux operating system there is the command sha1sum
available:
sha1sum ipfire-2.19.x86_64-full-core103.iso
As output we get the checksum, for example
1b92a278709ddc0542dd0f8514693ec073a963c5 ipfire-2.19.x86_64-full-core103.iso
This so obtained checksum must match the one on the Download-Page .
Ubuntu Server¶
Download the Iso-Image ( Ubuntu 12.04.5 LTS 64-bit PC (AMD64) server install CD ) and burn it to a CD.
Warning
Verwenden Sie nicht aktuellere Versionen!
To make sure that the file was downloaded correctly, you can check the SHA1 sum. On the console of a Linux operating system there is the command sha1sum
available:
sha1sum ubuntu-12.04.5-server-amd64.iso
As output we get the checksum, for example
7540ace2d6cdee264432f5ed987236d32edef798 ubuntu-12.04.5-server-amd64.iso
This so obtained checksum must match the one on the here (line ubuntu-12.04.5-server-amd64.iso)
Notes on network structure¶
IP ranges¶
The linuxmuster.net solution can work with different IP ranges. Each row of the table below constitutes one possibility.
Selection | Begin IP range | End IP range | Server-IP | IPFire-IP |
---|---|---|---|---|
16-31 | 10.16.0.0 | 10.31.255.255 | 10.16.1.1 | 10.16.1.254 |
32-47 | 10.32.0.0 | 10.47.255.255 | 10.32.1.1 | 10.32.1.254 |
… | … | … | … | … |
224-239 | 10.224.0.0 | 10.239.255.255 | 10.224.1.1 | 10.224.1.254 |
During installation, you opt for one of the ranges. If there are no special requirements (for example, test operation of linuxmuster.net in another productive linuxmuster.net system), it is recommended to use the range 16-31.
This also has the advantage that all installation screenshots in this document were taken using this IP range.
Network names of the firewall solution IPFire¶
Linuxmuster.net assigns colors to the different networks:
- The internal network is called GREEN network.
- The external network is called RED network, it is connected via a router to the Internet.
- Optionally, for example, for wireless access points you can setup another network (BLUE) where different access rules apply than those in the green network.
- Also optional you can setup a so-called demilitarized zone (DMZ) as an additional network (ORANGE).

Schematic structure of a computer network with linuxmuster.net.
Information for professionals¶
The linuxmuster.net solution also supports more complex network structures with
- subnetting
- VLANS
- Bonding
See also network segmantation with linuxmuster.net
Install and configure the firewall¶
Install the firewall¶
Boot the server you want to use for the firewall with the IPFire CD. Confirm by pressing the ENTER
key that you want to install IPFire.

Confirm that you want to install IPFire.
Use the arrow
keys to select your language and confirm your selection with the ENTER
key.

Select the desired language.
Confirm by pressing the ENTER
key that you want to install IPFire.

Confirm that you want to install IPFire.
Accept the license. Press the TAB
key to jump to the confirmation checkbox and press the Spacebar
. Confirm with the ENTER
key.

Accept the license
Confirm by pressing the ENTER
key that in the following steps the hard disk will be partitioned and formatted. All data will be lost on the disk.

Confirm the partitioning and formatting of the hard disk.
Select ext4 as file system by pressing the ENTER
key.

Select ext4 as file system.
After installation, remove the CD and confirm the reboot by pressing the ENTER
key.

Remove the CD and confirm the reboot.
Configuration of the Firewall¶
After the reboot, the initial configuration of IPFire is done. Use the Arrow
keys to select the keyboard layout and confirm your selection by pressing the ENTER
key.

Select the keyboard layout.
Use the Arrow
keys to select the time zone and confirm your selection by pressing the ENTER
key.

Select the time zone.
Enter ipfire as host name and confirm by pressing the ENTER
key.

Enter ipfire as host name.
Enter the domain name and confirm by pressing the ENTER
key. Recommendation: Use linuxmuster-net.lokal
Warning
Do not use local as part of the domain name!

Enter the domain name.
Enter the password for the user root and confirm your entry with the ENTER
key. With this user you can login later on to the console of the IPFire.
Note
You won’t see the password as you enter, not even in the form of the usual stars.

Choose the password for the user root.
Enter the password for the user admin and confirm your entry with the ENTER
key. With this user you can login later to the web interface of the IPFire.

Choose the password for the user admin.
Select the item Network configuration type by pressing the ENTER
key.

Select the item Network configuration type.
Select the item GREEN + RED + BLUE with the Arrow
keys and confirm your selection with the ENTER
key.
Note
- The school computers are located in the green network later.
- The IPFire is connected to the internet via the red network via the router.
- The blue network is the guest network, this will be used for BYOD or wifi connected devices later.
Warning
Select the configuration even if you do not plan to offer a guest network. Otherwise the additional installation will fail.

Select the item GREEN + RED + BLUE.
Select the item Drivers and card assignments with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item Drivers and card assignments.
Now you assign the individual network cards based on their MAC address to the networks.
Note
If you do not know, which MAC addresses belongs to which network card, you can configure the network card assignment - at this point - arbitrarily and determine later which network card is connect which network.
Select the item GREEN with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item GREEN.
Select the network card for the green network with the Arrow
keys and confirm your selection with the ENTER
key.

Select the network card for the green network.
Select the item RED with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item RED.
Select the network card for the red network with the Arrow
keys and confirm your selection with the ENTER
key.

Select the network card for the red network.
Select the item BLUE with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item BLUE.
Select the network card for the blue network with the Arrow
keys and confirm your selection with the ENTER
key.

Select the network card for the blue network.
Confirm the end of the NICs assignments. Select with the Arrow
keys the item DONE and confirm your selection with the ENTER
key.

Confirm the end of the NICs assignments.
Select the item Address Settings with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item Address Settings.
Select the item GREEN with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item GREEN.
Confirm the security note by pressing the ENTER
key.

Confirm the security note.
Enter the IP address 10.16.1.254 and the netmask 255.240.0.0 and confirm your selection with the ENTER
key.
Note
If you have chosen a different IP address range, you must adjust this input.

Enter the IP address 10.16.1.254 and the netmask 255.240.0.0.
Select the item BLUE with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item BLUE.
Enter the IP address 172.16.16.254 and the netmask 255.255.255.0 and confirm your selection with the ENTER
key.
Note
If you have chosen a different IP address range, you must adjust this input.

Enter the IP address 172.16.16.254 and the netmask 255.255.255.0.
Select the item RED with the Arrow
keys and confirm your selection with the ENTER
key.

Select the item RED.
Choose according to your internet connection the appropriate option with the Arrow
keys and confirm your selection with the ENTER
key.
Note
Schools in Baden-Württemberg are often equipped with a router of BelWü and thus have a static IP. In this case, select Static.
Static¶
If you have selected Static, enter the data from your provider (for example BelWü) , and confirm with the ENTER
key.

If you selected Static the last step, go to DNS and Gateway settings with the arrow
keys and confirm with the ENTER
key.

Now enter your primary and secondary DNS and the default gateway and confirm your entry with the ENTER
-key.

Navigate with Arrow
keys on Done and confirm your selection with the ENTER
-key.

DHCP¶
If you have selected DHCP press the ENTER
key.

If you have selected DHCP in the last step, navigate using the arrow
buttons to Done and confirm your selection with ENTER
.

Completion of configuration¶
Do not enable the DHCP service for the green network, this functionality does the linuxmuster.net server itself. Navigate with the Arrow
keys on the button OK and confirm your choice with the ENTER
key.

Do not activate the DHCP service.
Confirm the end of the setup with the ENTER key.

Confirm the end of the setup.
Install an admin-PC¶
Set up a PC that is connected to the IPFire’s green network interface via a switch. With this PC you can assign the network cards in the next section and later use the web interface of the IPFire.
Give the Admin PC a fixed IP. You need the following data:
- IP: 10.16.1.2
- Netzmask: 255.240.0.0
- Gateway: 10.16.1.254
Note
If you have chosen a different IP address range, you must adjust this input.
Assigning networks to network cards¶
If you were not sure during setup, which network card is connected to which network you will now finish the assignment. Otherwise, please continue with Customizing the SSH configuration.
Assignment of the NIC to the green network¶
Connect one of the three network cards to the switch. In the following, it is checked whether this network device is in the green network.
Note
During testing no other devices are aloowed to be connected to the switch.
From the Admin PC, ping to the IP 10.16.1.254. On Linux, the command and its answer looks as follows:
linuxadmin@admin-pc:~$ ping 10.16.1.254 -c 1
PING 10.16.1.254 (10.16.1.254) 56(84) bytes of data.
64 bytes from 10.16.1.254: icmp_req=1 ttl=63 time=0.438 ms
--- 10.16.1.254 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.438/0.438/0.438/0.000 ms
If there is no answer, the program says Destination Host Unreachable
and returns 100% packet loss
.
If you do get a response this network device is located in the green network. In this case, continue with Assignment of the NIC to the red network.
If you don’t get an answer unplug the cable from the first NIC of IPFire and insert it again in the second NIC and ping again the IP 10.16.1.254. If you now get an answer then this network card is in the green network. Continue in this case with the Assignment of the NIC to the red network.
If you don’t get an answer unplug the cable, insert it again in the third NIC and ping again the IP 10.16.1.254. You should get an answer.
Assignment of the NIC to the red network¶
Login in as user root at the console of the IPFire with your chosen password.
ipfire login: root
Password:
Note
You won’t see the password as you enter, not even in the form of the usual stars.
Now connect one of the two network cards that is not connected yet to your router. Then start the network again.
[root@ipfire ~]:# /etc/init.d/network restart
Then update the package lists in order to check your connection to the Internet.
[root@ipfire ~]:# pakfire update
If the command returns with a download of new lists or without any confirmation, the network card is located in the red network (and thus the third network is not yet wired in the blue network, which we leave like that). Continue with Customizing the SSH configuration. If the command returns
[root@ipfire ~]:# pakfire update
PAKFIRE ERROR: You need to be online to run pakfire!
the network card is in the blue network. Connect in this case, the remaining third network card to your router and run the command again.
[root@ipfire ~]:# /etc/init.d/network restart
The “blue network card” initially remains unwired.
Customizing the SSH configuration¶
Thus the linuxmuster.net server can access when installing the IPFire, the SSH server must be enabled. There are two ways to do this: on the Console or with the Webinterface of the IPFire. Both ways are equivalent.
SSH configuration via the web interface¶
Open a browser in the admin PC connected to the switch and call the address https://10.16.1.254:444 . Accept the security notice by clicking on I know the risk
.
Note
Depending on the browser the following images can vary. Here Firefox was used.

Open the address https://10.16.1.254:444 and accept the security note.
Click on Add exception
.

Click on Add exception
.
Click on Confirm security exception
.

Click on Confirm Security Exception
.
Login in as user admin with your chosen password.

Enter your credentials.
Goto System
and then SSH Access
.

Goto System
and then SSH Access
.
You should additionally put hooks in
- SSH access
- Allow public key based authentication
and confirm your choice by clicking on the Save
.
![]()
Allow SSH access and authentication based on public key
Note
If IPfire reportes updates in the web interface, do not install them! Instead, use, after installing the server linuxmuster.net, the command linuxmuster-ipfire --upgrade
. It is thus ensured that the version of IPFire is compatible with the version of the linuxmuster.net server. See also Update the IPFire Firewall.
Now continue with the Configuration of the proxy.
SSH configuration from the console¶
Login as root
on the console with your password. Edit the file /var/ipfire/remote/settings
with the editor vi
, so it has the following content. The last line does not need to be adjusted.
ENABLE_SSH_KEYS=on
ENABLE_SSH_PROTOCOLL1=off
ENABLE_SSH_PASSWORDS=on
ENABLE_SSH_PORTFW=off
ENABLE_SSH=on
__CGI__=CGI=HASH(0x840b7a0)
In addition, with the following commands
[root@ipfire ~]:# touch /var/ipfire/remote/enablessh
[root@ipfire ~]:# chown nobody:nobody /var/ipfire/remote/enablessh
create the file enablessh
so that you can start the SSH service. The command
[root@ipfire ~]:# /etc/rc.d/init.d/sshd restart
finally starts the service. You’ll see an [OK].

Restart the SSH service.
Now continue with the Configuration of the proxy.
Enable proxy access for the server¶
The linuxmuster.net server can fully access the Internet. For this, the Web proxy needs to be configured, there are again two equivalent alternatives: webinterface or console.
Proxy configuration via the web interface¶
In the computer connected to the switch, open a browser and invoke the address https://10.16.1.254:444.
If you have not already done so, accept the security note and add an exception as described in section SSH configuration via the web interface and log in with admin
and your chosen password.
Click on Web Proxy
in the Network
-Menu.

Click on Web Proxy
in the Network
-Menu.
In the section Network based access control, enter the IP address of the server, 10.16.1.1
, in the input field below Unrestricted IP addresses (one per line)
.

Allow the server unrestricted access to the Internet.
Then press the “Save and Restart” button on the bottom of the page.

Confirm the changes by “Save and Restart”
Note
If IPFire reports updates in the web interface, do not install them! Instead, use, after installing the server linuxmuster.net, the command linuxmuster-ipfire --upgrade
. It is thus ensured that the version of IPFire is compatible with the version of the linuxmuster.net server. See also Update the IPFire Firewall.
Now continue with the Installation of the server.
Proxy configuration from the console¶
First, a new folder acls
is created and its rights are adapted.
[root@ipfire ~]:# mkdir /var/ipfire/proxy/advanced/acls
[root@ipfire ~]:# chown nobody:nobody /var/ipfire/proxy/advanced/acls
The file src_unrestricted_ip.acl
is created in this folder and its rights are adapted.
[root@ipfire ~]:# touch /var/ipfire/proxy/advanced/acls/src_unrestricted_ip.acl
[root@ipfire ~]:# chown nobody:nobody /var/ipfire/proxy/advanced/acls/src_unrestricted_ip.acl
In the created file you enter the server’s IP with the editor vi
.
10.16.1.1
Finally, Web Proxy Service is restarted.
[root@ipfire ~]:# /etc/rc.d/init.d/squid restart
If this is successful you will see no output on the commandline.
Note
If IPFire reports updates in the web interface, do not install them! Instead, use, after installing the server linuxmuster.net, the command linuxmuster-ipfire --upgrade
. It is thus ensured that the version of IPFire is compatible with the version of the linuxmuster.net server. See also Update the IPFire Firewall.
Now continue with the Installation of the server.
Installation and configuration of the server¶
Installing the Ubuntu Server¶
Connect the network card of the server to the switch to which the “green” network card of the IPFire is connected.
Note
Be sure to read the notes on the applicable versions in Preface and preparations and then install the firewall (Installation und Configuration of the Firewall).
Basic settings¶
Boot the server provided for linuxmuster.net from the Ubuntu server CD. Use the arrow keys to select the desired language and confirm with the ENTER
key.

Select the desired language.
Confirm by pressing the ENTER
button that you want to install Ubuntu.

Confirm that you want to install Ubuntu.
Confirm by pressing the ENTER
key that the selected language pack might not be complete.

Confirm that the selected language pack may not be complete.
Use the arrow keys to select the location and confirm your selection by pressing the ENTER
key.

Specify the location.
Negate the automatic keyboard model detection.

Negate the automatic keyboard model detection.
Select the country of origin of the keyboard layout.

Select the country of origin of the keyboard layout.
Select the keyboard layout.

Select the keyboard layout.
Set up the network¶
Automatically obtaining an IP address fails first because there is no DHCP server.

Automatically obtaining an IP address will fail first.
You set up the network manually.

You set up the network manually.
Enter 10.16.1.1 as the IP address.
Note
If you have selected a different address range, you must adjust the following entry.

Enter 10.16.1.1 as the IP address.
Enter 255.240.0.0 as the netmask.

Enter 255.240.0.0
as the netmask.
Enter the gateway 10.16.1.254
.
Note
If you have selected a different address range, you must adjust the following entry.

Enter the gateway 10.16.1.254
.
Enter 10.16.1.254
as the DNS server.
Note
If you have selected a different address range, you must adjust the following entry.

Enter 10.16.1.254
as the DNS server.
Enter the desired server name.

Enter the desired server name.
Enter the local domain that you have already selected when configuring the IPFire.

Enter local domain.
Set up the administrative user¶
Enter the desired user name.
Note
There are system-reserved names that can not be used, including admin
.

Enter the desired user name.
Enter the desired account for the user name.

Enter the desired account for the user name.
Enter the desired password.
Note
If you are told that your password is weak, please choose a stronger one. The security of the system depends on the quality of the password!

Enter the desired password.
Enter the password again.

Enter the password again.
Do not encrypt your personal folder.

Do not encrypt your personal folder.
Confirm or, if necessary, correct the time zone.

Confirm or, if necessary, correct the time zone.
Partitioning¶
Partition it according to your needs. Here is only one linuxmuster.net specific specification:
Note
It is only necessary to ensure that the file systems under /home and /var are provided with the quota options usrquota
and grpquota
.
The following is an example of how to create three partitions (root, home and var partition) on a single hard drive.
As a rule, several hard disks are installed on one server. Please read the section Partitioning in expert mode to find out how such a system - even under optional use of the lvm and software- RAIDs is partitioned. There you will also find information on meaningful partition sizes.
At this point a swap partition is not used.
Partition manually.

Partition manually.
Select the hard disk to partition.

Select the hard disk to partition.
Confirm the creation of the partition table.

Confirm the creation of the partition table.
Select the free space to create the first partition.

Select the free space to create the first partition.
Confirm the creation of the first partition.

Confirm the creation of the first partition.
Select the size of the partition.
Note
The sizes of the partitions on the following screenshots come from a test system, to which other requirements are placed than a productive system. Read the section “Notes on the size of partitions” in the appendix to get a feeling for the necessary size of the partitions.

Select the size of the partition.
Select primary
as the type of the partition.

Select primary
as the type of the partition.
Confirm that the new partition is to be created at the beginning of free space.

Confirm that the new partition is to be created at the beginning of free space.
Finally, confirm the creation of the partition. The root /
was selected automatically as the mount point.

Finally, confirm the creation of the partition.
This is followed by the creation of the second partition on which the HOME directories of the users will be located. Select the free space to create the second partition.

Select the free space to create the second partition.
Confirm the creation of the second partition.

Confirm the creation of the second partition.
Select the size of the partition.

Select the size of the partition.
Select primary
as the type of the partition.

Select primary
as the type of the partition.
Confirm that the new partition is to be created at the beginning of free space.

Confirm that the new partition is to be created at the beginning of free space.
/home
is automatically selected as the mount point. Now the mount options have to be adapted.

Select the mount options item.
Select the mount options usrquota
and grpquota
with the Spacebar
.

Choose the option usrquota
and grpquota
.
Finally, confirm the creation of the partition.

Finally, confirm the creation of the partition.
This is followed by the creation of the third partition on which the images of the clients will be located. Select the free space to create the third partition.

Select the free space to create the third partition.
Confirm the creation of the third partition.

Confirm the creation of the third partition.
Select the size of the partition.

Select the size of the partition.
Select primary
as the type of the partition.

Select primary
as the type of the partition.
Select the mount point /var
manually.

Select the mount point.
Select /var
with the Spacebar
.

Select /var
with the Spacebar
.
The mount options are now selected.

Select the mount options item.
Select the mount options usrquota
and grpquota
with the Spacebar
.

Choose the option usrquota
and grpquota
.
Finally, confirm the creation of the partition.

Finally, confirm the creation of the partition.
The system indicates that no SWAP storage was created. Answer the question whether this should be done.

Answer the question whether a SWAP part is still being created.
Confirm that the prepared changes to the partition are actually written to the disk.

Confirm the writing of the changes to the partitions.
The server is not connected via a proxy, continue with “Next”.

The server is not connected via a proxy, continue with “Next”.
It is strongly advised not to import updates automatically. As an administrator, you should always know when something in the system changes, e.g. to create a backup first.

Select “No automatic updates”.
Note
This does not mean that you should not update the system, but not automatically. Please read Keep Linuxmuster.net up-to-date
Do not select any software to install. All required packages are installed later by a script, Also an OpenSSH server
.

If no software is selected, continue with “Next”.
Confirm that the bootloader is to be installed in the master boot record.

Confirm that the bootloader is to be installed in the master boot record.
The system is rebooted to complete the installation.

The system is rebooted to complete the installation.
After Reboot¶
After rebooting, log it in with your user and password selected during installation.
linuxmuster.net 6.2.0 / Codename Babo
server login:lmn-admin
Passwort:
Nach dem Login werden sie möglicherweise darauf hingewiesen, dass ein „neues Release 14.04.4 LTS“ zur Verfügung stehe. Führen Sie den Vorschlag „do-release-upgrade“ keinesfalls durch.
Alle andere Updates sollten wie im Folgenden gezeigt eingespielt werden. Zunächst verleihen Sie sich dauerhaft root
-Rechte.
lmn-admin@server:~$ sudo -i
Password:
server ~ #
Note
In der Dokumentation wird die Konsoleneingabe mit ‘’root@server <verzeichnis> #’’ gekennzeichnet, sobald man root-Rechte hat, auch wenn auf Ihrem Server eventuell nur ‘’server <verzeichnis> #’’ erscheint. Ansonsten bezeichnet ‘’lmn-admin@server:<verzeichnis>$’’ dass man als lokaler Benutzer arbeitet.
Nun holen Sie die aktuellen Paketlisten, zuvor müssen die Domänen getauscht werden.
root@server ~ # sed -i 's/de.archive.ubuntu.com/archive.ubuntu.com/g' /etc/apt/sources.list
root@server ~ # rm -rf /var/lib/apt/lists/*
root@server ~ # apt-get clean
root@server ~ # apt-get update
Now install all the updates.
root@server ~ # apt-get dist-upgrade
Then restart the server
root@server ~ # reboot
Also check whether the language pack has been installed for the language selected during the installation. e.g. For “German” with
lmn-admin@server:~$ dpkg -l | grep language-pack-de
The following edition is expected: version numbers may vary.
ii language-pack-de 1:12.04+20120618 translation updates for language German
ii language-pack-de-base 1:12.04+20120508 translations for language German
If necessary, install the missing German language support:
lmn-admin@server:~$ sudo apt-get install language-pack-de
Set up the linuxmuster.net packages¶
This tutorial describes how the Ubuntu server becomes a linuxmuster.net server.
First, give yourself root
privileges.
lmn-admin@server:~$ sudo -i
Preparations¶
Use a editor (e.g. vi
or nano
) to generate the file /etc/apt/sources.list.d/linuxmuster-net.list
with the following content:
deb http://pkg.linuxmuster.net/ babo/
deb-src http://pkg.linuxmuster.net/ babo/
deb http://pkg.linuxmuster.net/ babo62/
deb-src http://pkg.linuxmuster.net/ babo62/
For the system to rely on the linuxmuster.net source, the linuxmuster.net key must still be installed. First, download the key.
root@server ~ # wget http://pkg.linuxmuster.net/linuxmuster.net.key
Import the key into your system
root@server ~ # apt-key add linuxmuster.net.key
Delete the key file that is not required any more.
root@server ~ # rm linuxmuster.net.key
Update the package lists.
root@server ~ # apt-get update
Install the linuxmuster-base
package.
root@server ~ # apt-get install linuxmuster-base
Note
If the installation of linuxmuster-base fails because packages have unresolved dependencies, proceed as follows:
Remove all package lists from the system
root@server ~ # rm -rf /var/lib/apt/lists/*
Remove all packages from the cache
root@server ~ # apt-get clean
Update the package lists
root@server ~ # apt-get update
Now install all the updates.
root@server ~ # apt-get dist-upgrade
You may get a question about postfix
-configuration. Select “No configuration”.

Select “No Configuration”
Setup¶
Now start the setup script for initial setup of the system:
root@server ~ # linuxmuster-setup --first
Subsequently, software packages required for the server setup are downloaded and installed. Depending on the Internet connection and the hardware used, this can take a few minutes.
If all packages are installed, the configuration values are queried. If you make any errors during the configuration dialog, you can continue with the configuration and abort the configuration in the last dialog, in the network card menu.
Confirm the notes.

Confirm the notes.
Enter the international country code. Two upper-case letters are allowed; “DE”.

Enter the international country code.
Enter the short name of the state.

Enter the short name of the state.
Enter the city name of your school.

Enter the city name of your school.
Enter the school name, if the school location is part of the school name, leave it here. There are no spaces allowed.

Enter the name.
Enter the name of the Samba domain, letters are allowed.

Enter the name of the Samba domain.
Enter the hostname of the server, only letters, digits and the minus sign are allowed.

Enter the hostname of the server.
Enter the Internet domain name, which can only consist of letters, digits, minus signs, and dots.
Note
If you want external access to your server via a dynamic DNS address, you can spare some manual reconfiguration if you also use the dynamic domain name for the intranet.

Enter the Internet domain name.
Select the IP range for the internal network. Use the arrow keys to navigate the list. Confirm your selection with the ENTER key.

Select the IP range for the internal network.
Enter the external server name if the server is accessible from outside under a different name. This name is used for the OpenVPN configuration on the firewall.

Enter the external server name.
Confirm to use IPFire as a firewall. In principle, you can use any firewall (custom), but with limited functionality [1].

Select the firewall solution.
If the server should send e-mails over the Internet, enter the Internet address of the e-mail server of your provider. If not, leave the field empty.

Enter the Internet address of the e-mail server of your provider.
Decide whether you want to use subnets or not. If you do not know what subnets are, select “no”.

Decide whether you want to use subnets or not.
Select a password for the administrator
user.
Note
Small and uppercase letters are accepted. Special characters are only allowed in part, the following characters are not allowed:
äöüß$&{}![]+#

Select a password for the administrator
user.
Re-enter the password.

Enter the password for the administrator
again.
Enter the password of the user root
on the IPFire you entered when you installed the IPFire.

Enter the password for the root
user on the IPFire.
Re-enter the password.

Enter the password again for the user root
on the IPFire.
Select the network card that is connected to the green network. By pressing the OK
button, the configuration is created.

Select the network card that is connected to the green network.
The installation is now completed. Restart the server.
root@server ~ # reboot
After restarting, you are welcomed by the login prompt of linuxmuster.net 6.2.0 / Codename Babo.
Next, you can include workstations, especially the “default Linuxclient” is very interesting. This is a fully installed and configured LTS Ubuntu, which you can integrate into the system within minutes. Alternatively, you can also install a Windows 10.
[1] | If you use your own firewall solution, neither Internet lock nor web filter will work. Furthermore the firewall in their internal network (with the IPFire “green network”) has to have the IP 10.16.1.254 and the netmask 255.240.0.0 , otherwise neither server nor clients have Internet access. |
Installation with KVM¶
In this document you will find “Step by step” instructions for installing the linuxmuster.net school server solution in version 6.2 based on KVM under Ubuntu Server 16.04.3 LTS.
The following figure shows a schematic representation of the simplest form of implementation of the school server solution:

After installation according to this manual you will receive a ready-to-use environment consisting of
- an administration computer (adminPC),
- a virtualization host (kvm),
- a firewall (ipfire) and
- a server (server).
Hint
As a prerequisite, a router is required which in our example provides the private network 192.168.1.0/24 and which itself has the IP address 192.168.1.1/24. It is also helpful when it provides a dynamic DHCP area for installation.
Content
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.

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.

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.

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.

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: 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.
Backup und Restore¶
Als Erstes kümmern wir uns um ein Notfall-Backup des KVM-Servers selbst. Dieses sollte immer dann erstellt/erneuert werden, wenn es größere Veränderungen am Server gegeben hat. Also genau jetzt! ;-)
In unserem Beispiel ist die Backup-Platte direkt am Server angeschlossen. Für die Praxis ist sicherlich eine externe USB3 HDD zu empfehlen, die direkt an den KVM-Server angeschlossen wird.

Notfallbackup des KVM-Servers¶
Das Backup wird mit Hilfe von CloneZilla erstellt. Hier nutzen wir die Funktionalität, ganze Platten in ein Image zu schreiben. Das ISO-Image wird auf einen USB-Stick geschrieben, der auch als Bootmedium genutzt wird (z.B. mittels dd ).
Im nächsten Schritt bereiten wir die Backup-HDD vor, indem wir diese Partitionieren und Formatieren.
Hint
ACHTUNG Dabei gehen alle vorhandenen Daten auf der Platte verloren!
Partitionieren
# fdisk /dev/sdX
Formatieren
# mkfs.ext4 /dev/sdX1
Alle Vorbeitungen sind getroffen und das Backup kann erstellt werden.
Hint
Der Screencast erstellt das Backup noch ohne die ipfire und server VM-LVMs. Sind Diese vorhanden, dauert der ganze Vorgang natürlich entsprechend länger.
Notfallrestore des KVM-Servers¶
Im Falle eines Totalverlustes des KVM-Servers kann Dieser einfach neu installiert werden. Schneller geht es aber mit dem gerade erstellten Backup. Dieses wird die komplette HDD inklusive Bootsektor und LVM wiederherstellen.
Hint
ACHTUNG Dabei gehen alle vorhandenen Daten auf der Platte verloren!
Backup der VMs ipfire und server¶
Die virtuellen Maschinen werden als Ganzes gesichert. Ein Backup besteht dabei aus Kopien der virtuellen Festplatten und der Konfigurationsbeschreibung. Erstellt wird das Backup im laufenden Betrieb mit Hilfe eines LVM-Snapshots. Damit das auch funktioniert, sollten immer noch 10-20 % Platzreserve in der Volumen-Group vorhanden sein.
Hint
Niemals den gesamten Platz virtuellen Festplatten zuweisen.
Das Backup sollte jedes Wochenende ausgeführt werden, da es je nach Größe der virtuellen Festplatten länger dauern kann.
Die Kopien der virtuellen HDDs werden mit der lzop Kompression gesichert. Damit sollte eine Platzersparnis von bis zu einem Viertel der Originalgröße zu erreichen sein ohne die Backupzeit zu sehr zu verlängern.
In unserem Fall wird die Backup-Platte direkt an den Server angeschlossen. Weitere Möglichkeiten sind USB3-Platten oder NFS-Dateifreigaben auf einem NAS.
Als Backup-Tool verwenden wir virt-backup .
Installation der Backupsoftware
Paketabhängigkeiten:
# apt-get install libxml-simple-perl libsys-virt-perl lzop
Installation z.B. nach: /usr/local
Entpacken des Archivs
# cd /usr/local
# tar -xzvf virtbackup-xxx.tar.gz
# ln -s virt-backup virt-backup-xxx
# cd virt-backup
# chmod ugo+x virt-backup
Erstellen eines Aliases
# cd /usr/local/bin
# ln -s /usr/local/virt-backup/virt-backup
Erstellen eines Backup-Ordners
# mkdir /media/virt-backup
Mounte Backup-HDD
# mount /dev/sdx1 /media/virt-backup
Erstelle Ordner fuer VMs
# mkdir /media/virt-backup/VMs
Unmounte Backup-HDD
# umount /media/virt-backup
Optional: Testen des Backups von Hand
Mounte Backup-HDD
# mount /dev/sdx1 /media/virt-backup
Test Backup ipfire
# virt-backup --vm=ipfire --debug --no-offline --compress=lzop --blocksize=4M --backupdir=/media/virt-backup/VMs/
Test Backup server
# virt-backup --vm=server --debug --no-offline --compress=lzop --blocksize=4M --backupdir=/media/virt-backup/VMs/
Loesche Backup ipfire
# virt-backup --vm=ipfire --debug --cleanup --backupdir=/media/virt-backup/VMs/
Loesche Backup server
# virt-backup --vm=server --debug --cleanup --backupdir=/media/virt-backup/VMs/
Unmounte Backup-HDD
# umount /media/virt-backup
Erstellen eines Backup-Skriptes
Erstellen der Datei z.B. mittels vi
# vi /root/virt-backup.sh
#!/bin/bash
source /root/.profile
# Mounte Backup-HDD
mount /dev/sdx1 /media/virt-backup
# Loesche altes Backup ipfire
/usr/local/bin/virt-backup --vm=ipfire --debug --cleanup --backupdir=/media/virt-backup/VMs/
# Backup ipfire
/usr/local/bin/virt-backup --vm=ipfire --debug --no-offline --compress=lzop --blocksize=4M --backupdir=/media/virt-backup/VMs/
# Loesche altes Backup server
/usr/local/bin/virt-backup --vm=server --debug --cleanup --backupdir=/media/virt-backup/VMs/
# Backup server
/usr/local/bin/virt-backup --vm=server --debug --no-offline --compress=lzop --blocksize=4M --backupdir=/media/virt-backup/VMs/
# Unmounte Backup-HDD
umount /media/virt-backup
Skript ausführbar machen
# chmod ugo+x /root/virt-backup.sh
Erstellen eine Crontab-Jobs
# crontab -e
# VM Backup Samstags 20 Uhr
0 20 * * 6 /root/virt-backup.sh > /root/virt-backup.log 2>&1
Hint
Wichtig ist es, eine Leerzeile nach Definition des Jobs einzufügen. Ansonsten wird der Auftrag nicht ausgeführt.
Naürlich muss die Swap-Partition des servers nicht gesichert werden. Also einfach im Backup-Skript ausklammern! Kleine Hausaufgabe [1] … ;-)
Ein Log des Backups ist unter /root/virt-backup.log
zu finden.
Restore der VMs ipfire und server¶
Jedes Backup ist nur ein Backup, wenn Du sicher sein kannst, dass auch ein Restore funktioniert. Exemplarisch werden wir ein Restore bei der Firewall ipfire durchführen, sowohl der gesamten VM als auch einzelner Dateien der virtuellen Festplatte.
Hint
Es ist sinnvoll, dass Zurückspielen der virtuellen HDDs einer VM in einer Screen-Session durchzuführen. Da der Vorgang u.U. sehr lange dauert, kann die Sitzung verlassen werden, ohne das es zum Abbruch des Befehles kommt (Gleiches Prinzip wie bei linbo-remote …).
Die wichtigsten Dinge dabei sind(KVM-Server):
Installation notwendiger Pakete
# apt-get install kpartx pv
Optional: Anlegen eines Restore-Verzeichnisses
# mkdir /media/virt-restore
Mounten der Backup-HDD
# mount /dev/sd1X /media/virt-restore
Beim Restore ist es wichtig, dass die betroffene VM heruntergefahren ist. DES WEITEREN GEHEN ALLE VORHANDENEN DATEN VERLOREN!
Restore der virtuellen HDD am Beispiel der Firewall
Aufruf Screen
# screen
Starten des Restores
# lzop -dc /media/virt-restore/VMs/ipfire/ipfire_vda.img.lzo |pv -s 50G |dd of=/dev/kvm-vg/ipfire bs=4M
Allgemein
# lzop -dc <Quelle> |pv -s <Groesse der HDD> |dd of=<Ziel> bs=4M
Die Screen-Sitzung kann mit STRG+A+D beendet werden. Gestartet wird die Sitzung mit:
Finden der ID
# screen -ls
Öffnen der Sitzung
# screen -r <ID>
Hint
Im Screencast wird die komplette VM gelöscht. Dies ist nicht notwendig! Man kann aber … ;-)
Nachdem die HDD wiederhergestellt wurde, muss, nur falls nicht mehr vorhanden, die Definition der VM auch wiederherstellt werden.
Wiederherstellen der VM-Definition
# virsh define /media/virt-restore/VMs/ipfire/ipfire.xml
Allgemein
# virsh define <Name>.xml
Hint
Falls die VM neben einer vorhanden VM wiederhergestellt werden soll, muss in der XML-Datei der Name geändert werden, sowie die vorhanden MAC-Adressen der Netzwerkkarten und die UUID gelöscht werden. Die MAC-Adressen und die UUID werden dann beim Import neu generiert. Wenn Du ganz sicher gehen willst, kannst Du zusätzlich im Virt-Manager die Netzwerkkarten auch noch deaktivieren.
---snip---
# Ändern
<name>ipfire</name>
# Löschen
<uuid>0fa619e6-32e7-44e4-be31-920696bab268</uuid>
<mac address='52:54:00:49:20:91'/>
Lokales Einbinden der VM HDDs auf dem KVM-Server
Um einzelne Dateien wiederherzustellen, ist es möglich, die virtuellen Festplatten lokal auf dem KVM-Server zu mounten (Die HDD darf natürlich nicht aktiv sein).
# lvscan
Sichtbar machen der Partitionen
# kpartx -a /dev/mapper/kvm--vg-ipfire
Allgemein
# kpartx -a <HDD> oder auch <RAW Image>
Optional: Anlegen eines Verzeichnisses
# mkdir /media/HDD-restore
Mounten einer Partition
# mount /dev/mapper/kvm--vg-ipfire1 /media/HDD-restore
Unmounten einer Partition
# umount /media/HDD-restore
Freigeben der Partitionen der HDD
# kpartx -d /dev/mapper/kvm--vg-ipfire
Allgemein
# kpartx -d <HDD> oder auch <RAW Image>
[1] | /usr/local/bin/virt-backup –vm=server –debug –no-offline –compress=lzop –blocksize=4M –exclude=vdb –backupdir=/media/virt-backup/VMs/ |
Weiterführende Dokumentation¶
Problembehebung¶
Vorlage der Netzwerkzeichnungen¶
Bei Interesse kannst Du die Netzwerk-Skizzen zur eigenen Bearbeitung hier
als LibreOffice Draw herunterladen.
kvm: Link Aggregation und VLANs¶
In der folgenden Beschreibung werden die beiden Netzwerkkarten des KVM-Servers zu einer logischen Netzwerkkarte (Bond) mit Hilfe des LACP Protokolls zusammengefasst. Dies bietet Redundanz im Falle des Ausfalls einer Netzwerkkarte oder Netzverbindung sowie eine Verbesserung der Bandbreite auf 2x1 GBit/s. Des Weiteren werden die drei Netze Schulnetz, Internet und WLAN auf VLANs verteilt.

Konfiguration des KVM-Servers
Auf dem KVM-Server wird die Interfaces-Konfigurationsdatei /etc/network/interfaces
angepasst. Für das WLAN-Netz kommt ein weiteres Bridge-Interface dazu.
# Bond Interfaces
# VLAN 1 Schulnetz
auto bond0
iface bond0 inet manual
bond-mode 4
bond-miimon 100
bond-slaves enp5s0f0 enp5s0f1
# VLAN 2 Internet
auto bond0.2
iface bond0.2 inet manual
vlan_raw-device bond0
# VLAN 3 WLAN
auto bond0.3
iface bond0.3 inet manual
vlan_raw-device bond0
# Hardware
# Interface A
auto enp5s0f0
iface enp5s0f0 inet manual
bond-master bond0
# Interface B
auto enp5s0f1
iface enp5s0f1 inet manual
bond-master bond0
# Interfaces fuer die VMs
# VM Interaces Rot
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 bond0.2
bridge_stp off
dns-nameservers 192.168.1.1
# VM Interfaces Gruen
auto br-green
iface br-green inet static
address 10.16.1.10
netmask 255.240.0.0
bridge_ports bond0
bridge_stp off
# VM Interfaces Blau
auto br-blue
iface br-blue inet manual
bridge_ports bond0.3
bridge_stp off
Mit Hilfe von cat /proc/net/bonding/bond0 kannst Du Dir den Status des Bond-Interfaces anschauen.
root@kvm:~# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: slow
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 00:15:17:18:1a:1d
Active Aggregator Info:
Aggregator ID: 2
Number of ports: 2
Actor Key: 9
Partner Key: 1
Partner Mac Address: 00:19:06:e8:75:80
Slave Interface: enp5s0f1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:18:1a:1d
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
system priority: 65535
system mac address: 00:15:17:18:1a:1d
port key: 9
port priority: 255
port number: 1
port state: 61
details partner lacp pdu:
system priority: 32768
system mac address: 00:19:06:e8:75:80
oper key: 1
port priority: 32768
port number: 259
port state: 61
Slave Interface: enp5s0f0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:15:17:18:1a:1c
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: none
Partner Churn State: none
Actor Churned Count: 0
Partner Churned Count: 0
details actor lacp pdu:
system priority: 65535
system mac address: 00:15:17:18:1a:1d
port key: 9
port priority: 255
port number: 2
port state: 61
details partner lacp pdu:
system priority: 32768
system mac address: 00:19:06:e8:75:80
oper key: 1
port priority: 32768
port number: 258
port state: 61
Konfiguration am Beispiel eines Cisco Switches
Auf dem Switch werden 2 Ports und ein logisches Interface (EtherChannel/LAG) benötigt.
interface Port-channel1
description KVM-Server
switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate
spanning-tree portfast trunk
spanning-tree bpdufilter enable
interface GigabitEthernet0/1
description KVM-Server
switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate
no cdp enable
channel-group 1 mode active
spanning-tree portfast trunk
spanning-tree bpdufilter enable
interface GigabitEthernet0/2
description KVM-Server
switchport trunk encapsulation dot1q
switchport mode trunk
switchport nonegotiate
no cdp enable
channel-group 1 mode active
spanning-tree portfast trunk
spanning-tree bpdufilter enable
Der Status der Verbindung kann mit Hilfe des Befehls show etherchannel summary ausgegeben werden.
#show etherchannel summary
Flags: D - down P - bundled in port-channel
I - stand-alone s - suspended
H - Hot-standby (LACP only)
R - Layer3 S - Layer2
U - in use f - failed to allocate aggregator
M - not in use, minimum links not met
u - unsuitable for bundling
w - waiting to be aggregated
d - default port
Number of channel-groups in use: 1
Number of aggregators: 1
Group Port-channel Protocol Ports
------+-------------+-----------+-----------------------------------------------
1 Po1(SU) LACP Gi0/1(P) Gi0/2(P)
Troubleshooting¶
Below you will find help for any hardware and software problems that you may stumble upon.
Content
Known Hardware Problems¶
Faulty Atheros chipsets¶
Some implementations of Atheros chipsets can’t cope with the new way of booting LINBO over PXE. This is due to the fact that the systems get stuck at a very early stage when booting over the network.
Before upgrading to Linbo 2.3.x, please check if you have systems with Atheros chipsets.
Solution¶
- First, the local hard disk must be set as boot medium in the BIOS. You should check if the cache partition is marked as
Bootable=yes
in the respective start.conf. - If the system is in an unbootable state, you must create a CD or USB boot drive to restore the local LINBO installation. Please read the release notes of LINBO: LINBO boot media for more information.
Problems with graphics card drivers¶
Der Linbo-64bit-Kernel enthält ab LINBO 2.3.31 (ca. Januar 2018) modularisierte Grafiktreiber. Es könnte damit auf mancher Hardware der Start der Linbo-GUI fehlschlagen. In diesem Fall sollte man den Kernelparameter nomodeset in jeder betroffenen start.conf.<hwk> ergänzen:
# /var/linbo/start.conf.example in section [LINBO]
[LINBO]
...
KernelOptions = ... nomodeset
Dann muss ein import_workstations
ausgeführt werden, um die betroffenen Boot-Dateien (‘’/var/linbo/boot/grub/hwk.cfg’‘) zu aktualisieren. Wer letztere Dateien manuell geändert hat, muss auch die Kernelparameter manuell ergänzen oder den Automatismus unter Verlust der eigenen Änderungen wieder herstellen.
$ import_workstations
Known Software Problems¶
CUPS does not start and LDAP error in import_workstations¶
After the initial installation, configuration and installation of all updates, you may also encounter the following problems:
- Cups does not start and
- import_workstations aborts with error message that LDAP is not available.
Fatal! LDAP is not available! Is slapd running?
You can also find DENIEDs in the /var/log/syslog
logfile apparmor DENIEDs.
apparmor="DENIED"
Solutions for both of these problems can be found in the forum: Apparmor, LDAP.
Both problems can be solved on the server as follows:
Apparmor
Step 1: Deinstallation of the service
# service apparmor stop
# update-rc.d -f apparmor remove
# apt-get --purge remove apparmor apparmor-utils libapparmor-perl libapparmor1
# rm -rf /etc/apparmor*
# update-initramfs -u
Step 2: Installation of the service
# apt-get install apparmor apparmor-utils
LDAP
# sophomorix-dump-pg2ldap
Upgrade, Update, Backup¶
Upgrade linuxmuster.net¶
Upgrade von 6.1¶
Um linuxmuster.net 6.1 (Codename Babo) auf linuxmuster.net 6.2 (Codename babo62) zu aktualisieren, sind nachstehend aufgeführte Schritte auszuführen.
Lesen der Release-Informationen¶
Lesen Sie die Informationen zu What is new in 6.2?, speziell, welche Fehler bekannt sind.
Paketquellen anpassen¶
Zum Upgrade auf linuxmuster.net 6.2 (Codename Babo62) muss das entsprechende neue babo62-Repositorium eingebunden werden.
In der Datei /etc/apt/sources.list.d/linuxmuster-net.list
sind folgende Paketquellen anzugeben:
deb http://pkg.linuxmuster.net/ babo/
deb-src http://pkg.linuxmuster.net/ babo/
deb http://pkg.linuxmuster.net/ babo62/
deb-src http://pkg.linuxmuster.net/ babo62/
Attention
Paketquellen überprüfen
Stellen Sie sicher, dass keine weitere Datei im Verzeichnis /etc/apt/sources.list.d/
oder die Datei /etc/apt/sources.list
Repositorien von pkg.linuxmuster.net
enthält.
Dist-upgrade durchführen¶
Nachdem die Paketquellen in der genannten Datei für apt eingetragen wurden, können Sie nun die Paketquellen aktualisieren und die Pakete selbst aktualisieren.
Dazu sind auf der Eingabekonsole als Benutzer root folgende Befehle einzugeben:
# apt-get update
# apt-get dist-upgrade
Das Paketsystem fragt bei einigen Paketen nach, ob bei geänderten Konfigurationsdateien die aktuelle Konfiguration beibehalten werden sollen, oder ob die neuen angewendet werden sollen.
Attention
Aktuelle Konfiguration beibehalten
Wählen Sie immer aus, dass die aktuelle Konfiguration beibehalten werden soll. Dies entspricht auch der Voreinstellung, die Sie mit ENTER bestätigen können.
Import der Workstations durchführen¶
Beim durchgeführten Upgrade wurde auch eine neue Version des Pakets linuxmuster-linbo eingespielt. Diese neue Version von Linbo erfordert es, dass zur Aktivierung zu Beginn ein einmaliger Import der Workstations ausgeführt wird. Auf diese Weise werden die notwendigen Konfigurationsdateien erstellt.
Führen Sie hierzu folgenden Befehl aus:
# import_workstations
Das Skript prüft die angegebenen Eintragungen in der Datei /etc/linuxmuster/workstations
. Sind diese korrekt wird der Import ausgeführt. Wurde das Skript erfolgreich abgearbeitet, wird dies mit einem entsprechenden Hinweis quittiert.
Clients mit neuem Linbo booten¶
Note
Ab Linbo 2.3 ist es zwingend notwendig, im BIOS auch die Festplatte als Bootmedium einzustellen.
Um sicherzustellen, dass das neue LINBO-System auch lokal auf den Clients installiert wird, erzwingt man eine Aktualisierung des Caches und einen Reboot.
Folgender Befehl auf der Serverkonsole sorgt dafür, dass beim nächsten Bootvorgang (egal ob per PXE oder von Festplatte) der Cache initialisiert wird (und rebootet wird):
# linbo-remote -p initcache,reboot [-i <hostname>|-g <group>|-r <room>]
Note
Nach dem Upgrade sollten alle Clients wie gewohnt weiter funktionieren. Die Bildschirmausgabe beim Bootvorgang ist leicht verändert und vor dem Betriebssystemstart aus der Linbo-Oberfläche heraus wird nun immer ein Neustart initiiert (Der sogenannte reboot-Workaround wird nun immer verwendet.).
Reparatur und Neuerstellen eines Abbildes nach Partitionierung¶
Ab Version 2.3.0 wird ein anderer Partitionsprogramm verwendet. Leider kommt Windows mit einer Neupartitionierung nicht zurecht. Im normalen Betrieb gibt es keine Probleme. Erst dann, wenn Sie einen Computer neu partitionieren müssen, quittiert Windows mit einer Fehlermeldung den Dienst beim Start dieses Images:
...
Status 0xc0000000e
Info: The boot selection failed because a required device is inaccessible.
Lösungsweg¶
Abhilfe schafft,
- Windows mit Hilfe der Boot-DVD zu reparieren (Systemstartreparatur),
- danach Windows ohne Synchronisation zu starten und wieder zu rebooten.
- Beim Reboot erstellen Sie ein neues Image, das danach auf allen anderen Rechnern ausgerollt werden kann und auch nach einer neuen Partitionierung normal funktioniert.
Fehlerbehebung mit einem USB-Stick¶
Wenn ein Arbeitsplatz mit der Fehlermeldung “Kernel panic” hängt oder in Schleifen immer wieder rebootet, kann ein Neuanfang über einen USB-Stick oder CD/DVD initiiert werden.
Laden Sie dazu die die Datei linbo.iso
von ihrem Server herunter (z.B. über 10.16.1.1/linbo.iso)
und brennen Sie diese auf CD/DVD oder kopieren diese auf einen
USB-Stick, z.B. mit Hilfe des Befehls
# dd if=linbo.iso of=/dev/sdX
wobei /dev/sdX
der Schnittstellenname ihres USB-Sticks sein muss.
Upgrade von 6.0¶
Ein schrittweises Upgrade 6.0 -> 6.1 -> 6.2 ist nicht nötig. Neben dem hier beschriebenen direkten Upgradepfad 6.0 (Codename ObenBleiben) auf 6.2 (Codename Babo62), ist auch eine Aktualisierung mithilfe der Migration möglich.
Lesen der Release-Informationen¶
Lesen Sie die Informationen zu What is new in 6.2?, speziell, welche Fehler bekannt sind.
Dokumentation der eigenen Firewallregeln¶
Im Zuge der Aktualisierung wird die interne und externe Firewall auf IP-basierte Regeln umgestellt. Daher ist es notwendig alle selbst definierten und in IPFire eingetragenen Regeln vorab zu dokumentieren. Diese müssen nach dem Upgrade neu in IPFire eingetragen werden.
Screenshots erstellen¶
Die Regeln / Einstellungen aus den folgenden IPFire-Bereichen müssen dokumentiert werden:
- Eingehende Firewallregeln
- Ausgehende Firewallregeln
- Eingehender Firewallzugang
- Ausgehender Firewallzugang
- Standardverhalten der Firewall
Zu diesen Bereichen sind sinnvollerweise Screenshots zu erstellen, um so die Regeln erfassen. Die eigenen Regeln ergeben sich im Vergleich mit dem Auslieferungszustand des IPFire. Nach dem Upgrade der Firewall müssen die eigenen Regeln wieder eingepflegt werden.
Sperrliste löschen¶
Prüfen Sie, ob im IPFire auf der Webproxy-Seite noch MAC-Adressen in der Sperrliste eingetragen sind. Sind hier MAC-Adressen noch eingetragen, müssen Sie diese löschen und diese Änderungen mit der Schaltfläche Speichern und Neustart übernehmen.
Paketquellen anpassen¶
Zum Upgrade auf linuxmuster.net 6.2 (Codename Babo62) muss das entsprechende Repositorium eingebunden werden.
In der Datei /etc/apt/sources.list.d/linuxmuster-net.list
sind folgende Paketquellen anzugeben:
deb http://pkg.linuxmuster.net/ babo/
deb-src http://pkg.linuxmuster.net/ babo/
deb http://pkg.linuxmuster.net/ babo62/
deb-src http://pkg.linuxmuster.net/ babo62/
Bestehende Zeilen, die auf das precise-Repositorium verweisen, ebenso alte Quellendateien, die auf precise-Repositorien verweisen, sollten auskommentiert oder gelöscht bzw. verschoben werden.
# deb http://pkg.linuxmuster.net/ precise/
# deb-src http://pkg.linuxmuster.net/ precise/
Attention
Paketquellen überprüfen
Stellen Sie sicher, dass keine weitere Datei im Verzeichnis /etc/apt/sources.list.d/
oder die Datei /etc/apt/sources.list
Repositorien von pkg.linuxmuster.net
enthält.
Dist-upgrade durchführen¶
Nachdem die Paketquellen in der genannten Datei für apt eingetragen wurden, können Sie nun die Paketquellen aktualisieren und die Pakete selbst aktualisieren.
Dazu sind auf der Eingabekonsole als Benutzer root folgende Befehle einzugeben:
# apt-get update
# apt-get dist-upgrade
Paketaktualisierung (Upgrade) wird berechnet...Fertig
Die folgenden Pakete werden ENTFERNT:
tftpd-hpa
Die folgenden NEUEN Pakete werden installiert:
atftpd ipcalc
Die folgenden Pakete werden aktualisiert (Upgrade):
linuxmuster-base linuxmuster-ipfire linuxmuster-linbo linuxmuster-migration
sophomorix-base sophomorix-doc-html sophomorix-pgldap sophomorix2
Sollte die Paketaktualisierung verletzte Abhängigkeiten für tftpd-hpa melden, so installieren Sie zunächst gezielt atftpd oder installieren Sie das deinstallierte linuxmuster-linbo nach dem upgrade neu.
Attention
Aktuelle Konfiguration beibehalten
Wählen Sie immer aus, dass die aktuelle Konfiguration beibehalten werden soll. Dies entspricht auch der Voreinstellung, die Sie mit ENTER bestätigen können.
Externe Firewall umstellen¶
Nachdem das Distributions-Upgrade durchgelaufen ist, setzen Sie die externe Firewall mit dem Befehl
# linuxmuster-ipfire --setup
einmal in den Auslieferungszustand zurück. Starten Sie die Firewall neu und warten Sie, bis diese vollständig neu gestartet ist.
Ab jetzt können Sie die vorher dokumentierten eigenen Regeln und Portweiterleitungen wieder einpflegen und aktivieren.
Import der Workstations durchführen¶
Beim durchgeführten Upgrade wurde auch eine neue Version des Pakets linuxmuster-linbo eingespielt. Diese neue Version von Linbo erfordert es, dass zur Aktivierung zu Beginn ein einmaliger Import der Workstations ausgeführt wird. Auf diese Weise werden die notwendigen Konfigurationsdateien erstellt. Führen Sie hierzu folgenden Befehl aus:
# import_workstations
Das Skript prüft die angegebenen Eintragungen in der Datei /etc/linuxmuster/workstations
. Sind diese korrekt wird der Import ausgeführt. Wurde das Skript erfolgreich abgearbeitet, wird dies mit einem entsprechenden Hinweis quittiert.
Clients mit neuem Linbo booten¶
Note
Ab Linbo 2.3 ist es zwingend notwendig, im BIOS auch die Festplatte als Bootmedium einzustellen.
Um sicherzustellen, dass das neue LINBO-System auch lokal auf den Clients installiert wird, erzwingt man eine Aktualisierung des Caches und einen Reboot.
Folgender Befehl auf der Serverkonsole sorgt dafür, dass beim nächsten Bootvorgang per PXE der Cache initialisiert wird (und rebootet wird):
# linbo-remote -p initcache,reboot [-i <hostname>|-g <group>|-r <room>]
Sollten sich in Ihrem Netzwerk neben den Clients, die via
PXE-Netwerk-Boot starten, auch solche befinden, die Linbo nur lokal
starten, schalten Sie die betreffenden Rechner ein und lassen Sie
diese mit LAN-Verbindung in die Linbo-Oberfläche booten. Über die
Konfigurationseinstellung AutoInitCache = yes
in der zugehörigen
start.conf
erzwingt man die Cache-Initialisierung auch bei diesen
Clients.
Note
Nach dem Upgrade sollten alle Clients wie gewohnt weiter funktionieren. Die Bildschirmausgabe beim Bootvorgang ist leicht verändert und vor dem Betriebssystemstart aus der Linbo-Oberfläche heraus wird nun immer ein Neustart initiiert (Der sogenannte reboot-Workaround wird nun immer verwendet.)
Fehlerbehebung mit einem USB-Stick¶
Wenn ein Arbeitsplatz mit der Fehlermeldung “Kernel panic” hängt oder in Schleifen immer wieder rebootet, kann ein Neuanfang über einen USB-Stick oder CD/DVD initiiert werden.
Laden Sie dazu die die Datei linbo.iso
von ihrem Server herunter (z.B. über http://10.16.1.1/linbo.iso)
und brennen Sie diese auf CD/DVD oder kopieren diese auf einen
USB-Stick, z.B. mit Hilfe des Befehls
# dd if=linbo.iso of=/dev/sdb
wobei /dev/sdb
der Schnittstellenname ihres USB-Sticks sein muss.
Tausch- und Vorlagenordner umstellen¶
Die Tausch- und Vorlagenordner der Klassen/Projekte und des aktuellen Raums müssen ab linuxmuster.net 6.1 von den bisherigen so genannten bind-mounts auf verlinkte shares umgestellt werden.
Homeverzeichnisse bereinigen¶
Dazu ist es zunächst erforderlich die Verzeichnisse
__tauschen
__vorlagen
in jedem Benutzerverzeichnis zu entfernen. Dies kann man mit folgenden Befehlen für alle Benutzer oder gezielt für einzelne Benutzer erledigt werden:
# sophomorix-repair --repairhome
# sophomorix-repair --repairhome -u user
Attention
Es ist notwendig, dass die Benutzer nicht am System angemeldet sind, sonst können die in Benutzung befindlichen Links nicht entfernt werden.
Bind-mounts abschalten¶
Die Verwendung der bind-mounts auf dem Server sind händisch abzuschalten. Dies wurde so vorgesehen, damit ein Parallelbetrieb als Übergang genutzt werden kann. Dazu in den Dateien
/etc/linuxmuster/samba/root-preexec.d/sophomorix-root-preexec
/etc/linuxmuster/samba/root-postexec.d/sophomorix-root-postexec
die Zeilen mit “sophomorix-bind” durch Voranstellen eines #
auszukommentieren.
#!/bin/bash
# sophomorix-bind --quick --login --host $HOSTNAME --user $USERNAME --homedir $HOMEDIR
Damit werden die bind-mounts bei der Benutzeran- bzw. abmeldung nicht mehr angelegt bzw. entfernt.
Da es möglich ist, dass zum Umstellungszeitpunkt Bind-mounts gesetzt waren, sollten diese entfernt werden mit:
# sophomorix-bind --cron
Dateirechte umstellen¶
Mit dem Upgrade von 6.0 auf 6.1 müssen auch noch die Dateirechte/Eigentümer von schon erstellten Verzeichnissen in den Tauschordnern angepasst werden. Dies geschieht durch Aufruf von:
# sophomorix-repair --permissions
Migration from paedML/openML¶
The linuxmuster-migration package provides a collection of shell scripts that allow you to transfer all system and user data between openML/linuxmuster.net systems.
An upgrade to linuxmuster. net 6.2 using the migration is possible for the following systems:
- paedML Linux >= 4.0.6
- openML 5.x
- linuxmuster.net 6.x
The restrictions are that a change from REMBO to LINBO, as well as a change from IPCop to IPFire must take place.
A detailed overview and instructions can be found under:
Migration from paedML/openML/linuxmuster.net¶
Overview of the migration steps¶
Prerequisites¶
Attention
The paedML version >= 4.0.6 must be installed as base system. An openML/paedML version 5. x or linuxmuster.net version 6. x can also be installed as base system.
Procedure¶
- First install the linuxmuster-migration package on the base system (version 4.0.6 or higher) and then backup the data to be migrated to a directory on a local hard disk or NFS share.
- After that, the new system (linuxmuster.net 6. x with IPFire and server) is rebuilt. Hardware and partitioning may differ from the source system.
- Finally, you install the linuxmuster-migration package on the new system, make the backup directory from step 1 available on the local hard disk or NFS share on the server and restore the data from the backup.
Paket linuxmuster-migration installieren¶
Je nach Quellsystem sind zur Installation des linuxmuster-migration Pakets verschiedene Paketquellen einzutragen, die zum Qellsystem passen müssen.
In nachstehender Tabelle sind diese zusammengefasst:
Quellsystem | Repo | Eintrag sources.list |
---|---|---|
paedML 4.X | openml5-stable | deb http://pkg.linuxmuster.net/ openml5-stable/ deb-src http://pkg.linuxmuster.net/ openml5-stable/ |
openML 5.X linuxmuster.net 5.X | openml5-stable | deb http://pkg.linuxmuster.net/ openml5-stable/ deb-src http://pkg.linuxmuster.net/ openml5-stable/ |
linuxmuster.net 6.0 | precise | deb http://pkg.linuxmuster.net/ precise/ deb-src http://pkg.linuxmuster.net/ precise/ |
linuxmuster.net 6.1 | babo | deb http://pkg.linuxmuster.net/ babo/ deb-src http://pkg.linuxmuster.net/ babo/ |
linuxmuster.net 6.2 | babo62 | deb http://pkg.linuxmuster.net/ babo62/ deb-src http://pkg.linuxmuster.net/ babo62/ |
Ergänzen Sie in der nachstehendeb Datei gemäß Ihres eingesetzten Quellsystems die Eintragungen für das Repository:
/etc/apt/sources.list.d/linuxmuster.net.list
Danach aktualisieren Sie die Paketquellen mit nachstehendem Befehl:
apt-get update
Anschließend installieren Sie das Paket linuxmuster-migration:
apt-get install linuxmuster-migration
Konfiguration des Migrationsskripts¶
In der Standardeinstellung wird das komplette Home-Verzeichnis ohne Ausnahme gesichert und wieder hergestellt.
Einstellungen bzgl. zusätzlich zu sichernden bzw. vom Backup auszuschließenden Dateien und Verzeichnissen trägt man in die Konfigurationsdateien defaults.conf, include.conf und exclude.conf unter
/etc/linuxmuster/migration
ein. Diese Dateien werden beim Backup mitgesichert und beim Restore auf dem Zielsystem ausgewertet.
Eigene Dateien und Verzeichnisse einbeziehen¶
Soll zum Beispiel die Schulhomepage, die unter /var/www/homepage
abgelegt ist, ebenfalls gesichert und auf dem Zielsystem wieder hergestellt werden, so trägt man den Pfad einfach in etc/linuxmuster/migration/include.conf
ein:
#/var/www/index.html
/var/www/homepage
Dabei ist zu beachten, dass pro Zeile nur ein Eintrag erlaubt ist. Außerdem müssen immer absolute Pfade angegeben werden. Wildcards sind erlaubt.
Dateien und Verzeichnisse ausschließen¶
Soll zum Beispiel das schulweite Tauschverzeichnis von der Migration ausgeschlossen werden, trägt man in die Konfigurationsdatei /etc/linuxmuster/migration/exclude.conf
den entsprechenden Pfad ein:
#*.mp3
/home/share/school/*
Es können per Wildcard (*) bestimmte Dateimuster ausgeschlossen werden (z.B. *.mp3).
Weitere Wiederherstellungsoptionen¶
Über die Konfigurationsdatei custom.conf kann das Verhalten bei der Wiederherstellung gesteuert werden.
Soll über ein Netzwerk migriert werden, so ist ein Backup auf ein Netzwerkshare durchzuführen und hiervon das Restore auszuführen.
Migrationsskript ausführen¶
Die Sicherung der Migrationsdaten wird über das Shell-Skript linuxmuster-migration-backup realisiert.
Die Optionen des Skripts könenn mit folgendem Befehl kontrolliert werdne:
server ~> linuxmuster-migration-backup -h
Usage: linuxmuster-migration-backup <options>
Options:
-c <config dir> Path to config directory (optional).
Default is /etc/linuxmuster/migration.
-d <target dir> Path to target directory (must exist, mandatory).
-h Show this help.
Attention
Das Zielverzeichnis für die Sicherung muss mit dem Parameter -d zwingend angegeben werden. Das Verzeichnis muss existieren und kann auf einem NFS-Share liegen, das jedoch gemountet sein muss.
Attention
Für die Sicherung auf eine lokal angeschlossene Platte ist ein Linux-Dateisystem des Typs ext2, ext3, reiserfs oder xfs Voraussetzung.
Die Sicherung kann problemlos auch remote in einer SSH-Konsole gestartet werden.
Die Ausgaben des Skripts werden in die Datei /var/log/linuxmuster/migration-backup.log
geschrieben. Nach Abschluss des Backups wird die Logdatei in das Backupverzeichnis kopiert.
Beispiel:
linuxmuster-migration-backup -d /media/backup/migration
Dieser Befehl würde nun mithilfe des Mikrationsskripts eine Sicherung in das Verzeichnis /media/backup/migration
durchführen. Die lokale Festplatte oder das NFS-Share (mit Schreibrechten) müssen hierin gemountet worden sein, damit der Befehl erfolgreich durchläuft.
linuxmuster.net Reinstallation¶
After performing the backup using the migration script linuxmuster-migration, you can now reinstall linuxmuster. net (IPfire and server) and perform the subsequent configuration.
Attention
See also Manuell Installation of linuxmuster.net.
Wiederherstellung¶
Für die Datenmigration auf dem nun neu installierten Zielsystem ist das Shell-Skript linuxmuster-migration-restore zuständig:
Die Optionen des Skript können wie folgt ausgegeben werden:
server ~ > linuxmuster-migration-restore -h
Usage: linuxmuster-migration-restore <options>
Options:
-c <config dir> Path to directory with config files (optional).
Per default we look in source dir for them.
-d <source dir> Path to source directory (mandatory,
where the restore files live).
-i <password> Firewall root password (optional). If not given you
will be asked for it.
-t <temp dir> Path to directory where the restore files are
temporarily stored in case the source dir is on a
nfs share (optional, must exist).
-h Show this help.
Das Quellverzeichnis mit den Migrationsdaten muss mit dem Parameter -d zwingend angegeben werden.
Mit der Option -i kann das Root-Passwort der Firewall übergeben werden. Gibt man es nicht auf der Kommandozeile an, wird danach gefragt.
Liegt das Quellverzeichnis auf einem NFS-Share, kann mit der Option -t ein lokales Verzeichnis angegeben werden, in das die Migrationsdaten aus dem Quellverzeichnis kopiert werden. Das ist notwendig, da während des Restores das Netzwerk neu gestartet wird und damit die Verbindung zum Share verloren ginge. Gibt man kein lokales Verzeichnis an, sucht das Skript nach genügend freiem Platz im Wurzelverzeichnis, dann unter /var/tmp
und /home
. Die Verarbeitung wird abgebrochen, falls nicht genügend Speicherplatz gefunden wird. Im anderen Fall wird ein temporäres Verzeichnis migration.tmp angelegt, das nach Abschluss der Verarbeitung wieder gelöscht wird.
Die Ausgaben des Skripts werden in die Datei /var/log/linuxmuster/migration-restore.log
geschrieben.
Die Remote-Ausführung des Restore-Skripts per SSH-Konsole ist nicht zu empfehlen, da wie schon erwähnt das Netzwerk neu gestartet wird. Ist der Zugriff nur per SSH möglich, muss das Skript in einer Screen-Session gestartet werden, damit es komplett durchlaufen kann.
Nacharbeit¶
Falls sich bei der Wiederherstellung der IP-Bereich des Zielsystems ändert, muss dies ebenfalls händisch in /etc/default/atftpd
abgeändert werden.
Abschließend muss der Server neu gestartet werden.
Keep linuxmuster.net up to date¶
Security-critical updates of the Ubuntu operating system are provided by Ubuntu. The same applies to the IPFire firewall.
Attention
Therefore, update your system regularly.
Update des Ubuntu Servers von linuxmuster.net¶
Um die linuxmuster.net 6.x zugrunde liegende Ubuntu Version (Ubuntu Server 12.04.5 LTS 64bit) zu aktualisieren, beachten Sie bitte nachstehendes Vorgehen bzw. Hinweise.
Attention
Führen Sie Updates bitte regelmäßig manuell durch.
Keine automatischen Updates¶
Es wird ausdrücklich davon abgeraten in Ubuntu die Option
Automatische Updates
zu aktivieren, so dass
Paketaktualisierungen automatisch von dem Ubuntu-Server
heruntergeladen und installiert werden.
Ob Sie automatische Updates aktiviert haben, überprüfen Sie, in dem
Sie auf dem Server in der Datei /etc/apt/apt.conf.d/10periodic
überprüfen, ob die Option APT::Periodic::Unattended-Upgrade "1";
existiert. In diesem Fall, ändern Sie die "1"
in eine "0"
.
Melden Sie sich stattdessen besser bei der entsprechenden Mailingliste an oder abonnieren Sie entsprechenden RSS-Feed. Alle Hinweise zu Sicherheitsupdates von Ubuntu erhalten Sie unter http://www.ubuntu.com/usn/
Aktualisierungen einspielen¶
Um die Server-Installation auf den aktuellen Paketstand zu bringen, gehen Sie folgendermaßen vor:
Loggen Sie sich als User root auf einer Serverkonsole ein.
Aktualisieren Sie die Paketlisten:
# aptitude update
Installieren Sie nun Aktualisierungen und weitere Software-Pakete über das Internet:
# aptitude dist-upgrade
Es wird aufgelistet, welche Pakete aktualisiert werden. Bestätigen Sie die Aktualisierung mit der Eingabe von Y
Dieses Vorgehen stellt sich in der Konsole wie folgt dar:
Während des Aktualisierungsverlaufs fragen manchmal Pakete nach, ob eine neue Konfigurationsdatei installiert werden soll. Geben Sie
N
oder ENTER für “Beibehalten” an.Konfigurationsdatei »/etc/sudoers« ==> Geändert (von Ihnen oder von einem Skript) seit der Installation. ==> Paketverteiler hat eine aktualisierte Version herausgegeben. Wie möchten Sie vorgehen? Ihre Wahlmöglichkeiten sind: Y oder I : Die Version des Paket-Betreuers installieren N oder O : Die momentan installierte Version beibehalten D : Die Unterschiede zwischen den Versionen anzeigen Z : Eine Shell starten, um die Situation zu begutachten Der Standardweg ist das Beibehalten der momentanen Version. *** sudoers (Y/I/N/O/D/Z) [Vorgabe=N] ? N
Hinweise¶
Ubuntu bietet ein Upgrade an¶
Haben Sie sich an der Konsole des linuxmuster.net Servers angemeldet, so erhalten Sie Hinweise auf neue verfügbare Upgrades, also neue Versionen des Ubuntu-Servers.
Diese stellen sich bsp. wie folgt dar:
New release '14.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
Caution
Niemals ein Release-Upgrade durchführen
Folgen Sie nicht der Empfehlung, denn linuxmuster.net ist auf die Version 12.04 LTS 64 bit angepasst, deren Support bis 2017 gewährleistet ist. Neue Versionen (ab linuxmuster.net 7) werden über ein solches Release-Upgrade bereits verfügen (Version 16.04 LTS 64 bit)
Meldung: Hardware Enablement Stack¶
Ebenso wie beim „upgrade“ wird beim Anmelden über die Kommandozeile manchmal ein nicht mehr unterstützter Kernel gemeldet:
Your current Hardware Enablement Stack (HWE) is no longer supported
since 2014-08-07. Security updates for critical parts (kernel
and graphics stack) of your system are no longer available.
For more information, please see:
http://wiki.ubuntu.com/1204_HWE_EOL
To upgrade to a supported (or longer supported) configuration:
* Upgrade from Ubuntu 12.04 LTS to Ubuntu 14.04 LTS by running:
sudo do-release-upgrade
OR
* Install a newer HWE version by running:
sudo apt-get install <kernel-version>
Attention
Führen Sie kein upgrade auf 14.04 LTS durch. Support wird von Ubuntu für 12.04, 12.04.1 und 12.04.5 (Stand: August 2014) geleistet, das bedeutet ein mit 12.04.2 installiertes System muss einen neuen Kernel bekommen. (https://wiki.ubuntu.com/1204_HWE_EOL)
Aktualisierung des Linux-Kernels¶
Um Ubuntu 12.04 LTS Server (Codename Trusty) auf einen neueren Kernel zu aktualisieren, kann das Paket linux-hwe-generic genutzt werden:
# apt-get install linux-hwe-generic
Paketlisten werden gelesen...Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen...Fertig
Die folgenden zusätzlichen Pakete werden installiert:
linux-headers-3.13.0-34 linux-headers-3.13.0-34-generic linux-headers-generic-lts-trusty
linux-image-3.13.0-34-generic linux-image-generic-lts-trusty linux-image-hwe-generic
Vorgeschlagene Pakete:
fdutils linux-lts-trusty-doc-3.13.0 linux-lts-trusty-source-3.13.0 linux-lts-trusty-tools
Die folgenden NEUEN Pakete werden installiert:
linux-headers-3.13.0-34 linux-headers-3.13.0-34-generic linux-headers-generic-lts-trusty
linux-hwe-generic linux-image-3.13.0-34-generic
linux-image-generic-lts-trusty linux-image-hwe-generic
Nach Ausführen des Befehls ist der Server neu zu starten
# reboot
Sollte aus irgendeinem Grund der neue Kernel nicht booten oder funktionieren, kann der „alte“ Kernel über das Grub-Bootmenü ausgewählt werden, solange dieser nicht deinstalliert wurde.
Sollte nach dem Neustart des Servers mit dem neu installierten Kernel dennoch die HWE-Meldung erscheinen, sollte nachstehender Befehl
# hwe-support-status --show-all-unsupported
ausgeführt werden. Die dort genannten Pakete müssen dann deinstalliert werden. Danach o.g. Befehl noch einmal abgesetzen, um sicherzugehen, dass keine weiteren Pakete den HWE-Status blockieren.
Die Datei /var/lib/update-notifier/hwe-eol
kann auch notfalls gelöscht werden.
Aktualisierung der Firewall IPFire¶
Um die Firewall von linuxmuster.net IPFire zu aktualisieren, beachten Sie bitte nachstehendes Vorgehen bzw. Hinweise.
Attention
Führen Sie Updates bitte regelmäßig manuell durch.
Skriptgesteuerte Aktualisierung vom Server aus¶
Es wird regelmäßig getestet, ob die neueren IPFire Versionen vollständig mit linuxmuster.net kompatibel sind. Um zu verhindern, dass vorschnell neue IPFire Versionen direkt nach Erscheinen installiert und so ggf. Inkompatibilitäten in Kauf genommen werden, wird das Update des IPFire vom Server aus mithilfe eines Skriptes angestossen.
Welche Version von linuxmuster.net positiv getestet wurde erfahren Sie im
Support Forum in der Kategorie Server - Firewall https://ask.linuxmuster.net/c/server/firewall
Damit das Update mithilfe des angesprochem Skiptes ausgeführt wird, müssen Sie die Datei /var/lib/linuxmuster-ipfire/maxcore
an der Server-Konsole editieren. Nach dem Speichern der Datei kann das Update gestartet werden.
Ein erfolgreicher Upgrade-Vorgang stellt sich dann so dar:
# linuxmuster-ipfire --upgrade
###################################
# linuxmuster.net: IPFire upgrade #
###################################
Passwordless ssh connection to Firewall is available.
IPFire 2.17 core 99 detected
downloading package lists ...
...package lists are up-to-date
upgrading IPFire ...
Core-update 2.19
Release: 100 -> 102
[screen is terminating]
Connection to 10.16.1.254 closed.
...upgrade was successful
Rebooting IPfire ...
Wenn ein Zwischenupdate von IPFire installert wird und hierbei ein größerer Versionssprung durchgeführt wird, ist nach dem Reboot von IPFire der Befehl erneut aufzurufen. Ebenso empfiehlt sich ein erneuter Aufruf, wenn das Upgrade nicht erfolgreich beendet wurde.
Ist das Update abgeschlossen, finden Sie nachstehende Konsolenausgabe:
# linuxmuster-ipfire --upgrade
###################################
# linuxmuster.net: IPFire upgrade #
###################################
Passwordless ssh connection to Firewall is available.
IPFire 2.19 core 102 detected
downloading package lists ...
...package lists are up-to-date
your IPFire is up-to-date
Weitere Hinweise¶
Konfiguration des IPFire vom Server aus neu setzen¶
Mit folgendem Befehl am Server konfiguriert man den IPFire neu. Es sollte zuvor aber ein Backup der IPFire-Einstellungen durchgeführt werden:
# linuxmuster-ipfire --backup
# dpkg-reconfigure linuxmuster-ipfire
Attention
Nur im Ausnahmefall anwenden. Es gehen alle eigenen Konfigurationseinstellungen des IPFire verloren.
Aktualisierung des IPFire via Konsole¶
Haben Sie eine SSH-Verbindung zum IPFire aufgebaut, können die diesen auch auf der Konsole des IPFire mithilfe der Paketverwaltung Pakfire
des IPFire durchführen.
Hierzu geben Sie nachstehende Konsolenbefehle an:
# pakfire update
# pakfire upgrade
Danach ist der IPFire neu zu starten.
Attention
Prüfen Sie vorher, ob die zu installierende Version des IPFire vollständig kompatibel zu linuxmuster.net ist. Im Forum oder über die Mailing-Liste erhalten Sie entsprechende Hinweise.
Backup of linuxmuster.net¶
As of version 6.1 linuxmuster.net offers migration scripts with which a regular backup and, if necessary, a restore of the server as well as the firewall is possible and can be used for automated backups.
Content
Features der Backuplösung¶
Ab der Version 6.1 sind die sog. Migrationsskripte linuxmuster-migration-backup``und ``linuxmuster-backup-restore
zu verwenden, um den Server sowie die Firewall zu sichern und wiederherzustellen.
Diese Lösung bietet:
- einfache Konfiguration der einzubindenden oder auszuschließenden Verzeichnisse
- automatische Sicherung der aktuellen Firewalleinstellungen
- kurzzeitiges Herunterfahren sensitiver Dienste (z.B. Datenbanken) zum Schutz der Datenintegrität
- ab der zweiten Sicherung werden nur noch die Änderungen gesichert (Rsync-Funktionalität)
- „Disaster-Recovery“ ist durch die rasche Neuinstallation gegeben
- äußerst einfaches Wiederherstellen einzelner Dateien durch den Administrator
Es fehlt:
- Sicherung der Virtualisierungsumgebung
- eine Versionverwaltung des Backups
Hint
Es gibt nur ein Backup
Erweiterungen¶
Es wird als linuxmuster-addon eine weitere Disaster-Recovery Lösung Mondo-Rescue
als Paket linuxmuster-addon
zur Verfügung gestellt.
Hint
Für Mondo-Rescue finden Sie in der Dokumentation ebenfalls ein Howto.
Konfiguration und Anwendung¶
Da die Skripte der Migration eines Systems zur Anwendung kommen, ist die Konfiguration und Anwendung identisch mit einer Migration. Ausnahme ist, dass im Falle einer Wiederherstellung üblicherweise derselbe Rechner mit derselben linuxmuster.net Version das Migrationsziel darstellt.
Zur Umsetzung der Backuplösung folgen Sie bitte dem Howto_Migration Schritt für Schritt
Automatisierung¶
Ein regelmäßiges Backup per kann per cronjob eingerichtet werden.
Erstellen und editieren Sie die Datei /etc/cron.d/backupservice
#cron.d/backupservice
#
# Jeden Tag um 1 Uhr nachts ein migrations-backup
0 1 * * * root linuxmuster-migration-backup -d /srv/backup/server
Pseudo-Vollbackups¶
Mit Hilfe des Werkzeuges rsnapshot kann eine Versionierung des Backupziels erfolgen. Dazu installieren Sie zunächst rsnapshot:
apt-get install rsnapshot
Haben Sie mit den Migrationstools bereits ein Backup auf das Ziel /srv/backup/server
gesichert, dann können Sie dieses nun mit einer Versionverwaltung ergänzen.
Ziel des Migrationsbackups: /srv/backup/server
Versionen dieser Backups (Pseudo-Vollbackups): /srv/backup/rsnapshot
Um hierfür eine Versionierung einzurichten find folgende Einträge in /etc/rsnapshot.conf
vorzunehmen:
snapshot_root» /srv/backup/rsnapshot/$
retain» » daily» 15$
retain» » monthly» 12$
###############################$
###·BACKUP·POINTS·/·SCRIPTS·###$
###############################$
backup» /srv/backup/server/» server/$
Dabei gilt:
Die Zeichen » stehen für TABs und $ für das Ende der Zeile. Dies ist so besonders hervorgehoben, weil das Programm rsnapshot bei zusätzlichen Leerzeichen, z.B. am Ende der Zeile nicht richtig funktioniert. Ebenso müssen alle Verzeichnisse mit einem / enden. Der Eiontrag retain daily 15 sorgt dafür, dass 15 Backups vom Typ „daily“ behalten werden, dagegen 12 vom Typ „monthly“ behalten.
Wann diese Backups erfolgen, ist selbst festzulegen, indem rsnapshot von cron aus mit dem richtigen Argument gestartet wird.
Eine beispielhafte Konfiguration für cron in /etc/cron.d/backupservice
wäre:
# Jeden Tag um 3.42 Uhr ein Pseudo-Vollbackup erstellen
42 3 * * * root /usr/bin/rsnapshot daily > /tmp/backupdaily.$$.log 2>&1
# Alle zwei wochen am 1. und 15. des Monats um 5.42 Uhr noch ein Backup
42 5 1 * * root /usr/bin/rsnapshot monthly > /tmp/backupmonthly.$$.log 2>&1
42 5 15 * * root /usr/bin/rsnapshot monthly > /tmp/backupmonthly.$$.log 2>&1
Diese Einstellung hat zur Folge, dass die täglichen Backups der letzten 15 Tage und die zweiwöchentlichen Backups der letzten 6 Monate behalten werden.
Das Verzeichnis der Pseudo-Vollbackups sollte dann nach einiger Zeit folgende Struktur haben:
ls -lt /srv/backup/rsnapshot/
insgesamt 64
drwxr-xr-x 6 root root 4096 Okt 5 04:41 daily.0
drwxr-xr-x 6 root root 4096 Okt 4 04:41 daily.1
drwxr-xr-x 6 root root 4096 Okt 3 04:42 daily.2
drwxr-xr-x 6 root root 4096 Okt 2 04:34 daily.3
drwxr-xr-x 6 root root 4096 Okt 1 04:42 daily.4
drwxr-xr-x 6 root root 4096 Okt 1 06:33 monthly.0
drwxr-xr-x 6 root root 4096 Sep 30 04:39 daily.5
drwxr-xr-x 6 root root 4096 Sep 29 04:41 daily.6
drwxr-xr-x 6 root root 4096 Sep 28 04:55 daily.7
#...
drwxr-xr-x 6 root root 4096 Sep 22 04:44 daily.13
drwxr-xr-x 6 root root 4096 Sep 21 04:38 daily.14
Restore - Wiederherstellung¶
Wiederherstellung auf Dateiebene¶
Wurde das Backup in der Verzeichnis /srv/backup/server
mit dem Befehl
linuxmuster-migration-backup -d /srv/backup/server
ausgeführt, dann finden sich Dateien unterhalb des Verzeichnisses filesystem
also
unter srv/backup/server/filesystem
.
Als Benutzer root können Sie die Daten sogar bis auf Dateiebene wiederherstellen.
Um einzelne Daten wiederherzustellen, geben Sie Quelle und Ziel für den Kopierbefehl an:
cp -a /srv/backup/server/filesystem/home/teachers/loescher/wichtigedaten.txt /home/teachers/loescher/
Der Befehl kopiert die Datei wichtigedaten.txt
aus dem Sicherungsverzeichnis /srv/backup/server/filesystem/home/teachers/loescher
in das Verzeichnis /home/teachers/loescher/
auf dem neuen Wiederherstellungsziel.
Um alle Daten wiederherzustellen, geben Sie an:
cp -aR /srv/backup/server/filesystem/* /
Dieser Befehl kopiert alle Dateien und Verzeichnisse aus dem Sicherungsverzeichnis in das Root-Verzeichnis des Wiederherstellungsziels.
Gesamtrestore des Systems¶
Auf dem neuen System werden alle gesicherten Daten mithilfe des Shell-Skript linuxmuster-migration-restore
wiederhergestellt
server ~ # linuxmuster-migration-restore -h
Usage: linuxmuster-migration-restore <options>
Options:
-c <config dir> Path to directory with config files (optional).
Per default we look in source dir for them.
-d <source dir> Path to source directory (mandatory,
where the restore files live).
-i <password> Firewall root password (optional). If not given you
will be asked for it.
-t <temp dir> Path to directory where the restore files are
temporarily stored in case the source dir is on a
nfs share (optional, must exist).
-h Show this help.
Das Quellverzeichnis mit den Migrationsdaten muss mit dem Parameter -d zwingend angegeben werden.
Mit der Option -i kann das Root-Passwort der Firewall übergeben werden. Gibt man es nicht auf der Kommandozeile an, wird danach gefragt. Liegt das Quellverzeichnis auf einem NFS-Share, kann mit der Option -t ein lokales Verzeichnis angegeben werden, in das die Migrationsdaten aus dem Quellverzeichnis kopiert werden. Das ist notwendig, da während des Restores das Netzwerk neu gestartet wird und damit die Verbindung zum Share verloren ginge. Gibt man kein lokales Verzeichnis an, sucht das Skript nach genügend freiem Platz im Wurzelverzeichnis, dann unter /var/tmp
und /home
. Die Verarbeitung wird abgebrochen, falls nicht genügend Speicherplatz gefunden wird. Im anderen Fall wird ein temporäres Verzeichnis migration.tmp angelegt, das nach Abschluss der Verarbeitung wieder gelöscht wird.
Die Ausgaben des Skripts werden in die Datei /var/log/linuxmuster/migration-restore.log
geloggt.
Die Remote-Ausführung des Restore-Skripts per SSH-Konsole ist nicht zu empfehlen, da wie schon erwähnt das Netzwerk neu gestartet wird. Ist der Zugriff nur per SSH möglich, muss das Skript in einer Screen-Session gestartet werden, damit es komplett durchlaufen kann.
Abschließend muss der Server neu gestartet werden.
Disaster recovery - emergency plan¶
In case of a complete failure, a disaster recovery is reduced to the following sequence:
- a possible reinstallation of the IPFire,
- a new installation of the Ubuntu server
- a one-time setup of the newly installed server
- Restore the environment using migration script linuxmuster-migration-restore.
Hint
For the step New installation please use the corresponding documentation.
Netzwerkkonfiguration¶
linuxmuster-chilli: Ein Captive Portal für linuxmuster.net¶
linuxmuster-chilli ist ein vorbereitetes Paket, das zur Installation auf einem Ubuntu Server 12.04 32bit gedacht ist und aus diesem ein sogenanntes “Captive Portal” (bei WLAN manchmal auch Hot-Spot genannt) macht, welches eine Anmeldung von mitgebrachten Geräten wie Laptops, Smartphones, Tablets u.ä. gegen den LDAP Server der linuxmuster.net Umgebung ermöglicht.

Die Zugriffssteuerung liegt in den Händen des Netzwerkberaters und der Lehrer. Die Entscheidung, ob ein Benutzer das Netzwerk nutzen kann oder nicht, wird dabei über die Zugehörigkeit in LDAP Gruppen gesteuert. So können Zugänge fein gesteuert über Projektgruppen in der Schulkonsole vergeben werden.
Vorbereitungen¶
Verschiedene Einsatzszenarien¶
Mit Hilfe von linuxmuster-chilli kann der Netzwerkzugang von mitgebrachten Geräten über das grüne, das blaue oder das rote Netzwerk erfolgen. (Es gibt noch mehr Möglichkeiten, aber diese drei sollten die häufigsten Anwendungsfälle abdecken…)
Die Firewall IPFire bietet verschiedene Netze mit unterschiedlichen Vertrauensstellungen an, lesen Sie dazu die Notes on network structure.
Zugang über das blaue Netz des IPFire¶
Das blaue Netzwerk wird überlicherweise für genau diese Aufgabe verwendet: Ein logisch getrenntes Netzwerk zu haben, dem zunächst nicht vertraut wird.
Vorteile:
- Kontrolle des Internetzugangs mit Hilfe des IPFire möglich
- Eine Lücke im Hotspot-System kann das grüne Netz nicht exponieren.
Nachteile:
- Nach der Anmeldung ist der Client nicht im grünen Netz (kein Drucken, kein Home- oder Tausch-Verzeichnis).

Zugang über das grüne Netz des IPFire¶
Vorteile:
- Nach der Anmeldung stehen alle Dienste im grünen Netz zur Verfügung
- Kontrolle des Internetzugangs mit Hilfe des IPFire möglich
Nachteile:
- Nach der Anmeldung ist der Client im grünen Netz: Eine Lücke im Hotspot-System kann das grüne Netz exponieren.

Zugang im roten Netz des IPFire (Direktzugang)¶
Vorteile:
- Kontrolle des Internetzugangs mit Hilfe des IPFire möglich
- Eine Lücke im Hotspot-System kann das grüne Netz nicht exponieren.
- Für die Anwender sind nur zwei Fälle zu dokumentieren: Am Schulrechner/am privaten Gerät.
Nachteile:
- Eine Lücke im Hotspot-System kann zu freiem Internetzugriff führen.
- Nach der Anmeldung ist der Client nicht im grünen Netz (kein Drucken, kein Home- oder Tausch-Verzeichnis).

Je nach gewähltem Szenario müssen entsprechende Einstellungen am IPFire vorgenommen werden. Im folgenden wird der Einsatz im blauen Netzwerk ausführlich dokumentiert.
IPFire-Konfiguration für den Einsatz im blauen Netz¶
Als Vorbereitung auf die Installation eines CoovaChilli-Servers müssen das Netzwerk richtig verkabelt werden und der IPFire vorkonfiguriert werden. Melden Sie sich dazu am IPFire an. Folgende Situation muss erreicht werden:
- Nur das externe Interface (im folgenden Netzdiagramm dunkelblau) des CoovaChilli-Servers muss sich im blauen Netzwerk des IPFire befinden. (Bei Virtualisierung kann diese Verbindung rein virtuell erfolgen).
- Der CoovaChilli-Server muss am IPFire mit diesem Interface für den “Zugriff auf Blau” freigeschaltet sein.
- Es muss eine Weiterleitung für LDAPs konfiguriert werden, so dass der CoovaChilli-Server den im grünen Netz stehenden linuxmuster.net-Server erreichen kann.
- Eine zweiten Netzwerkverbindung (mit physikalischer Anbindung bei Virtualisierung), an der dann die Access-Points hängen, muss geschaffen werden. Das WLAN-Interface (in den oberen Skizze hellblau, im Netzdiagramm unten lila) wird nach Installation mit den Accesspoints oder frei zugänglichen Netzwerkdosen verbunden.
Die Netzverkabelung versteht man am Besten beim Betrachten eines Beispiels eines CoovaChilli hier in einer virtualisierten Umgebung:

Important
Die folgenden Bilder zeigen wie im obigen Beispiel die Einstellungen für einen linuxmuster.net-Server im IP Bereich 10.16.*.* und dementsprechend einem blauen Netz 172.16.16.*. Gegebenenfalls muss das der eigenen Situation angepasst werden, z.B. auf 10.32.*.* und 172.16.32.*.
Darüberhinaus ist für den Endnutzer der Bereich 192.168.99.1 bis 192.168.99.255 vorgesehen. Hier kann jedes beliebige andere private, außer den bereits verwendeten, Subnetzwerk verwendet werden. Die jeweils richtigen IPs sind aber in der Regel bei den Dialogen schon voreingestellt.
1. DHCP-Server¶
Zunächst sollte sichergestellt sein, dass der DHCP Server für das blaue Interface läuft. Das ist insbesondere dann sinnvoll, wenn man neben dem CoovaChilli-Server noch weitere Clients im blauen Netzwerk hat, z.B. Schulcomputer die ohne Zugangsüberprüfung Netzwerkzugang haben sollen. Dies überprüft man im Menü des IPFire unter Netzwerk -> DHCP-Server:

Man setzt den Haken bei “Aktiviert” und speichere. Ist der
CoovaChilli-Server der einzige Rechner im blauen Netzwerk, ist man
fertig. Gibt es weitere Computer, ist es ratsam dem CoovaChilli die
erste IP-Adresse fest zu vergeben und die Anfangsadresse auf
172.16.16.2
zu setzen.
2. Zugriff auf Blau¶
Dann wechselt man auf die Seite Firewall -> Zugriff auf Blau und fügt dort die “externe” Schnittstelle/MAC des CoovaChilli-Servers hinzu.
- Quell-IP-Adresse: 172.16.16.1
- MAC-Adresse: xx:xx:xx:xx:xx:xx
- Anmerkung: coovachilli
- Aktiviert: Ja

3. Zugriff von Blau auf LDAPs zulassen¶
Zuletzt muss das DMZ Schlupfloch gebohrt werden, dazu wechselt man auf die Seite Firewall -> Firewallregeln und fügt eine neue Regel ein.
- Quelle: Standard-Netzwerk Blau
- Zieladresse: linuxmuster.net Server-IP (10.16.1.1 oder 10.32.1.1 oder …)
- Protokoll TCP, Quellport: leer, Zielport 636 für LDAPs
- Anmerkung, damit man weiß, was man gemacht hat
- Logging: optional

Schließlich “Hinzufügen” und anschließend auch noch “Änderungen übernehmen” nicht vergessen!

4. Weitere Dienste erlauben¶
Unter Firewall -> Firewallregeln müssen die zusätzlichen Dienste, die aus dem blauen Netz erlaubt werden sollen, freigeschaltet werden.
Im Beispiel unten wurde für das Protokoll https
auf den Ports 443
(Webserver), 242 (Schulkonsole) und 631 (Cups-Druckerserver) und für
das Protokoll ping
je eine Regel hinzugefügt. Für ping
muss als
Protokoll-Typ ICMP
ausgewählt werden.

Der Zugriff auf den IPFire-DNS-Server muss nicht extra erlaubt werden, auf einen anderen DNS-Server (z.B. Google - 8.8.8.8) jedoch schon.
5. Advanced Proxy für Blau aktivieren¶
Im Menü Netzwerk -> Webproxy sollte für das blaue Netz der transparente Proxy wie im grünen Netz aktiviert sein. Der Zugriff auf den Proxy muss in der Firewall nicht freigeschaltet werden.

Installation des Captive Portal Servers¶
Voraussetzungen¶
Für das Captive Portal wird ein PC oder eine virtuelle Maschine mit zwei Netzwerkkarten benötigt:
- eth0 muss die Netzwerkkarte sein, die mit dem Internet verbunden ist, je nach Einsatzszenario also z.B. grünem oder blauem Interface. Bei Virtualisierung empfiehlt sich die Einrichtung einer virtuellen Netzwerkbrücke, die man an keinen physikalischen Port binden muss (-> IPFire).
- eth1 wird nicht konfiguriert und mit dem Netzwerksegment verbunden, an dem die Clients sich später verbinden werden. Konfiguration und DHCP werden beim Start des chilli-Diensts von CoovaChilli vorgenommen.
Für eine manuelle Installation, muss ein Ubuntu-Server 14.04.4 32bit auf dem späteren Captive-Portal-Server installiert werden. Als einziges Zusatzpaket sollte bei der Softwareauswahl “ssh-server” gewählt werden.
Important
Achtung: Mit der 64bit Version funktioniert das Setup nicht.
Das Captive Portal als virtuelle Maschine herunterladen¶
Lade zunächst die virtuelle Maschine herunter:
https://www.linuxmuster.net/downloads/ova/linuxmuster-chilli.ova
Die OVA-Datei enthält eine virtuelle Appliance, auf der die komplette linuxmuster-chilli Umgebung bereits vorinstalliert ist.
Auspacken der Appliance¶
Die Appliance kann problemlos mit Virtualbox geöffnet werden. Der neuralgische Punkt ist die Konfiguration der Netzwerkkarten für die virtuelle Maschine.
Bereitstellen¶
Die Anmeldedaten für die Appliance sind
Benutzer: coovaadmin
Passwort: muster
Nach der ersten Anmeldung muss der Befehl
# linuxmuster-chilli-turnkey
ausgeführt werden. Dabei wird das Passwort des administrativen Benutzers coovaadmin geändert und ein neues SSL Zertifikat für den apache Webserver erzeugt. Anschließend wird CoovaChilli interaktiv für die Arbeit in der linuxmuster.net-Umgebung konfiguriert. Details hierzu finden sich in der Konfigurationsanleitung für linuxmuster-chilli.
CoovaChilli mit der Paketverwaltung installieren¶
Auf dem Chilli-Server muss der Repo-Schlüssel importiert werden:
# wget -q http://pkg.linuxmuster.net/linuxmuster.net.key -O - | apt-key add -
Eine neue Datei /etc/apt/sources.list.d/linuxmuster-chilli.list
anlegen und die folgende Zeile eintragen:
# linuxmuster-chilli Pakete
deb http://pkg.linuxmuster.net/ precise-chilli/
Aktualisieren der Paketliste mit
# apt-get update
Installation bzw. Update des Paketes mit
# apt-get install linuxmuster-chilli
Jetzt geht es dann weiter mit der Konfiguration von linuxmuster-chilli.
Netzwerkkonfiguration auf dem CoovaChilli-Server¶
Wenn der CoovaChilli-Server der einzige Rechner im blauen Netz ist,
kann man die Schnittstellenkonfiguration problemlos dem DHCP Server
überlassen. Die Datei /etc/network/interfaces
auf dem coovachilli
Server sieht dann folgendermaßen aus:
# This file describes the network ...
# and how to activate them. For more information, see interfaces(5).
#
# The loopback network
auto lo
iface lo inet loopback
# These interfaces are brought up automatically
auto eth0
iface eth0 inet dhcp
Ebenso kann man, sofern man den DHCP-Adressbereich geändert hat, kann man dem CoovaChilli-Server auch eine statische IP-Adresse geben, z.B.
# This file describes the network ...
# and how to activate them. For more information, see interfaces(5).
#
# The loopback network
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 172.16.16.1
netmask 255.255.255.0
network 172.16.16.0
broadcast 172.16.16.255
gateway 172.16.16.254
dns-nameservers 172.16.16.254
dns-search linuxmuster-net.lokal
Konfiguration von linuxmuster-chilli¶
Unabhängig davon, ob man den CoovaChilli-Server selbst auf einer Ubuntu-Basis installiert hat oder die virtuelle Appliance für Virtualbox nutzt, kann man mit dem Befehl
# dpkg-reconfigure linuxmuster-chilli
das Paket für die eigenen Bedürfnisse konfigurieren. Dieser Vorgang
wird auch durch den Befehl linuxmuster-chilli-turnkey
ausgelöst, der
die virtuelle Appliance personalisiert.
Nachfolgend werden die Schritte der Konfiguration erklärt.
Schrittweise Konfiguration¶
Adresse des LDAP-Servers¶
Zunächst muss die Adresse des LDAP-Servers angegeben werden. Der genaue Wert hängt davon ab, welches der Szenarien für den Einsatz des Captive Portals zur Anwendung kommt:
- Zugang zum grünen Netz: Interne IP-Adresse des Servers
- Zugang zum blauen Netz: Interne IP-Adresse des Servers
- Zugang zum roten Netz bzw. direkt ins Internet: Adresse oder DynDNS-Name der roten Schnittstelle des IPFire, Portweiterleitung für LDAPs (Port 636) von Rot nach Server-IP Grün muss aktiviert sein.

LDAP Suchbasis¶
Hier muss die LDAP Suchbasis des Schulservers angegeben werden,
standardmäßig dc=linuxmuster-net,dc=lokal
. Diese kann auf dem
Schulserver durch den Befehl grep basedn
/var/lib/linuxmuster/network.settings
ermittelt werden.

Passwort für den LDAP Server¶
Hier muss das Passwort zur Abfrage des LDAP Servers eingegeben werden.
Dieses kann auf dem Schulserver durch den Befehl grep rootpw
/etc/ldap/slapd.conf
ermittelt werden.

Netzwerkbereich/Netzmaske für die Clientseite des Hotspot-Servers¶
Hier muss ein privates Netzwerksegment angegeben werden. Wenn sich der CoovaChilli-Server im grünen oder blauen Netz befindet, dann kann die Vorgabe mit einem 192.168.x.x Netzwerk einfach übernommen werden. Wenn das dem Internet zugewandte Interface des CoovaChilli-Servers sich selbst in einem 192.168.x.x Netzwerk befindet (z.B. wenn es am roten Netz hängt), muss ein anderes privates Netz genommen werden.

Die Netzmaske für das Clientnetzwerk. Der Standard stellt 255x255 Adressen für Clients zur Verfügung das sollte reichen.

Nameserver¶
Hier sollten wenn möglich zwei Nameserver angegeben werden, die vom CoovaChilli-Server zur Adressauflösung verwendet werden. Die Werte hängen vom Anwendungsfall für den Hotspot ab. Man kann hier auch die Blaue IP des IPFire eintragen (z.B. 172.16.16.254). Gegebenenfalls muss aber in der Firewall noch zusätzlich eine Durchlassen-Regel zum DNS-Port 53 erstellt werden.

Zugangsgruppen¶
Nur die Mitglieder dieser Systemgruppen auf den Schulserver erhalten Zugang zum Internet. Mehrere Gruppen werden durch ein Leerzeichen getrennt.

Autologout¶
Nach welcher Zeit in Sekunden soll ein Client bei Untätigkeit automatisch abgemeldet werden? Dieser Wert wird in die Konfigurationsoption HS_DEFIDLETIMEOUT von CoovaChilli übernommen. Ein harter Logout, unabhängig von der Nutzeraktivität, der durch den Parameter HS_DEFSESSIONTIMEOUT festgelegt wird, wird durch die Konfiguration von linuxmuster-chilli nicht gesetzt, dies kann bei Bedarf manuell an anderer Stelle erfolgen.

Logging¶
Sollen alle Seitenaufrufe von der Clientseite aus für 30 Tage mitgeloggt werden? Auswahl ja oder nein. Der Datenschutz ist zu beachten. Werden die Adressen geloggt, müssen die Nutzer darüber informiert werden und dem zustimmen.

Freie Domains¶
Diese Domains können ohne Anmeldung angesurft werden. Mehrere Domains durch Komma trennen.

Überschrift der Anmeldeseite¶

SSL Zertifikat¶
Hier gibt man den Hostnamen ein, den der Server bei der Installation des Grundsystems erhalten hat.

Konfigurationsänderung¶
Die Konfiguration kann jederzeit durch Aufruf des Befehls
# dpkg-reconfigure linuxmuster-chilli
geändert werden, dabei werden die oben mit Screenshots beschriebenen Schritte erneut durchlaufen, die zuletzt vorgenommenen Konfigurationseinträge werden dabei als Vorgaben verwendet. Man fängt also stets bei seiner letzten Konfiguration an.
Logging¶
Der Hotspot loggt alle Anmeldungen und Seitenaufrufe in den Dateien:
/var/log/linuxmuster-chilli/coova-chilli.log # Anmeldungen und chilli-bezogene Meldungen
/var/log/linuxmuster-chilli/ffproxy.log # Seitenaufrufe
Die Logs werden täglich rotiert, Logs werden 30 Tage aufbewahrt und dann gelöscht.
Erweiterte Optionen für CoovaChilli¶
In der Datei /etc/chilli/userconf
können eigene Optionen für
CoovaChilli festgelegt werden. Die dort definierten Werte überschreiben
bzw. ergänzen diejenigen aus der Paketkonfiguration von
linuxmuster-chilli
Beispiel: Eine Datei /etc/chilli/userconf
mit dem folgenden Inhalt,
würde eine Clientsession unabhängig von der Aktivität des Benutzers nach
900 Sekunden beenden, so dass sich der Nutzer neu anmelden muss:
# Wenn im Radius kein Session Timeout definiert wurde, wann fliegt der Hotspot User wieder raus
HS_DEFSESSIONTIMEOUT=900 # In Sekunden
Weitere Ergänzungen finden Sie im Anwenderwiki -> Coovachilli.
Unifi-WLAN-Lösung für linuxmuster.net¶
Eine WLAN-Lösung für Schulen sollte mindestens zwei WLAN-Netze aufspannen.
- Das Lehrernetz für schuleigene Geräte, wie Beamer, Laptops oder Chromecasts, und für private Geräte der Lehrer, die auf Beamer und Chromecasts zugreifen wollen.
- Das Schülernetz für Schüler.

In der hier vorgestellten Lösung kommen Accesspoints von Unifi und der kostenlose Unifi-Controller zum Einsatz.
Die Geräte im Lehrernetz werden in die Datei /etc/linuxmuster/workstations aufgenommen. Das Lehrernetz ist ein Teil des Schulnetzes. Damit können sich beispielsweise Benutzer mit einem Schullaptop per WLAN wie gewohnt anmelden und auf ihre Daten zugreifen.
Im Schülernetz müssen sich die Benutzer für das WLAN mit ihrem Benutzernamen und Kennwort anmelden. Über die Schulkonsole kann einem Schüler oder einer Gruppe von Schülern das WLAN freigeschaltet oder gesperrt werden. Eine Verwaltung der Benutzergeräte durch den Netzwerkberater entfällt.
Inhalt:
Die Netztopologie¶
Sollen 2 WLANs über einen Accesspoint (AP) ausgestrahlt werden, muss mindestens ein Netzwerk ein getaggtes VLAN sein.

Im Beispiel ist der Hypervisor (z.B. Proxmox) mit einem Netzwerkkabel mit dem Switch verbunden.
Die virtuellen Maschinen sollten somit nicht direkt mit der Netzwerkkarte des Hypervisors verbunden sein. Es muss noch zusätzlich die VLAN-ID angegeben werden.
Im Beispiel werden die Datenpakete des Unifi-Controllers mit der Nummer 16 gekennzeichnet. Man sagt getaggt.

Der Switch¶
In der hier vorgestellten Lösung wird ein Cisco SG300-10 Switch verwandt. Die Überlegungen lassen sich aber leicht auf andere Switches übertragen.
Grundsätzliches¶
Bei vielen Switches ist es unmöglich, sich komplett auszusperren. Der SG300 hat die Konfigurationsspeicher Ausgeführte Konfiguration und Startkonfiguration.
In die Ausgeführte Konfiguration werden alle Einstellungen gespeichert, die Sie vornehmen. Bei einem Neustart wird als erstes die Startkonfiguration in die Ausgeführte Konfiguration kopiert und dann die Ausgeführte Konfiguration ausgeführt.
Wenn Sie sich also mit einer Einstellung ausgeschlossen haben, starten Sie den Switch einfach neu und Sie haben den zuletzt in die Startkonfiguration gespeicherten Stand.
Sobald Sie eine Einstellung vorgenommen haben, die Sie nicht aussperrt, sehen Sie oben neben dem Benutzernamen einen Link zum Speichern der Aktuellen Konfiguration in die Startkonfiguration.

VLANs anlegen¶
Das VLAN für den Internetzugang hat die VLAN-ID 2, das Schüler-WLAN die VLAN-ID 10 und das Schulnetz die VLAN-ID 16.

Wählen Sie VLAN-Verwaltung -> VLAN-Einstellungen und klicken auf Hinzufügen.
Es öffnet sich ein Dialogfenster, mit dem Sie die VLANs hinzufügen können.

Fügen Sie die VLANs wie im Bild hinzu.

Sobald alle VLANs hinzugefügt sind, schließen Sie das Fenster. Die VLANs sollten jetzt aufgeführt sein.
Jetzt wäre ein guter Zeitpunkt, um die Ausgeführte Konfiguartion zu speichern.
Ausgeschlossen, Getaggt, Ungetaggt und PVID¶
Für jeden Switchport und für jedes VLAN muss festgelegt werden, ob das VLAN mit der VLAN-ID x ausgeschlossen, getaggt akzeptiert oder Datenpakete, die mit der VLAN-ID x getaggt sind, ungetaggt weitergeleitet werden.
- Ausgeschlossen:
- Datenpakete, die mit der VLAN-ID x getaggt sind, werden verworfen.
- Getaggt:
- Datenpakete, die mit der VLAN-ID x getaggt sind, werden weitergeleitet.
- Ungetaggt:
- Von Datenpaketen, die mit der VLAN-ID x getaggt sind, wird die VLAN-ID entfernt und zum Client weitergeleitet. Die meisten Clients können mit getaggten Datenpaketen nichts anfangen.
- PVID:
- Bie einem Port, der mit der PVID x markiert ist, werden alle ungetaggten Datenpakete des Clients mit der VLAN-ID x getaggt.
Den Ports die VLANs zuweisen¶

- Port 1:
- Der Hypervisor ist über ein Netzwerkkabel mit Port 1 des Switches verbunden. Der Port 1 ist getaggtes Mitglied der VLANs 2, 10 und 16.
- Port 2-5:
Die APs sind im Schulnetz und werden über ein ungetaggtes VLAN verwaltet. VLAN 16 ist ungetaggt und PVID ist 16.
Zusätzlich soll das Schüler-WLAN vom AP ausgestrahlt werden. Um es vom Schulnetz zu trennen, muss es getaggt am AP ankommen. VLAN 10 ist getaggt.
- Port 7-8:
- Die Clients sind nur im Schulnetz und arbeiten mit ungetaggten Datenpaketen. VLAN 16 ist ungetaggt und PVID ist 16.
- Port 9:
- Auch der Router arbeitet mit ungetaggten Datenpaketen. VLAN 2 ist ungetaggt und PVID ist 2.
- Port 10:
- Über diesen Port wird der Switch gemanaged. Er ist das einzige Mitglied des Standard VLAN 1. Damit ist der Switch weder über das WLAN noch über das Schulnetz managebar.
Schritt für Schritt¶
Wählen Sie VLAN-Verwaltung -> Port-VLAN.

In der Grundeinstellung ist für jeden Port VLAN 1 ungetaggt und PVID 1 eingestellt.
Da der Switch nur über den Port 1 verwaltet wird, verbieten Sie den Ports 1 bis 9 die Mitgliedschaft zu VLAN 1 und bestätigen anschließend mit Übernehmen. Man beachte, dass dabei PVID 1 automatisch gelöscht wird.
Nun wählen Sie die VLAN-ID 2 und klicken auf Los.

Für Port 1 wählen Sie getaggt und für Port 9 Ungetaggt. Dabei wird PVID automatisch selektiert.
Jetzt ist VLAN 10 an der Reihe.

Für die Ports 1 bis 5 wählen Sie getaggt.
Und schließlich noch VLAN 16.

Da die APs und die Clients im Schulnetz sind, sind die Ports 2 bis 8 ungetaggt und PVID ist gesetzt.
Über VLAN-Verwaltung -> Port-VLAN-Mitgliedschaft erhält man eine Zusammenfassung.

Jetzt wäre ein guter Zeitpunkt zum Speichern der Konfiguration.
Der Unifi-Kontroller¶
Inhalt:
Die Installation¶
Hardwareanforderungen¶
- 3 GB RAM
- Eine Netzwerkkarte im Schulnetz (VLAN 16)
- 10 GB Festplatte (bei mir im Schulbetrieb sind 3,3 GB vom 40 GB belegt).
Die Grundinstallation¶
Bevor die Installation begonnen werden kann, muss ein Ubuntu-Server 16.04 64-Bit auf dem späteren Unifi-Kontroller installiert werden.
Schritt für Schritt¶
Starten Sie vom Installationsmedium und wählen Sie die Sprache.

Wählen Sie Ubuntu Server installieren.
Bestätigen Sie die Installation in der gewählten Sprache.
Ist der Rechner bereits in /etc/linuxmuster/workstations, so ist der Rechnername bereits in der Eingabemaske eingetragen.

Wählen Sie einen Benutzer, seinen Benutzernamen und das Passwort.
Verschlüsseln Sie Ihren persönlichen Ordner nicht!

Wählen Sie vollständige Festplatte verwenden und bestätigen Sie die Partitionierung.

Es ist zu empfehlen, keine automatischen Aktualisierungen zu wählen, da Sie dann nicht von unerwarteten Aktualisierungen überrascht werden.

An Software gibt es nichts Besonderes zu wählen.

Beenden Sie die Installation und starten Sie den Rechner neu.
Die Installation der Unifi-Pakete¶
Der Rechner muss upgedatet, die Paketquellen müssen ergänzt und das Unifi-Paket installiert werden.
Schritt für Schritt¶
Die englische Anleitung von Unifi finden Sie hier.
Melden Sie sich an.
öffnen Sie eine root-shell mit sudo -i
Updaten Sie den Rechner mit
apt-get update
apt-get dist-upgrade
Editieren Sie die Datei /etc/apt/sources.list und fügen Sie die folgende Zeile hinzu:
deb http://www.ubnt.com/downloads/unifi/debian stable ubiquiti
Fügen Sie den GPG-key hinzu:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 06E85760C0A52C50
Nochmal updaten, unifi installieren und neu starten:
sudo apt-get update
sudo apt-get install unifi
reboot
Die Grundkonfiguration¶
Hier werden die Standardsprache sowie der Adminaccount gewählt und es können die APs aufgenommen werden.
Schritt für Schritt¶
Öffnen Sie von einem Rechner im Schulnetz mit einem Browser https://unifi:8443 (falls der Unificontroller in der Datei workstations unifi heißt).
Da der Unifi-Kontroller mit einem selbstzertifizierten Zertifikat arbeitet, werden Sie eine Zertifikatswarnung erhalten.

Wählen Sie Germany als Land und klicken Sie auf weiter.

Wählen Sie die Geräte aus, die Sie mit dem Unifi-Kontroller managen wollen (also alle) und klicken auf WEITER.

An dieser Stelle überspringen Sie die Einrichtung eines WLANs. Das wird später ausführlich beschrieben.

An dieser Stelle wird ein Administrator-Zugang angelegt.

Überspringen Sie auch diesen Schritt.

Bestätigen Sie schließlich Ihre Einstellungen.
Einrichtung des Lehrer-WLANs¶
Im Lehrer-WLAN sind alle schuleigenen Geräte und die Geräte der Lehrer.
So könnte beispielsweise ein Lehrer mit seinem Smartphone eine Aufgabe abfotografieren und zum Beamer schicken. Oder er könnte einen Film per Smartphone direkt über einen Beamer abspielen.
Attention
All diese Geräte müssen in die Datei workstations aufgenommen sein.
Hint
Schülergeräte haben in diesem Netzwerk nichts zu suchen. Denn Schüler sollen nicht in der Lage sein, Filmchen per Handy zu starten.
Schritt für Schritt¶
Öffnen Sie von einem Rechner im Schulnetz den Unifi-Kontroller https://unifi:8443 und melden Sie sich an.

Klicken Sie unten links auf Einstellungen. Gehen Sie auf drahtlose Netzwerke .

Es ist bereits eine WLAN-Gruppe Default eingerichtet. Die wird Ihnen für den Betrieb in einer Schule ausreichen.
Wie erwartet sind noch keine drahtlosen Netzwerke eingerichtet. Für Ihr erstes WLAN klicken Sie auf NEUES DRAHTLOSES NETZWERK HINZUFÜGEN.

Geben Sie dem Lehrernetz einen Namen (z.B. Lehrer).
Wählen Sie die Verschlüsselung WPA Personal und ein Passwort.
Wählen sie nicht Gastrichtlinie. Im Schulnetz wollen Sie keine Gäste!
Wenn Sie möchten, verbergen Sie die SSID. Was Schüler nicht sehen, macht sie nicht neugierig.
Speichern Sie die Einstellungen.
Das Lehrernetz ist nun eingerichtet und wird auf alle APs ausgerollt.
Einrichtung des Schüler-WLANs¶
Im Schüler-WLAN sind die Geräte der Schüler. Es liegt im blauen Netz des IPFire. Der Netzwerk-Schlüssel des Schüler-WLANs basiert auf ihrem Benutzernamen und ihrem Kennwort.
Schritt für Schritt¶
Installieren Sie auf dem linuxmuster.net-Server das Paket linuxmuster-freeradius. Siehe Authentication with RADIUS
Melden Sie sich am Unifi-Kontroller an https://unifi:8443.
Gehen Sie zu Einstellungen -> Profile -> NEUES RADIUS-PROFIL ERSTELLEN.

Geben Sie dem neuen Radius-Profil einen Namen.
Tragen Sie bei Radius-Authentifikationsserver die IP-Adresse des linuxmuster.net-Servers und das Passwort für die APs ein.
Speichern Sie die Einstellungen.
Gehen Sie zu Einstellungen -> Drahtlose-Netzwerke -> NEUES DRAHTLOSES NETZWERK HINZUFÜGEN.

Geben Sie dem Schüler-WLAN einen Namen.
Sicherheit ist WPA Enterprise.
Wählen Sie das vorher definierte Radius-Profil.
Da das blaue Netz des IPFire als getaggtes VLAN mit der VLAN-ID 10 zu den APs kommt, setzen Sie ein Häkchen bei VLAN und geben die VLAN-ID 10 ein.
Speichern Sie die Enstellungen.
Das Schüler-WLAN wird jetzt an die APs ausgerollt.
Gast-WLAN mit Gutschein / Voucher¶
Unifi unterstützt auch WLAN-Gutscheine (WLAN-Voucher).

Bei einem WLAN-Gutschein meldet man sich, wie in einigen Hotels, an einem unverschlüsselten Gästenetz an und wird auf eine Anmeldeseite umgeleitet. Dort gibt man einen Gutschein-Code ein.
Der Unifi-Controller unterstützt zwei Arten von Gutscheinen:
- Einmaliger Gebrauch:
- Der Gutschein-Code ist nur für ein Gerät gültig. Nach der Anmeldung kann man mit seinem Gerät so lange ins Internet, bis der Gutschein abgelaufen ist. Das Gerät kann sich in dieser Zeit unbegrenzt mit dem Gäste-WLAN neu verbinden.
- Mehrmaliger Gebrauch:
- Der Gutschein-Code ist für beliebig viele Geräte gültig. Sobald sich das erste Gerät mit dem Gutschein-Code angemeldet hat, beginnt die Gültigkeit des Gutscheins abzulaufen. Solche Gutscheine eignen sich beispielsweise für VHS-Kurse, die keine Accounts im Schulnetz haben.
Schritt für Schritt¶
Melden Sie sich an und gehen Sie auf Einstellungen -> Gastkontrolle.

Im Bereich Gastrichtlinien setzen Sie ein Häkchen bei Gastzugang aktivieren.
Bei Authentifizierung wählen Sie Hotspot.
Hat HTTPS-Umleitung aktivieren ein Häkchen, so werden Clients auch dann umgeleitet, wenn Sie auf HTTPS-Seiten surfen. Leider erhält man dann eine Zertifikatswarnung, da der Unifi-Kontroller mit einem selbstsignierten Zertifikat arbeitet. Allerdings leiten viele Betriebsysteme von selbst auf das Gastportal um.

In der Portal-Anpassung wählen Sie die Template-Engine AngularJS und fügen die Sprache Deutsch hinzu.
Den Rest der Einstellungen können Sie so lassen.

Unter HOTSPOT setzen Sie ein Häkchen bei Gutscheine.
In der Zugriffskontrolle müssen Sie den Zugriff auf den Unifi-Kontroller noch vor der Anmeldung erlauben, da man sonst nicht auf die Anmeldeseite kommt.
Gehen Sie auf ÄNDERUNGEN ANWENDEN. Damit werden die Änderungen gespeichert und auf die APs ausgerollt.
Firewall-Regeln für den IPFire¶
Damit die Clients überhaupt auf den Unifi-Kontroller zugreifen können, muss eine neue Firewallregel für den IPFire angelegt werden:
Schritt für Schritt¶
Öffnen Sie den IPFire https://ipfire:444 und melden Sie sich an.
Gehen Sie auf Firewall->`Firewallregeln`.
Wahlen Sie Neue Regel erstellen.

Machen Sie die folgenden Eingaben:
- Quelle:
- Standard-Netzwerk: BLAU
- Ziel:
- Zieladresse: IP-Adresse des Unifi-Kontrollers
- Protokoll:
- Alle
- Weitere Einstellungen:
- Setzen Sie einen Haken bei Regel aktivieren.
Speichern Sie die Regel mit Hinzufügen und vergessen Sie nicht, die Änderungen zu übernehmen.
Bemerkung¶
Statt alle Protokolle zu erlauben, reicht es, die Zielports 8880 und 8443 freizugeben. Dazu müssen Sie für jeden Port eine Regel definieren.


WLAN-Gutscheine / Voucher erstellen¶
Jetzt müssen die Gutscheine noch erzeugt und ausgedruckt werden.
Schritt für Schritt¶
Gehen Sie auf https://unifi:8443/manage/hotspot und melden Sie sich an.

Gehen Sie auf GUTSCHEINE->`GUTSCHEIN ERSTELLEN`.

Füllen Sie die Felder des Dialogfensters aus und speichern Sie Ihre Eingabe.

In dieser Ansicht sehen Sie alle gültigen Gutscheine.
Sie haben die Möglichkeit, einzelne Gutscheine, alle nicht benutzten Gutscheine oder alle Gutscheine, die an einem bestimmten Zeitpunkt erstellt wurden, zu drucken.
Hier können Sie auch Gutscheine löschen.
Authentication with RADIUS¶
Many devices and applications, e.g. Access points, captive portals, or wireless controllers, offer a simple user authentication as well as verification using a RADIUS server (WPA Enterprise, 802.1X).
Installation & Configuration¶
Install Radius Server¶
In den Paketquellen von Linuxmuster.net gibt es das Paket linuxmuster-freeradius
. Installieren Sie das Paket (als root) mit
# apt-get install linuxmuster-freeradius
Configure Firewall¶
Nun muss die Firewall konfiguriert werden, damit die Anfragen auch auf dem Server ankommen (UDP, Port 1812). Dazu bearbeitet man die Datei /etc/linuxmuster/allowed_ports
und fügt in der Zeile “udp” den entsprechenden Port hinzu.
...
udp domain, ... , 1812
In order for the changes to be effective on the firewall (IPFire), please enter the following command:
# service linuxmuster-base restart
If you use a firewall other than the recommended firewall solution (IPFire), you must set up the appropriate firewall rule yourself!
Test the Radius Server¶
Das Programm radtest
wird über das Paket freeradius-utils installiert:
# apt-get install linuxmuster-freeradius
In the file /etc/freeradius/users
remove the comment mark ( #
) in the following line.
steve Cleartext-Password := "testing"
Next, check if localhost
is entered in the file /etc/freeradius/clients
. This entry can be removed after the test.
client localhost {
ipaddr = 127.0.0.1
secret = testing123
}
Now, after restarting the Radius server, you can test the authentication for this user.
# service freeradius restart
# radtest steve testing 127.0.0.1:1812 10 testing123
The output should be as follows:
# radtest steve testing 127.0.0.1:1812 10 testing123
Sending Access-Request of id 34 to 127.0.0.1 port 1812
User-Name = "steve"
User-Password = "testing"
NAS-IP-Address = 127.0.0.1
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=34, length=20
If you get a similar output, access to the LDAP directory can now be set up, so that you can log in with its username and password of linuxmuster.net. To do so, the client (Access Point, Captive Portal Server, Wireless Controller) must be entered into the file /etc/freeradius/clients
. Please adjust the client name, the IP address and the password accordingly.
client captivePortal {
ipaddr = 10.16.1.254
secret = geheim
}
Configure Radius Server¶
For authentication with a Radius server, there are different protocols that determine how the transfer and authentication process is running. This can be specified in the file /etc/freeradius/eap.conf
. Check the following settings and remove - if necessary - the comment marks.
eap {
...
default_eap_type = peap
...
}
...
peap {
...
default_eap_type = mschapv2
...
}
MD5 is not suitable as the passwords are not stored as MD5 in the LDAP!
Also, check the auto_header
parameter in the file /etc/freeradius/radiusd.conf
.
pap {
auto_header = yes
}
LDAP¶
Setup LDAP Access¶
During the installation of Linuxmuster.net the necessary configuration was already made in the /etc/freeradius/radiusd.conf
file. Locate the LDAP-related section in the file and check the following:
...
ldap {
...
server = "localhost"
identity = "cn=admin,dc=linuxmuster-net,dc=lokal"
password = geheim
basedn = "ou=accounts,dc=linuxmuster-net,dc=lokal"
filter = "(uid=%u)"
...
}
...
The required password can be displayed with the following command:
$ cat /etc/ldap/slapd.conf | grep rootpw
Now enable LDAP authentication in the file /etc/freeradius/sites-available/default
AND /etc/freeradius/sites-available/inner-tunnel
by removing the comment marks for each line that refers to LDAP.
...
authorize {
...
ldap
...
}
...
authenticate {
...
Auth-Type LDAP {
ldap
}
...
}
At the end, restart the Radius server:
$ service freeradius restart
Test LDAP authentication¶
Enter the following command (adjust user name and password):
$ radtest user password localhost 10 testing123
....
rad_recv: Access-Accept Packet from ...
If you received an Access-Accept Packet, the authentication was successful!
Additional settings¶
Enable Access Restriction¶
If you are using the RADIUS server to authenticate users in the WLAN and only want to allow access for certain users (e.g. all members of the group p_wifi
), make the following changes in the file /etc/freeradius/users
Respectively add:
...
DEFAULT Group != p_wifi
DEFAULT Auth-Type := Reject
Reply-Message = "Your are not allowed to access the WLAN!"
...
Alternatively, you can also directly query the corresponding LDAP group.
...
DEFAULT Ldap-Group == "cn=p_wifi,ou=groups,dc=linuxmuster-net,dc=lokal"
DEFAULT Auth-Type := Reject
Reply-Message = "Your are not allowed to access the WLAN!"
...
In the ldap {...}
section of the file /etc/freeradius/radiusd.conf
the corresponding filter must be activated:
...
groupmembership_filter = (&(objectClass=posixGroup)(memberUid=%u))
...
Enable logging¶
The logging of authentication requests can be activated in /etc/freeradius/radiusd.conf
. The log file is: /var/log/freeradius/radius.log
. Do not forget to restart the Radius server!
log {
...
auth = yes
...
}
Netzsegmentierung - Grundlagen¶
In Schulen sind Netzwerke grundsätzlich in getrennte logische Bereiche zu unterteilen und voneinander zu trennen. In allen Bundesländern gibt es die Vorgabe, dass das schulische Verwaltungsnetz vom sog. pädagogischen Netz zu trennen ist.
Für das pädagogische Schulnetz wird darüber hinaus empfohlen, dieses aus datenschutzrechtlichen Gründen in wenigstens drei logische Subnetze zu untergliedern: Lehrernetz, Schülernetz und Servernetz. Bei größeren Netzinstallationen ist aufgrund der Performance zudem anzuraten, weitere logische Subnetze zu erstellen, so dass z.B. pro Computerraum ein weiteres Subnetz erstellt wird.
Grundlegende Informationen zum Aufbau von Schulnetzen und deren Untergliederung mithilfe von VLANs finden sich auf der Seite Lehrer*innenfortbildung BW - IT-Infrastruktur an Schulen
In dieser Dokumentation soll der Fall dokumentiert werden, dass das pädagogische Netzwerk in mehrere Segmente aufgeteilt wird und diese über das gesamte Netzwerk hinweg genutzt werden. Hierbei wird eingangs die Struktur erläutert, die mithilfe der Netzsegmentiertung erreicht werden soll. Im Anschluss wird schrittweise deren Umsetzung mithilfe von sog. L2-Switches, L3-Switches und die erforderliche Anpassung von linuxmuster.net dargestellt. Hierzu werden die Konfigurationsschritte am Beispiel eines Cisco SG300 L3-Switches und der Anbindung eines L2-Switches anhand eines HP2650 L2-Switches dargestellt.
Es können ebenfalls andere managebare L2- und L3-Switches eingesetzt werden. Die Konfigurationsschritte sind dann entsprechend auf die jeweiligen Geräte anzupassen. Entscheidend für die Anpassung dieser Schritte ist es, das Segmentierungskonzept nachvollzogen zu haben.
Eine Erweiterung (oder Reduzierung) um weitere Subnetzbereiche, beispielsweise klassenraumweise oder der Wegfall der DMZ, ist ohne Schwierigkeiten möglich.
Vorbemerkungen¶
Diese Dokumentation stellt die Netzwerksegmentierung und die zugehörigen Konfigurationsschritte für die Nutzung mehrerer Netzsegmente vor. Diese Struktur ist auf die eigenen Gegebenheiten / Anforderungen entsprechend anzupassen.
Geplante Zielstruktur¶
Das linuxmuster.net-Netzwerk soll unter Verwendung eines L3-Switches und weiterer managebarer L2-Switches in 8 Segmente unterteilt werden.
VLAN Name | Verwendung | Netzwerkadressen |
---|---|---|
Internet |
alle Server in ROT | IP-Netz der Firewall an ROT |
Server |
alle Server/-VMs in GRÜN | 10.16.1.0/24 |
WLAN |
ein WLAN-Netz | 172.16.16.0/24 |
DMZ |
Betrieb eigener, extern erreichbarer Dienste | 172.16.17.0/24 |
Lehrer |
Zugriff mit Lehrer PCs, Laptops | 10.30.10.0/24 |
Gaeste |
Zugriff mit Gast-Geräten | 10.30.20.0/24 |
Raum100 |
Zugriff mit Schulungsgeräten im Raum 100 | 10.20.100.0/24 |
Raum200 |
Zugriff mit Schulungsgeräten im Raum 200 | 10.20.200.0/24 |
Für die Unterteilung sind auf allen Switches entsprechende VLANs in gleicher Weise einzurichten. Die Verbindungen zwischen den Switches werden als Trunks (bzw. Tagged-Ports) definiert, die über Gerätegrenzen hinweg die Daten den VLANs zuordnen. Die Ports auf den Switches sind jeweils den gewünschten VLANs zuzuordnen (port-basierte VLANs), so dass die an den Ports angeschlossenen Geräte ihre Daten in das zugeordnete VLAN schicken.
Der L3-Switch erhält in jedem VLAN die letzte nutzbare IP-Adresse -
also z.B. für das VLAN Lehrer
die IP 10.30.10.254, außer dort,
wo die Firewall im jeweiligen Subnetz bereits diese IP-Adresse nutzt.
VLAN IDs und Gateway-IPs¶
In dieser Dokumentation werden folgende VLAN-IDs und Gateway-IPs verwendet:
VLAN Name | VLAN ID | Gateway-IP (+ Firewall-IP ) |
---|---|---|
VLAN Internet |
5 | IP aus dem Netz der Firewall an der Schnittstelle ROT [1] |
VLAN Server |
10 | 10.16.1.253 (Firewall: 10.16.1.254) |
VLAN WLAN |
20 | 172.16.16.253 (Firewall: 172.16.16.254) |
VLAN DMZ |
30 | 172.16.17.253 (Firewall: 172.16.17.254) |
VLAN Lehrer |
40 | 10.30.10.254 |
VLAN Gaeste |
50 | 10.30.20.254 |
VLAN Raum100 |
100 | 10.20.100.254 |
VLAN Raum200 |
200 | 10.20.200.254 |
[1] | z.B. GW-IP: 192.168.10.14/28 + FW-IP: 192.168.10.2/28 und IP des DSL-Routers: 192.168.1.1/28 |
Damit DHCP-Anfragen der Clients aus dem internen (grünen) Netz an den Server 10.16.1.1 weitergeleitet werden, muss auf dem L3-Switch ein DHCP-Relay-Agent konfiguriert werden. Entsprechende Hinweise finden sich dann bei der Konfiguration des L3-Switches.

In der Abbildung wird die Verbindung zwischen beiden Switches sowie zwischen dem L3-Switch und dem VM-Server lila als Trunk (Cisco) bzw. Tagged-Port (HP) gekennzeichnet. Dies bedeutet, dass der Uplink zwischen den Switches so zu konfigurieren ist, dass die VLAN-Tags weitergereicht werden. An dem L2-Switch werden die Ports dann jeweils den erforderlichen VLANs zugeordnet (port-basierte VLANs).
Für einen VM-Server bedeutet dies, dass der Datenverkehr aller VLANs hierin weitergeleitet wird und dann die Daten gemäß ihrem VLAN-Tag der jeweiligen VM zugeordnet werden.

Verfügt der VM-Server über mehrere Netzwerkschnittstellen wie in der Abbildung dargestellt, so sollten diese gebündelt werden (je nach Hersteller werden hierfür die Begriffe NIC Bonding, LinkAggregation, Etherchannel) verwendet, um den Datendurchsatz zu verbessern. Dies kann ebenfalls für die Verbindung zwischen den Switches (Uplinks) genutzt werden. In dieser Dokumentation soll die LinkAggregation am Beispiel des L3-Switches verdeutlicht werden. Es werden für 8 Ethernetschnittstellen vier Link-Aggregation Ports bestehend aus jeweils zwei Ethernetschnittstellen gebildet, die dann entsprechend konfiguriert werden.
Vorbereitungen auf dem Server¶
Im ersten Schritt werden die in der Datei
/etc/linuxmuster/workstations
verwalteten Rechner so geordnet,
dass Sie in weiteren Schritten automatisch in das richtige Subnetz
einsortiert werden.
Zunächst bearbeitet man die Workstations-Datei derart, dass alle Rechner, die
später in den jeweiligen Netzen sein sollen, Adressen aus dem jeweiligen VLAN erhalten.
So müssen z.B. für Raum 100 die PCs eine IP aus dem Netz 10.20.100.x
erhalten (VLAN ID 100).
Dabei ist es unerheblich, ob die Veränderungen im Serverterminal oder in der Schulkonsole vorgenommen werden.
Ausgangszustand der Datei workstations
¶
Die Rechner sind raumweise einsortiert.
#Raum;Rechnername;Imageklasse;Mac-Adresse;IP-Adresse;Subnetzmaske;;;;;
r100;r100-ws01;qgm;C4:34:6B:7E:71:10;10.16.100.1;255.240.0.0;1;1;1;1;1
r100;r100-ws02;qgm;64:51:06:38:B6:6F;10.16.100.2;255.240.0.0;1;1;1;1;1
r100;r100-printer-color;printer;00:1E:0B:12:DB:78;10.16.100.101;255.240.0.0;1;1;1;1;0
r200;r200-printer-bw;printer;00:18:FE:A3:A8:60;10.16.200.201;255.240.0.0;1;1;1;1;0
r200;r200-ws01;qgm;64:51:06:38:B6:64;10.16.200.1;255.240.0.0;1;1;1;1;1
r116a;r116a-ws01;sozpaed;88:AE:1D:EF:E3:3B;10.16.6.1;255.240.0.0;1;1;1;1;0
nwt100;r110-ws01;qgm;64:51:06:43:D2:62;10.16.100.1;255.240.0.0;1;1;1;1;1
nwt100;r110-ws02;qgm;64:51:06:43:D3:21;10.16.100.2;255.240.0.0;1;1;1;1;1
rhm;rhm-ws01;qgm;64:51:06:38:B7:AC;10.19.111.1;255.240.0.0;1;1;1;1;1
Die Workstations-Datei soll nun so umstrukturiert werden, dass später
- alle Rechner in Raum r100 und r200 IPs aus den Subnetzen der beiden Räume VLAN100 und VLAN200 erhalten
- alle anderen Rechner IPs aus dem Subnetz
VLAN Lehrer
erhalten
Endzustand der Datei workstations
¶
#Raum;Rechnername;Imageklasse;Mac-Adresse;IP-Adresse;Subnetzmaske;;;;;
r100;r100-ws01;qgm;C4:34:6B:7E:71:10;10.20.100.1;;1;1;1;1;1
r100;r100-ws02;qgm;64:51:06:38:B6:6F;10.20.100.2;;1;1;1;1;1
r100;r100-printer-color;printer;00:1E:0B:12:DB:78;10.20.100.101;;1;1;1;1;0
r200;r200-printer-bw;printer;00:18:FE:A3:A8:60;10.20.200.201;;1;1;1;1;0
r200;r200-ws01;qgm;64:51:06:38:B6:64;10.20.200.1;;1;1;1;1;1
r116a;r116a-ws01;sozpaed;88:AE:1D:EF:E3:3B;10.30.10.1;;1;1;1;1;0
nwt100;r110-ws01;qgm;64:51:06:43:D2:62;10.30.10.2;;1;1;1;1;1
nwt100;r110-ws02;qgm;64:51:06:43:D3:21;10.30.10.3;;1;1;1;1;1
rhm;rhm-ws01;qgm;64:51:06:38:B7:AC;10.30.10.4;;1;1;1;1;1
Alle Rechner die später im Lehrernetz sein sollen, haben nun Adressen der Form 10.30.10.x
,
alle Rechner die später im VLAN Raum100
sein sollen haben Adressen der Form 10.20.100.x
.
Eventuell noch bestehende Netzmasken im sechsten Feld sind nicht mehr erforderlich. Dies wird durch die später folgende Umstellung des linuxmuster.net Servers auf Subnetting geregelt.
Nun übernimmt man die Änderungen durch den Befehl import_workstations
oder entsprechend in der Schulkonsole.
Nach dem nächsten Rechnerstart erhalten die geänderten Rechner die neuen IP-Adressen.
Geänderte Drucker auf dem Server anpassen¶
Hat man bei der Neustrukturierung IP-Adressen von Druckern geändert, die in CUPS auf dem Server als Netzwerkdrucker eingerichtet sind, muss man dort die neue IP-Adresse anpassen, da diese Änderungen durch den erneuten Import der Arbeitsstationen nicht übernommen werden.
Am Beispiel des Druckers r120-printer-bw
wird das Vorgehen kurz dargestellt.
Dazu öffnet man die CUPS Seite auf dem Server und bearbeitet den betreffenden
Drucker - man sieht, die ursprüngliche IP-Adresse 10.16.120.203
.
Important
Bilder sind anzupassen !!

Zunächst wählt man im Administrationsmenü Drucker ändern
.

Jetzt wählt man die bisherige Anschlussart, im Beispiel AppSocket/HP
JetDirect
, im nächsten Bildschirm werden dann die bisherigen Einstellungen angezeigt.

In diesem Fall, wie zu sehen socket://10.16.120.203:9100
.

Jetzt ändert man die IP-Adresse auf den neuen Wert und lässt den Rest unverändert.

Im weiteren Änderungsverlauf werden jeweils die bisherigen Einstellungen
angezeigt, die man stets übernimmt. Um die Änderungen abzuschliessen, muss man
am Ende das root
-Passwort angeben.
Auf diese Weise müssen alle zuvor geänderten Drucker auf Ihre neue IP-Adresse angepasst werden.
Vorbereitung der Switches im Netzwerk¶
In Vorbereitung auf das Subnetting sind auf allen Switches im Netzwerk (in allen Gebäuden)
die VLANs mit den IDs 10
, 20
, 30
, 40
, 50
, 100
, und 200
anzulegen, damit später
die Portkonfiguration aller Switches angepasst werden kann.
Das genaue Vorgehen kann hier nicht umfassend dokumentiert werden, da es auch von Art und Hersteller der Switche abhängt.
Exemplarisch erfolgt die Darstellung zur Einrichtung der VLANS auf L2-Switches anhand des Modells Hewlett Packard HP 2650. Für andere Modelle sind die Konfigurationsschritte entsprechend anzupassen.
Hewlett Packard HP2650¶

Einige HP-Switches haben eine textbasierte “Menükonsole”, hier geht man prinzipiell folgendermaßen vor:
- Mit telnet/ssh auf die Switchkonsole verbinden
- Das Konfigurationsmenü öffnen
- Nach
Switch-Konfiguration
,VLAN Menu
,VLAN Names
wechseln und dort die VLans mit den IDs10
,20
,30
,40
,50
,100
, und200
anlegen.
Important
Bilder sind noch anzupassen !!



Als VLAN Name ist auf allen Switches ein identischer Name - also z.B. VLAN Server, VLAN WLAN, VLAN DMZ, VLAN Lehrer, VLAN Gaeste, VLAN Raum100, VLAN Raum200 - für das jeweilige VLAN anzugeben.
Important
Es ist immer das Protokoll 802.1q für die Definition der VLANs anzuwenden. Dies ist ein genormtes Netzwerkprotokoll, das es ermöglicht, sog. tagged VLANs zu definieren.
Konfiguration des L3-Switches¶
Einspielen der vordefinierten Konfiguration¶
Hint
Die Firmware des Cisco L3 Switch SG300-10 ist vorab auf die Version 1.4.8.6 zu aktualisieren. Hier der Link für die Firmware
Für den L3-Switch Cisco SG300 stehen vorbereitete Konfigurationsdateien zur Verfügung, die die Konfiguration auf dem Switch so einspielen, wie diese in dieser Dokumentation beschrieben wird. Es werden also 8-Ports zu vier Link Aggregation Ports - jeweils bestehend aus zwei Ports - erstellt. Zudem werden alle Ports als Access Ports oder Trunks definiert und die weitergeleiteten / getaggten VLANs hierfür definiert. DHCP Einstellungen und ARP Einstellungen werden ebenso definiert.
Je nachdem für welches Subnetz der Server von linuxmuster.net konfiguriert wurde, ist die passende Konfigurationsdatei zu wählen:
Upload der Konfiguration: Schritt für Schritt¶
Hint
Im Auslieferungszustand kann auf den Cisco Switch mit der IP 192.168.1.254/24 zugegriffen werden. Diese IP wird in dieser Konfiguration dem VLAN 1 (Management) zugewiesen, so dass nach Einspielen der Konfiguration und dem Reboot weiterhin mit der Adresse die Konfiguration angepasst werden kann.










Nach dem Neustart melden Sie sich erneut an dem L3-Switch an und kontrollieren nochmals die Switch-Ports. Hierbei ist zwischen Access-Ports (port-basierte VLANs) und Trunk-Ports zu unterscheiden.
Allgemeine Hinweise zur Konfiguration der Switch-Ports¶
Für jeden Switchport muss festgelegt werden, ob das VLAN mit der VLAN-ID x ausgeschlossen, getaggt akzeptiert oder Datenpakete, die mit der VLAN-ID x getaggt sind, ungetaggt weitergeleitet werden.
Ausgeschlossen
: Datenpakete, die mit der VLAN-ID x getaggt sind, werden verworfen.Getaggt
: Datenpakete, die mit der VLAN-ID x getaggt sind, werden weitergeleitet.Ungetaggt
: Von Datenpaketen, die mit der VLAN-ID x getaggt sind, wird die VLAN-ID entfernt und zum Client weitergeleitet. Die meisten Clients können mit getaggten Datenpaketen nichts anfangen.PVID
: Bei einem Port, der mit der PVID x markiert ist, werden alle ungetaggten Datenpakete des Clients mit der VLAN-ID x getaggt.
Anwendung auf das Ausgangsbeispiel¶
Nachstehende Ausführungen, dienen dazu, die eingespielte Konfiguration zu prüfen oder ggf. Anpassungen für abweichend eingesetzte Hadrware zu erstellen.
Important
Abb. fehlt, die die Nutzung der Ports zu den Uplinks darstellt
Definition der Link Aggregation Ports¶
LAG1
: Ports 1 & 2 -> Verbindung zu VMs / ServernLAG2
: Ports 3 & 4 -> Uplink zu L2-SwitchLAG3
: Ports 5 & 6 -> Uplink zu L2-SwitchLAG4
: Ports 9 & 10 -> Uplink zu L2-Switch


Definition der Access Ports (port-based VLAN)¶
Port 7
: Port wird dem VLAN 10 (Server VLAN) zugeordnet (untagged / PVID 10).Port 8
: Port wird dem VLAN 5 (Internet VLAN) zugeordnet (untagged / PVID 5).


Definition / Zuordnung der VLANs¶
LAG1 (Port 1 & 2)
: Der Hypervisor ist über zwei Netzwerkkabel mit Port 1 & 2 des Switches verbunden. Auf der Seite des Hypervisor sind ebenfalls zwei Ports durch LinkAggregation definiert. LAG1 ist getaggtes Mitglied der VLANs 5, 10,20,30,40,50,100,200.LAG2 (Port 3 & 4)
: Ein anderern L2-Switch ist über zwei Netzwerkkabel mit Port 3 & 4 des Switches verbunden. Auf dem L2-Switch sind ebenfalls zwei Ports durch LinkAggregation definiert. LAG2 ist getaggtes Mitglied der VLANs 5, 10,20,30,40,50,100,200.LAG3 (Port 5 & 6)
: Ein anderern L2-Switch ist über zwei Netzwerkkabel mit Port 5 & 6 des Switches verbunden. Auf dem L2-Switch sind ebenfalls zwei Ports durch LinkAggregation definiert. LAG2 ist getaggtes Mitglied der VLANs 5, 10,20,30,40,50,100,200.Port 7
: Port wird dem VLAN 10 (Server VLAN) zugeordnet (untagged / PVID 10).Port 8
: Port wird dem VLAN 5 (Internet VLAN) zugeordnet (untagged / PVID 5).LAG4 (Port 9 & 10)
: Ein anderern L2-Switch ist über zwei Netzwerkkabel mit Port 9 & 10 des Switches verbunden. Auf dem L2-Switch sind ebenfalls zwei Ports durch LinkAggregation definiert. LAG2 ist getaggtes Mitglied der VLANs 5, 10,20,30,40,50,100,200.




Für die VLANs sollten schliesslich folgende statischen Routen definiert sein:

Access Listen definieren¶
Hint
Der Cisco L3-Switch kann nur eingehenden Datenverkehr filtern. Dies ist relevant für die Definition und Anwendung der Listen für die Zugriffssteuerung (ACLs). Achtung: Die hier vorgestellten ACLs führen dazu, dass bsp. PCs aus zwei verschiednen Klassenräumen sich untereinander via ping nicht mehr erreichen können. Wenn dies gewünscht ist, müsste in den ACEs eine weitere Regel erstellt werden, die Daten Zulassen –> 10.(subnet).0 mit Netmask 0.0.0.255 - also z.B. 10.16.1.0 0.0.0.255. Diese Regel muss die niedrigste Priorität erhalten.
ACL: Lehrkraefte und Klassenraeume
Es sind Zwei ACL anzulegen: Lehrkraefte und Klassenraume. Dies erfolgt im Menü unter: Zugriffssteuerung –> IPv4 basierte ACL –> Hinzufügen –> <Name der ACL>
ACEs hinzufügen
Für die zuvor genannten ACLs sind jetzt sog. Entries (Einträge) anzulegen. Hierfür wählen Sie im Menü: Zugriffssteuerung –> IPv4 basiertes ACE –> <Name der ACL aus Liste auswählen - hier Lehrkraefte> –> Hinzufügen

Sie geben dann folgende Werte an:
- Priorität: 20
- Aktion: Zulassen (permit)
- Protokoll: Beliebig (IP) (any)
- Quell-IP-Adresse: Beliebig (any)
- Ziel-IP-Adresse: Benutzerdefiniert (user defined)
- Wert der Ziel-IP-Adresse: 10.16.1.0 (Servernetz-IP)
- Ziel-IP-Platzhaltermaske: 0.0.0.255 (invertierte Netzmaske)
Danach legen sie eine zweite ACE für die ACL Lehrkraefte an. Im Ergebnis sollten Sie für die Lehrkraefte dann nachstehenden Einträge haben:

Danach legen Sie ACEs für die ACL Klassenraeume an. Danach sollten Sie nachstehende Einträge haben:

Schliesslich müssen die definierten ACLs noch an die VLANs gebunden werden, damit diese korrekt angewendet werden. Die Zuordnung sollte für das hier gewählte Beispiel wie folgt aussehen:

Die Einstellungen für das DHCP-Relaying sollten wie folgt aussehen:

Hierdurch wird sichergestellt, dass DHCp-Anfragen aus den genannten VLANs auch beim linuxmuster.net Server ankommen und bedient werden können.
Um Wake-on-LAN über Subnetze hinweg nutzen, so muss ein sog. UDP-Relaying eingerichtet werden. Hierdruch können dann z.B. Clients via linbo-remote
aufgeweckt werden.

Nachdem Sie alle Einstellungen kontrolliert und ggf. angepasst haben, speichern Sie die aktuelle Konfiguration. Dies erledigen Sie bei dem Cisco-Switch dadruch, dass Sie die Konfiguration aus dem RAM (running-config) auf die NVRAM-Konfiguration kopieren (startup-config).
Weitere L2-Switches mit VLANs anbinden¶
In der hier dargestellten Konfiguration des L3-Switches gibt es vier LAG-Ports. Drei von diesen LAG-Ports (2,3,4) sind dazu gedacht, um eine Anbindung zu weiteren L2-Switches zu ermöglichen, die ebenfalls für die Nutzung der VLANs zu konfigurieren sind.
Wesentlich ist, dass ebenfalls alle VLANs, die auf dem L3-Switch eingerichtet wurden, hier ebenfalls erstellt werden. Danach muss eine LinkAggregation mit zwei Ports erstellt werden, die die Anbindung zum LAG-Port des L3-Switches zur Verfügung stellt. Diese LA ist dann als Trunk zu definieren, der alle VLANs (20,30,40,50,100,200) tagged.
Danach werden die einzelnen Ports als untagged Ports einem der gewünschten VLANs zugeordnet. Die Clients sind dann entsprechend auf den gewünschten VLAN-Port anzuschliessen.
Ist es ein Switch in einem PC-Raum, so ist der Uplink als LinkAggregation und Trunk mit den o.g. getaggten VLANs zu definieren. Alle anderen Ports sind dann z.B. als Access Ports zu definieren, die dem VLAN 100 (Raum 100) zugeordnet sind, so dass alle angeschlossenen PCs in diesem VLAN sind.
Hint
Es sollten alle Switch Konfigurationen, VLANs und Port-Belegungen sehr genau pro Switch dokumentiert sein. Hierzu ist es hilfreich in jedem Verteilerschrank eine entsprechende Dokumentation zu hinterlegen. Als Hilfestellung zur Erstellung dieser Dokumentation kann folgende Datei dienen:
Umstellen des Servers auf Subnetting¶
Das Umstellen auf Subnetzbetrieb geschieht per Setuproutine mit
# linuxmuster-setup --modify
oder im Falle einer Neuinstallation mit
# linuxmuster-setup --first
Dazu muss die Frage nach dem Subnetting nur mit Ja
beantwortet werden.
Im Verlauf des Setups werden die für Subnetzbetrieb notwendigen Anpassungen auf Server und Firewall vorgenommen:
Die Netzwerkkonfiguration von Server und Firewall wird auf ein 24 Bit-Netz geändert (10.16.1.0/255.255.255.0), sodass diese quasi ein Serversubnetz innerhalb des übergeordneten 12 Bit-Netzes (10.16.0.0/255.240.0.0) bilden. Es werden statische Routen auf Server und Firewall für das übergeordnete 12 Bit-Netz mit der IP-Adresse des Layer-3-Switches als Gateway (10.16.1.253 für das 10.16.0.0er Netz) angelegt, damit das Routing aus den Subnetzen zum Server funktioniert.
Für die Subnetzkonfiguration wird mit /etc/linuxmuster/subnets
eine neue Konfigurationsdatei eingerichtet. Für jeden in /etc/linuxmuster/workstations
definierten Raum wird automatisch ein Subnetz mit 24 Bit-Netzwerkpräfix (Netzmaske 255.255.255.0) angelegt. Die DHCP-Konfiguration wird dergestalt angepasst, dass die bisherige freie IP-Range für die Rechneraufnahme (z.B. 10.16.1.100-10.16.1.200) entfällt. Freie IP-Ranges müssen künftig in /etc/linuxmuster/subnets
für jedes Subnetz definiert werden. Die DHCP-Subnetzkonfiguration wird danach von import_workstations
in die Konfigurationsdatei /etc/dhcp/dhcpd.conf.linuxmuster
geschrieben.
Die Standardnetzmaske 255.240.0.0 bleibt global gültig. Subnetze werden innerhalb des durch die globale Netzmaske vorgegebenen IP-Bereichs) angelegt. Dabei sind 24 Bit- (Netzmaske 255.255.255.0), als auch 16 Bit-Subnetze (Netzmaske 255.255.0.0) möglich.
Subnetze einrichten / Aufbau der Konfigurationsdatei¶
Subnetze werden über die Konfigurationsdatei /etc/linuxmuster/subnets
eingerichtet und konfiguriert. Sie enthält pro Zeile eine Subnetzdefinition, die aus sechs mit Semikolon getrennten Feldern besteht (Kommentarzeilen sind erlaubt):
Feld 1 | Feld 2 | Feld 3 | Feld 4 | Feld 5 | Feld 6 |
---|---|---|---|---|---|
Netz-IP/Präfix | Gateway-IP | Erste Range-IP | Letzte Range-IP | Intranet-Zugriff (0/1) | Internet-Zugriff (0/1) |
Konfiguration für das Ausgangsbeispiel
Bezeichnung | Netz-IP/Präfix | Gateway-IP | Erste Range-IP | Letzte Range-IP | Intranet-Zugriff | Internet-Zugriff |
---|---|---|---|---|---|---|
Raum 100 | 10.20.100.0/24 | 10.20.100.254 | 10.20.100.100 | 10.20.100.200 | nein | nein |
Raum 200 | 10.20.200.0/24 | 10.20.200.254 | 10.20.200.100 | 10.20.200.200 | nein | nein |
Lehrer | 10.30.10.0/24 | 10.30.10.254 | / | / | nein | nein |
Gaeste | 10.30.20.0/24 | 10.30.20.254 | 10.30.20.1 | 10.30.20.253 | nein | ja |
Daraus ergibt sich folgender Aufbau der Konfigurationsdatei /etc/linuxmuster/subnets
:
# Raum 100
10.20.100.0/24;10.20.100.254;10.20.100.100;10.20.100.200;0;0
# Raum 200
10.20.200.0/24;10.20.200.254;10.20.200.100;10.20.200.200;0;0
# Lehrkräftenetz
10.30.10.0/24;10.30.10.254;;;0;0
# Gästenetz
10.30.20.0/24;10.30.20.254;10.30.20.1;10.30.20.253;0;1
Beachten Sie, dass Änderungen der Subnetzkonfiguration erst wirksam werden, wenn sie durch Ausführung des Befehls
# import_workstations
in das System übernommen wurden.
Important
Sonderstellung für Serversubnetz: Das Servernetz wird automatisch per default ohne freie Range angelegt und daher auch nicht
in /etc/linuxmuster/subnets
eingetragen. Hosts, die Teil des Servernetzes sein sollen, benötigen also immer einen Eintrag
in /etc/linuxmuster/workstations
.
Wird in /etc/linuxmuster/workstations
ein neuer Host hinzugefügt, dessen IP-Adresse in keines der aktuell definierten Subnetze passt, legt import_workstations
für ihn ein neues 24 Bit-Subnetz an. Das bedeutet auch, bei der Umstellung auf Subnetzbetrieb wird Ihre in /etc/linuxmuster/workstations
angelegte Raumstruktur automatisch in Subnetze aufgeteilt.
Denken Sie daran neue Subnetze in der VLAN-Konfiguration ihrer Switche entsprechend zu ergänzen.
Interner und externer Zugriff¶
In der Konfigurationsdatei /etc/linuxmuster/subnets
lässt sich für jedes Subnetz festlegen, ob IP-Adressen aus der frei definierten Range Zugriff auf Intranet-Resourcen (Feld 5) oder Internet (Feld 6) haben. Dabei bedeuten
0 = kein Zugriff
1 = Zugriff erlaubt
Zwei Dinge sind hierbei zu beachten:
Voreinstellungen für die Intranet- und Internetsperre für Räume und einzelne (in /etc/linuxmuster/workstations
definierte) Rechner werden nach wie vor über die Schulkonsole (Aktueller Raum) bzw. die Konfigurationsdatei /etc/linuxmuster/room_defaults
vorgenommen.
Ausnahme: Wird für die freie Range eines Subnetzes das Internet freigegeben (1 in Feld 6), ist für importierte Rechner dieses Subnetzes die Internetsperre wirkungslos. Falls Sie also z.B. für mobile Geräte ein Netz mit freiem Internetzugriff benötigen, konfigurieren Sie dafür besser ein eigenes Subnetz.
Tests und Fehlersuche¶
Folgende Tests sollten erfolgreich verlaufen, sofern alle Schritte zur Netzsegmentierung korrekt umgesetzt wurden:
Hint
still to be written
Printers¶
Setup Printers on the server and clients¶
What information do I need in advance?¶
To work with printers in linuxmuster.net, it is necessary that network printers are available. Either printers with built-in network cards (print servers) can be used or existing printers can be integrated into the network with a suitable so-called “print server box”.
Before adding and setting up printers in linuxmuster.net, it is very helpful to gather the following information:
- the exact description of the printer model
- possible drivers for Linux, Windows and possibly other clients
- MAC address of the printer
- room / location of the printer
- IP address according to the used address scheme
Most network printers are set to receive an IP address via DHCP. The IP address for the printer can then simply be set in the school console.
Caution
The following docs will add / setup the printers via the school console. Alternatively, changes can also be made via a terminal directly in the configuration files on the server. The mixing of both procedures must be avoided and left to experts.
How do I add printers?¶
Many print servers and network printers are able to obtain your IP address from a DHCP server. First, the printer must be added to the server using the school console. A name and an IP address are assigned to the printer.
For the following example, assume that the printer is in room “R203”, gets the name “r203-pr01”, has the MAC address “00:11:22:33:44:55” and gets the IP address 10.16.203.101 according to the subnet.
Log in as administrator in the school console (https://server:242). Select the “Hosts” menu and add the printer as shown below:

The option PXE must be deactivated because the printers do not start via PXE.
Confirm the entry with “Apply changes”.
A restart of the printer is recommended so that it takes over the new IP address.
How do I set up printers on the server?¶
In order to set up the network printers used on the server side, they must be added and set up using a browser.
Note
A PDF printer is automatically set up on the server. The PDF printer can be printed from any application. The “printed” PDF file is stored in the PDF’s folder in the user’s home directory. If this is set later as a standard printer, accidental printing on an undesired printer is prevented.
Start a browser on a computer to access the so-called CUPS web interface for further configuration of the printers. To do so, insert the following URL in the URL of your browser.
Since usually only a self-signed certificate is installed on the server, it is certainly necessary to allow the browser to use secure communication exceptionally (accept SSL certificate).
Add printer¶
First, open the Administration tab. The following screen appears:

Warning
Do not change any configuration on this page, which remains to the linuxmuster.net scripts and a manual configuration in the text files on the server.
Click on Printer → Add printer. The following screen appears:

In this dialog, you must specify how the printer is connected to the server. Network printers may be detected (in the example, “HP Officejet”).
The “AppSocket / HP JetDirect” option is normally correct for unrecognized network printers. If you are unsure, refer to the printer / printer server manual, which option applies to your printer.
Click Next to go to the next dialog. If an option under “Other network printers” is selected, the exact connection must be specified manually and the following dialog box is displayed, otherwise the following dialog is skipped:

In the case of a network printer, you must specify the IP address or the host name, and also specify the queue when using a print server that has multiple ports. For example:
socket://10.16.203.101/lpt1
In case of doubt, the printer operator’s manual should also help. Click Next to go to the next dialog.

A name must be assigned for the printer in this form (for example, r203-pr01 or h109 printer). The name given here also applies as a shared name for Linux and Windows clients. The rest of the information is optional, but should be entered to keep the assignment comprehensible.
Click Next to go to the selection of the printer model.

Select your printer model from the list. With Next, drivers are offered for selection. If there are several drivers available for your model, select the recommended driver. If your model does not appear in the list, use the Browse button to upload the PPD file for your printer. The PPD file contains a driver for the printer for Linux. These drivers are available on your printer manufacturer’s page. Download them locally. Then you can upload the PPD file on the linuxmuster.net server with Upload Dialog.

Your printer may also print with the “Generic” brand and a corresponding driver (for example, “Generic PCL 5e … (recommended)”).
Click Add Printer to close the printer installation. For this, the CUPS Web Interface requires authentication as administrator.

Then you reach the setting page of the printer.
Configure the printer¶

Here, depending on the printer model, you can set various settings for the default behavior of the printer driver (for example, set the page size to A4, duplex printing, if this is not standard).
In the default settings dialog, click the Policy menu item to set the behavior of the printer in the event of an error.

Under “Troubleshooting”, specify abort-job to ensure that CUPS deletes the print job in the event of an error.
With the Set default settings button, you are finally redirected to the administration page of the newly set up printer:

Here you can
- print a test page,
- stop and restart the printer (and the execution of print jobs)
- block the receipt of print jobs and re-enable them,
- repeat the printer setup to change the IP address or printer driver,
- adjust the printer settings or
- setup allowed users.
Now your network printer is ready for operation and can be set up on the workstations.
The above printer is addressed via the URL:
Enable PDF printer¶
The default PDF printer is accessible via the URL
http://server:631/printers/PDF-Printer
Now it is also possible to print to a PDF file via the PDF printer, which is stored on the server in the home directory of the user in the subdirectory PDF.
How do I manage access to the printers?¶
First, each new network printer is available across the network at each workstation. However, you can restrict printer access to specific rooms and / or workstations.
To do this, log on to the school console as administrator and go to the printer page. You can either reach this via the menu point Printer in the school console or enter the following address in the address line of the browser:
https://server:242/schulkonsole/printers
You will see a list of the network printers available in your school network.

If a printer is assigned to rooms or computers, these are also listed here. If a printer is not assigned to a room or a computer, it is available without restriction, network-wide.
To assign a printer to a room, click on Edit and assign the printer using the arrows as shown in the dialogue below.

Attention
If a printer is assigned to a room or computer, the access is blocked from other rooms or computers. In this case, you must also assign the rooms / computers to the printer, which should also have access to the printer. Only when a printer has been assigned to a corresponding room, a teacher can control the access to this printer via the school console (in the area “Current room”).
How do I set up printers on the clients?¶
On the client side, printers must be set up using the HTTP protocol so that the room-related printer access control can work through the school console. The URL for the printer connection is composed as follows:
http://<servername>:631/printers/<printername>
PDF printer
For example, the default PDF printer is accessible via the URL
http://server:631/printers/PDF-Printer
For the PDF printer to be used on the client, a standard PostScript printer must be set up on the client.
Linux Clients¶
Printer installation at the clients is done via an universal postsync-script. The only requirement is, that the printers were already setup at the server and that you use preconfigured images (cloop) as linux client. These are available for Ubuntu 14.04 (trusty) and Ubuntu 16.04 (xenial).
The following file then exists on the server in one of the directories:
/var/linbo/linuxmuster-client/trusty/common/etc/hosts
/var/linbo/linuxmuster-client/xenial/common/etc/hosts
This file has the following rights:
-rw-r--r-- 1 root root 459 Jul 18 2014 hosts
This hosts file contains the following content, which is then adapted to the computer using the Postsync script:
# This file is patched by postsync. It is to be processed on the server.
# Path: /var/linbo/linuxmuster-client/xenial/common/etc/hosts
HOSTNAME is patched in the post sync script with the real name
127.0.0.1 HOSTNAME
The next line contains the host names as they are entered on the server...
#SERVERIP server.linuxmuster.lokal server
# For CUPS to be satisfied, you need to add this line here:
#SERVERIP server.local server.lokal
The Postsync script is located in the directory:
/var/linbo/<LinuxImagename>.cloop.postsync
It has the following rights of access:
-rw-rw---- 1 root root
In the postsync-script there are records as follows (here for Trusty-Cloop):
echo "##### trusty-linuxmuster POSTSYNC BEGIN #####"
# IP-Adresse des Server
SERVERIP=10.16.1.1
STARTCONF=/cache/start.conf
# Raum feststellen. Dieses Skript geht davon aus
# dass die Rechner Namen der Form
# raumname-hostname haben, also z.B. cr01-pc18
RAUM=${HOSTNAME%-*}
# wenn der string leer ist, raum auf unknown setzen
if [ "x${RAUM}" == "x" ]; then
RAUM="unknown"
fi
# Das Verzeichnis, in dem die Serverpatches
# local synchronisiert werden.
PATCHCACHE=/linuxmuster-client/serverpatches
# UVZ auf dem Server. Mit diesem Variablen kann
# man verschiedene Images bedienen (was bei linux
# selten nötig ist)
PATCHCLASS="trusty"
echo ""
echo "Hostname: ${HOSTNAME}"
echo "Raum: ${RAUM}"
echo "Patchcache: ${PATCHCACHE}"
echo "Patchclass: ${PATCHCLASS}"
echo ""
if [ ! -d /cache/${PATCHCACHE}/${PATCHCLASS} ]; then
echo "Patchklasse ist nicht vorhanden."
echo "Auf dem Server mit mkdir -p /var/linbo/linuxmuster-client/${PATCHCLASS}/common/ das Grundverzeichnis anlegen und dort die gepatchten Dateien ablegen."
fi
# -----------------------------------------
# Patchdateien auf das lokale Image rsyncen
# -----------------------------------------
echo " - getting patchfiles"
# RAUM -> Raumname
# HOSTNAME -> Rechnername
# Verzeichnis anlegen, damit es sicher existiert
mkdir -p /cache/${PATCHCACHE}
rsync --progress -r "${SERVERIP}::linbo/linuxmuster-client/${PATCHCLASS}" "/cache/${PATCHCACHE}"
echo " - patching local files"
# zuerst alles in common
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/common/* /mnt/
fi
# dann raumspezifisch
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM} ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/* /mnt/
fi
# dann rechnerspezifisch
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME} ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/* /mnt/
fi
# -----------------------------------
# Berechtigungen anpassen, wenn nötig
# -----------------------------------
echo " - setting permissions of patched local files"
# printers.conf
#[ -f /mnt/etc/cups/printers.conf ] && chmod 600 /mnt/etc/cups/printers.conf
# .ssh verzeichnis
#chmod 700 /mnt/root/.ssh/
#chmod 600 /mnt/root/.ssh/authorized_keys
# hostname in /etc/hosts patchen
sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts
# fstab anpassen, damit Swap-Partition stimmt
echo "---- hier beginnen wir mit dem debuggen:"
SWAPZEILENNR=$(grep -i "^fstype" $STARTCONF | cut -d"#" -f1 | grep -n -i "swap" | cut -d":" -f1)
echo Swapzeilennummer: $SWAPZEILENNR
SWAP=$(grep -i "^dev" -m $SWAPZEILENNR $STARTCONF | tail -n1 | cut -d"=" -f2 | tr -d [:blank:]|head -c9)
echo Swap: $SWAP
sed -i "s|#dummyswap|$SWAP|g" /mnt/etc/fstab
echo "##### trusty-linuxmuster POSTSYNC END #####"
Note
Note for linuxmuster.net version 6.2
If, when using the Postsync script on the client, a printer cannot be reached although it has been set up on the server, all so-called CUPS-browsed entries should still be removed on the server’s CUPS service and all browse poll entries for the client’s CUPS service. This is because an older CUPS version is installed on the server than on the clients whose CUPS version is more current as of Ubuntu 14.04.
The entries are to be removed as follows:
Server cups: File /etc/cups/cupsd.conf - comment out all entries with cups-browsed Client cups: File /etc/cups/cupsd.conf - comment out all entries with BrowsePoll
Alternatively: manual printer setup¶
The printer installation on the Linux client can be done using the CUPS web interface (like on the server). Log on to the CUPS administration page as the local user administrator on the client using a browser and the URL http://localhost:631/admin.

Click Add Printer under the heading “Printers”.
At the next step as network printer choose Internet Printing Protocol (https).
In the next step, select the correct address. If the network printer is controlled via the linuxmuster.net server, its addresses must be specified:
**https://10.16.1.1/printers<printername>**
Then select the correct printer model for the printer to be set up.
Finally, select the appropriate printer model, or select your own PPD file to be installed on the client.
The other setup steps correspond to those already executed on the server.
Windows Clients¶
Melden Sie sich lokal am Windows-Client als administrator an und rufen Sie den Druckerinstallations-Assistenten auf, oder starten Sie den Druckerinstallations-Assistenten als Benutzer administrator. Den Druckerinstallations-Assistenten rufen Sie wie folgt auf: ** Systemsteuerung –> Hardware und Sound –> Geräte und Drucker –> Drucker**
In the Add Printer dialog, select Add a network, wireless or Bluetooth printer.

In the following dialog box, close the printer search and go to the next screen via the button “The desired printer is not listed”.

Select the option Shared printer and write the printer URL according to the specification in the printer setup section in the input field (example http://server:631/printers/networkprinter).

After the driver installation has been completed, the printer is available in our example as a network printer on http://server:631.
Example: PDF printer
A PostScript printer must be set up to use the PDF printer. Start the installation of a network printer via the printer installation wizard and enter the URL of the PDF printer as a network path (see How do I add printers?). In the further course of the installation dialog, select the MS Publisher Color Printer printer model, which is listed under Generic manufacturer:

After the printer installation is completed, the PDF printer is available as a PDF printer at http://server:631.
Drucker nutzen - Arbeitstitel¶
Windows 10 Clients¶
This guideline helps you to install Windows 10 on a master workstation and clone it to any other clients with identical hardware.
Workstations (“Clients”) are installed in linuxmuster.net via LINBO software (“GNU / Linux Network Boot”).
Nearly all steps that require changes at server side are accomplished via webinterface. Alternatively these steps can also be executed at the server console as described in the manual :ref:’install-linux-clients-label’.
Register computer in the network¶
New clients are registered via the LINBO interface of the client and then recorded on the server in the system.
Registration with LINBO¶
However the LINBO user interface (Manual) on the Client provides a way to register a new machine to the system.
Restart the computer using PXE boot.

Click on the “Imaging” tab and log in with the LINBO password.
Note
In the password field, nothing is displayed. You must type it in “blind”.

Now you are LINBO administrator. There is a timeout window that shows the time after which you will be logged out automatically. By clicking the checkbox, the timeout can be disabled.

The button Register
opens a dialog box where you can enter data for the client.

Note
- Room
- Enter the name of the room (for example, r111 or g1r100). Please note that the name of the room or the building must begin with a lowercase letter. Special characters are not allowed.
- Hostname
- e.g. In the form r111-pc03 (up to 15 characters), (if necessary, take the building into account g21r100-pc01). Please note that only characters and numbers are allowed as characters. Only the hyphen
-
may be used as a separator. You may not use spaces, underlines or other special characters (such as german Umlaute, ß or punctuation marks) under any circumstances. - IP Address
- The IP address should fit to the room and must be outside the default DHCP range. Depending on your network data, you can enter e.g. 10.16.11.3 for this PC, usually not between 10.16.1.100 and 10.16.1.200 (default DHCP range).
- Host Group
- In the computer group, e.g. win10, several (almost all) similar computers are combined, which get an (nearly) identical configuration.
If everything is filled in correctly, the client data is uploaded via the button Register
on the server.
Note
If other clients are registered, you do not have to fill in the fields. Linbo increments automatically in the right place. E.g. its increments the hostname r111-pc03 =` r111-pc04` and the IP address 10.16.11.3 =` 10.16.11.4`. It’s clear that if you want to use the feature, you must register the computers in the correct order!
Important
“Linbo incremented at the right place automatically” works only if the computers are booted up in the right order!
Import Registered Clients¶
As soon as all hosts are added, you have to start the import of the computers in the school console (school console manual) or at the console!
Since the access to the school console is only allowed by computers that are included in the system, at least the first computer must be imported manually.
Log on to the server as root
and run the command line command
server ~# import_workstations
out.
If you want to register and record other clients later, browse the school console from an already imported computer: https://server:242 and log in as administrator
.
On the hosts side of the school console, new computers can be entered directly.

A click on the button Apply changes imports the newly registered clients.

In the screenshot the registration ends with an error message


After eliminating the error and clicking the Apply changes button, the clients are imported.

The computer registration is accompanied by various log messages and ends with the following window.

Configuration start.conf¶
School Console¶
Switch to the LINBO tab. Click on the left side on Edit Group Configuration
and then select the group (hardware class) you want to edit.
Change the configuration according to your needs and click afterwards on the button Save changes
. The settings are under the heading Systems
are important.
Attention
For Windows, make sure you have a sufficiently large partition (at least 50 G recommended) because Windows takes up a lot of hard disk space. “A lot helps a lot is right here!”.
Create Windows 10 Image¶
Partition your Computer¶
Important
The partitioning for the operating system installation has to be done by Linbo before Windows is installed, otherwise Linbo can’t create the hard disk images.
Restart the PC on which you want to create the image and boot again from the network (PXE). You’ll get the following screen:
Click on the ‘Imaging’ tab, enter the password and confirm by clicking “Enter”.
Click the button Partition
and confirm the message with Yes
After this, you can restart the computer.
Install Windows¶
Insert the Windows installation disc and boot from the CD. Wait for the installation wizard to load and select your language. Confirm with Next
Click on Install Now
Accept the license conditions and set the corresponding hook and confirm with Next
.
Click on Custom: Install Windows only.
Select the partition on which Windows should be installed. You can identify the correct partition in terms of size in GB. In our example 50GB. Click on Netx
.
Wait until the installation has completed.
Select the option Adjust settings
.
Configure the privacy settings to your needs.
Now enter a user who is locally used in Windows as an administrative account. This account is not used on the network. Set a new password for the local user and click on Next
.
You have installed Windows on the computer and you should be redirected to the desktop.
Important
Before you shutdown the computer some adjustments have to be made. You will need the regpatch provided by linuxmuster.net.
provide regpatch¶
To provide the regpatch for the Windows client, you have to copy it first on the server console to the home directory of pgmadmin.
$ cp /var/linbo/examples/win10.global.reg /home/administrators/pgmadmin/
Configuring Windows¶
Some essential settings have to be made to be able to use Windows 10.
Open the Windows Explorer and put the UNC path \\server\pgmadmin
in the navigation bar to access the pgmadmin’s home directory on the server.
Enter the credentials for the user pgmadmin and confirm with OK
Copy the file win10-global to the desktop.
Double-click the file and click in both dialogs on Yes
.
Important
As of Windows 10 version 1709, domain joining cannot be achieved without difficulty. With Windows 10 Prof you have to join the domain within the first 15 days after installation. Here SMB 1 Client is still installed, but will be uninstalled after 15 days if not in use. It is different with the Education and Enterprise versions, Samba 1.0 must be installed here. A manual is available at https://ask.linuxmuster.net/t/windows-10-1709-laesst-sich-nicht-in-domain-aufnehemen/1402/1 Please read first!
Click with the right mouse button on the Windows icon or press the Windows key+X. Click on System
.
Click on Change Settings
(next to the computer name).
Click on Change
.
Enter the computer name you assigned in Linbo for the computer. In our example, r123-pc02. Choose Domain and enter the domain name, in our example schule
Enter one of the administrator users. For example, the user domadmin
with the appropriate password and confirm with Ok
.
Confirm the message with Ok
, close all the windows and click on Restart Now
.
After rebooting you can choose Other User
in the left-bottom corner to log in with a domain user.
You can now make changes to Windows. Configure the system to your needs and then shutdown Windows.
Write Image to the Server¶
Restart the computer, boot via pxe and switch in Linbo to the tab Imaging
. Click on Create Image
. Start the process by clicking on Create and Upload
.
Hint
In this method, as long as an image with the same name already exists, the old image will be renamed and the current image takes its place as the active image.
As soon as the process is completed, you can now always reset the status of the installation to this point.
The image is available on the server.
If you want to roll it out to other computers, the image. reg
has to be made available on the server. Copy the /var/linbo/win10.image.reg
to /var/linbo/<BEZEICHNUNG DER RECHNERGRUPPE>.cloop.reg
.
Here’s the example:
$ cp /var/linbo/examples/win10.image.reg /var/linbo/win10.cloop.reg
From now on linbo will enter the image.reg file after the sync of an operating system into the registry of the synced computer and set the hostname to the correct value.
Copy default profile¶
In Linuxmuster.net the user pgadmin will install software, that is planned to be used by other users. In order for all users to get the changes made during the installation, the profile of the “pgmadmin” must be copied to “Default”. To copy the profile, proceed as follows:
- Restart the computer after installing programs without synchronization
Attention
The restart is necessary because the profile of the “pgmadmin” can not be copied otherwise
- Log in as a local user with admin rights
- Copy the file https://www.forensit.com/Downloads/Support/DefProf.zip and unzip it to
C:\Windows\system32\Defprof.exe
. If Defprof.exe is already inC:\Windows\system32\
, go to step 4. - Run the command
C:>defprof pgmadmin
- Log off as local user and login again as pgmadmin
- Shut down the computer
- Restart the computer and create a new image with linbo
Weiterführende Dokumentation¶
- Todo: are there pages in the Anwenderwiki
- Todo: are there howtos under docs.linuxmuster.net
- Todo: is there development documentation or techsheets under docs.linuxmuster.net
Leoclient 2 - Windows im Linuxclient¶
Leoclient2 bietet die Möglichkeit auf einem Linuxclient verschiedene virtuelle Maschinen, beispielsweise mit Windows-Betriebssystem, einzurichten und zu starten.
Inhalt:
Funktionsprinzip¶
Durch das Programmpaket leoclient2 ist es möglich auf einem Linuxclient virtuelle Maschinen (VM), beispielsweise mit Windows-Betriebssystem, parallel zu nutzen.
Dabei können auf einfache Weise verschiedene Zustände der virtuellen Maschine erzeugt und den Benutzern angeboten werden.
Zur Auswahl der virtuellen Maschinen als Benutzer wurde eine grafische Oberfläche programmiert, auf der man zuerst die zu nutzende VM auswählt und dann den gewünschten Zustand startet.
Durch die Virtualisierung reduziert sich der administrative Aufwand auf ein Minimum, wogegen die Möglichkeit der Bereitstellung verschiedener Installationszustände extreme Flexibilität und ungeahnte Möglichkeiten bietet.
Installation von leoclient2¶
Software-Pakete installieren¶
Die leoclient-Pakete liegen auf dem linuxmuster.net-Paketserver, der im Linuxclient schon zur Einrichtung der Anmeldung am Server eingetragen wurde.
Todo
link um Quellen einzutragen statt folgendes …
# wget http://pkg.linuxmuster.net/linuxmuster.net.key -O - | sudo apt-key add -
In /etc/apt/sources.list eintragen:
deb http://pkg.linuxmuster.net/ xenial/
Installation der Pakete auf dem Linuxclient mit folgenden Befehlen:
# sudo apt-get update
# sudo apt-get install leoclient2-leovirtstarter-client leoclient2-vm-printer
Virtualbox installieren/updaten¶
Es wird empfohlen eine aktuelle Version von Virtualbox zu installieren (5.1.22 im Mai 2017).
Für die Schule kann die PUEL-Version (aktuelles VirtualBox mit ExtensionPack) installiert werden, die beispielsweise USB2 unterstützt (statt USB1.1).
Die Anleitung zur Installation findet sich unter https://www.virtualbox.org/wiki/Linux_Downloads im Bereich ‘’Debian-based Linux distributions’‘.
In Kürze das Vorgehen für Ubuntu 16.04/xenial:
- apt-get install dkms
- Virtualbox Schlüssel laden, Quellen eintagen, apt-get update
- apt-get install virtualbox-5.1
- Extension-Pack im Browser downloaden, installieren im Virtualbox-gui
Benutzer-Rechte anpassen¶
Hinweis: Diese Rechte-Anpassungen sind im Standard-Linuxclient schon eingepflegt.
Domänenbenutzer
Um für die Domänenbenutzer alle Optionen von VirtualBox freizugeben,
müssen diese Mitglied der Gruppe vboxusers
sein. Hierzu ergänzt
man in der Datei /etc/security/group.conf
in der Zeile
*;*;*;Al0000-2400;dialout...
den Eintrag vboxusers
. Diese
Zeile könnte dann wie folgt aussehen:
*;*;*;Al0000-2400;dialout,cdrom,floppy,audio,dip,video,plugdev,scanner,vboxusers
Lokale Benutzer
Auch lokale Benutzer am Linuxclient (z.B. linuxadmin
) müssen der
Gruppe vboxusers
hinzugefügt werden. Für lokale Benutzer erfolgt
das mit
# sudo adduser linuxadmin vboxusers
Diese Änderung wird erst bei einer erneuten Anmeldung des Nutzers wirksam.
Rechte an den lokalen virtuellen Maschinen¶
Mit der im Paket leoclient2-leovirtstarter-client
befindlichen
Datei /etc/sudoers.d/80-leoclient2
wird der Eigentümer der lokalen
virtuellen Maschine vor ihrem Start auf den angemeldeten Benutzer
gesetzt. Somit kann die Maschine gestartet, Logs angelegt und der
aktiven Snapshot verändern werden.
Drucker-Spooler beim login aktivieren¶
Um aus der virtuellen Maschine heraus drucken zu können, müssen ein Drucker-Splitter und ein Drucker-Spooler bei Anmeldung am Linuxclient gestartet werden. Der Drucker-Splitter fängt ankommende Druckdateien ab, bevor sie überschrieben werden. Der Drucker-Spooler druckt sie aus.
Auf dem Standard-Linux-Client gelingt dies mit Hilfe der
linuxmuster-client-extras
Skripte wie folgt:
# sudo linuxmuster-client-extras-setup --type login --on /usr/bin/run-vm-printer2-splitter
# sudo linuxmuster-client-extras-setup --type login --on /usr/bin/run-vm-printer2-spooler
Überprüft werden kann das mit
# sudo linuxmuster-client-extras-setup --type login -i
Ohne den Standard-Linux-Client kann man mit folgenden Befehlen einen ähnlichen Effekt erzielen:
# sudo install -oroot -groot --mode=0644 /usr/share/leovirtstarter2/desktop/leoclient2-splitter.desktop /etc/xdg/autostart
# sudo install -oroot -groot --mode=0644 /usr/share/leovirtstarter2/desktop/leoclient2-spooler.desktop /etc/xdg/autostart
Konfiguration
Die Konfigurationsdatei liegt unter
/etc/leoclient2/leoclient-vm-printer2.conf
.
Zur Fehlerbehebung werden Log-Dateien in
/tmp/run-vm-printer2-spooler.log-USERNAME
und
/tmp/run-vm-printer2-splitter.log-USERNAME
abgelegt. Dort sieht
man nach welcher Datei der Drucker-Splitter sucht
Virtuelle Maschine erzeugen¶
Das Script leoclient2-init
bereitet eine virtuelle Machine (VM)
vor, die später mit dem Programm leovirtstarter2
gestartet werden
kann.
Die VM kann nur in einem Verzeichnis erstellt werden das der aufrufende User anlegen darf. Üblicherweise muss das Script also mit root-Rechten gestartet werden:
# sudo leoclient2-init
[sudo] Passwort für linuxadmin:
Geben Sie den Namen der neuen virtuellen Maschine ein
(Keine Leerzeichen - bestätigen mit der Enter-Taste):
winxp
...
Soll die virtuelle Maschine jetzt erzeugt und VirtualBox gestartet werden?
(j/n - Bestätigen mit der Enter-Taste):
j
Virtual machine 'winxp' is created and registered.
UUID: d96f7ee1-3c82-4bef-aa04-c9d39140cede
Settings file: '/virtual/winxp/winxp.vbox'
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Medium created. UUID: 4da77206-3edf-41d6-84ec-1509cfb92441
Es werden folgende Parameter abgefragt und auf Nachfrage VirtualBox gestartet.
- der MASCHINENNAME für die VM (keine Leerzeichen verwenden)
- der PFAD für den Speicherort der VM (Standardpfad
/var/virtual/
) - die Größe der dynamisch wachsenden virtuellen Festplatte für die VM in MB
Man sollte unter VirtualBox die Konfiguration der VM noch an die eigenen Bedürfnisse anpassen (Die Arbeitsspeichergröße für die VM wird beim Starten an die Gegebenheiten der vorhandenen Maschine angepasst).
Betriebsystemeinstellungen¶
Unter Allgemein
, Reiter Basis muss der Betriebsystemtyp und Version angepasst werden.
Systemanforderungen/Ressourcen¶
Unter System
, wird konfiguriert, welche Hardware-Ressourcen die VM zur Verfügung gestellt bekommt.
Je nach Gast sind hier Mindestwerte zu beachten:
Win10 (Beispielhaft):
- Hauptspeicher 2048 MB (System -> Hauptplatine)
- 2 CPU’s (System -> Prozessor)
- 64 MB Grafikspeicher (System -> Bildschirm)
DVD-Laufwerk¶
Ein CD-/DVD-Laufwerk kann man ebenso einbinden wie iso-Dateien (→ CD-/DVD-Laufwerk hinzufügen → kein Medium (Laufwerk) → über das CD-Symbol rechts das Laufwerk auswählen bzw. → CD-/DVD-Laufwerk hinzufügen → Medium auswählen (iso-Datei) ).
USB verwenden¶
Sollte man, wie voreingestellt, USB2 verwenden wollen, muss man das zur Version von VirtualBox passende Extension Pack installieren.
Netzwerk offline¶
Eine Netzwerkkarte ist in der Standardkonfiguration nicht aktiviert, dadurch bietet die VM keine Angriffsfläche und man kann auf zeitraubende Updates verzichten.
Wenn sie aktiviert wird, gilt das nur vorübergehend.
Trotzdem ist es möglich auf die Netzlaufwerke auf dem Server zuzugreifen und Netzwerkdrucker zu verwenden.
Betriebssystem installieren¶
Sind die Einstellungen wunschgemäß, startet man die VM und installiert das Betriebssystem über eine verbundene Installations-CD-/DVD oder eine entsprechende iso-Datei.
Ist die Installation abgeschlossen, fährt man die VM herunter. Bevor VirtualBox beendet wird, sollte man eventuell verbundene CD-/DVD-Laufwerke trennen.
Nach Beenden von Virtualbox wird die VM für den Start mit dem Programm
leovirtstarter2
fertiggestellt.
...
Für diese Maschine wird ein Sicherungspunkt erzeugt.
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Snapshot taken. UUID: 3df3f4f2-38e8-4747-9934-533648e60d3f
...
Die Konfiguationsdateien und der Snapshot wurden gesichert.
Die Rechte der Dateien wurden angepasst.
Die virtuelle Maschine kann nun mit dem Snapshotstarter benutzt werden.
Wenn Sie die Basis für die virtuelle Maschine und den Snapshot neu
erzeugen wollen, starten Sie das Script 'leoclient2-base-snapshot-renew'.
Wenn Sie die vollständige virtuelle Maschine in ein anderes Verzeichnis
umziehen wollen, starten Sie das Script 'leoclient2-vm-move'.
Weitere Schritte¶
Nachdem das Betriebsystem installiert ist, ist es sinnvoll in der Basis der VM noch folgende Anpassungen vorzunehmen:
- Installation der Gasterweiterungen in der VM
- Verbinden der Netzlaufwerke in der VM
- Einrichten eines PDF-Druckers in der VM
- (Schrumpfen ???)
Diese Anpassungen unterscheiden sich je nach verwendeten Betriebsystem. Anleitungen finden sie bei “Weitere Informationen zu leoclient2” und dem jeweiligen Gastbetriebsystem unter Tipps und Tricks.
Danach muss die Basis aktualisiert werden (Siehe folgendes Kapitel: Basis und Snapshots verwalten).
Virtuelle Maschinen starten¶
Das Script leovirtstarter2
findet automatisch jede verfügbare VM
(Eintrag in /etc/leoclient2/machines
) und bietet diese zum Starten
an. Es kann im Ubuntu Dash (Virtualbox Snapshotstarter) oder über die
Konsole gestartet werden:
$ leovirtstarter2

Wählen Sie eine virtuelle Maschine
Nachdem eine VM gewählt wurde, werden mehrere Optionen angeboten

Optionen zum Starten der virtuellen Maschine
- <VM> wie vorgefunden startet den aktuellen, unveränderten Zustand
- der VM
- <VM> Standard verwendet den Standard-Snapshot und startet die VM,
- d.h. die virtuelle Maschine wird auf den Zustand des Snapshots zurückgesetzt.
- optional weitere Snapshots wenn konfiguriert, tauchen weitere lokal
- oder auf einem Serverlaufwerk gespeicherte Snapshots auf
Virtuelle Grafik Diese Optionen sind bisher ohne Funktion
- Virtueller Arbeitsspeicher (RAM) Arbeitsspeicherzuweisung an die
- VM - vorausgewählt ist ein automatisch an den vorhandenen realen Hauptspeicher angepasster Wert. Mit der Auswahl kann man den Hauptspeicher der VM etwas erhöhen oder vermindern.
Nach Auswahl wird die VM mit dem Button Starten!
gestartet.
Basis und Snapshots verwalten¶
Jede virtuelle Maschine besitzt neben der Basis
/PFAD/MASCHINENNAME/MASCHINENNAME.vdi
einen Standard-Snapshot.
Zuerst sollte man eine solide VM-Basis erstellt haben. Da alle darauf basierenden weiteren Snapshots unbrauchbar werden, wenn die Basis aktualisiert werden muss.
Aufbauend auf diese Basis können dann weitere Snapshots erzeugt werden.
VM-Basis aktualisieren¶
Mit Hilfe des Skripts leoclient2-base-snapshot-renew
wird der
aktuelle Zustand der virtuellen Maschine zur neuen Basis.
Hint
Durch eine Erneuerung der Basis werden alle (anderen) darauf aufbauenden Snapshots unbrauchbar.
Nach dem Aufruf des Skripts leoclient2-base-snapshot-renew
mit root-Rechten
$ sudo leoclient2-base-snapshot-renew
sind einige selbsterklärende Fragen zu beantworten.
- Soll der Vorgang abgebrochen werden? (J/N)
- Name der virtuellen Maschine? (VM, die erneuert werden soll)
- Speicherort der virtuellen Maschine? (VM, die erneuert werden soll)
Das Skript startet dann zunächst VirtualBox, um die Sicherungspunkte zu löschen. Eine eventuelle Warnung, die aufgrund fehlender Verbinungen erscheint, kann ignoriert werden. Die Ursache ist z.B. bei dem vorkonfigurierten Ubuntu von linuxmuster.net die fehlende Verbindung zu den Homes als linuxadmin.

VirtualBox-Optionen für Snapshots
- Klicken Sie rechts oben auf die Schaltfläche “Sicherungspunkte (1)”.
- Klicken Sie auf den Snapshot, löschen Sie diesen mit einem Rechtsklick oder mit dem entsprechenden Icon und bestätigen Sie mit “Löschen” den nächsten Dialog.
Haben Sie im aktuellen Zustand bereits Änderungen vorgenommen, so kann das Löschen des Snapshots eine Weile dauern. Im Anschluss kann die VM gestartet werden und (weitere) gewünschte Änderungen durchgeführt werden.
- Schalten Sie die VM aus und beenden Sie VirtualBox
Das Skript erzeugt eine neue Basisfestplatte unter
/PFAD/MASCHINENNAME/MASCHINENNAME.vdi
und komprimiert sie (Das
dauert einige Minuten). Darüber hinaus wird noch ein neuer
Standard-Snapshot erzeugt und gezippt. Der Name des neuen Snapshots,
hier: {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi
, erscheint in der
Konsolenausgabe.
...
##### Processing snapshot: standard #####
* Zipping standard:
* Image: /virtual/winxp/snapshot-store/standard/{c81442ac-4e03-487c-a05a-e82b8918c834}.vdi
* Dir: /virtual/winxp/snapshot-store/standard
* File: {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi
...
Vergleichen Sie den neuen Snapshot-Dateinamen und löschen Sie den alten Standard-Snapshot entsprechend dem Muster
sudo rm /PFAD/MASCHINENNAME/{..alterSnapshot..}.vdi*
$ ls -1 /virtual/winxp/snapshot-store/standard/ {4a895e9c-a6e9-416d-b612-b643035c0103}.vdi {4a895e9c-a6e9-416d-b612-b643035c0103}.vdi.zip {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi.zip filesize.vdi filesize.vdi.zipped $ sudo rm /virtual/winxp/snapshot-store/standard/{4a895e9c-a6e9-416d-b612-b643035c0103}.vdi*
Sollten Sie weitere Snapshots zur virtuellen Maschine haben, haben diese ihre Basis verloren. Löschen Sie diese Snapshots (als root) oder erzeugen Sie sie erneut aus dem bestehenden neuen Standard-Snapshot.
$ ls -1 /virtual/winxp/snapshot-store/Software2016 {4a895e9c-a6e9-416d-b612-b643035c0103}.vdi {4a895e9c-a6e9-416d-b612-b643035c0103}.vdi.zip filesize.vdi filesize.vdi.zipped $ sudo leoclient2-snapshot-create -m winxp -s Software2016 adding: {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi (deflated 100%) OK: Snapshot {c81442ac-4e03-487c-a05a-e82b8918c834}.vdi wurde als Software2016 gesetzt.
Neue Snapshots erzeugen¶
Das Skript leoclient2-snapshot-create
legt mit dem aktuellen Zustand der
VM einen neuen auswählbaren Snapshot an oder den Standard-Snapshot
neu.
Hint
Die Basis, d.h. die zugrundeliegende Basisfestplatte wird dabei nicht verändert. Eine veränderte Hardwarekonfiguration speichert das Skript auch nicht.
Vorgehensweise:
Laden Sie das Skript herunter:
leoclient2-snapshot-create
Legen Sie es unter
/usr/bin/leoclient2-snapshot-create
ab und machen Sie es ausführbar.$ sudo mv leoclient2-snapshot-create /usr/bin/ $ sudo chmod 755 /usr/bin/leoclient2-snapshot-create
Starten Sie als Benutzer die VM (z.B. hier winxp)
$ leovirtstarter2
Installieren Sie Software nehmen Sie die Änderungen vor, fahren Sie die VM herunter.
Rufen Sie das Skript (als root) ohne Argument
-s
auf, um den Standard-Snapshot neu zu setzen,$ sudo leoclient2-snapshot-create -m winxp
oder mit einem Argument
-s
, um einen neuen Snapshot zu erzeugen.$ sudo leoclient2-snapshot-create -m winxp -s Software2016
Jetzt erscheint im Auswahlmenü von
leovirtstarter2
ein neuer Snapshot mit dem NamenSoftware2016
.
Umzug von Leoclient1 nach Leoclient2¶
Für den Umzug benötigen Sie die alte virtuelle Festplatte old.vdi
und den alten Standard-Snapshot old-snapshot.vdi
der
leoclient1-VM.
Ermitteln Sie die Größe und UUID der alten Festplatte
# vboxmanage showmediuminfo /media/old/old.vdi | grep -E 'UUID|MBytes' UUID: 22df228d-ecb2-44ba-a281-7c73a02d26bc Parent UUID: base Capacity: 16384 MBytes Size on disk: 1921 MBytes
Erzeugen Sie eine neue virtuelle Maschine nach Anleitung (mindestens) mit der ermittelten Größe. Im Beispiel wird die neue VM “win-migrate” genannt. Auf die Installation des Betriebssystems kann verzichtet werden. Ändern Sie Typ und Version des Betriebssystem und schließen Sie VirtualBox.
Ermitteln Sie die UUID der neuen Festplatte:
# VBOX_USER_HOME=/var/virtual/win-migrate vboxmanage showmediuminfo /var/virtual/win-migrate/win-migrate.vdi | grep ^UUID UUID: 1fbc6a0c-d9c9-48bf-ad1c-e94c4d7da406
Kopieren Sie die alte virtuelle Festplatte auf die neue Festplatten-Datei
# cp /media/old/old.vdi /var/virtual/win-migrate/win-migrate.vdi
Korrigieren Sie die UUID an den entsprechenden Stellen mit dem Schema
sed -i "s@neue UUID@alte UUID@" Datei
# sed -i "s@1fbc6a0c-d9c9-48bf-ad1c-e94c4d7da406@22df228d-ecb2-44ba-a281-7c73a02d26bc@" /var/virtual/win-migrate/win-migrate.vbox # sed -i "s@1fbc6a0c-d9c9-48bf-ad1c-e94c4d7da406@22df228d-ecb2-44ba-a281-7c73a02d26bc@" /var/virtual/win-migrate/defaults/win-migrate.vbox
Kopieren Sie den alten Standard-Snapshot in das Unterverzeichnis
Snapshots
unter Verwendung des bestehenden Dateinamens der Snapshot-Datei der neuen virtuellen Maschine (bestehende Datei ersetzen).# cp /media/old/old-snapshot.vdi /var/virtual/win-migrate/Snapshots/\{08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7\}.vdi
Aus folgender Fehlermeldung kann man die UUIDs des alten (
ef8629ce-c7c1-424b-8089-0e1d526b0c2c
) und des neuen (08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7
) Snapshots herauslesen# VBOX_USER_HOME=/var/virtual/win-migrate vboxmanage showmediuminfo /var/virtual/win-migrate/Snapshots/*.vdi | grep Error Access Error: UUID {ef8629ce-c7c1-424b-8089-0e1d526b0c2c} of the medium '/var/virtual/win-migrate/Snapshots/{08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7}.vdi' does not match the value {08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7} stored in the media registry ('/var/virtual/win-migrate/VirtualBox.xml')
Korrigieren Sie die UUID des Snapshots in den folgenden Dateien wiederum mit dem Schema
sed -i "s@neue UUID@alte UUID@" Datei
# sed -i "s@08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7@ef8629ce-c7c1-424b-8089-0e1d526b0c2c@" /var/virtual/win-migrate/win-migrate.vbox # sed -i "s@08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7@ef8629ce-c7c1-424b-8089-0e1d526b0c2c@" /var/virtual/win-migrate/defaults/win-migrate.vbox
Setzen Sie den Standard-Snapshot neu (Skript siehe Neue Snapshots erzeugen)
# leoclient2-snapshot-create -m win-migrate adding: {08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7}.vdi (deflated 57%) OK: Snapshot {08b01eb0-2f5b-4091-acf7-cd5f8cbfcef7}.vdi wurde als standard gesetzt.
Starten Sie
leovirtstarter2
mit normalen Benutzerrechten über die Konsole, eventuelle Fehlermeldungen können so gesehen werden.
Alte Dateien von leoclient1 entfernen¶
Die Pakete des alten Leoclient müssen von Hand entfernt werden:
# apt-get purge leoclient-leovirtstarter-client leoclient-leovirtstarter-common
# apt-get purge leoclient-leovirtstarter-server leoclient-tools leoclient-virtualbox leoclient-vm-printer
Evtl. alte Daten von leoclient (Version 1) entfernen:
# rm -rf /etc/leoclient
Weitere Informationen zu leoclient2¶
Speicherort der virtuellen Maschinen¶
Virtuelle Maschinen auf einer zusätzlichen Partition¶
Standardmäßig werden die Dateien einer lokalen VM unter
/var/virtual/
abgelegt. Dieses Verzeichnis liegt im normalen
Dateisystem des Linuxclients. Es wird empfohlen, diesen Speicherort
auf eine zusätzliche Partition auszulagern und nach /var/virtual
per fstab mounten.
Gründe für diese Empfehlung:
- Eine Partition dynamisch unter
/media
dafür zu verwenden ist ungeeignet, da sich deren Namen und Zugriffsberechtigung je nach User ändern kann. - Mit der Auslagerung erfolgt die Synchronisation der Installation des Linuxclients deutlich schneller.
- Die virtuellen Maschinen können über das Synchronisieren der zugehörigen Partition unabhängig von der Linuxinstallation zurückgesetzt werden.
Vorgehensweise:
Es existiert eine Partition /dev/sda3
(wie z.B. bei der start.conf
zum default-cloop), die mit ext4
formatiert ist.
Zunächst das Verzeichnis
/var/virtual/
leeren bzw. den Inhalt wegsichern.Die Datei
/etc/fstab
als root editieren und letzte Zeile ergänzen:# /etc/fstab: static file system information. # /dev/sda3 /var/virtual ext4 defaults 0 0
Danach als
root
die Partition mounten und das ganze dann noch mitdf
überprüfen:# mount -a # df -h
Nun ggf. die weggesicherten Dateien wieder nach
/var/virtual/
zurückspielen und von beiden Partitionen mit Hilfe von LINBO ein Image erstellen.
Attention
Nach dem Anlegen einer neuen VM müssen beide Partitionen geimaged
werden da beim Anlegen einer neuen VM diese unter
/etc/leoclient2/machines
registiert wird. Nach dem Verändern
einer VM muss nur die zusätzliche VM-Partition geimaged werden.
Virtuelle Maschinen auf dem Server¶
Remote virtuelle Maschine erzeugen¶
Eine lokale VM wird zur remoten VM, indem
die in
/etc/leoclient2/servers.conf
konfigurierbare VariableSERVERDIR
auf ein Verzeichnis gesetzt wird, in das im Verlauf des Bootprozesses oder der Anmeldung ein Netzwerk-Share gemountet wirddas Datenverzeichnis der VM auf den Server kopiert wird, z.B. das Verzeichnis
/var/virtual/winxp
in das vom Server gemountete Netzlaufwerk/media/leoclient2-vm
kopiert wird.$ sudo cp -R /var/virtual/winxp /media/leoclient2-vm
Prinzipiell kann die VM danach lokal gelöscht werden.
Dann wird die VM vor dem Starten vom Server nach lokal synchronisiert/kopiert. Da dabei beträchtliche Datenmengen übertragen werden, sollte man das nur bei kleinen, wenig genutzen VM’s machen (z.B. einem Linux-MySQL-Server o.ä.).
VM Windows XP – Tipps und Tricks¶
- Zur Installation in VirtualBox ein CD-Rom-Laufwerk hinzufügen und dann darin das Installations-ISO einlegen, die NTFS-Schellformatierung genügt.
- Die Gasterweiterungen installieren, mit Hilfe der Menüleiste des VBox-Fensters bei “Geräte”. Dadurch wird auch die Maus nicht mehr gefangen und das Fenster der VM ist beliebig skalierbar.
Verbindung zu Home_auf_Server
einrichten:
- Windows Explorer → Menü Extras → Netzlaufwerk verbinden
- einen Laufwerksbuchstabe auswählen (z.B. H:) und Ordner angeben:
\\vboxsrv\home
- ggf. Verknüpfung auf Desktop ziehen und umbenennen
Verbindung zu Tausch-Ordner und USB-Sticks einrichten:
- Windows Explorer → Menü Extras → Netzlaufwerk verbinden
- einen Laufwerksbuchstabe und Ordner angeben:
\\vboxsrv\media
- ggf. Verknüpfungen auf Desktop ziehen und umbenennen
PDF-Drucker in der VM einrichten
Siehe FreePDF-Webseite: http://freepdfxp.de/download_de.html
ghostscript Installieren
Free-PDF Installieren (Version 4.08 bei mir ging 4.14 NICHT(Eigener Drucker anlegen bei 32bit Windows 7))
FreePDF Config starten → admin Config starten
Profile neu : Profil ausdrucken anlegen
Button: Für das aktuelle Profil einen eigenen Drucker anlegen
Profil ausdrucken bearbeiten: FreePDF Dialog
- Als festen Dateinamen speichern
- H:ausdruck.pdf (anpassen, entsprechend
/etc/leoclient2/leoclient-vm-printer2.conf
)- Speichern
Den Drucker FreePDF als Standard Drucker anlegen
Äquivalent funktioniert das Programm PDF24
VM Windows 7 – Tipps und Tricks¶
Bei der Installation bricht die 64bit Version ab, wenn nur 1 GB RAM da ist.
Verbindung zu Home_auf_Server
einrichten:
- Windows Explorer → Rechte Maustaste auf Netzwerk → Netzlaufwerk
- verbinden
- Laufwerksbuchstabe (Üblicherweise
H:
) und Pfad nennen:\\vboxsrv\home
- Verknüpfung auf Desktop ziehen und umbenennen
Verbindung zu Tausch-Ordnern und USB-Sticks einrichten:
- Windows Explorer → Rechte Maustaste auf Netzwerk → Netzlaufwerk
- verbinden
- Laufwerksbuchstabe (Üblicherweise
M:
) und Pfad nennen:\\vboxsrv\media
- Verknüpfung auf Desktop ziehen und umbenennen
VM Windows 10 - Tipps und Tricks¶
Bei der Installation kommen komische Fehlermeldungen, wenn nicht mindestens 2 CPU und 2096MB RAM vorhanden sind.
Verbindung zu Home_auf_Server
(im Homeverzeichnis) einrichten:
- Windows Explorer → Rechte Maustaste auf Dieser PC → Netzlaufwerk
- verbinden
- Laufwerksbuchstabe (Üblicherweise
H:
) und Pfad nennen:\\vboxsrv\home
sowie Haken bei “Verbindung bei Anmeldung wiederherstellen”. - Verknüpfung auf Desktop ziehen und umbenennen in z.B.
Home_auf_Server
Verbindung zu Tausch-Ordnern und USB-Sticks einrichten:
- Windows Explorer → Rechte Maustaste auf Dieser PC → Netzlaufwerk
- verbinden
- Laufwerksbuchstabe (Üblicherweise
M:
) und Pfad nennen:\\vboxsrv\media
sowie Haken bei “Verbindung bei Anmeldung wiederherstellen”. - Verknüpfung auf Desktop ziehen und umbenennen in z.B.
Medien
PDF-Drucker in der VM einrichten
Siehe FreePDF-Webseite: http://freepdfxp.de/download_de.html
ghostscript Installieren (9.20)
Free-PDF Installieren (Version 4.08 getestet)
<Start> -> FreePDF Config starten
Profile neu
Name des Profils: “ausdrucken”, Button: “Alle Benutzer” –> Speichern
Profil “ausdrucken” wählen, “Für das aktuelle Profil einen eigenen Drucker anlegen” (Schild um Änderung zuzulassen)
Profil “ausdrucken” wählen, Button: Ändern -> Free PDF Dialog (linker Bereich)
- Aktion beim Drucken: Als festen Dateinamen speichern
- H:ausdruck.pdf (anpassen, entsprechend
/etc/leoclient2/leoclient-vm-printer2.conf
)- Speichern
Den Drucker FreePDF als Standard Drucker anlegen
Äquivalent funktioniert das Programm PDF24
VM schrumpfen – Tipps und Tricks¶
Die virtuellen dynamischen Festplattendateien werden im Laufe des Betriebes immer größer, nie kleiner, auch wenn man Dateien löscht. Zum Verkleinern muss man vierschrittig vorgehen:
- Alles überflüssige in der VM löschen
- Unbenutzte Festplattenbereiche in der VM nullen
- Mit dem Tool VBoxManage die .vdi-Festplattendatei kompakter machen
- Die kompakte Festplattendatei als neuen base-Snapshot setzen
Windows XP kompakter machen¶
Vorgehensweise (am Beispiel einer virtuellen Maschine mit Namen „winxp“):
Die leoclient-VM booten und
sdelete
undCCleaner
in der VM installieren:- download →
sdelete
(Microsoft-Tool), kopieren nachC:\Windows
- download →
CCleaner
von heise.de
- download →
Auslagerungsdatei abschalten, reboot der VM und dann die versteckte Datei
C:\pagefile.sys
löschenCCleaner ausführen und alles Wesentliche löschen lassen
Ggf. Defragmentieren von c: (Auswirkung unklar)
In der Windows Eingabeaufforderung ausführen:
sdelete.exe -z c:
(dauert etwas)Auslagerungsdatei wieder anschalten, Herunterfahren der VM
Als linuxadmin im Terminal ausführen und den Anweisungen folgen:
# sudo leoclient2-base-snapshot-renew
Der aktuelle Snapshot
Snapshots/{...}.vdi
wird dadurch zur Basisfestplattewinxp.vdi
„gemerged“ und ist diese danach wieder sehr kein.Als linuxadmin im Terminal ausführen um die Basisfestplatte zu schrinken:
# sudo VBoxManage modifymedium --compact /var/virtual/winxp/winxp.vdi
Nun Basis nochmals neu erstellen, um die kompaktere Festplatte zu zippen und nach
snapshot-store/
zu kopieren:# sudo leoclient2-base-snapshot-renew
Linux-VM kompakter machen¶
Zuerst alles Überflüssige in der laufenden VM löschen, u.a. auch der apt-Cache. Die anschließend beste Vorgehensweise ist das Einbinden der .vdi-Festplatte in ein anderes System, z.B. in ein live-Linux-System, um das „Nullen“ durchzuführen:
- das Tool „zerofree“ nullt die unbenutzten Festplatteninhalte
- auch Swap-Partition nullen per dd-Befehl
- Schließlich die 3 Punkte wie oben bei WinXP durchführen.
- leoclient2-base-snapshot-renew
- vboxmanage modifymedium
- leoclient2-base-snapshot-renew
Das Tool VBoxManage kann nur .vdi-Datein schrinken. Dateien vom Typ .vmdk müssen zuerst in .vdi-Datein umgewandelt werden und danach ge-shrinked werden:
# VBoxManage clonehd disk1.vmdk disk1.vdi --format vdi
# VBoxManage modifyhd --compact disk1.vdi
Virtuelle Maschine direkt starten¶
Das zusätzliche Skript leoclient2-directstart
startet direkt ohne Dialog eine VM.
Vorgehensweise:
Laden Sie das Skript herunter
leoclient2-directstart
Legen Sie das Skript unter
/usr/bin
ab und machen es ausführbar.$ sudo mv leoclient2-directstart /usr/bin/ $ sudo chmod 755 /usr/bin/leoclient2-directstart
Das Skript kann mit folgenden Parameter gestartet werden:
# /usr/bin/leoclient2-directstart -m <VM> [-s <Snapshot>] -r <RAM> m: Name der lokalen VM, zwingend notwendig s: Name des lokalen Snapshots, ohne wird "wie vorgefunden" verwendet r: RAM in MB, zwingend notwendig
Starten Sie das Skript
$ leoclient2-directstart -m winxp -r 1024 -s standard
Hint
Einschränkungen des Skriptes:
- Eine Datei
network.conf
wird von dem Script nicht ausgewertet. - Bei den Berechtigungen wird nur der Snapshot und die primäre Gruppe des Users überprüft.
- Bei Angabe ohne Snapshot, kann “wie vorgefunden” nicht einen gespeicherten Zustand starten.
Zum bequemen Starten kann man einen Desktop-Starter anlegen, z.B. für die VM „winxp“ mit 1024 MB RAM und „standard“-Snapshot:
[Desktop Entry]
Version=1.0
Type=Application
Name=VirtualBox Direktstart
Comment=Starting Snapshots of VirtualBox
Comment[de]=Starten von VirtualBox Snapshots
Exec=/usr/bin/leoclient2-directstart -m winxp -r 1024 -s standard
Icon=leovirtstarter2
Categories=Graphics;Engineering;
Categories=Emulator;System;Application;
Terminal=false
Netzwerkeinstellungen einer VM¶
Die Netzwerkkonfiguration der VM erfolgt durch eine Datei
network.conf
, die zusätzlich im Verzeichnis der VM angelegt werden
muss. Fehlt diese Datei oder treten Fehler bei der Konfiguration auf,
werden beim Snapshot-Start des leovirtstarters2 immer alle
Netzwerkkarten deaktiviert.
Möchte man eine Netzwerkkarte aktivieren, so muss im
Maschinenverzeichnis der VM eine Datei
<MASCHINENPFAD>/network.conf
angelegt werden, die 5 Einträge in
einer Zeile, durch Strichpunkt getrennt, enthält. Diese Konfiguration
gilt dann für alle lokalen Snapshots dieser VM.
- hostname (Name des Linux-Clients auf dem VirtualBox installiert ist)
- vm-nic (1-4)
- mode (none|null|nat|bridged|intnet|hostonly|generic|natnetwork)
- macaddress
- devicename (eth0,eth1,…) oder (auto-unused-nic|auto-used-nic)
Z.B. /var/virtual/winxp/network.conf
# Beispiel einer NAT-Netzwerkkarte
r100-pclehrer;1;nat;080011223344;auto-used-nic
Folgendes typische Netzwereinstellungen können bisher (Version 0.5.4-1, Juli 2015) umgesetzt werden:
- nat - NAT auf die NIC des pädagogischen Netzes (VM kann ins Internet)
- bridged + auto-used-nic - Bridge auf die Karte ins pädagogische Netz
- bridged + auto-unused-nic - Bridge auf eine zweite Karte (nicht ins pädagogische Netz verbunden -> unused)
Mit Hilfe des hostname
kann man z.B. auf verschiedenen Clients
verschiedene MAC-Adressen in der VM für den Bridged-Modus verwenden.
Es gibt insgesamt 4 Möglichkeiten eine network.conf
-Datei
abzulegen: zweimal lokal und zweimal im SERVERDIR
. Für die
Priorität der Möglichkeiten gilt folgende Reihenfolge:
- Ist auf dem Server speziell für einen Snapshot der VM eine eigene
- Datei
<SERVERDIR>/<MACHINENAME>/snapshot-store/<SNAPSHOT>/network.conf
vorhanden, so wird diese benutzt.
- Danach wird die Datei auf dem Server für die VM
<SERVERDIR>/<MACHINENAME>/network.conf
ausgewertet (falls vorhanden). - Anschließend wird die lokale Datei für den Snapshot der VM
<lokaler Maschinenpfad>/network.conf
ausgewertet (falls vorhanden). - Abschließend wird die lokale Datei für die VM
<lokaler Maschinenpfad>/snapshot-store/<SNAPSHOT>/network.conf
- ausgewertet (falls vorhanden).
- Abschließend wird die lokale Datei für die VM
- Ist keine Datei
network.conf
vorhanden, werden alle Netzwerkkarten für die VM deaktiviert.
Fehlersuche - Fehlerbehebung¶
Log-Datei `````
Am Client findet man unter
/tmp/leovirtstarter2.log
die aktuelle log-Datei des
leovirtstarters2
zur Fehlersuche.
Endlosschleife bei leoclient2-base-snapshot-renew
`````````````````````````````````````````````````
Problem: Das
Script leoclient2-base-snapshot-renew
läuft in eine
Endlosschleife, wenn im Verzeichnis <lokaler
Maschinenpfad>/Snapshots/
eine verweiste Snapshot-Datei übrig
bleibt.
Lösung: Die verweiste Snapshot-Datei manuell löschen, dann
leoclient2-base-snapshot-renew
nochmals ausführen.
Snapshot passt nicht zur Basisfestplatte¶
Nach einem leoclient2-base-snapshot-renew
werden bisherige
Snapshots unbrauchbar und sollten auch nicht mehr verwendet
werden. Der Snapshotname wird dabei auch geändert. In der Datei
<Maschinennamen>.vbox
wird der aktuell gültige Snapshotnamen
{…}.vdi
aufgeführt.
Problem: Unter <Maschinenpfad>/Snapshots
liegt ein alter Snapshot, der Name passt nicht. VirtualBox startet deshalb nicht.
Lösung: Den Snapshot in <Maschinenpfad>/Snapshots
manuell löschen
und dann einen Snapshot mit dem aktuellen Namen aus
<Maschinenpfad>/snapshot-store/standard/
in das Verzeichnis
<Maschinenpfad>/Snapshots
kopieren.
network.conf
für lokalen Snapshot bereitstellen¶
Problem: Aktuell wertet der leovirtstarter2
eine network.conf
im Verzeichnis des lokalen Snapshots nicht aus. (leoclient2-Version:
0.5.4-1)
Lösung: Wenn man jedoch eine network.conf
im remote-Pfad des
Snapshots ablegt, wird diese ausgewertet. Weitere Dateien müssen im
remote-Pfad nicht vorhanden sein. Der remote-Pfad muss nicht zwingend
remote liegen! Z.B. mit den voreingestellten Standard-Pfaden des
Snapshots „physik“:
- lokaler Snapshot-Pfad:
/var/virtual/winxp1/snapshot-store/physik/...
- ergibt
network.conf
-Pfad:/media/leoclient2-vm/winxp1/snapshot-store/physik/network.conf
leovirtstarter2
zeigt “wie vorgefunden” nicht an¶
Problem: Im Auswahlmenü wird „wie vorgefunden“ nicht angezeigt oder kann nicht gestartet werden.
Ursache 1: Die VM wurde nicht ausgeschaltet sondern befindet sich in
einem gespeicherten Zustand. Im Verzeichnis .../Snapshots
befindet
sich eine *.sav
-Datei.
Lösung 1: Den „Standard“-Snapshot starten oder die Maschine direkt mit VirtualBox starten und dann herunterfahren.
Ursache 2: Im Verzeichnis Maschinenpfad>/Snapshots/
befinden sich
überflüssige Dateien.
Lösung 2: Alle Dateien löschen bis auf den aktuellen Snapshot:
{...}.vdi
. Der Name/die UUID des aktuellen Snapshots kann man
(falls unklar) aus der <Maschinenname>.vbox
-Datei ermitteln.
Hintergrundinformationen¶
Virtuelle Maschine erzeugen¶
Beim Anlegen einer virtuellen Maschine mit leoclient2-init
wird
der Pfad zur Maschine in
/etc/leoclient2/machines/MASCHINENNAME.conf
gespeichert.
Nach Beenden von Virtualbox werden folgende Aktionen vom Script ausgeführt:
- Ein Snapshot wird erzeugt (in
/PFAD/MASCHINENNAME/Snapshot/
) und dieser als Standard-Snapshot nachPFAD/MASCHINENNAME/snapshot-store/standard/
gesichert. - Außerdem werden die Konfigurationsdateien (compreg.dat,
VirtualBox.xml, xpti.dat und MASCHINENNAME.vbox) gesichert nach
/PFAD/MASCHINENNAME/defaults/
. - Abschließend werden alle Dateirechte für den Einsatz gesetzt
(z.B.
/PFAD/MASCHINENNAME/MASCHINENNAME.vdi
nur lesbar, da diese Datei nicht verändert werden darf)
Jede VM ist vollständig in ihrem Maschinenverzeichnis gespeichert.
Serverbasierte VM kopieren, lokaler cache¶
Die auf dem Server liegenden gezippten Basisimages und Snapshots
werden (falls lokal nicht vorhanden oder verändert) beim Start in den
lokalen cache kopiert und dann lokal an die Stelle entpackt, wo sie
genutzt werden. Der Cache hat eine maximale Größe, die in
SERVERDIR/caches.conf
definiert wird. Es empfielt sich dafür ein
lokales Datenlaufwerk zu verwenden. Falls das nicht vorhanden ist, ein
Verzeichnis auf der Partition mit den virtuellen Maschinen.
Virtuelle Maschine starten¶
VirtualBox startet mit der Umgebungsvariablen VBOX_USER_HOME
($
export VBOX_USER_HOME=/PFAD/MASCHINENNAME
) und mit der Einstellung
für den Standardort für die VM für Virtualbox ($ VBoxManage
setproperty machinefolder /PFAD/MASCHINENNAME
). Mit diesen
Anpassungen und anschließendem Starten von Virtualbox ($
VirtualBox
) kann eine VM auch von Hand gestartet werden.
Damit leovirtstarter2
eine lokale Maschine findet, muss in
/etc/leoclient2/machines/MASCHINENNAME.conf
ihr Pfad eingetragen
sein. (leoclient2-init erzeugt diese Datei automatisch). Der
Standard-Pfad für die lokalen VM ist dabei /var/virtual/
.
Außer den lokal vorhandenen Maschinen wird auch in allen in
SERVERDIR
konfigurierten Pfaden nach Maschinen gesucht. (Der Pfad
MUSS NICHT remote liegen, allerdings geht leovirtstarter2
davon
aus und holt diese Maschinen in gezippter Form
(Netzwerk-Bandbreitenschonend) zu den lokalen Maschinen und startet
Sie dort). Der Standard-Pfad für die remote VM ist dabei
/media/leoclient2-vm
.
Auflisten kann man alle sichtbaren VM’s mit:
$ leovirtstarter2 -i
$ leovirtstarter2 --info
Wird mit dem leovirtstarter2
ein Snapshot einer VM zum Starten
ausgewählt, wird folgendes abgearbeitet:
- Kopieren der Standard-Konfigurationsdateien aus
/PFAD/MASCHINENNAME/defaults/
nach/PFAD/MASCHINENNAME/
- Anpassen folgender Angaben:
- Shared Folder verbinden ins Heimatverzeichnis des angemeldeten Benutzers
- Netzwerkeinstellungen (verschiedene Möglichkeiten stehen zur Verfügung)
- Starten der Maschine
Gibt es die Maschine auch Remote, können zusätzlich folgende Dinge erfolgen:
- Snapshots wird gegebenenfalls vom Server in den lokalen Cache kopiert.
- Reparatur des Basisimages, falls notwendig
- Update der lokalen VM durch die Remote-VM, falls verschieden.
- Der Snapshot wird aus dem Cache bzw. aus
/PFAD/MASCHINENNAME/snapshot-store/default/
nach/PFAD/MASCHINENNAME/Snapshots/{…}.vdi
entzippt
Berechtigungen zum Starten einer VM bzw. eines Snapshots¶
An welchen Rechnern (Hosts) welcher User eine VM starten darf wird in /PFAD/MASCHINENNAME/image.conf
konfiguriert.
Es werden USER, GROUP, HOST, ROOM gelistet, die Zugriff erhalten sollen (Positivliste). Wenn nichts konfiguriert wird, haben alle User von allen Hosts Zugriff. Es gibt 2 Arten des Zugriffs:
USER-LEVEL Zugriff:
Zeile mit user=user1,user2 für den Zugriff eines Users Zeile mit group=group1,group2 für den Zugriff eines in der primären/sekundären Gruppe group1,group2 befindlichen Users (z.B. teachers)
HOST-LEVEL Zugriff:
Zeile mit host=host1,host2 für den Zugriff eines Hosts Zeile mit room=raum1,raum2 für den Zugriff eines in der primären Gruppe raum1,raum2 befindlichen Hosts
Um eine Maschine starten zu können, müssen BEIDE Level erfüllt sein (logische UND-Verknüpfung): Der User muss auf die VM zugreifen dürfen UND der Host muss die VM starten dürfen. Die Dateirechte der VM- bzw. Snapshot-Verzeichnisse müssen so eingestellt sein (z.B. Zugriff für alle), das die Konfigurierten USER, GROUP, HOST, ROOM Zugriff auf die VM/den Snapshot besitzen.
Beispieldatei image.conf
# Berechtigugen eine VM zu starten.
group=teachers
host=
room=lehrerzimmer
Hinweis: Die Berechtigung für einen einzelnen Snapshot wird nur dann korrekt ausgewertet, wenn beim HOST-LEVEL beide Optionen host und room auftauchen. Fehlt z.B. die „room“-Option ist jeder Raum und damit auch jeder Host zugelassen!
Stand Version 0.5.4-1 Juli 2015: Die Gruppen- und User-Beschränkung auf VM-Ebene wird z.Z. nicht korrekt ausgelesen → ‘group’ und ‘user’ damit ohne Funktion
Datenstruktur einer VM¶
Virtualbox-Dateien
In der obersten Verzeichnisebene im Verzeichnis der VM verwaltet VirtualBox die aktuell verwendete Maschine:
- Die Basisdatei ist
MASCHINENNAME.vdi
, sie enthält den Basis-Zustand der Festplatte und ist meist mehrere GB groß - Konfigurationsdateien
- Logdateien
- usw. …
- Im Unterverzeichnis
Snapshots
verwaltet VirtualBox den aktuell verwendeten Snapshot {*}.vdi.
leoclient2-Dateien
MASCHINENNAME.conf
beinhaltet den Pfad in dem die VM erstellt wurde. Dorthin wird sie im Fall einer remoten Maschine auch wieder entpackt (funktioniert nur in diesem Pfad)network.conf
ist optional. Konfiguriert die Netzwerkkarten der Virtuellen Maschine (falls keine network.conf speziell für den Snapshot exisiert)image.conf
ist optional.- Das Unterverzeichnis
snapshot-store
enthält in Unterverzeichnissen weitere Snapshots. (Bei einer lokalen VM ist meist nur das Verzeichnis standard vorhanden): {*}.vdi
ist die Snapshot-Datei.{*}.vdi.zip
ist die gezippte Snapshot-Datei (nur etwa 1/3 so groß wie{*}.vdi)
.filesize.vdi
ist eine Textdatei und enthält die Größe von{*}.vdi
.filesize.vdi.zipped
ist eine Textdatei und enthält die Größe von{*}.vdi.zip
.network.conf
ist optional. Konfiguriert die Netzwerkkarten für diesen Snapshot.- Das Unterverzeichnis
defaults
enthält ein Backup der Konfigurationsdateien. Vor dem Start der Maschine kann mit diesen Dateien die Maschine zurückgesetzt werden (Kopieren auf eine Verzeichnisebene höher).
Übersicht der Scripte/Befehle zum leoclient2¶
- leoclient2-init:
- legt eine neue lokale VM an
- leovirtstarter2
startet das grafische Auswahlfenster und anschließend die VM mit Optionen
--info listet alle VMs auf der Konsole auf --vbox startet das grafische Auswahlfenster und VirtualBox ohne die VM zu starten -h Hilfe anzeigen --local-snapshots nur lokale Snapshots listen --ignore-virtualbox startet den leovirtstarter auch wenn gerade VirtualBox ausgeführt wird --serverdir <abs path> verwendet anderen Pfad statt SERVERDIR zu den remote VMs
- leoclient2-base-snapshot-renew
- Erstellt eine neue Basisfestplatte mit dem aktuellen Snapshot der zur bisherigen Basisfestplatte ge-„merged“ wird. Der „Aktuelle Zustand“ wird somit gesichert/festgeschrieben.
- leoclient2-vm-move
- Importiert eine VM (z.B. vom externen Speichermedium) oder verschiebt ein VM
- VBoxManage
- mit vielen Optionen Konsolen-Tool zum Bearbeiten von VMs
Entwicklungsdokumentation des leoclient2¶
siehe http://www.linuxmuster.net/wiki/entwicklung:linuxclient:leoclient2
Using LINBO¶
LINBO is short for GNU/Linux Network Boot. It was developed in collaboration of KNOPPER.NET and the former developers of the “paedML Linux” and todays developers of linuxmuster.net. The source code is released under GNU General Public License Version 2.
LINBO features
- fully automated roll-out of client-installations over the network
- administration of multiple operating systems on a client (including multiboot)
- automated repair of the operating systems within minutes (self-healing workstation)
- configurable autostart
- graphical user interface on the client for easy handling by users and administrators
- complete integration into linuxmuster.net
The LINBO home screen¶
If the workstation computer (client PC) is booted via the network, LINBO starts and displays the following screen if the PC has not yet been recorded / registered.

Linbo Startup screen of a non-registered client
Once the client is registered, the Start screen will display more options.

Linbo start screen of a registered client
Information¶
The upper part of LINBO displays information about the client.
- Host
- The specified hostname or “pxeclient” if the client is not registered.
- Group
- The specified group / hardware class
- IP, MAC
- The specified network addresses or “OFFLINE” if the client was started without a network connection to the server.
- HD, CPU, RAM
- Displays the corresponding hardware installed on the client: disk size, processor and main memory information.
- Cache
- Displays the free/total partition size of the cache partition.
In addition to the (probably) current time on the client, the status and feedback messages of the individual actions are displayed in a scrollable text field in the lower part of the screen, which can provide information during troubleshooting.
Start tab¶
For each fixed partition (with or without an operating system) a big button and four smaller buttons with the following meanings appear in the Start tab.

Sync+Start button

Start button

New+Start button

Information

Standard Button Ubuntu

Standard Button Windows
Note
The individual buttons for the start mechanisms can be greyed out if the administrator has deactivated the respective mechanism.
imaging tab¶
Here you can manage the images. The area is protected with the password of “LINBO”.

Attention
When entering the LINBO password, no characters are displayed, neither the password itself nor stars.
LINBO image management at the client¶
The “Imaging” tab provides the administrator with new functions.

For each defined operating system there are buttons for the following functions

Create image

Upload Image
There are also buttons for the following administrative functions

Console

Update cache

partitioning

registration
In addition, a timeout runs down in a small window, which can be turned off. You can also use the LOGOUT button to return to the start screen.
Dialog: Create Image¶

The current name of the image is available for selection. The current image will then be overwritten when it is created. When uploading the current image with the same name, a backup of the previous image is created on the server.
If a new filename is chosen, you can write information about the new image.
Warning
If you assign a new file name, you should make sure that the cache partition has enough space, as the old image is also stored in the cache. If there is not enough space, the creation of the image fails.
If “Differential image” is selected, then the new file name applies to the differential image to be created (with the file extension’. rsync’).
There are two options to complete the Create or Create+Upload action, which allow you to restart or shut down your computer.
Dialog: Upload Image¶

As with the Create Image dialog, only a selected image can be uploaded and the computer can be restarted or shut down.
Dialog: Console¶

The simple console dialog allows you to enter individual commands in the lower row. The output of the executed command appears in the upper window.
Dialog: Update Cache¶

The cache is updated. There are three synchronization options: Rsync, Multicast or Bittorrent.
Dialog: Partitioning¶
You will be asked again if you really want to delete all data on the hard disk. After that you can also copy the images from the server with “Update cache”.
Dialog: Register¶

With this dialog you can register a first time user computer. All input fields must be filled in according to the allocation procedure.
Boot screens in LINBO¶
When booting in LINBO, the following screens are visible:
- Network boot process

Initial messages during boot process via network (PXE)
- Regardless of whether you have booted from the local hard disk or after booting via network card (PXE), the kernel is loaded with the group configuration.

Boot screen: loading the kernel
- The booted LINBO kernel appears as an ASCII-art.

LINBO-Kernelboot ASCII-art
- The Grub configuration is updated.

LINBO-Grub Installation
This is followed by the regular LINBO Startbildschirm.
Boot image for USB sticks and CD/DVD¶
For burning on CD/DVD or copying to a USB stick you can use the following address
https://server/linbo.iso download the current LINBO and copy it to a USB stick or CD/DVD.
It may be necessary to boot a computer with a Linbo-Stick/Linbo-CD/CVD if - in rare cases - Linbo is not installed via PXE.
If you boot a computer from the stick, or from a CD/DVD, you will see the following picture:

With Enter
the client is booted

With the selection First setup + restart
Linbo is set up and the computer is started with Linbo. After a restart, all Linbo functions are available (picture below).
Selecting Debug Mode
will boot to the console in text mode only.

Linux-Client - Anpassungen mit Postsync-Scripten¶
Linux-Clients können in linuxmuster.net mithilfe sog. Postsync-Scripte an besondere Nutzungssituationen sehr variabel angepasst werden.
Nach erfolgreicher Synchronisation mit dem Client-Image, das auf dem Server liegt (sog. Cloop), werden weitere Scripte auf dem Client ausgeführt. Es können so z.B. bestimmte Dateien vom Server auf den Client gespielt werden, oder z.B. auf dem Lehrer-PC spezifische Anpassungen vorgenommen werden, die die anderen Schüler-PCs nicht erhalten.
Inhalt:
Funktionsweise und Grundlagen der Postsync-Scripte¶
Allgemeines
Nachdem der Linux-Client mit Linbo seinen lokalen Cache mit dem Cloop auf dem Server synchronisiert hat, wird ein vorhandenes Postsync-Script angewendet, das für ein sog. Cloop (also ein Client-Image) auf dem Server vorhanden ist. Wird ein sog. universelles Postsync-Script erstellt, so können sog. Patches – also spezifische Anpassungen – für die Patchklasse, den Raum und ggf. einzelne Rechner angewendet werden.
Nach der Synchronisation werden die Clients durch das Script vollständig auf deren Einsatzumgebung angepasst wird. Hierdurch können z.B. spezielle Anpassungen für Lehrer – PCs in einzelnen Räumen, oder für alle zu nutzenden Drucker bereitgestellt werden.
Wo liegt das Postsync-Script ?
Das Postsync-Script liegt im Verzeichnis:
/var/linbo/<LinuxImagename>.cloop.postsync
Es weist folgende Rechte auf:
-rw-rw---- 1 root root
Attention
Dieses Script wird also auf das jeweilige Cloop angewendet.
Patchklassen für Postsync-Scripte¶
Wo müssen die Anpassungen (Patches) abgelegt werden ?
Unter
/var/linbo/linuxmuster-client/
Dort finden sich weitere Unterverzeichnisse. Diese stellen die sog. Patchklasse dar. Wird also z.B. der Linuxmuster-Client 14.04 (trusty = Name der Patchklasse) verwendet, so sind alle weiteren Patches für 14.04er-Clients in diesem Verzeichnis abzulegen.
Die Anpassungen finden sich also unter:
/var/linbo/linuxmuster-client/trusty/
Bei Linuxmuster-Clients 16.04 (Xenial) wäre dies z.B. das Verzeichnis:
/var/linbo/linuxmuster-client/xenial/
Diese Patches werden nach folgendem Schema angewendet:
im Unterverzeichnis .../common liegende Patches erhalten alle Rechner
im Unterverzeichnis .../r100 liegende Patches erhalten nur die Rechner in Raum r100
im Unterverzeichnis .../r100-pc01 liegende Patches erhält nur der PC01 in Raum r100 die Dateien.
Unterhalb dieser Verzeichnisse sind alle Anpassungen so abzulegen, wie diese dann auf den betreffenden Clients angewendet werden sollen - bsp.:
.../common/etc/cups/cups.conf
Auf diese Weise würde die Datei cups.conf im Verzeichnis /etc/cups auf allen Clients der Patchklasse angepasst werden.
In der Patchklasse xenial würde eine Änderung der Datei rc.local auf allen Rechnern in folgendem Verzeichnis abgelegt:
/var/linbo/linuxmuster-client/xenial/common/etc/rc.local
Um auf dem Server obige Verzeichnisstruktur zu erhalten, ist auf dem linuxmuster.net Server das Paket linuxmuster-client-servertools zu installieren.
Hierzu ist folgender Befehl anzuwenden:
sudo apt-get install linuxmuster-client-servertools
Dieses Paket liefert ein sog. universelles Postsync-Script mit, das weiter angepasst und auf die Cloops angewendet werden kann.
Dieses Script ist zur Anwendung auf ein Cloop entsprechend zu kopieren nach:
/var/linbo/<LinuxImagename>.cloop.postsync
Die Vorlage des universellen Postsync-Scriptes liegt in folgendem Verzeichnis:
/usr/lib/linuxmuster-client-servertools/generic.postsync
Dieses Script ist so aufgebaut, dass auch noch weitere Scripte ausgeführt werden (z.B. solche, die nur in Raum r100 ausgeführt werden sollen). Scripte, die abgearbeitet werden sollen, müssen in dem jeweiligen Unterverzeichnis postsync.d liegen.
Sollen Scripte für die Patchklasse xenial und dann nur auf PCs im Raum r100 angewendet werden, so müssen die Scripte in folgendem Verzeichnis liegen:
/var/linbo/linuxmuster-client/xenial/r100/postsync.d/
Die Skripte müssen Sh-Scripte sein, da Linbo keine BASH als Shell kennt.
In diesen Scripten ist der Shebang
#!/bin/sh
voranzustellen.
Beipiele für solche Scripte finden sich im Verzeichnis
/usr/lib/linuxmuster-client-servertools/generic.postsync/generic.postsync.d/
Es finden sich folgende Skripte als Beispielvorlagen:
-rw-r--r-- 1 root root 269 Nov 21 2016 00-lcst-fix-initrd
-rw-r--r-- 1 root root 540 Nov 21 2016 01-lcst-setlocalpasswords
-rw-r--r-- 1 root root 232 Nov 21 2016 02-lcst-patch-sshd-config
-rw-r--r-- 1 root root 673 Nov 21 2016 03-lcst-fix-fstab
-rw-r--r-- 1 root root 564 Nov 21 2016 04-lcst-generate-hosts
Diese können für die gewünschte Patchklasse in das jeweilige Verzeichnis kopiert und angepasst werden. Diese Scripte werden entsprechend ihrer lexikalischen Reihenfolge ausgeführt, also hier beginnend mit der niedrigsten Ziffer.
Nachstehende Abbildungen verdeutlichen diesen Aufbau:

Das allgemeine Postsync-Script arbeitet nach folgendem Schema:

Beispiel
Nachstehender Verzeichnisbaum verdeutlicht, dass für Linuxmuster-Clients für alle PCs der Patchklasse xenial alles unterhalb von ./common angewendet wird. Zudem wird für den raum1 alles unterhalb von ./raum1 angewendet und schließlich wird für den Lehrer-PC in raum1 alles unterhalb von ./raum1-lehrer-pc angewendet.
19:06/0 server /var/linbo/linuxmuster-client/xenial # ls -ld $(find .)
drwxr-xr-x 7 root root 4096 Nov 20 10:25 .
drwxr-xr-x 3 root root 4096 Apr 22 2016 ./common
drwxr-xr-x 3 root root 4096 Mär 17 12:54 ./common/etc
drwxrwxr-x 2 root root 4096 Mai 9 2016 ./common/etc/cups
-rw-r--r-- 1 root root 21 Mai 9 2016 ./common/etc/cups/client.conf
-rw-r--r-- 1 root root 797 Mär 31 09:16 ./common/etc/fstab
-rw-r--r-- 1 root root 443 Mai 9 2016 ./common/etc/hosts
drwxr-xr-x 4 root root 4096 Mär 26 2015 ./raum1
drwxr-xr-x 7 root root 4096 Nov 20 10:10 ./raum1/etc
drwxr-xr-x 2 root root 4096 Apr 14 10:38 ./raum1/etc/cups
-rw------- 1 root root 3588 Apr 14 10:40 ./raum1/etc/cups/printers.conf
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1/etc/default
-rw-r--r-- 1 root root 369 Nov 5 2011 ./raum1/etc/default/epoptes
-rw-r--r-- 1 root root 668 Nov 20 10:01 ./raum1/etc/default/epoptes-client
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1/etc/epoptes
-rw-r--r-- 1 root root 875 Mär 26 2015 ./raum1/etc/epoptes/server.crt
-rw------- 1 root root 916 Mär 26 2015 ./raum1/etc/epoptes/server.key
-rw-r--r-- 1 root root 984 Nov 20 10:18 ./raum1/etc/hosts
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1/etc/init.d
-rwxr-xr-x 1 root root 1645 Apr 8 2012 ./raum1/etc/init.d/epoptes
-rwxr-xr-x 1 root root 1124 Apr 8 2012 ./raum1/etc/init.d/epoptes-client
drwxr-xr-x 3 root root 4096 Mär 26 2015 ./raum1/etc/xdg
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1/etc/xdg/autostart
-rw-r--r-- 1 root root 428 Nov 20 10:45 ./raum1/etc/xdg/autostart/epoptes-client.desktop
drwxr-xr-x 5 root root 4096 Jan 22 18:23 ./raum1-lehrer-pc
drwxr-xr-x 7 root root 4096 Nov 20 10:10 ./raum1-lehrer-pc/etc
drwxr-xr-x 2 root root 4096 Okt 23 2014 ./raum1-lehrer-pc/etc/cups
-rw------- 1 root root 3588 Apr 14 10:40 ./raum1-lehrer-pc/etc/cups/printers.conf
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1-lehrer-pc/etc/default
-rw-r--r-- 1 root root 370 Nov 20 10:14 ./raum1-lehrer-pc/etc/default/epoptes
-rw-r--r-- 1 root root 0 Nov 20 10:21 ./raum1-lehrer-pc/etc/default/epoptes-client
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1-lehrer-pc/etc/epoptes
-rw-r--r-- 1 root root 875 Mär 26 2015 ./raum1-lehrer-pc/etc/epoptes/server.crt
-rw-r--r-- 1 root root 916 Mär 26 2015 ./raum1-lehrer-pc/etc/epoptes/server.key
-rw-r--r-- 1 root root 983 Nov 20 10:17 ./raum1-lehrer-pc/etc/hosts
drwxr-xr-x 2 root root 4096 Mär 26 2015 ./raum1-lehrer-pc/etc/init.d
-rwxr-xr-x 1 root root 1645 Apr 8 2012 ./raum1-lehrer-pc/etc/init.d/epoptes
-rwxr-xr-x 1 root root 0 Nov 20 10:22 ./raum1-lehrer-pc/etc/init.d/epoptes-client
Universelles Postsync-Script
Das universelle Postsync-Script weist derzeit folgenden Inhalt auf:
echo "##### POSTSYNC BEGIN #####"
LOG=/mnt/var/log/postsync.log
echo "##### POSTSYNC BEGIN #####" > $LOG
NOW=$(date +%Y%m%d-%H%M)
echo $NOW | tee -a $LOG
# IP-Adresse des Servers
SERVERIP=$(nslookup dummy 2> /dev/null | head -n 1 | awk -F: '{print $2}' | sed "s/\s*//g")
# Die Hostgruppe des aktuellen Rechners
HOSTGROUP=$(hostgroup)
# Raum feststellen. Dieses Skript geht davon aus
# dass die Rechner Namen der Form
# raumname-hostname haben, also z.B. cr01-pc18
RAUM=${HOSTNAME%%-*}
# wenn der string leer ist, raum auf unknown setzen
if [ "x${RAUM}" == "x" ]; then
RAUM="unknown"
fi
# UVZ für die Patches auf dem Server. Mit dieser Variablen
# kann man verschiedene Patches, z.B. für unterschiedliche
# Linux-Versionen bereitstellen.
# Wenn man hier $HOSTGROUP einträgt, erhält jede Rechnerklasse
# ein eigenes Patchklassenverzeichnis auf dem Server.
# Damit kann man verschiedene Patchklassen mit derselben cloop-Datei
# bedienen, wenn man das benötigt.
PATCHCLASS="trusty"
# Das Verzeichnis, in dem die Serverpatches
# im lokalen Clientcache synchronisiert werden.
PATCHCACHE=/linuxmuster-client/serverpatches
echo "" | tee -a $LOG
echo "Hostname: ${HOSTNAME}" | tee -a $LOG
echo "Raum: ${RAUM}" | tee -a $LOG
echo "Patchcache: ${PATCHCACHE}" | tee -a $LOG
echo "Hostgruppe: ${HOSTGROUP}" | tee -a $LOG
echo "Patchclass: ${PATCHCLASS}" | tee -a $LOG
echo "" | tee -a $LOG
# -----------------------------------------
# Patchdateien auf das lokale Image rsyncen
# -----------------------------------------
echo " - getting patchfiles" | tee -a $LOG
# RAUM -> Raumname
# HOSTNAME -> Rechnername
# Verzeichnis anlegen, damit es sicher existiert
mkdir -p /cache/${PATCHCACHE}
rsync --delete --progress -r "${SERVERIP}::linbo/linuxmuster-client/${PATCHCLASS}" "/cache/${PATCHCACHE}" | tee -a $LOG
echo " - patching local files" | tee -a $LOG
# common: Bekommen alle clients der Patchklasse
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common ]; then
echo " - patching common to /mnt" | tee -a $LOG
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/common/* /mnt/ | tee -a $LOG
fi
# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common/tarpacks ]; then
echo " - unpacking tarpacks from common/tarpacks to /mnt" | tee -a $LOG
for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/common/tarpacks/*; do
echo " - unpacking: $pack" | tee -a $LOG
tar xvzf $pack -C /mnt | tee -a $LOG
done
fi
# Raum: Nur die Clients des Raums
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM} ]; then
echo " - patching ${RAUM} to /mnt" | tee -a $LOG
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/* /mnt/ | tee -a $LOG
fi
# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/tarpacks ]; then
echo " - unpacking tarpacks from ${RAUM}/tarpacks to /mnt" | tee -a $LOG
for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/tarpacks/*; do
echo " - unpacking: $pack" | tee -a $LOG
tar xvzf $pack -C /mnt | tee -a $LOG
done
fi
# Host: Nur der Rechner
# files
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME} ]; then
echo " - patching ${HOSTNAME} to /mnt" | tee -a $LOG
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/* /mnt/ | tee -a $LOG
fi
# tarpacks
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/tarpacks ]; then
echo " - unpacking tarpacks from ${HOSTNAME}/tarpacks to /mnt" | tee -a $LOG
for pack in /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/tarpacks/*; do
echo " - unpacking: $pack" | tee -a $LOG
tar xvzf $pack -C /mnt | tee -a $LOG
done
fi
# Hook, um eigene Skripte auszuführen
if [ -d /mnt/postsync.d ]; then
for SCRIPT in /mnt/postsync.d/*
do
chmod 755 $SCRIPT
echo "Executing: $SCRIPT" | tee -a $LOG
#$SCRIPT > /dev/null 2>&1
$SCRIPT | tee -a $LOG
echo " ...done." | tee -a $LOG
done
rm -rf /mnt/postsync.d
# wenn es /mnt/tarpacks gibt - löschen
rm -rf /mnt/tarpacks
# hostname in /etc/hosts patchen
sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts
# Zeitstempel letzter sync hinterlegen
echo $NOW > /mnt/lastsync
echo "##### POSTSYNC END #####" | tee -a $LOG
Aktualisierungen für dieses Script finden sich unter:
Troubleshooting¶
What troubleshooting options are there?
Vom linuxmuster.net Server aus kann man sich auf dem Client mithilfe von linbo-ssh anmelden und dort z.B. den Synchronisationsvorgang aktivieren. Es lassen sich so dann die Postsync-Ausgaben / Fehlermeldungen auf dem Client einsehen.
The Postsync script writes a LOG file, which is stored on the client under
/mnt/var/log/postsync.log.
On the linuxmuster.net server you have to specify the following to start the client, synchronize it and then go to the Linbo screen to see the log file:
linbo-remote -i <IP-Adresse des Clients> -b 5 -w 130 -c sync:1
linbo-ssh <client-name / oder IP-Adresse>
less /var/log/postsync.log
Shut down the clients with:
linbo-remote -i <Client-name / IP-Adresse> -c halt
Important
Notes on linbo-remote and linbo-ssh
https://www.linuxmuster.net/wiki/dokumentation:handbuch:linbo:linbo.remote
Benutzer verwalten mit der Schulkonsole¶
Dieses Dokument gibt Schritt-für-Schritt-Anleitungen für die wichtigsten Tätigkeiten, die der Netzwerkbetreuer im Hinblick auf die Benutzer mit der Schulkonsole durchführt.
In der Schulkonsole werden grundlegende Einstellungen vorgenommen, die Benutzerlisten gepflegt und geprüft sowie Benutzer angelegt, versetzt und gelöscht, außerdem die Passwörter und der Plattenplatz (Quotas) für alle Benutzer und Gruppen verwaltet. Nur Passwörter von Schülern/innen sowie Projekte können auch von Personen mit normalen Lehrer-Rechten verwaltet werden.
Benutzergruppen in der linuxmuster.net¶
Wenn man auf Dienste und Dateien des Servers zugreifen möchte, muss man sich mit einem Benutzernamen (Loginname) und einem Kennwort (Passwort) am Server anmelden (authentifizieren). Dabei sollen nicht alle Benutzer am System auf die gleichen Dateien und Drucker zugreifen oder an Dateien die selben Rechte haben können.
Es ist üblich, Benutzer, die gleiche Rechte haben sollen, zu Benutzergruppen zusammenzufassen. In der linuxmuster.net gibt es, angepasst auf Schulbedürfnisse, die folgenden Hauptbenutzergruppen:
- <Klassengruppe> (z.B. 10a, 5a, usw):
- Schüler-Benutzer mit (halb)privatem Datenbereich. Es dürfen keinerlei Systemdateien modifiziert werden.
- teachers:
- Lehrer-Benutzer mit privatem Datenbereich. Es dürfen keine Systemdateien modifiziert werden. Zusätzlich hat der Lehrer Zugriff auf alle Klassentauschverzeichnisse und lesenden Zugriff auf die Schüler-Homeverzeichnisse. Alle Lehrer können über die Schulkonsole pädagogisch notwendige Aufgaben auf dem Server ausführen (z. B. Dateien austeilen, Internetzugang abschalten)
- domadmins:
- Dürfen alle für den reinen Schulbetrieb wichtigen Aufgaben am Server
durchführen, vor allem der Benutzer
administrator
wird dafür verwendet. - root:
- Darf ohne Einschränkung alle Aufgaben am Server durchführen. (u.a. alle Dateien, auch Passwortdateien, einsehen/verändern/löschen)
Konfiguration vor dem ersten Anlegen von Benutzern¶
Nach Installation des Servers sollten Sie vorab einige Konfigurationseinstellungen für Ihre Schule festlegen.
Melden Sie sich an der Schulkonsole durch Eingabe von
https://server:242 in einen Browser als administrator
an. Die
meisten der Festlegungen können in der Schulkonsole im Menü unter
Einstellungen -> Benutzerverwaltung gemacht werden.
Lesen Sie die Bedienungsanleitung unter Benutzerverwaltung, um folgende Einstellungen vorzunehmen:
- Legen Sie fest, ob die Passwortgüte überprüft wird und welche minimale Länge gefordert werden soll.
- Stellen Sie die momentan zulässigen Geburtsjahreszahlen für Schüler ein.
- Entscheiden Sie, ob Sie Speicherplatzkontingente (Quota) festlegen wollen und legen Sie die Menge fest. Beachten Sie, dass ein Benutzer höhere Quota von einer Gruppe erbt, der er angehört.
- Entscheiden Sie die Zusammensetzung der internen E-Mail-Adressen, falls Sie diese Funktion an der Schule verwenden wollen. Stellen Sie ebenso die Schwelle für Warnungen bei Plattenplatzmangel für E-Mails ein.
- Stellen Sie ein, ob und wieviel Zeichen die Zufallspasswörter für Schüler und Lehrer bekommen.
- Legen Sie fest, ob Lehrer oder Schüler ein Terminal auf einem Linux-Client öffnen können darf.
- Legen Sie einige Daten fest, die beim Ausdruck von Passwortinformationen für Benutzer verwendet werden.
Anlegen, Versetzen und Löschen von Benutzern¶
Um Benutzer neu aufzunehmen, zu versetzen oder zu löschen müssen die folgenden Schritte nacheinander ausgeführt werden:
- Schüler und Lehrerliste aus dem Schulverwaltungsprogramm exportieren.
- Die Benutzerlisten auf dem Server aktualisieren. Dazu gehört im Einzelnen:
- die Schülerliste in das System übertragen,
- die Änderungen bei den Lehrern einzeln eingeben,
- evtl. eine Extraliste für Gast- und Kooperationsschüler, die nicht in das Schulverwaltungsprogramm aufgenommen werden, pflegen,
- evtl. eine Extraliste für Kurse mit schulfremden Teilnehmern pflegen.
- Alle Benutzerlisten auf Fehleingaben, oder Ähnlichkeiten mit vorhandenen Benutzern prüfen.
- Danach evtl. die Benutzerlisten entsprechend korrigieren.
- Benutzerdaten übernehmen, d.h. Benutzer jetzt tatsächlich anlegen, versetzen oder löschen
- Passwortlisten bzw. Anmeldekärtchen ausdrucken
Änderung von Benutzerdaten¶
Sind Sie an der Schulkonsole als administrator angemeldet, erhalten Sie unter der Rubrik Benutzer die folgenden Menüpunkte, in der schwebenden Hilfe erhalten Sie eine Übersicht mit einer kurzen Beschreibung der Vorgehensweise zum Anlegen, Versetzen und Löschen von Benutzern:

Diese Vorgänge zum Aufnehmen, Versetzen und Löschen von Benutzern können beliebig oft im Verlauf eines Schuljahres durchgeführt werden.

Export von Schüler- und Lehrerliste aus dem Schulverwaltungsprogramm¶
Die meisten Schulverwaltungsprogramme bieten die Möglichkeit, eine Schüler- und eine Lehrerliste für die linuxmuster.net zu exportieren. Dabei werden die Daten mit dem benötigten Datensatzformat untereinander in eine Textdatei geschrieben. Für die Schülerliste gilt folgendes Format:
Klasse;Nachname;Vorname;Geburtsdatum;Nr;
Dabei ist das letzte Feld optional. Es enthält die im Schulverwaltungsprogramm eindeutig vergebene Schülernummer. Ist sie vorhanden, sollte man sie unbedingt mit übernehmen, das sie die Identifikation des richtigen Datensatzes bei Versetzungen, Namensänderungen usw. erheblich erleichtert. Falls die Nummer nicht vorhanden ist, besteht jede Zeile nur aus den 4 Feldern
Klasse;Nachname;Vorname;Geburtsdatum;
Auch wenn Ihr Schulverwaltungsprogramm keine direkte Ausgabe für die Musterlösung vorsieht, können die Daten meist unter Angabe der benötigten Felder und mit dem Semikolon als Trennzeichen exportiert werden.
Wichtig ist noch, die Kodierung zu wissen, da man diese in der Schulkonsole unter Schulkonsole vor dem ersten Import einstellen muss. [1]
Pflege der Schülerdatei¶

Die Datei aus dem Schulverwaltungsprogramm können Sie mittels Durchsuchen auswählen und dann mittels Hochladen auf den Server kopieren. Sie wird automatisch umbenannt und liegt dann als Datei schueler.txt
im Verzeichnis /etc/sophomorix/user
. Dort befinden sich alle Benutzer- und Konfigurationsdateien von Sophomorix.
Im Abschnitt Editieren können Sie zwar die Datei schueler.txt editieren und anschließend Änderungen übernehmen anklicken, davon sollten Sie jedoch nur in Ausnahmefällen Gebrauch machen, da mit dem Einspielen einer neuen Datei aus dem Schulverwaltungsprogramm Ihre Änderungen wieder überschrieben werden.
Wenn Daten korrigiert werden müssen, geben Sie Rückmeldung an das Sekretariat z.B. mit Hilfe des Report für das Sekretariat, damit die Daten dort korrigiert werden. Spielen Sie die geänderte Datei dann neu ein.
Wollen Sie zusätzliche Schüler eingeben, die nicht in das Schulverwaltungsprogramm aufgenommen werden, so verwenden Sie dazu die Datei extraschueler.txt
, die Sie über Extralisten pflegen editieren können.
Pflege der Lehrerdatei¶
Für die Lehrer besteht die Möglichkeit einen Wunsch-Login-Namen anzugeben. Der Datensatz aus dem Schulverwaltungsprogramm wird also um ein Feld ergänzt. Der Klassenname ist für alle Lehrer lehrer, somit ist das Format der Datei lehrer.txt
:
lehrer;Nachname;Vorname;Geburtsdatum;Wunschlogin;
Außerdem werden von Sophomorix noch die für einzelne Lehrer gesondert eingegebenen Quotas hinten angehängt.
Aus diesem Grund macht es keinen Sinn, eine vorhandene Lehrerdatei mit derjenigen aus dem Schulverwaltungsprogramm zu überspielen, da Sie dann für alle Lehrer Wunschlogin und Sonderquota wieder neu eingeben müssten.
Sie erhalten deshalb in der Schulkonsole nur dann die Gelegenheit eine Datei auf den Server zu spielen, wenn noch keine Datei lehrer.txt
vorhanden ist: Ist bereits eine Datei lehrer.txt
im System vorhanden, entfällt der Abschnitt Datei importieren und Sie haben nur die Möglichkeit, die vorhandenen Lehrer zu editieren, wobei Sie den Loginnamen, der unter Kürzel steht, nicht ändern können:
Nach gemachten Änderungen müssen Sie Änderungen übernehmen anklicken, damit die geänderten Daten in die Datei lehrer.txt
übernommen werden. [2]
Unterhalb des Abschnitts Lehrer hinzufügen finden Sie noch zwei weitere Abschnitte, um Lehrer zu editieren oder zu entfernen:
Auch hier gilt wieder: Änderungen übernehmen schreibt die Änderungen in die lehrer.txt
, vollzieht sie aber noch nicht im System.
Pflege der Extraschüler und Extrakurse¶
Zur Verwaltung von Schülern, die nicht im Schulverwaltungsprogramm aufgenommen sind, gibt es für den administrator in der Schulkonsole unter der Rubrik Benutzer den Unterpunkt Extralisten pflegen:
Im Bereich Extraschüler editieren können Schüler von Kooperationsschulen oder Austausch- bzw. Gastschüler eingegeben werden. Die Syntax ist oben im Editierfenster erläutert und dieselbe wie bei der Schülerdatei, ergänzt um ein Feld für einen Wunschanmeldenamen:
Klasse;Nachname;Vorname;Geburtsdatum;Wunschlogin;
Der Name für die Klasse ist frei wählbar, z.B: koop (für Kooperation) oder at (für Austausch). Es können aber, gerade auch bei Kooperationsschülern, die bestehenden Klassennamen verwendet werden. Dies ist wichtig, falls der Zugriff auf das Klassentauschverzeichnis der Klasse ermöglicht werden soll. Bei neuen Gruppennamen, wird auch ein neues Klassentauschverzeichnis angelegt.

Hier wurden einige Schüler ohne Wunschloginnamen aufgenommen, teils in die Jahrgangsstufe 12 (12), teils in eine Extragruppe at*(Austauschschüler), die damit ein eigenes Tauschverzeichnis haben. Durch Anklicken von *Änderungen speichern werden die geänderten Daten in die Datei /etc/sophomorix/user/extraschueler.txt
übernommen.
Unterhalb von Extraschüler editieren befindet sich Extrakurse editieren.
Für VHS-Kurse oder Lehrerfortbildungen mit schulfremden Lehrern können hier zeitlich befristete Gastkonten für einen gesamten Kurs mit einheitlichem Passwort generiert werden. Die Syntax ergibt sich aus der Beschreibung oben im Editierfenster.
Mit Änderungen übernehmen werden die geänderten Daten in die Datei /etc/sophomorix/user/extrakurse.txt
geschrieben.
Übernahme geänderter Daten in das System¶
Durch die Änderungen der Dateien werden die Benutzer noch nicht in das System übernommen, da dieser Vorgang unter Umständen recht zeitaufwändig ist. Nachdem man alle gewünschten Änderungen vorgenommen hat, geschieht das ‘’in einem Rutsch’‘.
Benutzerlisten prüfen¶
Über den Schaltknopf Benutzerlisten überprüfen im Unterpunkt Benutzerlisten prüfen werden alle Dateien [3] von sophomorix-check daraufhin überprüft,
- ob die Geburtsdaten im Rahmen der Vorgaben liegen,
- ob die Benutzer schon im System vorhanden sind,
- ob abgegangene Schüler gelöscht werden sollen, oder
- ob Benutzer ähnlichen Namens zum Entfernen vorgesehen sind.
Nach erfolgtem Check wird ein Protokoll ausgegeben, aus dem man weitergehende Informationen entnehmen kann. Außerdem kann man im Erfolgsfall mit dem dann neu ausgewiesenen Link Benutzerdaten übernehmen gleich weitergehen:
Beim Überprüfen der Benutzerlisten werden intern alle Datensätze aus den vier Dateien sortiert in Benutzer,
- die neu angelegt werden sollen,
- die unverändert bleiben sollen,
- die in eine andere Klasse versetzt werden sollen,
- die entfernt werden sollen und solche,
- die daraufhin überprüft werden sollen, ob sie mit kleinen Abweichungen anderen entsprechen, die aus dem System gelöscht werden sollen.

Benutzerdaten übernehmen¶
Hat man den Punkt Benutzerlisten prüfen erfolgreich durchlaufen, können die Daten jetzt in das System übernommen werden, d.h. die neuen Benutzer angelegt (sophomorix-add), die zu versetzenden versetzt (sophomorix-move) und die zu löschenden gelöscht (sophomorix-kill) werden. Unter dem Unterpunkt Benutzerdaten übernehmen bekommt man die Benutzer angezeigt, die zum Anlegen, Versetzen und Löschen vorgesehen sind:
Im Normalfall wird man alle drei Aktionen direkt nacheinander ablaufen lassen durch einen Klick auf die Schaltfläche Benutzer anlegen/versetzen/löschen. Man kann jedoch auch die Operationen einzeln ausführen lassen.

In obigem Beispiel würden zwei Benutzer neu angelegt. Während der Bearbeitung werden die laufenden Systemmeldungen ausgegeben.

Benutzer anlegen¶
Beim Anlegen wird jedem neuen Benutzer ein Benutzername (Loginname) und eine Gruppe, zu der er gehört und deren Rechte er hat, zugewiesen.
Der Benutzername wird bei Schülern aus Vor- und Nachnamen standardmäßig in der Form ”sechs Buchstaben des Nachnamens plus zwei Buchstaben des Vornamens” gebildet (bei kürzerem Nachnamen entsprechend weniger Buchstaben). Beim Anlegen der Benutzer werden Sonderzeichen umgeschrieben, d.h. ä, ö, ü und ß wird zu ae, oe, ue und ss. Bei Lehrern wird der Wunschloginname schon in der Datei lehrer.txt
festgelegt. Das Geburtsdatum dient zur Unterscheidung bei gleichnamigen Benutzern. Ist der Benutzername bereits vorhanden, wird an den zweiten sonst gleichen Benutzernamen eine 1 angehängt.
In der linuxmuster.net wird jedem Schüler als Gruppe seine Klasse zugewiesen. Der Klassenbezeichner ist beliebig aber auf 8 Zeichen begrenzt. Dieser Bezeichner wird als primäre Gruppe verwendet. Alle Lehrer gehören der Gruppe teachers
an.
Jeder neue Benutzer bekommt ein Passwort zugewiesen und erhält die angegebenen Standardquota.
Dies alles wird von sophomorix-add
erledigt.
Benutzer versetzen¶
Zum neuen Schuljahr sind bei den Schülerdaten aus dem Schulverwaltungsprogramm die neuen Klassen angegeben. sophomorix-move
versetzt diese Schüler automatisch in die neuen Klassen.
Beim Versetzen bzw. Löschen ist folgende Besonderheit zu beachten:
Ist der Datensatz eines Benutzers nicht mehr in der zugehörigen Textdatei (z.B. bei Schülern in der schueler.txt) vorhanden, wird er nicht sofort gelöscht, sondern er wird auf den Dachboden (Gruppe attic) geschoben und bekommt den Status
T
(tolerated).
Ab sofort wird der Benutzer nur noch geduldet, d.h. er kann sich noch anmelden, hat aber keinen Zugriff mehr auf sein Klassentauschverzeichnis.
Ist der Duldungszeitraum abgelaufen, bekommt er nach dem nächsten Überprüfen der Benutzerdaten den Status
D
(disabled).
Jetzt beginnt der Reaktivierungszeitraum, der Benutzer kann sich jetzt nicht mehr anmelden. Seine Daten werden aber noch nicht gelöscht und befinden sich weiterhin auf dem Dachboden (attic). Ist der Reaktivierungszeitraum beendet, wird der Benutzer mit dem nächsten Benutzerdaten überprüfen durch Vergabe des Status
R
(removable)
zum Löschen freigegeben und beim nächsten Aufruf von Löschen sophomorix-kill
tatsächlich gelöscht.
Benutzer löschen¶
Durch Auswahl von Benutzer löschen werden zum Löschen markierte Benutzer mitsamt ihren Daten aus dem System entfernt und können nicht wieder zurückgeholt werden.
Berichte¶
Im Unterpunkt Berichte finden Sie unter Administrator-Report ein Protokoll des letzten Durchlaufs zu anlegen/versetzen und löschen evtl. versehen mit dem Hinweis Teach-in aufzurufen, was über Benutzerlisten prüfen gemacht werden kann.
Unter Protokoll für das Sekretariat finden Sie Angaben zu Datensätzen, die nicht den Vorgaben von Sophomorix entsprechen.
Diese Fehler sollten im Schulverwaltungsprogramm korrigiert werden, dann die Datei neu exportiert und wieder ins System übernommen werden. (Nicht von Hand editieren unter Schülerliste pflegen!)
Sollte sich hier herausstellen, dass die Umlaute und Sonderzeichen, wie z.B. é, nicht richtig übernommen wurden, liegt das wahrscheinlich an unterschiedlich eingestellten Zeichensätzen der beteiligten PCs. Dann kann z.B. mittels Aufruf der Datei schueler.txt
als csv-Datei in LibreOffice der Zeichensatz geändert werden (z.B. auf utf8). Danach sollte dann die Übertragung problemlos
möglich sein.
Benutzer reaktivieren¶
Sind Schüler oder Lehrer, die bereits einen Benutzernamen haben, nicht mehr in den Benutzerlisten aufgeführt, so werden sie auf den Dachboden verschoben. War das Entfernen aus den Benutzerlisten ein Versehen, können Benutzer vom Dachboden wieder vollwertig in das System zurückgeholt (reaktiviert) werden, indem man folgende Schritte nacheinander ausführt.
- Die Benutzer werden wieder in die Benutzerlisten eingetragen,
- Benutzer -> Benutzerlisten prüfen,
- Benutzer -> Benutzerdaten übernehmen -> Benutzer versetzen.
Danach können sich die Benutzer wieder anmelden und haben wieder alle ihre Daten im Home- und den Tausch-Verzeichnissen zur Verfügung.
[1] | Die Kodierung kann auch nachträglich geändert werden. Dabei ist die Reihenfolge wichtig: Zuerst die neue Kodierung einstellen, dann die Benutzer in das System übernehmen, damit sie in der richtigen Kodierung übernommen werden. Eine Kontrolle der Umlaute ist ein gutes Indiz für die richtig eingestellte Kodierung. |
[2] | Damit ist jetzt die Datei lehrer.txt geändert, aber die Daten sind noch nicht geprüft oder gar in das System übernommen. |
[3] | schueler.txt, lehrer.txt, extraschueler.txt und extrakurse.txt |
Weiterführendes zur Benutzerverwaltung mit Sophomorix¶
In der linuxmuster.net wird die Benutzerverwaltung mit Hilfe des Programms Sophomorix durchgeführt. Alle Schüler und Lehrer einer Schule, die als Benutzer im System vorhanden sein sollen, sind in vier Benutzerlisten (schueler.txt, lehrer.txt, extraschueler.txt und extrakurse.txt) aufgeführt.
Zur Verwaltung der Benutzer wird folgendermaßen verfahren:
- Alle Datensätze aus den Benutzerlisten werden geprüft und vorsortiert.
- Bestehende Benutzer, die nicht mehr in den Listen aufgeführt sind, werden zum Verschieben auf dem Dachboden (attic) vorgesehen.
- Ähnelt ein Datensatz (z.B. nach Namenskorrekturen im Sekretariat) einem, der zum Verschieben auf dem Dachboden vorgesehen wurde, wird er - evtl. nach Rückfrage - mit dem bestehenden Benutzernamen verbunden und somit der Benutzer nicht auf den Dachboden verschoben. In diesem Fall behält der Benutzer seinen alten Login-Namen.
- Neue Datensätze werden als Benutzer neu angelegt (Status U) und bekommen Benutzername und Passwort zugewiesen.
- Bestehende Benutzer werden evtl. in neue Klassen versetzt.
- Bestehende Benutzer, die nicht mehr in den Benutzerlisten vorhanden sind, werden auf den Dachboden verschoben (Status T). Sie können sich dann während eines Duldungszeitraumes zwar noch anmelden, haben aber keinen Zugriff mehr auf die Tauschverzeichnisse.
- Benutzer, deren Duldungszeitraum auf dem Dachboden abgelaufen ist, können sich nicht mehr anmelden, aber ihre Daten verbleiben während eines Reaktivierungszeitraumes noch auf dem Dachboden (Status D).
- Benutzer, deren Reaktivierungszeitraum abgelaufen ist, werden zum Löschen vorgesehen (Status R).
- Benutzer auf dem Dachboden, die wieder in den Benutzerlisten aufgeführt sind, werden aus dem Dachboden wieder zurückgeholt (reaktiviert) und bekommen den Status E.
- Benutzer, die zum Löschen markiert sind, werden mit ihren Daten endgültig gelöscht.
Ändern des eigenen Passwortes¶
Benutzernamen und Passwörter werden in der linuxmuster.net zentral verwaltet, d.h. Sie können sich an den Computern, an der Schulkonsole und in Horde mit dem selben Passwort anmelden. Um Ihr Passwort zu ändern melden Sie sich mit Ihrem Benutzernamen (bestehend aus Kleinbuchstaben und event. Zahlen) und dem aktuellen Passwort an der Schulkonsole an.

Geben Sie unter „Passwortänderung“ nochmals Ihr aktuelles Passwort ein, sowie zweimal das neue Passwort. Beachten Sie die Anforderungen an das neue Passwort:
Nicht alle Sonderzeichen können verwendet werden. Folgende Zeichen funktionieren nicht:
ä ö ü ß { } [ ] + #Folgende Sonderzeichen dürfen ebenso nicht verwendet werden:
$ & !
Darüberhinaus können bei Ihrer Schule folgende Einschränkungen gelten:
Die Mindestlänge des Passwortes sind 6 Zeichen. (Mindestlänge kann der Netzwerkberater vorgeben).
Das Passwort muss mindestens zwei unterschiedliche Zeichenklassen enthalten. Zeichenklassen sind Großbuchstaben, Kleinbuchstaben, Zahlen und Sonderzeichen. (Abschaltbar vom Netzwerkberater).
Beispielsweise sollte das Passwort dann aus Groß- und Kleinbuchstaben oder Zahlen und Kleinbuchstaben bestehen, etc.
Das erfolgreiche Ändern des Passwortes wird mit einer grünen Leiste unterhalb der Menüleiste bestätigt.

Falls die Änderung nicht erfolgreich war erhalten Sie eine Fehlermeldung mit einem Hinweis auf den Fehler.

In dieser Beispielfehlermeldung bestand das Passwort nur aus Kleinbuchstaben.
Lehrer-Passwörter zurücksetzen und ausdrucken¶
Melden Sie sich wie im Handbuch Schulkonsole nutzen
beschrieben an der Schulkonsole als administrator
an.

Der Administrator hat in der Schulkonsole im Menü unter Benutzer -> Lehrerpasswörter die gleichen Möglichkeiten für die Passwörter der Lehrer, wie die Lehrer für die Passwörter der Schüler.
Important
Der Administrator kann vom Lehrer geänderte Passwörter nicht einsehen. Sie werden grundsätzlich verschlüsselt gespeichert.
Passwortliste herunterladen und ausdrucken¶
Laden Sie die komplette Passwortliste als PDF zum Ausdrucken herunter oder als CSV-Datei zur Weiterverarbeitung.

Die PDF-Datei bietet kleine Rechtecke zum Ausschneiden und Austeilen an die Lehrer an. In der CSV-Datei werden die selben Informationen in Tabellenform angeboten.
Passwörter zurücksetzen¶
Wählen Sie in der Liste durch Setzen eines Häkchens den oder die Lehrer aus, deren Passwort Sie zurücksetzen wollen.

Unterhalb der Liste können Sie unter “Schnellauswahl” mit dem Knopf “An” auch alle Lehrer auswählen, wenn Sie allen das Passwort zurücksetzen wollen.
Wählen Sie nun ganz unten auf dieser Seite
- Passwort auf Erstpasswort setzen
- um das Passwort auf dessen Erstpasswort zurückzusetzen,
- Passwort auf Erstpasswort setzen (Zufallswert)
- um dem Lehrer ein neues zufälliges Erstpasswort zuzuteilen und sein Passwort darauf zu setzen,
- Passwort auf Erstpasswort setzen (Eingabewert):
- um dem Lehrer ein von Ihnen gewähltes Passwornt als Erstpasswort zuzuweisen. Diese Eingabe ist nicht dafür geeignet, dass der Lehrer sein dauerhaftes Passwort setzt, weil das Erstpasswort nicht verschlüsselt abgespeichert wird und somit nicht geheim ist.
Erstpasswort anzeigen¶
Um ein einzelnes Passwort anzeigen zu lassen, drücken Sie in der Reihe des entsprechenden Lehrers auf den Knopf “Erstpasswort anzeigen”.
Weiterführende Informationen¶
Weitere Informationen zum Thema finden Sie
- im Handbuch zur Schulkonsole im Abschnitt Menü: Benutzerverwaltung
Schüler-Passwörter zurücksetzen und ausdrucken¶
Vergisst ein Schüler sein Passwort, kann jede Lehrkraft das Passwort des Schülers über die Schulkonsole auf das Erstpasswort [1] zurücksetzen. Dieses teilen Sie dem Schüler mit.
[1] | Die Bezeichnung Erstpasswort bezieht sich dabei immer auf das zeitlich neueste über die Schulkonsole vergebene Passwort, also entweder das vergebene Passwort beim Anlegen des Schülers durch den Administrator oder das aktuellste Passwort, das eine Lehrperson über die Schulkonsole vergeben hat. |
Dazu melden Sie sich an der Schulkonsole wie im Handbuch Schulkonsole nutzen beschrieben an. Wählen Sie unter „Klassen” den Menüpunkt „Passwörter“.

Wählen Sie nun Ihre Klasse aus indem Sie auf die Klassenbezeichnung klicken.
Note
Falls Ihre Klasse nicht in der oberen Liste (im Beispiel: 11c) auftaucht, müssen Sie sich zunächst in die Klasse eintragen. Wählen Sie dazu im Dropdown-Menü die Klasse aus und klicken anschließend auf “Eintragen”.

Setzen Sie hinter dem vergesslichen Schüler den Haken und scrollen Sie auf das Ende der Seite. Unterhalb der Liste können Sie unter “Schnellauswahl” mit dem Knopf “An” auch alle Schüler auswählen, wenn Sie allen das Passwort zurücksetzen wollen.
Klicken Sie nun ganz unten auf dieser Seite auf
- Passwort auf Erstpasswort setzen
- um das Passwort auf dessen Erstpasswort zurückzusetzen,
- Passwort und Erstpasswort setzen (Zufallswert)
- um dem Schüler ein neues zufälliges Erstpasswort zuzuteilen und sein Passwort darauf zu setzen,
- Passwort und Erstpasswort setzen (Eingabewert):
- um dem Schüler ein von Ihnen gewähltes Passwort als Erstpasswort zuzuweisen. Diese Eingabe ist nicht dafür geeignet, dass der Schüler sein dauerhaftes Passwort setzt, weil das Erstpasswort nicht verschlüsselt abgespeichert wird und somit nicht geheim ist.

Die Seite wird neu geladen. Klicken Sie neben dem Schülernamen auf „Erstpasswort anzeigen“.

Teilen Sie das angezeigte Erstpasswort dem Schüler mit der Aufforderung mit, es in der Schulkonsole zu ändern.

Important
Weder Lehrer noch Administrator können vom Schüler geänderte Passwörter einsehen. Sie werden grundsätzlich verschlüsselt gespeichert.
Die kompletten Anmeldekärtchen der Klasse können als PDF-Datei ausgedruckt oder als CSV-Datei heruntergeladen und mit einem Tabellenkalkulationsprogramm weiterverarbeitet werden.
Weiterführende Informationen¶
Weitere Informationen zum Thema finden Sie
- im Handbuch zur Schulkonsole im Abschnitt Schulkonsole als Lehrer nutzen
Festplattenplatz für Benutzer einschränken (Quota)¶
Alle Benutzer im System dürfen Daten auf dem Server abspeichern. Es kann also vorkommen, dass Schüler und Lehrer so viele Daten abspeichern, dass der Festplattenplatz des Servers erschöpft ist, was bis zur Einstellung des Betriebes führen kann. Außerdem kann das „Vollmüllen“ des Servers auch vom Internet aus z.B. durch E-Mail-Bombing erfolgen.
Einziger Ausweg: Sie beschränken (“quotieren”) den Festplattenplatz eines jeden Benutzers und achten darauf, dass die Summe der vergebenen „Quota” nicht die Kapazität der Festplatten des Servers übersteigt.
Melden Sie sich wie im Handbuch Schulkonsole nutzen
beschrieben an der Schulkonsole als administrator
an.
Standardeinstellungen ändern¶
Im Abschnitt Benutzerverwaltung des Handbuchs zur Schulkonsole finden Sie eine Übersicht über alle Einstellungsmöglichkeiten.
Im Bereich Quotierung können Sie diese aktivieren (Standard) oder deaktivieren. Ebenso können Sie für Schüler und Lehrer jeweils drei Quotas angeben.

Ändern Sie die Einstellungen für /home
, dann beschränkt das den
Platz, den neue Lehrer oder versetzte Schüler auf Home_auf_Server
bzw. unter H:\
und Tausch_auf_Server
bzw. unter T:\
belegen können.
Ändern Sie die Einstellungen für /var
, dann beschränkt das den
Platz, den neue Lehrer oder versetzte Schüler auf
Vorlagen_auf_Server
bzw. unter V:\
oder mit Dateien während
des Klassenarbeitsmodus belegen können.
Ändern Sie die Einstellungen in der dritten Spalte, dann beschränkt das den Platz für Mails, die auf dem Server liegen.
Attention
Wirksam sind die geänderten Werte erst nach einem Durchlauf zum Anlegen/Versetzen/Löschen von Benutzern. Auf das Quota bestehender Lehrer haben die Einstellungen keinen Einfluss.
Ändern von einzelnen Lehrerquota¶
Der Administrator hat in der Schulkonsole im Menü unter Quota die Möglichkeit, den Festplattenplatz für Lehrer und Schüler zu beschränken.

Benötigt ein Kollege mehr Platz, können Sie dessen Quota leicht über die Schulkonsole unter Quota -> Lehrer ändern:

Sind die Felder leer, gelten die Standardwerte. Mit einem Klick auf die Schaltfläche Änderungen übernehmen werden die geänderten Werte gleich gesetzt.
Important
Beachten Sie auch, dass das gesetzte Quota immer für eine ganze
Festplattenpartition auf dem Linux-Server gilt. Üblicherweise
befinden sich alle Netzlaufwerke auf der selben Serverpartition
/home
. Befindet sich z.B. das Kollegiumstauschverzeichnis auf
der selben Serverpartition wie das Heimatverzeichnis H:
bzw. Home_auf_Server
, werden die Daten auf dem
Tauschverzeichnis zum verbrauchten Plattenplatz hinzugerechnet.
Ein Lehrer kann also auf allen Netzlaufwerken zusammen nicht mehr als das voreingestellte Quota belegen.
Ändern von Klassen- und Projektquota¶
Unter Quota -> Klassen können Sie die Quota für alle Schüler einer Klasse ändern.
Unter Quota -> Projekte können Sie zusätzliche Quota für alle Schüler eines Projektes vergeben.
Mit Änderungen übernehmen werden die geänderten Quotas in diesen beiden Fällen nicht in einer Datei abgelegt, sondern gleich in die Sophomorix-Datenbank geschrieben und sind damit sofort gültig.
Sonderquota: Quota für Administratoren und einzelne Schüler¶
Mittels Quota -> Sonderquota in der Schulkonsole können Sie nun Quota für
- einzelne Schüler,
- Administratoren und
- den max. für Homepages zur Verfügung stehenden Platz (Webspace)
festlegen.
Für den Webspace und die Administratoren können einfach die Werte überschrieben werden und dann mittels Änderungen übernehmen gesetzt werden.
Für einzelne Schüler müssen Sonderquota erst neu angelegt werden, indem der Login-Name und die gewünschten Quota eingegeben werden. Nach einem Klick auf Änderungen übernehmen ist dann der Schüler in einer Schülerliste unterhalb des Abschnitts für die Administratoren aufgeführt.
Für bereits dort vorhandene Schüler können Sie einfach die Quotawerte überschreiben und dann mittels Änderungen übernehmen setzten.
Important
Die obige wichtige Anmerkung gilt auch für Schüler: Befindet sich
z.B. das Klassentauschverzeichnis eines Schülers auf der selben
Serverpartition wie das Heimatverzeichnis H:
bzw. Home_auf_Server
, werden die Daten auf dem
Tauschverzeichnis zum verbrauchten Plattenplatz hinzugerechnet.
Ein Schüler kann also auf allen Netzlaufwerken zusammen nicht mehr als das voreingestellte Quota belegen.
Vorbereitung am Schuljahresanfang¶
Klassenliste aktualisieren¶
Zu Schuljahresbeginn müssen Sie als Lehrer einmalig die Klassenliste aktualisieren. Sie fügen neue Klassen, die Sie unterrichten, hinzu und tragen Klassen aus, die Sie abgegeben haben.
Um die Klassenliste zu aktualisieren, melden Sie sich zunächst als Lehrer an der Schulkonsole an.

Klassenliste auswählen¶
Nach erfolgreicher Anmeldung in der Schulkonsole für Lehrer, wählen Sie aus dem Menü Klassen und danach den Unterpunkt Klassenliste aus.

Sie sehen dann die bereits zugeordneten Klassen.

Unter den bereits zugeordneten Klassen finden Sie ein Drop-down Menü, in dem Sie diejenigen Klassen finden, die Sie sich noch zuordnen können.

Wählen Sie aus dieser Liste nun diejenige Klasse aus, die Sie hinzufügen möchten und klicken auf den Button eintragen. Benötigen Sie mehrere neue Klasse, so fügen Sie diese nacheinander hinzu.
Neue Anmeldung¶
Abschliessend müssen Sie sich von Ihrem Client abmelden und wieder neu anmelden, damit die Netzlaufwerke korrekt zugeordnet sind.
Dies können Sie kontrollieren, indem Sie nach der erneuten Anmeldung mit dem Dateimanager prüfen, ob für die neue Klasse ein Tauschverzeichnis vorhanden ist.
Individuelle E-Mail-Adressen verwalten¶
Zielgruppe: Netzwerkberater und Supportfirmen
Einige Programme greifen standardmäßig auf die im LDAP unter dem Attribut mail gespeicherte Mail-Adresse zu. Beispiele dafür sind moodle, owncloud, …
Standardmäßig wird für diesen Zweck die interne Mailadresse des linuxmuster.net Servers verwendet (<Benutzer>@<Domain>).
Diese Dokumentation beschreibt, wie man von diesem Standard abweichen und die hinterlegte Adresse mit der Schulkonsole bearbeiten kann. Die Installation sollte der Netzwerkbetreuer oder Administrator ausführen. Jeder Nutzer kann dann selbst seine eigene Adresse verwalten. Sollte für einen Benutzer keine Adresse eingetragen sein, wird automatisch oben genannte Standardadresse verwendet.
Installation¶
Rechte für Gruppen festlegen¶
Der Bereich für die Eingabe der eigenen Mail-Adresse muss zunächst in der Schulkonsole aktiviert werden. Dazu erstellt man im Verzeichnis
/etc/linuxmuster/schulkonsole/permissions.d
die Datei all-pages-mymail
mit dem Inhalt
ALL=start_mymail
und im gleichen Verzeichnis die Datei all-programs-mymail
mit dem Inhalt
ALL=set_user_mymail
Die erste Datei all-pages-myemail
erlaubt es allen Benutzern, den
Bereich auf der Startseite der Schulkonsole zur Änderung der
Mailadresse zu sehen. Die zweite Datei all-programs-mymail
erlaubt
es dem Benutzer, die Funktion zur Änderung der Mailadresse zu
verwenden.
Sollen nur die Lehrer in der Lage sein, eine eigene Mailadresse zu verwenden, so lauten
die Dateinamen teachers-pages-mymail
mit dem Eintrag
teachers=start_mymail
und teachers-programs-mymail
mit dem Eintrag
teachers=set_user_mymail
Analog kann die Funktion auch lediglich für Administratoren freigeschaltet werden.
Es ist auch möglich, die Seite freizugeben (über die pages-Datei), nicht aber die Funktion zur Änderung. In diesem Fall kann der Benutzer den Eintrag zwar sehen, ist aber nicht in der Lage, ihn zu verändern.
Rechte übernehmen¶
Nachdem die Dateien fertig editiert wurden, müssen die neuen Einstellungen ins System
übernommen werden. Das geschieht durch zwei Skripte im Verzeichnis
/usr/share/schulkonsole/scripts
. Diese Skripte müssen ausgeführt werden, also
server ~ # /usr/share/schulkonsole/scripts/update-permissions.sh
server ~ # /usr/share/schulkonsole/scripts/make-menus.sh
Nach Ausführung dieser Skripte erscheint auf der Startseite der Schulkonsole für die berechtigten Benutzer ein neuer Bereich zur Änderung der Adresse.
Nutzung einer eigenen Mailadresse im LDAP¶
Voraussetzung ist die korrekte Installation.
Starten Sie die Schulkonsole und melden Sie sich an. Auf der Seite “Mein Konto” sehen Sie jetzt einen neuen Bereich mit der Überschrift Private Mailadresse.
Mailadresse eintragen¶
Voreingestellt ist die interne Mailadresse nach dem Muster <Benutzer>@<Domain>. Tragen Sie die gewünschte Mailadresse ein und bestätigen Sie diese durch Klicken auf Mailadresse ändern.
Mailadresse entfernen¶
Entfernen Sie den Eintrag im Feld Mailadresse und klicken Sie auf Mailadresse ändern. Dadurch wird der Standardeintrag nach dem Muster <Benutzer>@<Domain> wieder hergestellt.
Weitere Informationen¶
Unterricht: Internetrecherche¶
Um im Unterricht den Schülern eine Internet-Recherche zu ermöglichen, müssen Sie sich zunächst an der Schulkonsole als Lehrer anmelden, danach den Raum auswählen, in dem Sie unterrichten, im Raum den Unterricht beginnen und ggf. den Internet-Zugriff für die gewünschten PCs freischalten.
Raum auswählen¶
Nachdem Sie sich an der Schulkonsole als Lehrer angemeldet haben, gehen Sie zu dem Menüpunkt Aktueller Raum und dort zum Unterpunkt Unterricht.
Wählen Sie hier den richtigen Raum über das Drop-down Menü aus, sofern dieser noch nicht korrekt eingestellt ist.

Wählen Sie hierzu den Raumnamen aus der Liste aus und klicken dann den Button wechseln.
Danach sehen Sie die Einträge zu den PCs des Raumes, in dem Sie unterrichten.

Unterricht beginnen¶
Haben Sie den Raum erfolgreich ausgewählt, müssen Sie nun Ihren Unterricht in dem Raum beginnen.
Klicken Sie hierzu auf den Button Unterricht beginnen, der sich ganz oben auf der Seite der Raumübersicht befindet.
Haben Sie den Unterricht erfolgreich begonnen, so sehen Sie wie in nachstehender Abbildung, wann der Unterricht automatisch im System beendet wird und wer in dem Raum unterrichtet.

Hier können Sie ggf. auch die benötigte Unterrichtszeit auf Ihren Unterricht anpassen, indem Sie die gewünschte Uhrzeit auswählen und auf den Button beenden lassen klicken.
Internet an- und ausschalten¶
Um den Schülern nun an den PCs den Zugriff auf das Internet zu ermöglichen, wählen Sie in o.g. Ansicht alle PCs des Raumes aus, die Zugriff haben sollen. Abschließend aktivieren Sie diese Einstelung mit einem Klick auf den Button Änderungen übernehmen, der sich am Ende der PC-Übersicht befindet.
Um den Zugriff für alle PCs zu aktivieren oder zu deaktivieren, können Sie einfach das Aktivierungskästchen unterhalb der jeweiligen Funktionsspalte anklicken.
Unterricht beenden¶
Nach Ablauf der eingestellten Zeit wird der Unterricht im Raum von der Lehrperson automatisch beendet. Eine vorzeitige Beendigung des Unterrichts ist ebenfalls jederzeit möglich, indem Sie auf der Raumübersicht oben den Button sofort beenden klicken.

Unterricht: Austeilen und Einsammeln von Dateien¶
Mithilfe der Schulkonsole können Sie in Ihrem Unterricht folgende Funktionen nutzen:
- Austeilen
- Einsammeln
Wollen Sie die Funktionen unmittelbar in dem Raum nutzen, in dem Sie unterrichten, wählen Sie diese Funktionen im Menü aktueller Raum.
Möchten Sie vorbereitend diese Funktionen für eine Ihrer Klassen verwenden, wählen Sie die gewünschte Funktion aus dem Menü Klassen aus.
Austeilen¶
Nachdem Sie sich an der Schulkonsole als Lehrer angemeldet haben, gehen Sie zu dem Menüpunkt Klassen und dort zum Unterpunkt Auteilen.
Sie sehen dann die Übersicht der auszuteilenden Dateien für eine Klasse.

Wählen Sie nun oben rechts die gewünschte Klasse im Drop-don Menü aus. Danach klicken Sie auf den Button Durchsuchen`, um eine auszuteilende Datei hochzuladen. Es erscheint Ihr Dateimanager. Hier wählen Sie aus dem geeigenten Verzeichnis die gewünschte Datei aus. Danach erscheint der Dateiname in der Liste der auszuteilenden Dateien. Um diese noch für das Austeilen zur Verfügung zu stellen, klicken Sie auf den Button Daten absenden.
Alle zu verteilende Dateien erscheinen in der darüber angezeigten Dateiliste. Wollen Sie weitere Dateien hinzufügen, so ist o.g. Vorgang entsprechend zu wiederholen.

Um die so bereitgestellten Dateien nun zu verteilen, wählen Sie die Schüler der Klasse aus, denen Sie die Dateien zur Verfügung stellen wollen. Hierzu klicken Sie pro Schüler in der Spalte Auswahl auf die Auswahlbox. Sollen alle Schüler der Klasse die Dateien erhalten, so können Sie hierzu die Auswahlbox unterhalb der Spalte nutzen. Danach klicken Sie auf den Button austeilen. Auszuteilende Dateien liegen dann in Ihrem Heimatverzeichnis unter _auszuteilen -> auszuteilen-Klasse.

Die auszuteilenden Dateien liegen nun in den Heimatverzeichnissen der Schüler/innen in dem Ordner __austeilen -> austeilen-Klasse.
Einsammeln¶
Haben Schüler Dateien erstellt, die Sie als Lehrkraft einsammeln möchten, so müssen Sie Schüler die Dateien in ihrem Heimatverzeichnis im Ordner __einsammeln ablgen. Es kann auch in diesem Ordner ein Verzeichnis angelegt werden, in das mehrere Dateien abgelegt werden. Beim Einsammlen würden dann pro Schüler das Verzeichnis mit allen enthaltenden Dateien eingesammelt werden.
Haben die Schüler ihre Dateien entsprechend kopiert, rufen Sie in der Schulkonsole das Menü Klassen und dort das Untermenü Einsammeln auf.

Sie sehen hinter jedem Schüler, ob und welche Dateien bereitgestellt wurden. Wählen Sie aus, ob die einzusammelnden Dateien erhalten bleiben oder gelöscht werden sollen. Wählen Sie die Schüler/innen, von denen Sie einsammeln wollen, oder die ganze Klasse aus.
Sie finden die eingesammelten Arbeiten in Ihrem Heimatverzeichnis unter „_eingesammelt -> eingesammelt-Klasse“.
Klassenarbeit durchführen¶
Im Klassenarbeitsmodus haben Sie als Lehrer die Möglichkeit, Dateien an Schüler zu verteilen und die Lösungen via Netzwerk wieder einzusammeln. Zugleich unterbindet dieser Modus den Internet-Zugriff sowie den Zugriff auf das Heimatverzeichnis der Schüler sowie auf Tauschverzeichnisse.
Um in den Klassenarbeitsmodus zu gelangen, ruft man in einem Browser die Seite https://10.16.1.1:242 auf. Eventuelle Warnmeldungen wegen eines selbst erstellten Zertifikates kann man ignorieren.

Klassenarbeit starten¶
Im Menü unter aktueller Raum beginnt man den Unterricht mit Klick auf Unterricht beginnen.

Unter aktueller Raum findet man den Menüpunkt Klassenarbeit, den man mit Klick auswählt.

Bevor der Klassenarbeitsmodus gestartet wird, setzt man ein Workstationpasswort, welches man den Teilnehmern an der Klassenarbeit mitteilt (hier: frei_wählbar
).

und startet mit Klick auf Klassenarbeit starten den Klassenarbeitsmodus.
Dateien bereitstellen und Schüler melden sich an¶
In der Schulkonsole bekommt man nun folgende Informationen:
- an welchem Rechner welcher Benutzer angemeldet ist
- welche Dateien zum Bereitstellen an die Schüler bereits hochgeladen wurden (hier: die Datei
Klassenarbeit.txt
).
Schüler melden sich jetzt an den Clients mit jeweiligen PC-Namen als
Benutzernamen (hier z.B.: r306-c01
) und dem Workstationpasswort an
(hier: frei_wählbar
). Solange nicht alle an der Klassenarbeit
beteiligten Benutzer unter Login zu sehen sind, klickt man immer
wieder auf Aktualisieren.
Note
Unter Login dürfen nur Rechnernamen auftauchen, da man sich im Klassenarbeitsmodus mit den Rechnernamen anmeldet.

Wollen Sie Aufgaben der Klassenarbeit oder eine Vorlage zur weiteren
Bearbeitung zur Verfügung stellen, so kopieren Sie die Dateien im
Dateisystem nach H:\bereitstellen\bereitstellen-klassenarbeit
(Windows)
bzw. Home_auf_Server/_bereitstellen/bereitstellen-klassenarbeit
(Linux) oder klicken Sie in der Schulkonsole auf den Button
Durchsuchen. Wählen Sie in Ihrem Dateisystem dann die gewünschten
Dateien aus und klicken Sie den Button Daten absenden, um die Datei
hochzuladen. Um mehrere Dateien bereitzustellen, wiederholen Sie
diesen Vorgang.
Die bereitzustellenden Dateien werden in der Dateiliste in der
Schulkonsole angezeigt (hier: Klassenarbeit.txt
). Um
diese Dateien nun allen angemeldeten Schülern für die Klassenarbeit
bereitzustellen, klicken Sie den Button bereitstellen.
Ist an jedem Platz ein Teilnehmer der Klassenarbeit angemeldet, dann klickt man auf bereitstellen und stellt damit den Schülern die Daten bereit.
Passwort neu setzen¶
Man hat jetzt die Möglichkeit,eine ein neues Passwort (hier:
neues_PW_setzen
) zu setzen. Dies verhindert, dass Schüler die
Computerkonten missbrauchen.

Note
Das neue Passwort darf erst gesetzt werden, wenn sich alle Teilnehmer an den Rechnern angemeldet haben.
Während der Klassenarbeit¶
Die Schulkonsole sieht nach dem Passwort setzen so aus:

Unter der Spalte Hostname werden alle PCs, die aktiv angemeldet sind, angezeigt. Zudem sehen Sie unter Dateien, ob und welche Dateien jeweils im Einsammeln-Ordner abgelegt worden sind.
Der Lehrer hat dann folgende Möglichkeiten:
- Kopien einsammeln (eine sparsame Nutzung ist sinnvoll)
- Einsammeln der Schülerdateien und Beenden des Klassenarbeitsmodus’
- Es ist aber auch immer wieder möglich auf, “Passwort ändern” zu klicken, um zwischendurch ein neues Passwort zu setzen. Das kann notwendig werden, wenn z.B. ein Rechner während der Klassenarbeit abstürzt und sich ein Schüler erneut anmelden muss.
Die Schüler holen sich den Arbeitsauftrag für die Klassenarbeit im Ordner V:\Räume\r306\rau
(Windows) bzw. im Ordner Vorlagen_auf_Server/r306/rau
(Linux) ab.

Die Schüler müssen alle ihre Ergebnisse im Ordner H:\__einsammeln
(Windows) bzw. unter Home_auf_Server/__einsammeln
(Linux)
speichern.
Note
Es ist sinnvoll, den Schülern zu raten, die Vorlagen sofort dort abzulegen und dort zu bearbeiten. Es ist auch sinnvoll die Datei mit dem Schülernamen zu versehen.

Sollten Schüler vor Beendigung des Klassenarbeitsmodus die Klassenarbeit abgeben wollen, so müssen Sie sicherstellen, dass diese ihre Arbeit unter __einsammeln
abgespeichert haben. Ist dies der Fall, so können diese Schüler den PC herunterfahren. Zur Überprüfung können Sie die Ansicht mit dem Button Aktualisieren immer wieder auf den aktuellen Stand bringen.
Klassenarbeit beenden und Daten einsammeln¶
Ist die Klassenarbeit beendet, dann klickt der Lehrer auf Einsammeln und beenden

und wird im folgenden Fenster aufgefordert, das Beenden zu bestätigen.

Note
Ehe man den Klassenarbeitsmodus beendet, fordert man die Schüler auf, ihre Arbeiten im Ordner Einsammeln letztmalig zu speichern. Durch Klick auf Aktualisieren werden in der Tabelle unter Dateien die gespeicherten Dateien sichtbar.
Der Klassenarbeitsmodus ist damit beendet und der Raum kann wieder als Computerraum benutzt werden.
Die eingesammelten Dateien findet der Lehrer nach dem Beenden des
Klassenarbeitsmodus im Unterordner von
_eingesammelt/eingesammelt-klassenarbeit
. Beim Einsammeln werden
die Ordner mit einem Datums-Zeitstempel versehen. Hier:EXAM_rau_2017-12-23_14-15-38_r306
.


Projekte nutzen¶
Projekte bilden Gruppen in der Schule ab, die außerhalb von Klassen existieren. Ein Projekt kann ein Leistungskurs im Gymnasium, eine Neigungsgruppe in einer Gesamtschule oder jede beliebige Gruppe von Benutzern des Systems sein.
Um ein Projekt einzurichten, wählt man nach der Anmeldung als Lehrer aus dem Menü Projekte das Untemenü Mitglieder aus.

Im folgenden Fenster vergibt man einen Namen für das Projekt (hier:demo
). Dabei ist p _
bereits vorgegeben und wird Teil des Projektnamens

Man klickt auf den Projektnamen

und sieht das folgende Fenster.

Mitglieder hinzufügen¶
Der Lehrer, welcher das Projekt eingerichtet hat ist schon als Mitglied und Projektleiter eingetragen. Nun kann man dem Projekt weitere Mitglieder hinzufügen.
Um z.B. aus der gesamten Schülerschaft Schüler für die Projektgruppe p_demo
auszuwählen gibt man unter Suche einen *
ein. Der Radiobutton ist auf Schüler gesetzt. Hat man diese Auswahl getroffen, klickt man auf Suche

und erhält eine Liste aller Schüler der Schule:

In diesem Fenster wählt man die Mitglieder der Projektgruppe aus indem man rechts neben dem Namen einen Haken setzt.

Sind alle Mitglieder ausgewählt, klickt man auf Aufnehmen und sieht nach einigen Sekunden das folgende Fenster:

Lehrer als Projektleiter hinzufügen¶
Sollen Lehrer zur Gruppe hinzugefügt werden, dann setzt man den Radiobutton auf Lehrer,

klickt auf Suchen und erhält eine Liste aller Lehrer der Schule.

Man wählt nun die aufzunehmenden Lehrer aus und kann zusätzlich bestimmen ob ein Lehrer zusätzlich Projektleiter wird.

Nach Klick auf Aufnehmen sieht man die Gruppe mit den hinzugefügten Lehrern

Note
Die Suche kann man verfeinern indem man z.B. schm*
in die Suche:
-Zeile eingibt und auf Suche klickt. Damit werden alle Schüler aufgelistet in deren Name die Zeichenfolge schm
vor kommt. Ähnlich kann man mit den Radiobuttons Lehrer, Klasse und Projekt verfahren.
Unterricht: WLAN freischalten¶
Important
Wenn der Administrator eine Klasse, ein Projekt oder einzelne Schüler permanent freigeschaltet hat, hat das hier beschriebene Schalten des WLANs für die freigeschalteten Benutzer keine Auswirkungen.
WLAN für eine Klasse freischalten¶
Mit Linuxmuster.net kann man bei vorhandenem WLAN temporär Klassen oder Projekten das WLAN frei schalten. Diese Anleitung zeigt wie es funktioniert.

Nach dem Anmelden als Lehrer wählt man zunächst die Klasse aus (hier 10a)

um danach im Menü Klassen im Untemenü Unterricht auf Unterricht beginnen zu klicken

Bei Bedarf stellt man das Unterrichtsende im Drop-Down Menü auf eine gewünschte Zeit (hier 15.00 Uhr) und klickt auf beenden lassen

Im gleichen Fenster kann man mittels der Schnellauswahl die Haken hinter den Schülernamen setzen

und dann auf Änderungen übenehmen klicken. Damit ist das WLAN bis 15 Uhr für die ausgewählten Schüler eingeschaltet. Beendet man den Unterricht vor 15 Uhr, dann kann man mit Klick auf sofort beenden das WLAN für die Schüler ausschalten

WLAN für ein Projekt freischalten¶
Mit Linuxmuster.net kann man bei vorhandenem WLAN temporär Klassen oder Projekten das WLAN frei schalten. Diese Anleitung zeigt wie es funktioniert.
Important
Wenn der Administrator eine Klasse, ein Projekt oder einzelne Schüler permanent freigeschaltet hat, hat das hier beschriebene Schalten des WLANs für die freigeschalteten Benutzer keine Auswirkungen.

Nach dem Anmelden als Lehrer wählt man im Menü Projekte das Untermenü Mitglieder und klickt dort auf das gewünschte Projekt

Hier p_demo

Im folgenden Fenster klickt man auf Unterricht beginnen

und hat die Option die Unterrichtszeit über das Drop-Down-Menü auf einen gewünschten Zeitpunkt zu setzen (hier: 15:00 Uhr). Mit Klick auf beenden lassen wird die gewählte Uhrzeit für das Unterrichtende eingestellt.

Mit dem Button Schnellauswahl setzt man die Haken für alle Schüler und klickt auf Änderungen übernehmen. Damit ist das Wlan für die Projektgruppe frei geschaltet.
Sollte der Unterricht vorzeitig enden, dann kann man mit klick auf sofort beenden das Wlan für die Projektgruppe ausschalten.
Schulinternen E-Mail-Versand nutzen¶
Diese Schritt-für-Schritt-Anleitung erklärt, wie Sie im Schulnetzwerk E-Mails mit Hilfe eines Webmailers versenden und empfangen können. In dem Webmailer ist auch die Möglichkeit enthalten, Weiterleitungen auf externe E-Mail-Adressen einzurichten und auf die “Home_auf_Server” und “Tausch”-Verzeichnisse zuzugreifen.
Auf dem Schulserver läuft ein Webmail-Programm mit dem Namen Horde. Rufen Sie im Browser die Adresse
auf. Üblicherweise ist diese Adresse nur von innerhalb des Schulnetzwerkes erreichbar.

Melden Sie sich mit Ihrem Benutzernamen und Passwort des Schulkontos an. Auf der Startseite können Sie das Speicherplatzkontingent einsehen.

Unter Webmail -> Posteingang erreichen Sie ihr Mail-Konto. Unter Neue Nachricht wird ein neues Fenster geöffnet.

Ihre eigene E-Mail-Adresse wird unter “Identität” angezeigt und ist - je nach Schulkonfiguration - auf “benutzername@linuxmuster-net.lokal” eingestellt. Das bedeutet, dass Sie mit dieser E-Mail-Adresse nur interne E-Mails von anderen Schülern oder Lehrern bekommen können, denn “linuxmuster-net.lokal” ist keine weltweit eindeutige Adresse.
Für interne Adressen kann die E-Mail-Domäne weggelassen werden. Man kann aber auch weltweit gültige E-Mail-Adressen als Empfänger einstellen.
Warning
Standardmäßig wird der Versand an weltweite Adressen erlaubt. Vorsicht: Die Empfänger dieser E-Mail können nicht darauf antworten, wenn “linuxmuster-net.lokal” als Domäne in Ihrer Schule voreingestellt ist.
Adressbuch verwenden¶
Um Schüler und Lehrer im Adressbuch zu finden, wählen Sie im Menü Organisieren -> Adressbuch -> Suche aus und suchen Sie nach Namensbestandteilen.

Weiterleitung an externe E-Mail-Adressen konfigurieren¶
Horde erlaubt die Einrichtung vieler unterschiedlicher sogenannter Filter für das Mailsystem. Der wohl wichtigste davon ist der vordefinierte Filter Weiterleitung, den man im Menü über Einstellungen -> Filter und dann im oberen Menü Weiterleitung erreicht. Man trägt dort ein oder mehrere gewünschte Adressen zur Weiterleitung ein und entscheidet, ob zusätzlich eine Kopie im Postfach an der Schule verbleiben soll.

Zugriff auf Tauschordner und Heimatverzeichnis¶
Um auf die eigenen Dateien auf dem Server (“Home_auf_Server”) und auf die Tauschverzeichnisse zuzugreifen, wählen Sie im Menü Mein Konto -> Dateimanager -> Home bzw. Tauschen.

Warning
Sollten Umlaute im Dateinamen vorkommen, kann man die Dateien nicht herunterladen. Ändern Sie den Dateinamen am Schulcomputer im dortigen Dateimanager.
Dateien, die heruntergeladen werden, sollten standardmäßig abgespeichert werden, da ein direktes Ausführen meist nicht funktioniert.
Melden Sie sich nach getaner Arbeit über Abmelden ab.
OpenVPN nutzen¶
Externer Zugang zum Schulnetz¶
Funktionsweise
Sie können auch von extern auf das Schulnetzwerk zugreifen. Hierzu müssen Sie Ihren Computer (temporär) in das Schulnetzwerk integrieren. Dies funktioniert über ein sogenanntes „Virtual Private Network“, kurz VPN genannt. Dies erstellt über Ihre Internetverbindung einen abhörsicheren Tunnel in die Schule und integriert Ihren PC in das Schulnetzwerk. Sie bekommen (temporär) eine schulinterne IP-Adresse. Voraussetzung ist, dass Ihr Schulserver mithilfe einer Internet-Adresse (URL) erreichbar ist. Ob dies so ist, kann Ihnen Ihr Administrator des Schulnetzes sagen.
Alle Aktivitäten, die Sie mit geöffnetem VPN-Tunnel im Internet durchführen, laufen über den Schulserver bzw. die Schul-Internetleitung. Es gilt somit die Nutzervereinbarung der Schule. Da die Schule i.d.R. nur über eine einfache DSL-Leitung verfügt, sollten Sie z.B. das Herunterladen oder das Bereitsstellen von größeren Dateien in den Tauschordner (v.a. während der Unterrichtszeit) vermeiden.
Warning
Je nach Einstellung kann es sein, dass sie auf Ihr Netzwerk zu Hause (Netzwerkdrucker, Network Attached Storage, Netzwerkfreigaben) während eines geöffneten Tunnels nicht zugreifen können. Die Internet-Geschwindigkeit ist durch die geringe Upload-Geschwindigkeit der Schul-Internetverbindung langsam.
Note
VPN ist nicht für einen Internet-Zugriff gedacht.
Der VPN-Tunnel wird verschlüsselt, damit der Datenverkehr nicht abgehört werden kann. Hierfür benötigen Sie ihren persönlichen Schlüssel, der zusätzlich mit einem Passwort gesichert ist.
Hierzu hat der Netzwerkbetreuer auf dem IPFire-Server bereits den OpenVPN-Server aktiviert.
Ob dies so ist, können Sie selbst in der Schulkonsole kontrollieren.
VPN-Zugang einrichten¶
VPN-Zertifikat erstellen¶
Melden Sie sich an der Schulkonsole an und gehen Sie mit der Bildlaufleiste zum Ende der Übersichtseite Ihres Kontos zum Bereich OpenVPN-Zertifikat.
Sehen Sie nachstehende Eingabemöglichkeit,

so erstellen Sie für sich ein OpenVPN-Zertifikat, indem Sie ein Kennwort für das Zertifikat festlegen. Bestätigen Sie dieses Kennwort in der darunter liegenden Zeile und klicken Sie dann den Button Zertifikat erstellen und herunterladen.
Danach erhalten Sie die Bestätigung, dass das Zertifikat für Sie erstellt wurde:


Die Dateien des Zertifikates finden Sich nun in Ihrem Home-Laufwerk im Verzeichnis OpenVPN.

Laden Sie diese Dateien herunter. Sie benötigen diese zur Nutzung Ihres VPN-Clients. Haben Sie Zertifikate für sich erstellt und heruntergeladen, müssen Sie Ihren Administrator bitten, diese noch zu aktivieren.
VPN-Client einrichten¶
Haben Sie sich die Schlüssel- und Konfigurationsdateien heruntergeladen, benötigen Sie noch eine Client- Software für den Zugriff via OpenVPN.
Windows-Client¶
Sie benötigen den aktuellen OpenVPN-Client 2.4 (OpenSource - Download OPenVPN Windows)
Konfiguration
Bei der Installation des OpenVPN Clients werden unter Windows neue Netzwerkadapter (TUN- und TAP-Devices installiert. Der OpenVPN-Client wird dabei in das Verzeichnis C:\Programme\OpenVPN\
installiert.
Kopieren Sie nun die heruntergeladenen Dateien in das Unterverzeichnis c:\Programme\OpenVPN\config\
.
Öffnen Sie nun als Administrator die Datei <dateiname>-RED.ovpn
und passen Sie ggf. Einträge an.
Für Windows haben sich bislang folgende Einträge bewährt:
#OpenVPN Server conf
tls-client
client
dev tun
proto udp
tun-mtu 1400
remote <IP des Servers oder Adresse> 1194
pkcs12 <benutzer>.p12
cipher BF-CBC
comp-lzo
verb 3
ns-cert-type server
route-method exe
route-delay 2
Testen Sie nun die Verbindung, indem Sie mit der rechten Maustaste auf das Symbol des OpenVPN-Clients klicken und diesen dann als Administrator starten. Rechts unten in der Symbolleiste finden Sie dann das Symbol des gestarteten OpenVPN-Clients. Klicken Sie mit der rechten Maustaste hierauf und wählen Sie den Menüpunkt Connect aus. Sie werden nach dem Kennwort gefragt. Haben Sie das Kennwort des OpenVPN-Zertifikats erfolgreich eingegeben, wird eine Verbindung aufgebaut. War dieser Vorgang erfolgreiche, sehen Sie unten rechts in der Symbolleiste einen grünen Tunnel.
Linux-Clients¶
Sie benötigen ebenfalls den aktuellen OpenVPN-Client. Installieren Sie diesen mit Ihrer Paketverwaltung. Unter Ubuntu geben Sie bitte folgende Befehle zur Installation an:
sudo apt-get update
sudo apt-get install openvpn
Konfiguration
Es kann mithilfe der grafischen Oberfläche Gnome der sog. Netzwerkmanager zur Konfiguration genutzt werden. Damit dieser ebenfalls für VPN-Verbindungen genutzt werden kann, muss noch das Plugin hierfür installiert werden.
Hierzu sind folgende Befehle auf der Konsole anzugeben:
sudo apt-get update
sudo apt-get install network-manager-openvpn network-manager-openvpn-gnome
Nach der Installation ist der Netzwerkmanager wie folgt neu zu starten:
sudo service network-manager restart
Legen Sie einen neuen Ordner OpenVPN in Ihrem Benutzerverzeichnis (Persönlicher Ordner) an. Kopieren Sie die zuvor heruntergeladenen Dateien in dieses Verzeichnis.

Klicken Sie jetzt auf das Doppelpfeil-Symbol in der Kopfleiste, um den Netzwerkmanagers aufzurufen. Wählen Sie den Menüpunkt VPN Verbindungen bearbeiten aus.

Wählen Sie im neuen Fenster Netzwerkverbindungen Den Button Hinzufügen. Wählen Sie dann als Verbindungstyp OpenVPN aus und klicken den Button Erzeugen.
In dem neuen Fenster geben Sie bitte einen Namen für die VPB-Verbindung an. Die weiteren Felder füllen Sie wie in den beiden nachstehenden Abbildungen angegeben. Die angegebenen Dateinamen sind die Dateien, die Sie soeben in das Verzeichnis OpenVPN kopiert haben.

In o.g. Fenster klicken Sie auf den Button Erweitert….

Speichern Sie nun die OpenVPN-Verbindung ab.
Testen Sie den Verbindungsuafbau, in dem Sie oben rechts mit der rechten Maustaste auf das Doppelpfeil-Symbol des Netzwerkmanagers klicken und danach den Menüeintrag VPN-Verbindungen -> <Meine-OpenVPN-Verbindung> auswählen, die Sie gerade angelegt haben.
Der erfolgreiche Verbindungsaufbau wird dann im Netzwerkmanager bestätigt.
MAC-Clients¶
Unter MAC OS X benötigen Sie als Client für OpenVPN das Programm Tunnelblick (Download OpenVPN MAC).
Installieren Sie dieses Programm. Während der Installation werden Sie nach einem Benutzer und einem Kennwort gefragt. Hier müssen Sie einen lokalen Benutzernamen mit Administratorrechten des MAC OS X Systems angeben - nicht den OpenVPN-Benutzer.
Konfiguration
War die Installation erfolgreich klicken Sie am Ende der Installation auf den Button Ausführen. Sie gelangen in das nächste Fenster Willkommen zu Tunnelblick. Klicken Sie hier den Button Ich habe Konfigurationsdateien. Danach wählen Sie die heruntergeladenen Zertifikatsdateien (OVPN-Datei und Zertifikatsdateien) aus. Zum Abschluss der Konfiguration geben Sie an, dass die Konfiguration nur für diesen Benutzer installiert werden soll. Zum Abschluss fragt Tunneblick wieder nach dem lokalen Benutzer mit Administrationsrechten.
Nach Installation und Konfiguration wurd Tunnelblick nun nach jeder Anmeldung am MAC OS X System gestartet und Sie finden oben rechts in der Symbolleiste das graue Tunnel-Icon.
Zum Testen der Verbindung klicken Sie mit der Maus auf dieses Icon und wählen im Kontextmenü den Eintrag <Benutzer> verbinden aus. Während des Verbindungsaufbaus erhalten Sie eine Rückfrage nach Ihrem OpenVPN Benutzer und Ihrem Kennwort. Nach erfolgreicher Verbindung erscheint das Tunnel-Symbol schwarz hinterlegt.
Nutzungshinweise¶
Zugriff auf die Schulkonsole¶
Haben Sie von den Tunnel aufgebaut, haben Sie Zugriff zum Schulnetzwerk. Sie könne somit nun uach auf die Schulkonsole zugreifen. Geben Sie dann in Ihrem Browser die gleichen Adressen wie in der Schule ein:
Für die Schulkonsole (evtl. kommt eine Sicherheitszertifikatsabfrage, einfach annehmen):
Zugriff auf das Home-Verzeichnis (Server)¶
Windows
- Gehen Sie im Explorer auf Extras → Netzwerklaufwerk verbinden
- Geben Sie unter Adresse „\<Name-oder-IP-des-Servers>“ gefolgt von Ihrem Kürzel ein, also z.B. \serverme
- Wählen Sie einen freien Laufwerksbuchstaben
- Geben Sie ihren Schul-Benutzernamen (eben dieses Kürzel) samt Kennwort ein.
Danach wurde Ihr Home-Verzeichnis auf dem Server dem zuvor gewählten Laufwerksbuchstaben zugeordnet.
Linux
Ihr Home-Verzeichnis bekommen Sie im Datei-Browser (Nautilus) über Gehe zu → Ort, dann geben Sie .. code::bash
smb://<Servername-oder-IP>/<benutzername>
ein (ersetzen Sie <benutzername> immer mit Ihrem Login-Kürzel).
MAC
Das Vorgehen erfolgt wie unter Linux beschrieben.
Attention
Der externe Zugang zum Server ist nur für gelegentliche Zugriffe gedacht. Daher ist der Zugriff so konfiguriert, dass Sie nicht über die VPN-Verbindung auf dem Schuldrucker ausdrucken können. Dies und auch weitere Funktionen können Sie aber mithilfe einiger Anpassungen selbst aktivieren. Hilfestellungen finden Sie hierzu in unserem Anwenderwiki.
Attention
Weiterführende Hinweise: * Druckerzugriff via VPN: http://www.linuxmuster.net/wiki/dokumentation:handbuch:printing:remoteaccess * Mounten des Home-Verzeichnisses unter Linux: http://www.linuxmuster.net/wiki/anwenderwiki:openvpn:start * Hinweise zu den Zertifikaten: http://www.linuxmuster.net/wiki/dokumentation:handbuch:maintenance:certificates.openvpn * Viel weitere Hinweise zu VPN: http://www.linuxmuster.net/wiki/version3:openvpn
Drucken der Erstpasswortlisten¶
Jede Lehrkraft kann z.B. zum Schuljahresanfang die Erstpasswortlisten ihrer Schülerinnen und Schüler ausdrucken.
Note
Sobald ein Schüler sein Erstpasswort geändert hat, funktioniert das Erstpasswort nicht mehr.
Dazu melden Sie sich an der Schulkonsole an und wählen unter „Klassen” den Menüpunkt „Passwörter“.

Wälen Sie nun Ihre Klasse aus indem Sie auf die Klassenbezeichnung klicken.
Note
Falls Ihre Klasse nicht in der oberen Liste auftaucht, müssen Sie sich zunäst in die Klasse eintragen. Wählen Sie dazu im Dropdown-Menü die Klasse aus und klicken anschließend auf eintragen.

Laden Sie sich die Liste durch klicken auf „Passwortliste als PDF“ herunter.

Abschließend drucken Sie die Datei aus.
Anzeigen des eigenen Plattenplatzes¶
Jeder Benutzer kann sich auf der Startseite der Schulkonsole über seinen verbrauchten Speicherplatz und seine Quota (im zustehenden Anteil) informieren.
Melden Sie sich in der Schulkonsole an.

In diesem Beispiel ist die Quota nur zur Hälfte ausgeschöpft. Um genauere Angaben zu bekommen, genügt es, mit dem Mauszeiger auf die entsprechende Leiste zu gehen. Die Zahlen bedeuten: 180308 kiloByte von ca. 400 MegaByte sind belegt, das entspricht 45%. Nur 6 von 40000 möglichen Dateien machen die 180 MB aus und gehören dem Benutzer.
Es gibt ein “soft limit” (hier 400MB), das unter einem Windows-Arbeitsplatz als maximaler Speicherplatz angezeigt wird. Überschreitet das Datenvolumen diese Grenze, wird ein Warnhinweis ausgegeben, die Dateien werden aber noch bis zum Erreichen des “hard limit” (hier 500MB) abgespeichert. Bei Erreichen des “hard limit” geht dann für diesen Benutzer wirklich nichts mehr, bis er wieder so viel Platz geschaffen hat, dass er unter das “soft-limit” rutscht. Ebenso wird auch die Anzahl der Dateien begrenzt.
Beachten Sie auch, dass das gesetzte Quota immer für eine ganze Festplattenpartition auf dem Linux-Server gilt, d.h. in den meisten Fällen zählen auch Dateien auf den Tauschverzeichnissen zum verbrauchten Speicherplatz.
Neben der Speicherplatzbeschränkung kann im Schulnetz auch eine Beschränkung des E-Mail-Speicherplatzes und der gedruckten Seiten eingerichtet sein.
Schüler-quota überprüfen - Arbeitstitel¶
MoniPi für linuxmuster.net¶
Das Projekt “MoniPi” stellt ein vorbereitetes Image für den Raspberry Pi 2/Raspberry Pi 3 zur Verfügung, mit dem ein kleines Netzwerk überwacht werden kann.
MoniPi basiert auf Raspbian Jessie Lite mit den Open Monitor Distribution (OMD) Paketen von bananian.org
Das vorliegende Dokument erläutert die Vorbereitung und Inbetriebnahme des Raspberry Pi sowie die Einrichtung des Monitoring für den linuxmuster.net Server.
Inhalt:
Einrichtung des Raspberry Pi¶
Attention
Es ist unbedingt erforderlich, einen Raspberry Pi 2 oder einen Raspberry Pi 3 [1] zu verwenden. Die älteren Raspberry Pi Rechner haben einen anderen Prozessor verbaut und sind zu schwach, um OMD zu betreiben!
Hint
Diese Anleitung geht davon aus, dass die folgenden Schritte auf einem Rechner mit Linux als Betriebssystem durchgeführt werden.
Das linuxmuster-monipi-Image herunterladen¶
Laden Sie das vorbereitete gepackte Raspbian-Image von dieser Seite auf Ihren Rechner herunter. Entpacken Sie die Datei mit dem Befehl
$ gunzip monipi_<version>.img.gz
Image auf eine SD-Karte schreiben¶
Die verwendete SD-Karte muss mindestens eine Größe von 4GB haben.
Legen Sie die SD-Karte in ein geeignetes Lesegerät ein.
Öffnen Sie eine root-Shell.
Geben Sie den Befehl
$ fdisk -l
ein und entnehmen Sie der Ausgabe des Befehls den Devicenamen der SD-Karte. Im Beispiel unten ist der Device-Name
/dev/mmcblk0
die weiteren Zeichen (p1
,…) stehen für die Partitionen der Karte.Disk /dev/mmcblk0: 32.0 GB, 32010928128 bytes 4 Köpfe, 16 Sektoren/Spur, 976896 Zylinder, zusammen 62521344 Sektoren Einheiten = Sektoren von 1 × 512 = 512 Bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Festplattenidentifikation: 0xb3c5e39a Gerät boot. Anfang Ende Blöcke Id System /dev/mmcblk0p1 2048 62521343 31259648 83 Linux
Die Imagedatei enthält bereits die nötigen Partitionen und die Partitionstabelle und muss darum direkt auf die Gerätedatei geschrieben werden und nicht in eine möglichwerweise bereits auf der Karte vorhandene Partition.
Der folgende Befehl erledigt das, das Device der SD-Karte muss dabei möglicherweise angepasst werden:
$ dd bs=4M if=monipi.img of=/dev/mmcblk0
Legen Sie nach Beendigung des Vorgangs die SD-Karte in den Raspberry Pi ein und starten Sie diesen.
Ersteinrichtung des Raspberry Pi¶
Hint
Die folgenden Schritte müssen an der Kommandozeile des Raspberry Pi durchgeführt werden.
Standardzugangsdaten: Übersicht¶
Im Auslieferungszustand hat das MoniPi System die folgenden Zugangsdaten:
Benutzername | Passwort | Bemerkungen |
---|---|---|
pi | muster | Administrativer Benutzer für die Konsole. Kann sich per ssh anmelden, root-Shell mit |
omdadmin | omd | Administrativer Benutzer für das ChecMK Webinterface Erreichbar unter |
Turnkey¶
Um das Raspbian-Image zu individualisieren, muss als erstes als root der Befehl monipi-turnkey
ausgeführt werden. Dabei werden neue SSH-Host-Keys und ein neues “Snake-Oil” SSL-Zertifikat erzeugt sowie ein neues Passwort für den administrativen Benutzer pi
gesetzt.
Melden Sie sich am Raspberry an. Benutzername im Auslieferungszustand ist
pi
, das Passwortmuster
Werden Sie root durch Eingabe des Befehls
sudo -i
Führen Sie den Befehl
monipi-turnkey
aus und folgen Sie den Anweisungen. Geben Sie zweimal ein gutes Passwort für den administrativen Benutzer ein, wenn Sie dazu aufgefordert werden.pi@raspberrypi:~ $ sudo -i root@raspberrypi:~# monipi-turnkey Generiere neue SSH Host-Keys... Creating SSH2 RSA key; this may take some time ... 2048 4d:f7:1c:98:78:9b:05:0c:95:dd:b4:e4:c1:33:4f:62 /etc/ssh/ssh_host_rsa_key.pub (RSA) Creating SSH2 DSA key; this may take some time ... 1024 a6:05:41:0e:02:7d:99:6f:58:0c:0a:ea:ce:54:e7:b9 /etc/ssh/ssh_host_dsa_key.pub (DSA) Creating SSH2 ECDSA key; this may take some time ... 256 55:e6:b6:79:ca:47:59:4a:54:3c:1b:ee:2b:5e:0f:0a /etc/ssh/ssh_host_ecdsa_key.pub (ECDSA) Creating SSH2 ED25519 key; this may take some time ... 256 28:95:7a:3d:81:38:6a:c6:6a:c7:09:58:8c:d8:e5:e6 /etc/ssh/ssh_host_ed25519_key.pub (ED25519) Geben Sie ein neues Passwort für den administrativen Benutzer (pi) ein Geben Sie ein neues UNIX-Passwort ein: Geben Sie das neue UNIX-Passwort erneut ein: passwd: Passwort erfolgreich geändert root@raspberrypi:~#
Raspi-Config¶
Für gewöhnlich sind die heute erhältlichen SD-Karten größer als 4GB, es empfiehlt sich die Systempartition des MoniPi entprechend der verwendeten SD-Karte zu vergrößern.
Starten Sie dazu auf der Kommandozeile als root den Befehl raspi-config
. Wählen Sie dann den ersten Eintrag, beenden Sie raspi-config mit “Finish” und starten Sie den Raspberry Pi neu, wenn dies vorgeschlagen wird.


Nach dem Neustart sollte die Systempartition die gesamte SD-Kartengröße abzüglich des Platzes für die Boot-Partition umfassen. Im Beispiel unten mit einer 32GB Karte sieht die Ausgabe von df -h
folgendermaßen aus:
pi@raspberrypi:~ $ df -h
Dateisystem Größe Benutzt Verf. Verw% Eingehängt auf
/dev/root 30G 1,7G 27G 6% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 463M 0 463M 0% /dev/shm
tmpfs 463M 6,3M 457M 2% /run
tmpfs 5,0M 4,0K 5,0M 1% /run/lock
tmpfs 463M 0 463M 0% /sys/fs/cgroup
/dev/mmcblk0p1 60M 20M 41M 34% /boot
tmpfs 463M 88K 463M 1% /opt/omd/sites/default/tmp
Fussnoten
[1] | Bei Verwendung eines Raspberry Pi 3 muss darauf geachtet werden, dass man mindestenst die Version 1.1 des MoniPi Images zur Installation verwendet. |
Einrichtung auf dem linuxmuster.net Server¶
Auf dem Server muss der check_mk-Client installiert werden, der dem Monitoring-Server auf Nachfrage die Performance-Daten übermittelt.
Melden Sie sich auf der Serverkonsole als administrativer Benutzer an und installieren Sie die Pakete check-mk-agent
und xinetd
:
$ apt-get install check-mk-agent xinetd
Anschließend muss der xinetd konfiguriert werden, so dass eine Abfrage der Monitoring-Daten möglich wird. Editieren Sie dazu die Datei /etc/xinetd.d/check_mk
wie folgt:
service check_mk
{
type = UNLISTED
port = 6556
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/check_mk_agent
# If you use fully redundant monitoring and poll the client
# from more then one monitoring servers in parallel you might
# want to use the agent cache wrapper:
#server = /usr/bin/check_mk_caching_agent
# configure the IP address(es) of your Nagios server here:
# EDIT: KANN GEAENDERT WERDEN
# Wenn der MoniPi eine feste IP-Adresse hat, ist es sinnvoll,
# das Kommentarzeichen an der nächsten Zeile zu entfernen und dort
# die IP-Adresse des Monitoring Servers einzutragen
#only_from = 127.0.0.1 10.17.1.3
# Don't be too verbose. Don't log every check. This might be
# commented out for debugging. If this option is commented out
# the default options will be used for this service.
log_on_success =
# EDIT: MUSS GEAENDERT WERDEN von "yes" auf "no"
disable = no
}
Die Beschränkung des Zugriffs auf bestimmte IP-Adressen ist aus Sicherheitsgründen sinnvoll, kann aber erst dann erfolgen, wenn der Monitoring-Server (MoniPi) eine dauerhafte IP-Adresse hat.
Starten Sie den xinetd nach den Anpassungen neu:
$ service xinetd restart
Um zu überprüfen, ob die Einrichtung erfolgreich war, können Sie den Befehl
$ telnet localhost 6556
ausführen [1], dabei sollte eine längere Ausgabe von Performancedaten die Folge sein:

Fußnoten
[1] | Möglicherweise muss man den telnet-Befehl ebenfalls noch nachinstallieren: apt-get install telnet |
Hinzufügen des Servers zu OMD/check_mk¶
Im letzten Schritt muss der vorbereitete Server im Webinterface von OMD/check_mk aufgenommen werden.
Anmeldung am Check_MK Webinterface des MoniPi¶
Melden Sie sich am Webinterface unter der Adresse https://<ip-des-monipi>/default/
mit den folgenden Zugangsdaten an:
- Benutzername: omdadmin
- Passwort: omd
Die Zertifikatswarnung müssen Sie ignorieren (die Verbindung wird mit einem debian-Snake-Oil-Zertifikat verschlüsselt).

Anschließend sollten Sie auf das Webinterface von Check_MK weitergeleitet werden.

Ändern des Passworts¶
Attention
Ändern Sie unbedingt als erstes das Passwort für den administrativen Benutzer des Webinterfaces.
Klicken Sie zunächst auf das Werkzeugsymol in der linken unteren Ecke des Webinterfaces.

Geben Sie in der nächsten Maske zweimal ein neues Passwort ein und übernehmen Sie es mit Klick auf “Save”.

Einrichtung des linuxmuster.net Servers als weiteren Host¶
Wählen Sie in der Box “Wato-Configuration” links unten den Bereich “Hosts” aus, um zur Hostliste zu gelangen.

Legen Sie durch Klick auf “New Host” einen neuen Host an.

Geben Sie einen Hostnamen ein, den das zu überwachende System im Check-MK-Webinterface haben soll, machen Sie das Häkchen bei IP address
und geben Sie die IP-Adresse des Servers ein. Schließen Sie den Vorgang mit einem Klick auf Save & go to Services
ab.

Wenn der Server unter der angegebenen IP-Adresse auf Port 6556 erreichbar ist, werden die überwachten Dienste des Servers angezeigt, die die automatische Inventarisierung auf dem Server finden konnte.
Übernehmen Sie diese Dienste mit einem Klick auf Automatic Refresh (Tabula Rasa)
.

Das Webinterface springt zurück zur Hostliste und zeigt oben in Orange, dass es ungespeicherte Änderungen gibt. Klicken Sie auf den orangenen Button.

Die ungespeicherten Änderungen werden angezeigt, übernehmen Sie diese mit einem Klick auf Activate Changes
ins System.

Die Änderungen werden übernommen.

Nun taucht der Server in der Hostliste der überwachten Systeme auf, wenn man im Menü Views
den Punkt Hosts
-> All Hosts
öffnet. Durch einen Klick auf den Servernamen gelangt man zur Übersicht der überwachten Dienste.


Benachrichtigungen im Fehlerfall¶
Auf dem MoniPi ist im Auslieferungszunstand kein aktiver Benachrichtigungsweg konfiguriert. Um Fehler sehen zu können muss man sich am Webinterface anmelden, was natürlich nicht alltagstauglich ist.
Um dieses Problem zu lösen, sei an dieser Stelle auf verschiedene Apps verwiesen, mit denen man den Status seines MoniPi anzeigen lassen kann.
Für Chromium/Chrome und iOS stehen ebenfalls Ereiterungen und Apps zur Verfügung, prinzipiell sollte jede App funktionieren, die Nagios/Icinga Instanzen abfragen kann.
Wenn man Benachrichtigungen per Mail wünscht, muss man zunächst auf der Konsole dem MoniPi Mailversand “beibringen” und anschließend in der Konfiguration von Check-MK entsprechende Notifications definieren.
Index¶
Backup und Restore mit Mondo durchführen¶
Inhaltsverzeichnis:
Übersicht¶
Note
Das notwendige Paket mondo befindet sich in einem externen Repository. Dieses muss also vor der Installation eingebunden werden. Zur Vorgehensweise siehe Abschnitt Installation.
Backup und Restore des Servers können in linuxmuster.net 6.1 mit dem Opensource-Tool Mondo Rescue realisiert werden. Es ermöglicht:
- Vollbackup im Live-Betrieb;
- Automatische Backups per Cronjob;
- Backup-Strategien mit inkrementellen und differentiellen Backups;
- Backup auf Wechselplatte/NFS-Share;
- Restore von Festplatte, NFS oder CD-/DVD-Medien;
- Komplettwiederherstellung des Servers inklusive LVM- oder Raidsystem;
- Wiederherstellung einzelner Dateien und Verzeichnisse im Live-Betrieb.
Weiterführende Informationen zu Mondo Rescue finden Sie im MondoRescue HOWTO.
Attention
Führen Sie nach der Erstinstallation des Servers - noch bevor Sie Benutzer und Arbeitsstationen einrichten - testweise ein Vollbackup und danach einen Restore durch, um sicherzugehen, dass MondoRescue mit Ihrer Hardware kompatibel ist. Falls Probleme mit IDE-Festplatten auftreten, sollten Sie SATA-Platten einsetzen oder ein alternatives Backupverfahren wählen.
Installation¶
Das linuxmuster-backup-Programm befindet sich im Hauptrepo, ist also in der normalen Paketauswahl verfügbar. Für das eigentlich Backup wird mondo verwendet. Dieses befindet sich nicht im Hauptrepo und auch nicht in den üblichen Paketquellen für Ubuntu. Daher muss die Paketquelle für mondo eingerichtet werden, was im folgenden schrittweise beschrieben wird.
- Erstellen Sie mit dem Editor ihrer Wahl als Benutzer ‘’root’’ auf dem Server die Datei
/etc/apt/sources.list.d/mondorescue.list
mit folgendem Inhalt:
Note
Momentan (April/2015) ist die Mondorescue-Version 3.2.0 aktuell. Sie enthält einen schwerwiegenden Fehler, der ein korrektes Backup großer Dateien verhindert. Daher muss abweichend die aktuelle Testversion 3.2.0.xxx verwendet werden, bis die Version 3.2.1 erschienen ist.
Die Paketquelle lautet:
# Quellen für mondorescue
#deb ftp://ftp.mondorescue.org/ubuntu 12.04 contrib
# deb-src ftp://ftp.mondorescue.org/ubuntu 12.04 contrib
# Quellen für mondorescue Testversion
deb ftp://ftp.mondorescue.org/test/ubuntu 12.04 contrib
# deb-src ftp://ftp.mondorescue.org/test/ubuntu 12.04 contrib
Zusätzlich muss noch ein Link gesetzt werden:
ln -s /sbin/parted2fdisk /usr/sbin/parted2fdisk
Note
- Damit das System der Quelle vertraut, müssen noch der Repository-Schlüssel installiert werden:
wget ftp://ftp.mondorescue.org/ubuntu/12.04/mondorescue.pubkey
apt-key add mondorescue.pubkey
rm mondorescue.pubkey
- Nun aktualisieren wir die Paketlisten, damit dem System bekannt wird, welche zusätzlichen Pakete zur Verfügung stehen:
apt-get update
- Schließlich installieren wir das Paket, welches das Backup-Programm zur Verfügung stellt und mondo mit installiert:
apt-get install linuxmuster-backup
Abhängigkeiten werden dadurch automatisch mit installiert.
Konfiguration¶
Die Konfiguration des Backupverhaltens kann direkt in der Datei /etc/linuxmuster/backup.conf
geschehen.
Alternativ kann die Konfiguration über die Schulkonsole erfolgen, siehe Konfiguration mit der Schulkonsole beschrieben.
Die Parameter im Einzelnen:
- backupdevice
Festplattenpartition oder NFS-Share, auf das gesichert werden soll, wird nach
/media/backup
gemountet.Beispiele:
backupdevice=/dev/sdb1 backupdevice=10.16.1.10:/home/nfs backupdevice="/dev/disk/by-uuid/ccfc9531-3486-4af0-9317-8f895f5a1c97"
Note
Wichtiger Hinweis
Das Backupgerät darf nicht in
/etc/fstab
eingetragen sein, da alle dort eingetragenen Dateisysteme bei einer Komplettrestaurierung formatiert werden!- restoremethod
Mögl. Werte: “hd” oder “nfs”, je nachdem, ob von Festplatte oder NFS-Share restauriert werden soll.
Standard: .. code-block:: bash
restoremethod=hd- firewall
Mögl. Werte: “yes” oder “no”, je nachdem, ob die aktuellen Einstellungen des IPFire gesichert werden sollen. Es wird unter
/var/backup/ipfire
gesichert. Diese Sicherung kann nach einer Vollrestauration bei der Erstellung des IPFire eingespielt werden.Standard:
firewall=yes
- verify
Mögl. Werte: “yes” oder “no”, je nachdem, ob die gesicherten Daten nach dem Backuplauf auf Konsistenz überprüft werden sollen.
Standard:
verify=yes
- isoprefix
Wird für die Bezeichnung der ISO-Images und des Backup-Verzeichnisses verwendet.
Standard:
isoprefix=server
- mediasize
mondo benutzt ISO-Images als Backup-Container, die bei Bedarf auch auf CD/DVD gebrannt werden können. Diese Option legt die Größe der Images in MB fest. Da Mondo Schwierigkeiten bei mehr als 50 Medien bekommt, sollte man die Größe seiner Installation anpassen. Falls die Medien nicht auf DVD gebrannt werden müssen, ist eine beliebige Größe möglich.
Standard:
mediasize=4430
- excludedirs
Eine durch Kommas separierte Liste der Verzeichnisse, die nicht gesichert werden sollen. Die Standardeinstellung sollte nicht entfernt werden.
Standard:
excludedirs=/var/tmp,/var/cache/apt/archives
- includedirs
- Eine durch Kommas separierte Liste der Verzeichnisse, die gesichert werden sollen. Wird nichts angegeben (Standard), wird das gesamte Dateisystem gesichert.
- services
Mögliche Werte: “all” oder eine Komma separierte Liste der Dienste des aktuellen Runlevels, die vor dem Start des Backups heruntergefahren werden sollen. “all” fährt alle Dienste des aktuellen Runlevels herunter. Nach dem Backuplauf werden die Dienste wieder hochgefahren. Wird nichts angegeben, werden auch keine Dienste heruntergefahren. Die in der Standardeinstellung vorgesehenen Dienste sollten nicht entfernt werden.
Standard:
services=cups,nagios3,postgresql,mysql,slapd,smbd,nmbd,postfix,apache2,cyrus-imapd,saslauthd,clamav-daemon,clamav-freshclam,rsync,atftpd,nscd,cron,bittorrent,linbo-bittorrent,linbo-multicast
- compression
Kompressionsgrad, mögl. Werte 0-9, der Standardwert 3 ist ein guter Kompromiss zwischen Schnelligkeit und Komprimierung. Wert 0 bedeutet keine Komprimierung.
Standard:
compression=3
- unmount
Mögl. Werte: “yes” oder “no”, bei “yes” wird versucht das backupdevice nach dem Backup auszuhängen. Das klappt natürlich nur, wenn es nicht noch anderweitig in Gebrauch ist.
Standard:
unmount=yes
- keepfull
Mögl. Werte: integer ab 1. Definiert die Anzahl der Vollbackups, die vorgehalten werden.
Standard:
keepfull=1
- keepdiff
Mögl. Werte: integer ab 1. Definiert die Anzahl der differentiellen Backups, die vorgehalten werden.
Standard:
keepdiff=3
- keepinc
Mögl. Werte: integer ab 1. Definiert die Anzahl der inkrementellen Backups, die vorgehalten werden.
Standard:
keepinc=7
- cronbackup
Mögl. Werte: boolean yes|no. Legt fest, ob automatisch tägliche inkrementelle und wöchentliche differentielle bzw. Vollbackups durchgeführt werden.
Standard:
cronbackup=no
Note
Anmerkung Alte Backups werden nur gelöscht, wenn das Backup zuvor fehlerfrei durchlief.
Die Backupsets werden in ISO-Dateien in ein Verzeichnis nach dem Schema <isoprefix>/<datum>_full
, <isoprefix>/<datum>_diff
bzw. <isoprefix>/<datum>_inc
auf das Backupmedium gesichert.

Dabei werden die ISO-Dateien nach dem Schema <isoprefix>-1.iso
, <isoprefix>-2.iso
usw. abgelegt. Die ISO-Dateien dienen als Backup-Container und können ggf. auch auf CD/DVD gebrannt werden, um davon zu restaurieren. Desweiteren wird bei einem Vollbackup das für die Restauration benötigte Bootimage mondorescue.iso
im Backupverzeichnis abgelegt.

Im Homeverzeichnis des Benutzers administrator
wird ein Link _backup
zum Mountpoint /media/backup
des Backupmediums angelegt, sodass er in der Lage ist, ISO-Images von einem Client aus auf einen Rohling zu brennen. Dazu muss jedoch das Backupmedium gemountet sein.
Konfiguration mit der Schulkonsole¶
Anstatt direkt die Konfigurationsdatei zu bearbeiten, kann man auch die Schulkonsole zur Konfiguration verwenden. Dazu installiert man zunächst das Paket linuxmuster-schulkonsole-backup
.
Das erweitert das Einstellungen-Menü des Netzwerkbetreuers um den Menüpunkt Backup.

Zur Bedeutung der einzelnen Parameter siehe Konfiguration.
Backups durchführen¶
Gestartet wird ein Backup über das Wrapper-Skript /usr/sbin/linuxmuster-backup
, das das Programm mondoarchive mit den entsprechenden Optionen für einen nicht interaktiven Ablauf aufruft. Hat man alle benötigten Einstellungen in der Datei backup.conf
getroffen, so genügt es, wenn man das Skript mit den Optionen --full
bzw. --diff
oder --inc
startet. Der Backuplauf wird dann vollautomatisch ohne weitere Eingaben durchgeführt und kann somit auch über einen Cronjob nachts angestoßen werden.
Skriptaufrufe für Voll-, differentielles und inkrementelles Backup:
linuxmuster-backup --full
linuxmuster-backup --diff
linuxmuster-backup --inc
Desweiteren ist es möglich, das Skript mit allen Optionen auch über die Kommandozeile zu starten. Kommandozeilenoptionen überschreiben die Werte, die in backup.conf
festgelegt wurden. Zu beachten ist, dass vor jede Option ein Doppelminus --
zu setzen ist.
Beispiele:
linuxmuster-backup --full --includedirs=/home --isoprefix=home --backupdevice=/dev/sdc1
linuxmuster-backup --diff --ipcop=no --verify=no
linuxmuster-backup --inc --unmount=no --mediasize=700
Einen Gesamtüberblick über die Kommandozeilenparameter von linuxmuster-backup
liefert der Befehl:
linuxmuster-backup --help
Note
Wichtiger Hinweis
mondoarchive schreibt ausführliche Informationen über den Backupverlauf in die Logdatei /var/log/mondoarchive.log
. Leider wird die Datei bei jedem Aufruf des Programms überschrieben. Bei Problemen sollte man also die Datei wegsichern bevor das Backup erneut gestartet wird.
Backupstrategie und Automatisierung¶
In der Schulkonsole gibt es keine Oberfläche zur Konfiguration automatischer Backups. Es gibt aber eine Voreinstellung zur regelmäßigen Durchführung von Backups, mit deren Hilfe einerseits die Einschränkungen((während eines Backup-Laufs sind bestimmte Dienste des Servers nicht verfügbar)) gering gehalten werden, andererseits aber dennoch eine taggenaue Wiederherstellung des gewünschten Zustands möglich ist.
Automatisches Backup¶
Die Strategie ist in der Datei /etc/cron.d/linuxmuster-backup
eingetragen und wird im Abschnitt Konfiguration durch die Einstellung cronbackup=yes
aktiviert.
Die voreingestellte Strategie bedient sich des Programms /usr/sbin/linuxmuster-backup-diff-full
zur Ermittlung des 1. Samstags im Monat und damit der Entscheidung, ob ein differentielles oder Vollbackup durchgeführt werden soll. Die angewandte Stragie wird weiter unten genauer beschrieben.
Vollbackup¶
Durch den voreingestellten Cronjob wird ein Vollbackup immer am 1. Samstag eines Monats um 1 Uhr nachts ausgeführt.
Differentielles Backup¶
Differentielle Backups werden dreimal im Monat jeweils Samstag Nacht [1] um 1 Uhr nachts ausgeführt.
Inkrementelles Backup¶
Inkrementelle Backups werden an den übrigen Tagen des jeweiligen Monats um 2 Uhr nachts ausgeführt.
Mit dieser Backupstrategie erhalten Sie über einen Monatszeitraum hinweg eine Backup-Historie, die es ermöglicht, den Serverzustand eines bestimmten Zeitpunktes wieder herzustellen:
Durch die Verwendung von differentiellen und inkrementellen Backups wird der Speicherplatzverbrauch auf dem Backupmedium minimiert.
Caution
Wichtiger Hinweis
Den Wechsel des Backupmediums sollten Sie immer vor einem Vollbackup vornehmen, da bei differentiellen und inkrementellen Backups die Sicherungsdaten der vorher durchgeführten Backups auf dem Backupmedium vorhanden sein müssen.
[1] | außer am 1. Samstag |
Dateiwiederherstellung im Live-Betrieb¶
Wiederherstellung von Dateien und Verzeichnissen im Live-Betrieb¶
Dazu muss das Backupmedium unter /media/backup
gemountet sein:
mount /dev/sdb1 /media/backup
Starten Sie als root
in einer Konsole das Programm mondorestore:
mondorestore
Es begrüßt Sie der Startbildschirm von Mondo Rescue. Drücken Sie ENTER:

Wählen Sie als Backupmedium Hard Disk aus:
Geben Sie nun den kompletten Pfad zu dem Backupset an, von dem Sie restaurieren wollen:

Im nächsten Schritt geben Sie das Präfix für die ISO-Dateien ein (in unserem Fall “server”):

Anschließend liest mondorescue die Dateilisten ein:

Sind alle Dateilisten geladen, wird Ihnen der zugegebenermaßen etwas umständlich zu bedienende Dateilisten-Editor präsentiert. Navigieren Sie mit den Pfeiltasten auf ein Verzeichnis. Mit der TAB-Taste gelangen Sie in das Menü und wieder heraus. Innerhalb des Menüs können Sie wiederum mit der TAB-Taste navigieren. Wählen Sie More, um den Verzeichnisbaum aufzuklappen, Less um ihn wieder zuzuklappen. Mit Toggle können Sie ein Verzeichnis oder eine Datei für den Restore markieren oder die Markierung wieder aufheben. Für den Restore markierte Elemente werden mit einem * gekennzeichnet. Haben Sie die Auswahl abgeschlossen, so navigieren Sie auf OK und drücken ENTER. Mit Cancel wird das Programm ohne Nachfrage verlassen.

Bestätigen Sie die folgende Sicherheitsabfrage, um schließlich den Zielpfad einzugeben. Es ist sicher eine gute Idee, erst einmal in ein temporäres Verzeichnis (z. Bsp. /var/tmp
) zu restaurieren, um die Dateien dann nach eingehender Prüfung an den vorgesehenen Ort zu verschieben.

Die ausgewählten Dateien und Verzeichnisse werden nun unter /var/tmp
wieder hergestellt. Danach beendet sich mondorestore und Sie können das Backupmedium wieder unmounten.
Komplettrestore des Servers¶
Da dies nicht im Livebetrieb geschehen kann, muss ein Bootmedium hergestellt werden. Dazu brennen Sie die ISO-Datei mondorescue.iso
aus dem Verzeichnis des jüngsten Vollbackupsets (vgl. Abschnitt Konfiguration) mit einem handelsüblichen Brennprogramm auf einen CD-Rohling.
Schließen Sie gegebenenfalls die Backupfestplatte an den Server an oder stellen Sie sicher, dass Netzwerkverbindung zum NFS-Backup-Server besteht. Booten Sie dann den Server von der mondorescue-Boot-CD. Nach kurzer Zeit erscheint der Bootprompt von Mondo Rescue:

Hier haben Sie nun unter anderem folgende Möglichkeiten für die Restaurationsmethode:
- nuke
- Im Abschnitt Restore eines Vollbackups wird die automatische Restauration erläutert.
- interactive
- Der interaktive Modus im Abschnitt Interaktiver Restore beschreibt die Benutzer gesteuerte Wiederherstellung.
Restore eines Vollbackups¶
Nach der Eingabe von nuke am Bootprompt wird der Rechner vollautomatisch aus dem letzten Vollbackupset restauriert. Die Festplatte(n) werden partitioniert und formatiert. Raid- bzw. LVM-Systeme werden wiederhergestellt. Falls auf dem Zielsystem größere Festplatten vorhanden sind, werden die Partitionsgrößen dynamisch angepasst.

Anschließend wird der auf dem Backupmedium gefundene Vollbackupset, aus dem das zur Restauration verwendete ISO-Image mondorescue.iso
stammt, wieder hergestellt.

Nach Abschluss des Restaurationsvorgangs erscheint noch ein Hinweis, den Sie mit ENTER bestätigen müssen,

um schließlich auf die Konsole zu gelangen.

Falls Sie keine differentiellen und inkrementellen Backupsets restaurieren müssen, geben Sie am Prompt exit ein, um in den frisch restaurierten Server zu booten. Was im anderen Fall ist noch zu tun ist, lesen Sie im Abschnitt Restore von differentiellen und inkrementellen Backups.
Restore von differentiellen und inkrementellen Backups¶
Wenn Sie nach einem Vollbackup noch weitere differentielle und/oder inkrementelle Backups erstellt haben, müssen diese anschließend an den Restore des Vollbackups in chronologischer Reihenfolge zurückgespielt werden. Das muss dann im [[backup.disaster.recovery.interactiv|interaktiven Modus]] erfolgen. FIXME
Haben Sie differentielle Backups erstellt, wird als nächstes das aktuellste, differentielle Backup restauriert. Sind dann noch inkrementelle Backups jüngeren Datums vorhanden, müssen diese nacheinander auch noch zurückgespielt werden.
Die Vorgehensweise anhand des oben genannten Beispiels

wäre dann:
- Automatisches Restore des Vollbackups 070201_010002_full, wie im Abschnitt Restore eines Vollbackups beschrieben;
- Restore des differentiellen Backups 070225_020002_diff;
- Restore der beiden nachfolgenden inkrementellen Backups 070227_030002_inc und 070228_030002_inc.
Nach erfolgtem Restore des Vollbackups booten Sie das System also nicht neu, sondern starten auf der Mondo-Rescue-Konsole das Programm mondorestore:
mondorestore
Fahren Sie fort, wie im Interaktiver Restore beschrieben. Wiederholen Sie den Restorevorgang für jedes differentielle und inkrementelle Backup, das Sie restaurieren müssen.
Interaktiver Restore¶
Geben Sie am Bootprompt interactive ein. Die CD bootet dann direkt in das Startmenü von mondorestore.
Wählen Sie im Startmenü die Option Interactively:

Wählen Sie im nächsten Schritt das Backupmedium aus:

Geben Sie den Präfix für die ISO-Dateien nun ein (in unserem Fall “server”):

Geben Sie das Backupgerät ebenfalls ein (in unserem Beispiel eine Festplattenpartition):

Das Dateisystem der Backup-Partition wird automatisch erkannt, das Eingabefeld kann also leer bleiben:

Geben Sie den Pfad zum gewünschten Backupset ein. Vorgegeben wird der Pfad zum Vollbackup. Wenn Sie ein differentielles oder inkrementelles Backupset zurückspielen möchten, müssen Sie den Pfad anpassen.

Jetzt können Sie noch die Partitionierung der Festplatte(n) anpassen. Das ist jedoch nur in Spezialfällen notwendig, wenn Sie zum Beispiel ein Vollbackup interaktiv restaurieren und die Partitionierung auf dem Zielsystem anders sein soll als auf dem System, das gesichert wurde. Um weiter zu gelangen, navigieren Sie mit der TAB-Taste auf OK und drücken Sie ENTER.

Bestätigen Sie noch die Sicherheitsabfrage bezüglich der Mountliste.

Nachdem die Zieldateisysteme gemountet wurden, werden Sie noch gefragt, ob Sie alle Dateien des Backupsets restaurieren wollen. Wählen Sie Yes, um den Backupset komplett zu restaurieren. Mit No erhalten Sie die im Abschnitt Interaktiver Restore beschriebene Möglichkeit, einzelne Dateien und Verzeichnisse für die Restauration auszuwählen.

Schließlich startet der Restaurationsvorgang.

Sind alle Dateien restauriert kann der Bootloader initialisiert werden. Wählen Sie Yes.

In einem weiteren Schritt muss noch angegeben werden, ob die Mountliste geändert wurde.

Sollen die Partitionen mit einem Label versehen werden? Hier kann mit Yes geantwortet werden.

Bestätigen Sie abschließend noch den Start des post-nuke scripts.

Nun ist die Restauration des Backupsets abgeschlossen und die Mondo-Rescue-Konsole erscheint. Wenn Sie weitere Backupsets zurückspielen müssen, starten Sie mondorestore auf der Konsole. Um das System neu zu starten, geben Sie exit ein.
Hardwaretest mit mindi¶
Mit Hilfe des Tools mindi erzeugt mondoarchive beim Backup ein bootbares Restore-CD-Image. Um zu testen, ob bei einem späteren Restore die Festplatten und Partitionen richtig erkannt werden, ist es empfehlenswert den Server einmal von einer mit mindi erzeugten CD zu booten.
Das mindi-CD-Image erstellen Sie einfach mit dem Befehl
mindi
auf der Konsole. In der Folge müssen Sie zwei Fragen beantworten. Die Frage nach dem eigenen Kernel beantworten Sie mit y:
Mindi Linux mini-distro generator v2.0.4-r2045
Latest Mindi is available from http://www.mondorescue.org
BusyBox sources are available from http://www.busybox.net
------------------------------------------------------------------------------
Mindi-BusyBox v1.2.1 (2008.10.20-18:41+0000) multi-call binary
Do you want to use your own kernel to build the boot disk ([y]/n) ?
Danach wird das System analysiert und das ISO-Image erstellt. Die abschließende Frage nach dem bootbaren USB Image beantworten Sie mit n.
Analyzing dependency requirements Done.
Making complete dependency list Done.
Analyzing your keyboard's configuration.
Adding the following keyboard mapping tables: Done.
Assembling dependency files...................................Done. ..........
Your mountlist will look like this:
Analyzing LVM...
DEVICE MOUNTPOINT FORMAT SIZE (MB) LABEL/UUID
/dev/sda6 lvm lvm 140003
/dev/sda1 / ext3 9554
/dev/mapper/vg_lml-home /home ext3 lvm
/dev/mapper/vg_lml-var /var ext3 lvm
/dev/mapper/vg_lml-var+spool+cups /var/spool/cups ext3 lvm
/dev/sda5 swap swap 3067
Tarring and zipping the data content... Done.
Making 16384KB boot disk...............udev device manager found
WARNING: No Hardware support for ST20V10
You may ask your manufacturer to contribute to the mindi project
...11709 blocks
............ Done.
In the directory '/var/cache/mindi' you will find the images:-
mindi-bootroot.16384.img
Created bootable ISO image at /var/cache/mindi/mindi.iso
Shall I make a bootable USB image ? (y/[n])
Das mindi-CD-Image finden Sie unter /var/cache/mindi/mindi.iso
. Brennen Sie nun das ISO-Image auf einen CD-Rohling und booten Sie den Server damit.
Ist der Bootvorgang abgeschlossen, erscheint eine Konsole. Durch Eingabe des Befehls
fdisk -l
verschaffen Sie sich einen Überblick über die gefundenen Festplattenpartitionen. Wenn die Partitionen (inkl. Backuppartition) nicht so angezeigt werden, wie auf dem laufenden linuxmuster.net-Server, wurde wahrscheinlich der Festplattenkontroller nicht erkannt. In dem Fall kann man durch Hinzufügen des entsprechenden Treibermoduls in der Konfigurationsdatei /etc/mindi/mindi.conf
unter SCSI_MODS oder IDE_MODS den Fehler eventuell beheben. Ein Vergleich der Ausgabe von
lsmod
des linuxmuster.net-Servers mit derjenigen unter mindi hilft gegebenenfalls bei der Suche nach fehlenden Modulen.
Caution
Wichtiger Hinweis
Ein Workaround, der evtl. hilft auf linuxmuster.net/openML-Systemen der Version 4.0.x Hardware-Probleme beim Restore zu vermeiden, besteht darin die Konfigurationsdatei /etc/mindi/mindi.conf
zu entfernen, sodass mindi die Hardwarekonfiguration nach Standardeinstellungen ermittelt. Erstellen Sie, wie oben beschrieben, ein Mindi-ISO-Image, verschieben Sie jedoch zuvor die Konfigurationsdatei /etc/mindi/mindi.conf
in ein anderes Verzeichnis, zum Beispiel:
mv /etc/mindi/mindi.conf /root
Note
Im Forum findet sich dieser Hinweis auf die Konfiguration der /etc/mindi/mindi.conf
.
Falls Mindi Fehler liefert, kann es nach folgender Anpassung funktionieren:
In der Datei /etc/mindi/mindi.conf
die Parameter anpassen:
#
# Example of mindi configuration file
#
# $Id$
#
# FORCE_MODS="crc_ccitt crc_ccitt"
#
# EXTRA_SPACE=80152 # increase if you run out of ramdisk space
# BOOT_SIZE=32768 # size of the boot disk
# MINDI_ADDITIONAL_BOOT_PARAMS="devfs=nomount noresume selinux=0 barrier=off udevtimeout=10 acpi=off"
EXTRA_SPACE=120000
BOOT_SIZE=96000
Index¶
Linuxmuster.net helfen¶
Es gibt verschiedene Möglichkeiten, wie Sie helfen können, linuxmuster.net zu verbessern.
- Über linuxmuster.net berichten (z.B. in Blogs, Sozialen Netzwerken, etc.)
- Fragen stellen und Fehler melden: https://ask.linuxmuster.net
- selbst Fragen beantworten: https://ask.linuxmuster.net
- Eigene Tipps und Tricks dokumentieren: https://linuxmuster.net/wiki
- Dem Verein beitreten
Dokumentation¶
Die Dokumentation wird bei github gelagert und bei Transifex übersetzt. Es ist sehr einfach, hier ohne weitere Hilfsmittel mitzuhelfen.
Ein bisschen herausfordernder ist, die Dokumentation in größerem Rahmen zu überarbeiten und lokal zu bauen, aber auch dafür gibt es eine Anleitung.
Dokumentation in GitHub ändern¶
Wenn Sie einen Fehler (Rechtschreibfehler, kleine inhaltliche Fehler, etc.) in der Dokumentation gefunden haben, klicken Sie einfach auf den “Edit on Github” Link am rechten oberen Rand jeder Dokumentationsseite.

Sie werden auf github.com geleitet. Mit einem Klick auf den Stift (siehe Bild) können Sie das aktuelle Kapitel bearbeiten. Dafür müssen Sie sich bei GitHub anmelden. Wenn Sie noch kein Konto bei Github haben, können Sie sich hier eines anlegen oder oben rechts auf “Sign up” klicken.

Die Dokumentation ist in der Auszeichnungssprache “rST” geschrieben. Hier finden Sie einen guten Überblick über die am häufigsten verwendeten Elemente.

Im Beispiel wurde der Rechtschreibfehler und die Länge der zur Überschrift gehörenden Unterschreichung geändert.
Nachdem du alle Änderungen vorgenommen hast, gib unten einen Titel und einen Kommentar ein. Die Änderungen können nun mit einem Klick auf “Propose file changes” eingereicht werden.

Dein Änderungsvorschlag wird dann vom Dokumentationsteam geprüft und gegebenenfalls übernommen. Sekunden später erscheint die Änderung dann auch hier in der offiziellen Dokumentation.
Hint
Bitte beachten Sie auch unbedingt die Leitlinien zur Dokumentation, damit ihre Änderungen schnell eingepflegt werden könnnen!
Sollest du bereits Schreibrechte am Repositorium haben und bist dir sicher, dass die Dokumentation durch deine Änderung nicht beeinträchtigt wird, kannst du die Änderungen direkt einbauen (“Commit”) oder im Zweifel einen Zweig und einen so genannten Pull-Request erstellen.

Größere Änderungen an der Dokumentation sind immer über Pull-Requests zu erstellen. Dafür ist es nützlich, lokal eine Kopie (fork) vorzuhalten und Änderungen lokal zu testen, das im entsprechenden Kapitel erklärt wird.
Dokumentation übersetzen¶
Die Dokumentation kann auf der Projektseite bei Transifex übersetzt werden. Klicken Sie einfach auf den blauen “Help Translate ‘official documentation’” und melden Sie sich mit ihrem Transifex-Konto an bzw. erstellen Sie ein neues.
Dokumentation lokal bearbeiten und veröffentlichen¶
Wenn du die Dokumentation erweitern willst, z.B. mit einem eigenen HowTo, ein fehlendes Kapitel ergänzen möchtest oder größere Änderungen machen und testen willst, benötigst du folgende Dinge:
- ein Konto bei Github
- Die Software git (wird zur Verwaltung und Versionierung der Dokumentation verwendet)
- Die Software sphinx (zum Übersetzen und Testen der Quelldateien), die wiederum python voraussetzt
- optional: SSH-Schlüssel bei Github hochladen (erleichtert die Arbeit mit git)
Virtualbox-Appliance verwenden¶
Um den Umgang mit rST/sphinx, git und github zu erleichtern, wird von uns eine virtuelle Umgebung angeboten.
- Installiere VirtualBox (mind. 5.2.2) von hier https://www.virtualbox.org/wiki/Downloads inklusive des Extension Packs
- Lade dir die neueste virtuelle Umgebung von hier herunter: http://www.lehrer.uni-karlsruhe.de/~za3966/lmn/
- Importiere die heruntergeladene OVA-Datei und starte die virtuelle Umgebung
- Benutzername:
- linuxadmin (angezeigt wird: Linux Admin)
- Passwort:
- linuxmuster
Manuelle Installation (Ubuntu)¶
Wer die virtuelle Appliance nicht nutzen will, kann mit folgenden Befehlen unter aktuellen (ab 16.04) Ubuntu-Distributionen git, python und sphinx nachinstallieren:
$ sudo apt install git
$ sudo apt install python3-pip
$ pip3 install sphinx
$ pip3 install sphinx_rtd_theme
Nachfolgende Befehle gehen davon aus, dass die virtuelle Umgebung verwendet wird.
Erste Schritte: Offizielle Dokumentation kompilieren¶
Jetzt kannst du bereits die bereits heruntergeladene Dokumentation aus dem offiziellen Repositorium bauen und betrachten. Öffne dazu ein Terminal, navigiere zum Ordner linuxmuster-docs/main, führe make html aus und führe xdg-open build/html/index.html aus, um das Ergebnis zu betrachten.
linuxadmin@lmn-docs:~$ cd linuxmuster-docs/
linuxadmin@lmn-docs:~/linuxmuster-docs$ cd main/
linuxadmin@lmn-docs:~/linuxmuster-docs/main$ git pull
...
linuxadmin@lmn-docs:~/linuxmuster-docs/main$ make html
sphinx-build -b html -d build/doctrees source build/html
Running Sphinx v1.6.5
loading translations [de_DE]... done
loading pickled environment... done
...
linuxadmin@lmn-docs:~/linuxmuster-docs/main$ xdg-open build/html/index.html
GitHub Konto erstellen¶
Spätestens jetzt sollte ein Konto bei GitHub erstellt werden: https://github.com/join. Verifziere deine E-Mail-Adresse. Natürlich kannst du die Dokumentation zu GitHub durchlesen. Weiter geht es dann unter https://github.com/linuxmuster-docs/main
Hint
Im folgenden wird das Konto “lmn-docs-bot” verwendet. Überall wo dieser auftaucht, ersetze ihn durch dein Kontonamen bei GitHub.
Linuxmuster Dokumentation forken¶
Öffne die linuxmuster.net Dokumentation auf Github und klicke auf “Fork”.

Öffne nun ein Terminal / eine Eingabeauffoderung (Strg+Alt+t
in Ubuntu) and gib folgenden Befehl ein:
Note
Nutze die URL git@github.com:lmn-docs-bot/main.git
falls du bereits einen SSH-Schlüssel bei Github hochgeladen hast!
linuxadmin@lmn-docs:~$ git clone https://github.com/lmn-docs-bot/main.git my-docs
Klone nach 'my-docs' ...
...
linuxadmin@lmn-docs:~$ cd my-docs
Du kannst nun mit
linuxadmin@lmn-docs:~/my-docs$ make html
linuxadmin@lmn-docs:~/my-docs$ xdg-open build/html/index.html
die Dokumentation in HTML übersetzen und in deinem Browser öffnen.
Dokumentation ändern oder neu erstellen¶
Die Dokumentation ist in der Markupsprache “rST” geschrieben. Hier findest du einen guten Überblick über die am häufigsten verwendeten Elemente.
Hint
Bitte beachte auch unbedingt die Leitlinien zur Dokumentation, damit ihre Änderungen schnell eingepflegt werden könnnen!
Im Verzeichnis source
und den entsprechenden Unterordnern befinden sich alle Dokumentationsdateien. Öffne einfach eine dieser Dateien und nimm die gewünschten Änderungen vor. Du kannst auch eine neue Dokumentation in einem der Unterordner anlegen. Erstelle dazu einfach einen Ordner mit einem passenden Namen und die notwendige index.rst
Datei.
$ mkdir source/howto/foobar
$ touch source/howto/foobar/index.rst
Schaue dir auch die anderen Dokumentationsdateien an, um mehr über den Aufbau und Syntax zu lernen.
Commit und push¶
Hast du alle Änderungen vorgenommen, kannst du sie nun zur Überprüfung einreichen. Dazu sind folgende Schritte notwendig:
Important
Überprüfe bitte zuerst selbst, ob make clean; make html
ohne Fehler
durchläuft! Falls nicht, behebe bitte alle Fehler und
Warnungen, bevor du deine Änderungen hochlädst!
$ make clean; make html
Falls du neue Dateien oder Ordner erstellt hast, müssen diese noch hinzugefügt werden:
$ git add source/howto/foobar
Gib nun noch einen Kommentar zu deinen Änderungen ein und lade alles in deinen Fork hoch:
$ git commit -a -m"My great documentation update"
$ git push
Pull-Request¶
Erstelle nun einen “Pull-Request” aus deinem eigenen Fork https://github.com/lmn-docs-bot/main (ersetze hier “lmn-docs-bot” durch deinen eigenen github-Namen), indem du auf “New Pull Request” klickst.

Wenn du weitere Änderungen vornimmst und mit git commit -a -m"My comment"
und git push
bei Github hochlädst, werden diese Änderungen automatisch dem Pull Request hinzugefügt, so lange, bis der Pull Request akzeptiert wird.
Wenn der Pull Request akzeptiert wurde: Herzlichen Glückwunsch! Falls ein “Review” erstellt wird und du gebeten wirst, Änderungen vorzunehmen, dann kannst du die Änderungen einfach mit “commit” und “push” ebenfalls hochladen und so den Pull Request verbessern.
Den eigenen Fork aktualisieren¶
Um später weitere Änderungen vornehmen zu können, kann der eigene Fork bei GitHub komplett gelöscht werden und ein neuer erzeugt werden. Alternativ kann der eigene Fork auf den Stand des offiziellen Repositoriums gebracht werden. Das läuft so ab: Eigene neue Änderungen verstecken, dann einmalig die original-Quellen hinzufügen, dann die Originalversion herunterladen, dann diese Version in den eigenen Fork hochladen, dann eventuell eigene Änderungen wieder aus dem Versteck holen. Und dann kann man wie oben weitermachen.
Verschiebe alle lokalen Änderungen mit
git stash
in den Hintergrund~/my-docs$ git stash
Füge (einmalig) einen remote-tracking branch hinzu:
~/my-docs$ git remote add upstream https://github.com/linuxmuster-docs/main.git
Hole und merge den aktuellen offiziellen branch:
~/my-docs$ git fetch upstream ~/my-docs$ git merge upstream/master Aktualisiere 76e2e32..be2f941 Fast-forward
Wenn der merge nicht in einem “Fast-forward” endet, sollte man besser den Fork löschen und neu erzeugen. Andernfalls kann man jetzt die offiziellen Änderungen in seinen eigenen Fork hochladen.
~/my-docs$ git push
Jetzt kann man seine lokale Änderungen wieder hervorholen
~/my-docs$ git stash pop
Leitlinien zur Dokumentation¶
Aufbau¶
Logisch aufgebaut wird die Dokumentation in
- Handbuch für Netzwerkbetreuer+Administratoren
- Handbuch für Lehrer
- Handbuch für Schüler
Innerhalb der Handbücher wird unterschieden nach aufgabenbasierten „HowTos“ und Bedienungsanleitungen.
- Für die Erstinstallation im Handbuch für Netzwerkbetreuer+Administratoren werden die wichtigsten HowTos als „Leitfäden“ besonders heraus- und vorangestellt.
- HowTos und Addons, die nicht zur Kerndokumentation gehören werden im Handbuch für Netzwerkbetreuer+Administratoren hintenangestellt.
Inhaltlich bauen sowohl die HowTos als auch die Bedienungsanleitungen in den verschiedenen Handbüchern aufeinander auf. Man soll davon ausgehen, dass die Lehrer auch das Handbuch für Schüler gelesen haben und die Netzwerkbetreuer das Handbuch der Lehrer und Schüler gelesen haben, z.B. das HowTo - „wie man sein Passwort ändert“ gilt für Schüler wie Lehrer wie Netzwerkbetreuer.
Howtos = Schritt-für-Schritt¶
Die Idee der „schritt-für-schritt“-Anleitungen wäre grundsätzlich,
- Es kurz zu halten und möglichst viele Screenshots zu machen. Dass das nicht immer geht, weil wir manchmal Konsolenbefehle brauchen, ist klar
- Mit den Screenshots Schritt für Schritt zu erklären, was gemacht werden soll
- Keine technischen Details, die sollten in die techsheets im Wiki.
- Alternative Vorgehensweisen vermeiden. Lieber die User-freundliche Alternative beschreiben und die Expertenalternative in ein techsheet im Wiki oder in einen Anhang
Manuals = Bedienungsanleitungen¶
Die Bedienungsanleitungen sollten einfach nur Funktionalitäten beschreiben.
Strukturguide¶
Auf Ebene der Dateien:
- Dateinamen klein schreiben, Leerzeichen vermeiden, “-“-Bindestrich statt “_”-Unterstrich
- Eine rst-Datei pro Kapitel, möglichst ein englischer Begriff, bsp: configuration.rst
- Medien, wie Bilder, etc.: Einen Unterordner media/ erstellen, bei vielen Bildern einen Ordner mit dem Namen der Kapiteldatei, darin Dateien abspeichern, bsp: media/configuration/screenshot-usage.png
Styleguide¶
Verwende “Du”
Benutze zwei
``backticks``
für URLs, URIs, Dateipfade und Dateinamen und Code im Fließtext (inline)Benutze einen
`backtick`
für das Hervorheben für Benutzernamen, Schaltflächen, besondere Aktionenfür Konsolenbefehle nutze
.. code-block:: console # mein kommando --force output
Für Bilder kann man image oder figure verwenden. Bei figure kann man Bildunterschriften hinzufügen
.. figure:: media/proposeChanges.png :align: center :alt: propose changes
Ein Kapitel sollte einen toctree enthalten, wenn es mehrere Dateien gibt
Ein Kapitel kann ein Label erhalten
.. _knownbugs-label: Bekannte Fehler ===============
Mit diesem Sprungpunkt kann man an anderer Stelle auf ihn verweisen
Bitte lesen Sie :ref:`hier <knownbugs-label>` nach, welche Fehler bekannt sind.
linuxmuster.net Community Feedback¶
linuxmuster-community-feedback ist ein Paket zur Erhebung fein konfigurierbarer Statistiken zum Einsatz von linuxmuster.net.
Das Paket kann ohne die Übermittlung personen- beziehungsweise institutionsbezogener Daten verwendet werden, es können jedoch auf expliziten Wunsch auch Informationen wie Schulname oder Einsatzort an das Projekt übermittelt werden.
Important
Eine Übermittlung der Statistiken ist für das Open Source Projekt “linuxmuster.net” sehr wichtig, da es mitunter schwer ist, offizielle Entscheider von der Zuverlässigkeit eines “kostenlosen” Produkts zu überzeugen.
Ein wichtiges Argument ist hier stets auch die Verbreitung des Systems belegen zu können, damit man darlegen kann, dass es sich bei linuxmuster.net nicht um ein “Nischenprodukt” handelt. In diesem Sinne sind zuverlässige Zahlen ein Baustein für den Erfolg des Projekts - bitte helfen Sie mit.
Inhalt:
Installation des Pakets¶
Das Paket linuxmuster-community-feedback wird mit dem Paketverwaltungswerkzeug aus den linuxmuster Repositorys installiert.
apt-get update
apt-get install linuxmuster-community-feedback
Direkt nach der Installation wird detailliert abgefragt, welche Informationen übermittelt werden sollen, am Ende des Konfigurationsvorgangs wird angezeigt, welche Daten genau übermittelt werden.
Konfiguration¶
Nach der Paketinstallation wird zunächst die zentrale Frage gestellt: Sollen überhaupt Daten an linuxmuster.net übermittelt werden?
Wird hier mit Nein
geantwortet, ist die Konfiguration des Pakets damit beendet, es werden
keine weiteren Änderungen am System vorgenommen und keinerlei Daten an
linuxmuster.net übermittelt.

Wenn Statistiken übermittelt werden sollen, wird zunächst erfragt, in welchem Umfeld die linuxmuster.net-Installation zum Einsatz kommt.

Anschließend geben Sie bitte an, ob und wie die Installation von linuxmuster.net virtualisiert ist.

Wird die linuxmuster.net Installation ganz oder teilweise durch einen Dienstleister betreut oder liegen Installation und Pflege des Systems alleine an der Schule?

Wo wird Ihre linuxmuster.net Installation eingesetzt? wenn Sie Nicht in Deutschland
auswählen, können Sie im nächsten Schritt eine freie Angabe zum Einsatzort machen.

Diese Eingabemöglichkeit gibt es nur bei der Auswahl Nicht in Deutschland
im vorigen Schritt:

Darf die Anzahl der Nutzer übermittelt werden? Wenn Sie hier mit YES
antworten, ermittelt das Feedback-Paket aus den Dateien “schueler.txt” und
“lehrer.txt” die Anzahl der Schüler beziehungsweise der Lehrer. Dabei werden
keine personenbezogenen Daten erhoben.

Dürfen Informationen über Zahl und Art der eingesetzten Clients übermittelt werden?
Wenn Sie hier mit YES
antworten, ermittelt das Feedback-Paket aus der Datei
“workstations” die Anzahl der dort eingetragenen Clientcomputer. Die Zahlen werden
getrennt aufgelistet, je nachdem ob ein Clientrechner von linuxmuster.net
mit linbo, mit linbo und opsi mit opsi oder als IP-Host verwaltet wird.
Weitere Informtionen zu den Clients wie Namen, Hardware Adresse, Hersteller o.ä. werden weder ermittelt, noch übertragen.

Mit der Beantwortung der nächsten Frage entscheiden Sie, ob Ihre Datenübermittlung anonym bleibt oder nicht. Wenn Sie sich entscheiden, den Namen Ihrer Schule an linuxmuster.net zu übertragen, können Sie später im Konfigurationsprozess festlegen, ob Ihre Installation auf der Nutzerkarte erscheinen soll und ob der Schulname auf der Karte dargestellt werden soll.
Der Schulname wird darüberhinaus nicht automatisiert veröffentlicht.

Der Schulname wird nur dann erfragt, wenn man im vorherigen Schritt der Übermittlung zugestimmt hat:

Darf Ihre Installation auf der Nutzerkarte erscheinen? Wenn ja, müssen Sie anschließende die Postleitzahl angeben.

Die Postleitzahl muss nur angegeben werden, wenn ein Eintrag auf der Karte gewünscht ist:

Soll der Name am Kartenpin angezeigt werden? Diese Frage erscheint nur, wenn zuvor der Schulname angegeben wurde.

Am Ende der Konfiguration wird eine Übersicht angezeigt, welche Daten an linuxmuster.net übertragen werden. Die dargestellten Informationen sind dabei exakt der Inhalt der Datei, die später an den Projektserver übermittelt wird.

Bestätigung der Anfrage überträgt die Daten wie dargestellt zum linuxmuster.net Server und erstellt einen Cronjob, der diesen Vorgang einmal wöchentlich automatisch wiederholt.
Dabei werden die Werte im Anschnitt “Statistiken” jeweils nach den Vorgaben der Konfiguration neu ermittelt.
Beispielkonfiguration: Minimale Angaben¶
Der folgende Screenshot zeigt den minimalen Datensatz, der als Feedback übertragen wird:

Übertragen werden dabei Informationen zu:
- Virtualisierung
- Bundesland/Einsatzort
- Einsatzzweck
- Dienstleisterunterstützung
Außerdem werden einmal je Woche die installierten Versionen der linuxmuster-Basispakete
- linuxmuster-base
- linuxmuster-linbo
- linuxmuster-schulkonsole
- sophomorix2
und der Status der Einstellung “subnetting” ermittelt und in der Statistikdatei aktualisiert.
Note
Die id der Installation wird aus der Mac-Adresse, dem Schulnamen und der Domäne ermittelt und mit MD5 gehasht, so dass das System zwar für statistische Zwecke anonym identifizierbar wird, aber ohne weitere Angaben keine Rückschlüsse auf die Ausgangswerte möglich sind.
Beispielkonfiguration: Maximale Angaben¶
Der folgende Screenshot zeigt den maximalen Datensatz, der als Feedback übertragen wird:

Der maximale Datensatz enthält alle Informationen des minimalen Datensatzes, ergänzt um:
- Schulname
- Postleitzahl
- Einverständnis zur Kartendarstellung und zur Darstellung des Schunamens am Kartenpin
Aktuell gehalten werden zusätzlich Informationen zu:
- Anzahl der Schüler/Lehreraccounts
- Anzahl der Clients, aufgeschlüsselt nach Kategorie
Konfigurationsänderungen vornehmen¶
Um die Konfiguration zu ändern oder anzupassen, etwa um die zu übermittelnden Daten zu verändern kann man alle Schritte der Paketkonfiguration durch Aufruf von
dpkg-reconfigure linuxmuster-community-feedback
erneut durchlaufen.
Die Optionen und Abfragen entsprechen dabe genau denen, bei der Paketinstallation.
Kommandozeilenbefehl¶
Das Paket installiert den Kommandozeilenbefehl
linuxmuster-community-feedback
. Der Befehl kennt vier Optionen, die mit
Ausnahme der Hilfe beliebig kombiniert werden können:
# linuxmuster-community-feedback -h
Usage: /usr/bin/linuxmuster-community-feedback [-v] [-u] [-s]
-v : Show stats file
-u : Upload stats to linuxmuster.net server
-s : Show cronjob status
-h : Print this help and exit
Die Option -v
zeigt Informationen über das Statusfile an - sowohl wie dieses
heißt, als auch welchen Inhalt es hat. Das Statusfile ist die Datei, die
letztlich beim übermitteln der Informationen an den Projektserver
übertragen wird.
Die Option -u
stößt eine Übertragung an.
Die Option -s
zeigt Informationen zum Cronjob an, der vom Paket in der
Datei /etc/cron.d/linuxmuster-community-feedback
eingerichtet wird:
# linuxmuster-community-feedback -s
Cronjob enabled in file:
/etc/cron.d/linuxmuster-community-feedback
--------------------------------
# Diese Datei wird automatisch erstellt.
# Manuelle Aenderungen werden ueberschrieben!
58 4 * * 0 root /usr/bin/linuxmuster-community-feedback -u > /dev/null 2>&1
--------------------------------
Hier zeigt die Ausgabe, dass jeden Sonntag um 04:58 Uhr eine aktualisierte Version der Statistik zum Projektserver übertragen wird.
Technische Hintergrundinformationen¶
Das Paket linuxmuster-community-feedback wird über das Debian eigene debconf
System konfiguriert, schreibt seine Konfiguration anschließend aber nach
/etc/linuxmuster/community-feedback.conf
.
Wird bei der Paketkonfiguration der Übermittlung statistischer Daten
zugestimmt, erzeugt das Skript /usr/bin/linuxmuster-community-feedback
aus
den Werten, die bei der Installation des linuxmuster.net-Servers für den
Schulnamen und die Domäne angegeben wurde sowie der MAC Adresse des “grünen”
Interfaces durch aneinanderhängen und bilden der
MD5-Summe eine eindeutige ID für das aktuelle System.
Anschließend werden entsprechend der vom Benutzer bei der Paketinstallation
gewählten Konfiguration Informationen über das System gesammelt, z.B. die
Versionsnummern der installierten linuxmuster Pakete oder die Anzahl der
Benutzer, und zusammen mit den Informationen aus der Konfigurationsdatei
in der Datei var/cache/linuxmuster/feedback-<ID>.txt
abgelegt.
Bei der Übermittlung an den Projektserver wird der Inhalt dieser Datei per https verschlüsselt zum linuxmuster.net Server übertragen. Dort werden die Dateien statistisch ausgewertet.
Außerdem wird in der Datei /etc/cron.d/linuxmuster-community-feedback
ein
Cronjob eingerichtet, der den Upload einmal pro Woche anstößt. Dieser Cronjob
sollte nicht deaktiviert werden, da auf dem linuxmuster.net-Server Server-IDs,
die mehr als zwei Wochen keine aktualisierte Datei mehr geliefert haben aus der
Statistik entfernt werden.
FAQ - Häufige Fragen¶
Wie kann ich ich sehen, welche Daten übertragen werden?¶
Mit dem Befehl
linuxmuster-community-feedback -v
werden die Daten angezeigt, die dem linuxmuster.net Server übermittelt werden.
Technisch wird dabei die Datei
/var/cache/linuxmuster/feedback-<systemid>.txt
zum linuxmuster.net Server übertragen.
Stimmt es, dass die Daten regelmäßig übermittelt werden?¶
Ja.
Nach Aktivierung des Feedbacks wird auf dem System in der Datei
/etc/cron.d/linuxmuster-community-feedback
ein cronjob eingerichtet, der
die Statistikdaten einmal pro Woche zum linuxmuster.net-Server überträgt. Der
genaue Zeitpunkt (Uhrzeit, Samstag/Sonntag) wird bei der Paketkonfiguration
zufällig ermittelt und variiert von System zu System.
# Diese Datei wird automatisch erstellt.
# Manuelle Aenderungen werden ueberschrieben!
48 4 * * 6 root /usr/bin/linuxmuster-community-feedback -u > /dev/null 2>&1
Warum werden die Daten regelmäßig übertragen?¶
Die regelmäßige Übertragung hat zwei Gründe:
1. Einige der statistischen Daten sind nicht statisch, beispielsweise die Versionsnummern der essentiellen linuxmuster-Pakete. Für die Projektentwicklung ist es wichtig, zu wissen, wie der Update-Stand der Lösung im Einsatz ist. Aus diesem Grund müssen die Daten regelmäßig aktualisiert werden.
2. Um “Karteileichen” von Systemen, die außer Betrieb genommen werden zu vermeiden, werden Installationen, die einige Zeit keine aktualisierten Daten mehr übermittelt haben serverseitig automatisch aus der Statistik entfernt.
Index¶
school console¶
Schulkonsole nutzen¶
Aufgerufen wird die Schulkonsole mittels https://server:242 in einem Webbrowser.

Nach der Anmeldung als administrator
findet man im Hauptmenü
folgende Einstellungsmöglichkeiten

Die Statusleiste unterhalb des Menüs zeigt über Farbe und Text an, ob der letzte Befehl erfolgreich (grün) oder nicht erfolgreich (orange) ausgeführt wurde.
Schulkonsole als Lehrer nutzen¶
Aufgerufen wird die Schulkonsole mittels https://server:242 in einem Webbrowser.

Nach der Anmeldung als Lehrer findet man im Hauptmenü folgende Einstellungsmöglichkeiten

Die Statusleiste unterhalb des Menüs zeigt über Farbe und Text an, ob der letzte Befehl erfolgreich (grün) oder nicht erfolgreich (orange) ausgeführt wurde.
Aktueller Raum¶
Unterricht¶

Auf dieser Seite können Sie den Unterricht steuern: Unterricht beginnen und beenden, die Verbindung zu Internet, Intranet, den Druckern steuern, den Webfilter ein- oder ausschalten.
Sobald der Unterricht begonnen wurde, kann man im Menü weitere pädagogische Funktionen nutzen:

Tauschen¶
Steuern Sie hier den Zugriff auf das globale Tauschverzeichnis, indem Sie entweder einzelne Arbeitsplätze über die Checkboxen auswählen oder über die Schnellauswahl für alle. Mit Änderungen übernehmen aktivieren Sie Ihre Auswahl.
Austeilen¶
Auszuteilende Dateien müssen in Ihrem Heimatverzeichnis unter
_auszuteilen -> auszuteilen-aktueller_raum
abgelegt sein. Der Inhalt
dieses Ordners wird hier aufgelistet. Nachträglich dorthin abgelegte
Dateien können Sie über die Schaltfläche Ansicht aktualiseren
sichtbar machen.
Die Schüler/innen finden die ausgeteilten Dateien in ihrem
Heimatverzeichnis unter __austeilen -> austeilen-aktueller_raum
.
Einsammeln¶
Einzusammelnde Dateien müssen im Heimatverzeichnis der Schüler/innen
im Ordner __einsammeln
abgelegt sein, damit sie hier aufgelistet
werden. Nachträglich von den Schüler/innen dorthin abgelegte Dateien
können Sie über Ansicht aktualisieren sichtbar machen.
Wählen Sie aus, ob die Originaldateien auf Schülerseite gelöscht werden oder erhalten bleiben sollen.
Sie finden die eingesammelten Dateien in Ihrem Heimatverzeichnis unter
_eingesammelt -> eingesammelt-aktueller_raum
.
Klassenarbeit¶
Übernehmen Sie entweder das vorgegebene Zufallspasswort oder geben Sie ein eigenes Passwort ein.
Mit Betätigung der Schaltfläche Klassenarbeit starten wird das neue Passwort an alle Arbeitsstationen im Raum verteilt, und die Schüler/innen können sich mit dem Namen der Arbeitsstation und dem eben vergebenen Passwort anmelden.
classes¶
Projekte¶
Datenschutz¶
Der Schulserver verarbeitet persönliche Daten, sobald Schüler und Lehrer Konten erhalten. Daher muss (z.B. nach dem LandesdatenschutzGesetz in Baden-Württemberg) ein Verfahrensverzeichnis geführt werden. Um das zu erleichtern, stellen wir eine Vorlage mit Anlage zur Verfügung die man nur an wenigen Stellen ergänzen muss.
Sie finden die Dokumente im ODF-Format in der HTML-Version dieser Dokumentation