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 Email address in LDAP

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
_images/schulkonsole-wlan.png

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
_images/schulkonsole-up-downloads.png

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

_images/schulkonsole-my.png

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

Dialogs
_images/schulkonsole-errordialog.png

Error dialogs are now modal and centered, making them more visible.

Status messages
_images/schulkonsole-statusmsg.png

Status messages appear more conspicuously below the menu.

Floating Help
_images/schulkonsole-help.png

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.

_images/WLAN_config.png

Configure WLAN for Class

_images/WLAN_config_2.png

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:

_images/linbo_screen6.png

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-Startmenü im BIOS-Modus (unter Verwendung von Syslinux)

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

LINBO-Startmenü im UEFI-Modus

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:

_images/linbo_screen4.png

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.

_images/linbo_screen5.png

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

Prerequisites

Hardware

Software

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

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:

Schritt 1 der Installation des XenServers

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

Schritt 2 der Installation des XenServers

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

Schritt 3 der Installation des XenServers

Accept the license conditions with Accept EULA.

Schritt 4 der Installation des XenServers

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

Schritt 5 der Installation des XenServers

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

Schritt 6 der Installation des XenServers

Select Yes to be able to install NI XenServer Tools.

Schritt 7 der Installation des XenServers

Select “Verify installation source” and confirm with Ok.

Schritt 8 der Installation des XenServers

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

Schritt 9 der Installation des XenServers

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

Schritt 10 der Installation des XenServers

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

Schritt 11 der Installation des XenServers

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

Schritt 12 der Installation des XenServers

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

Schritt 13 der Installation des XenServers

Select your time zone and confirm with Ok.

Schritt 14 der Installation des XenServers

Select your time zone and confirm with Ok.

Schritt 15 der Installation des XenServers

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

Schritt 16 der Installation des XenServers

Now start the installation by selecting Install XenServer.

Schritt 17 der Installation des XenServers

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

Schritt 18 der Installation des XenServers

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

Schritt 19 der Installation des XenServers

Start the test with Ok.

Schritt 20 der Installation des XenServers

Confirm the successful test with Ok.

Schritt 21 der Installation des XenServers

Now select button Use and confirm with Ok.

Schritt 19 der Installation des XenServers

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

Schritt 22 der Installation des XenServers

Set the correct time and confirm with Ok.

Schritt 23 der Installation des XenServers

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

Schritt 24 der Installation des XenServers

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

Schritt 25 der Installation des XenServers

Initialize XenServer

On the XenServer select Local Command Shell and press Enter.

Schritt 26 der Installation des XenServers

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

Schritt 27 der Installation des XenServers

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.

Schritt 28 der Installation des XenServers

Start the installation with Ok.

Schritt 29 der Installation des XenServers

If there are enough NICs this message appears:

Schritt 30 der Installation des XenServers

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.

Schritt 31 der Installation des XenServers

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

Schritt 32 der Installation des XenServers

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

Schritt 33 der Installation des XenServers

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

Schritt 34 der Installation des XenServers

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

Schritt 35 der Installation des XenServers
Schritt 36 der Installation des XenServers
Schritt 37 der Installation des XenServers

Now remove the CD and confirm with Ok.

Schritt 38 der Installation des XenServers

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.

Schritt 39 der Installation des XenServers

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

Schritt 40 der Installation des XenServers
Schritt 41 der Installation des XenServers
Schritt 41a der Installation des XenServers

You can now restart the system by selecting Yes.

Schritt 42 der Installation des XenServers

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.

XenCenter Schritt 1

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

XenCenter Schritt 2

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

XenCenter Schritt 3

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

XenCenter Schritt 4

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

XenCenter Schritt 5

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.

XOA Schritt 1

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

XOA Schritt 2

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

XOA Schritt 3

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

XOA Schritt 4

You can now use the Virtual Machine.

XOA Schritt 5

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
OpenXen Manager Schritt 1

Now write in the line:

deb http://pkg.netzint.de/ precise main
OpenXen Manager Schritt 2

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
OpenXen Manager Schritt 3

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

$ apt-get update
OpenXen Manager Schritt 4

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

$ apt-get install netzint-xenmanager
OpenXen Manager Schritt 5

After installation, you can start OpenXenmanager with the command

$ xenmanager
OpenXen Manager Schritt 6

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

OpenXen Manager Schritt 7

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

OpenXen Manager Schritt 8

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
Konfiguration Schritt 1

Select “Networking” and press Enter.

Konfiguration Schritt 2

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

Konfiguration Schritt 3

Select “GREEN” and confirm with Enter.

Konfiguration Schritt 4

Select the appropriate network card and press Enter.

Konfiguration Schritt 5

Note

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

Konfiguration Schritt 6
Konfiguration Schritt 7

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.

Konfiguration Schritt 8

Confirm your entries with Done.

Konfiguration Schritt 9

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

Konfiguration Schritt 10

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

Konfiguration Schritt 11

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.

Konfiguration Schritt 12

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.

Konfiguration Schritt 13

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.

Konfiguration Schritt 14

Enter the command

linuxmuster-setup --first

and confirm with Enter.

Konfiguration Schritt 15

Confirm the message with the hints by clicking Ok.

Konfiguration Schritt 16

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

Konfiguration Schritt 17

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

Konfiguration Schritt 18

Enter the school location (city).

Konfiguration Schritt 19

Enter the name of your school.

Konfiguration Schritt 20

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

Konfiguration Schritt 21

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

Konfiguration Schritt 22

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

Konfiguration Schritt 23

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

Konfiguration Schritt 24

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.

Konfiguration Schritt 25

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

Konfiguration Schritt 26

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

Konfiguration Schritt 27

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

Konfiguration Schritt 28

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

Konfiguration Schritt 29

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

Konfiguration Schritt 30

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

Konfiguration Schritt 31

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.

Konfiguration Schritt 32

Enter the following command on the server to create and edit a repository list:

$ nano /etc/apt/sources.list.d/netzint.list
Konfiguration Schritt 33

Enter the following line in the file:

deb http://pkg.netzint.de/ precise main
Konfiguration Schritt 34

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
Konfiguration Schritt 35

Enter the command

$ apt-get update

in the console and press Enter.

Konfiguration Schritt 36

Enter the command

$ apt-get install netzint-lmntoolbox

in the console and press Enter. Continue with Y.

Konfiguration Schritt 37

Create the basic configuration files with the command

$ /usr/share/netzint/tools/createdefaults.sh
Konfiguration Schritt 38

The command

$ nano /usr/share/netzint/etc/main.cfg

you can edit the default settings for some tools.

Konfiguration Schritt 39

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.

Konfiguration Schritt 40

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

Konfiguration Schritt 41

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

Konfiguration Schritt 42

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

Konfiguration Schritt 43

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.

Konfiguration Schritt 44

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

Konfiguration Schritt 45

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.

Konfiguration Schritt 46

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.

Konfiguration Schritt 47

Open a root console on the XenServer.

Konfiguration Schritt 48

Enter the command

$ xe vm-disk-list vm=lmn62.server

and confirm with Enter.

Konfiguration Schritt 49

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.

Konfiguration Schritt 50

Enter the command

$ xe vdi-resize uuid=<UUID> disk-size=XXXGiB

and confirm with Enter.

Konfiguration Schritt 51

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
Konfiguration Schritt 52

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
Konfiguration Schritt 53

The command

$ df –lh

you can check the amount of memory.

Konfiguration Schritt 54

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.

Konfiguration Schritt 55

Select one of the items under ISO library.

Konfiguration Schritt 56

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.

Konfiguration Schritt 57

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

Konfiguration Schritt 58

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

Konfiguration Schritt 59

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.

Konfiguration Schritt 60

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

Konfiguration Schritt 61

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.

Konfiguration Schritt 62
Konfiguration Schritt 63

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.

Konfiguration Schritt 64

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

Konfiguration Schritt 65

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.

Konfiguration Schritt 66

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
Konfiguration Schritt 67

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.

_images/linbo-empty-startpage11.png

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.

_images/school-console-admin-login.png

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

_images/menu-studentslist.png

and see an empty window.

_images/user-management-students-empty.png

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

_images/user-management-browse.png

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.

_images/students-import-1.png

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

_images/students-import-3.png

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

_images/students-import-4.png

Click on Save changes

_images/students-import-5.png

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,

_images/studentslist-check.png

to click on Check user lists.

_images/studentslist-check-2.png

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.

_images/studentslist-check-finished.png

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.

_images/studentslist-check-confirm.png

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.

_images/students-adduser.png

Below this list you click on Create user.

The following status messages are displayed as shown in the following figure

_images/students-adduser-status.png

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

_images/students-adduser-finished.png

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).
Schematischer Aufbau eines Computernetzes mit linuxmuster.net.

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.

Schritt 1 der Installation der Firewall

Confirm that you want to install IPFire.

Use the arrow keys to select your language and confirm your selection with the ENTER key.

Schritt 2 der Installation der Firewall

Select the desired language.

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

Schritt 3 der Installation der Firewall

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.

Schritt 4 der Installation der Firewall

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.

Schritt 5 der Installation der Firewall

Confirm the partitioning and formatting of the hard disk.

Select ext4 as file system by pressing the ENTER key.

Schritt 6 der Installation der Firewall

Select ext4 as file system.

After installation, remove the CD and confirm the reboot by pressing the ENTER key.

Schritt 7 der Installation der Firewall

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.

Schritt 1 der Erstkonfiguration der Firewall

Select the keyboard layout.

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

Schritt 2 der Erstkonfiguration der Firewall

Select the time zone.

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

Schritt 3 der Erstkonfiguration der Firewall

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!

Schritt 4 der Erstkonfiguration der Firewall

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.

Schritt 5 der Erstkonfiguration der Firewall

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.

Schritt 6 der Erstkonfiguration der Firewall

Choose the password for the user admin.

Select the item Network configuration type by pressing the ENTER key.

Schritt 7 der Erstkonfiguration der Firewall

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.

Schritt 8 der Erstkonfiguration der Firewall

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.

Schritt 9 der Erstkonfiguration der Firewall

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.

Schritt 10 der Erstkonfiguration der Firewall

Select the item GREEN.

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

Schritt 11 der Erstkonfiguration der Firewall

Select the network card for the green network.

Select the item RED with the Arrow keys and confirm your selection with the ENTER key.

Schritt 12 der Erstkonfiguration der Firewall

Select the item RED.

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

Schritt 13 der Erstkonfiguration der Firewall

Select the network card for the red network.

Select the item BLUE with the Arrow keys and confirm your selection with the ENTER key.

Schritt 14 der Erstkonfiguration der Firewall

Select the item BLUE.

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

Schritt 15 der Erstkonfiguration der Firewall

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.

Schritt 16 der Erstkonfiguration der Firewall

Confirm the end of the NICs assignments.

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

Schritt 17 der Erstkonfiguration der Firewall

Select the item Address Settings.

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

Schritt 18 der Erstkonfiguration der Firewall

Select the item GREEN.

Confirm the security note by pressing the ENTER key.

Schritt 19 der Erstkonfiguration der Firewall

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.

Schritt 19 der Erstkonfiguration der Firewall

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.

Schritt 18 der Erstkonfiguration der Firewall

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.

Schritt 19 der Erstkonfiguration der Firewall

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.

Schritt 20 der Erstkonfiguration der Firewall

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.

Schritt 21a der Erstkonfiguration der Firewall

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

Schritt 22a der Erstkonfiguration der Firewall

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

Schritt 23a der Erstkonfiguration der Firewall

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

Schritt 22b der Erstkonfiguration der Firewall
DHCP

If you have selected DHCP press the ENTER key.

Schritt 21b der Erstkonfiguration der Firewall

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

Schritt 22b der Erstkonfiguration der Firewall
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.

Schritt 24 der Erstkonfiguration der Firewall

Do not activate the DHCP service.

Confirm the end of the setup with the ENTER key.

Schritt 25 der Erstkonfiguration der Firewall

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.

Schritt 26 der Erstkonfiguration der Firewall

Open the address https://10.16.1.254:444 and accept the security note.

Click on Add exception.

Schritt 27 der Erstkonfiguration der Firewall

Click on Add exception.

Click on Confirm security exception.

Schritt 27 der Erstkonfiguration der Firewall

Click on Confirm Security Exception.

Login in as user admin with your chosen password.

Schritt 28 der Erstkonfiguration der Firewall

Enter your credentials.

Goto System and then SSH Access.

Schritt 29 der Erstkonfiguration der Firewall

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.

Schritt 30 der Erstkonfiguration der Firewall

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

Schritt 31 der Erstkonfiguration der Firewall

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.

Schritt 32 der Erstkonfiguration der Firewall

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

Schritt 33 der Erstkonfiguration der Firewall

Allow the server unrestricted access to the Internet.

Then press the “Save and Restart” button on the bottom of the page.

Schritt 34 der Erstkonfiguration der Firewall

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.

Schritt 1 der Installation des Ubuntu-Servers

Select the desired language.

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

Schritt 2 der Installation des Ubuntu-Servers

Confirm that you want to install Ubuntu.

Confirm by pressing the ENTER key that the selected language pack might not be complete.

Schritt 3 der Installation des Ubuntu-Servers

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.

Schritt 4 der Installation des Ubuntu-Servers

Specify the location.

Negate the automatic keyboard model detection.

Schritt 5 der Installation des Ubuntu-Servers

Negate the automatic keyboard model detection.

Select the country of origin of the keyboard layout.

Schritt 6 der Installation des Ubuntu-Servers

Select the country of origin of the keyboard layout.

Select the keyboard layout.

Schritt 7 der Installation des Ubuntu-Servers

Select the keyboard layout.

Set up the network

Automatically obtaining an IP address fails first because there is no DHCP server.

Schritt 8 der Installation des Ubuntu-Servers

Automatically obtaining an IP address will fail first.

You set up the network manually.

Schritt 9 der Installation des Ubuntu-Servers

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.

Schritt 10 der Installation des Ubuntu-Servers: Eingabe der IP-Adresse des Servers

Enter 10.16.1.1 as the IP address.

Enter 255.240.0.0 as the netmask.

Schritt 11 der Installation des Ubuntu-Servers: Eingabe der Netzmaske

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.

Schritt 12 der Installation des Ubuntu-Servers: Eingabe des Gateways

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.

Eingabe des DNS-Servers

Enter 10.16.1.254 as the DNS server.

Enter the desired server name.

Eingabe des gewünschten Servernamens

Enter the desired server name.

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

Eingabe der lokalen Domäne

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.

Eingabe des Benutzernamens

Enter the desired user name.

Enter the desired account for the user name.

Eingabe des Kontonamens.

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!

Eingabe des Passworts.

Enter the desired password.

Enter the password again.

Erneute Eingabe des Passworts.

Enter the password again.

Do not encrypt your personal folder.

Verneinen der Verschlüsselung des persönlichen Ordners.

Do not encrypt your personal folder.

Confirm or, if necessary, correct the time zone.

Bestätigen der Zeitzone.

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.

Auswahl der manuellen Partitionierung

Partition manually.

Select the hard disk to partition.

Auswahl der zu partitionierende Festplatte.

Select the hard disk to partition.

Confirm the creation of the partition table.

Bestätigung der Erstellung der Partitionstabelle.

Confirm the creation of the partition table.

Select the free space to create the first partition.

Auswahl des freien Speichere zum Anlegen der ersten Partition.

Select the free space to create the first partition.

Confirm the creation of the first partition.

Bestätigung des Anlegens der ersten 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.

Auswahl der Größe der Partition.

Select the size of the partition.

Select primary as the type of the partition.

Wahl des Typs der Partition.

Select primary as the type of the partition.

Confirm that the new partition is to be created at the beginning of free space.

Wahl des Orts der Partition.

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.

Bestätigung des Anlegens der Partition.

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.

Auswahl des freien Speichere zum Anlegen der zweiten Partition.

Select the free space to create the second partition.

Confirm the creation of the second partition.

Bestätigung des Anlegens der zweiten Partition.

Confirm the creation of the second partition.

Select the size of the partition.

Auswahl der Größe der Partition.

Select the size of the partition.

Select primary as the type of the partition.

Wahl des Typs der Partition.

Select primary as the type of the partition.

Confirm that the new partition is to be created at the beginning of free space.

Wahl des Orts der Partition.

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.

Wahl der Einbindungsoptionen.

Select the mount options item.

Select the mount options usrquota and grpquota with the Spacebar.

Wahl der Einbindungsoptionen.

Choose the option usrquota and grpquota.

Finally, confirm the creation of the partition.

Bestätigung des Anlegens der 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.

Auswahl des freien Speichere zum Anlegen der dritten Partition.

Select the free space to create the third partition.

Confirm the creation of the third partition.

Bestätigung des Anlegens der dritten Partition.

Confirm the creation of the third partition.

Select the size of the partition.

Auswahl der Größe der Partition.

Select the size of the partition.

Select primary as the type of the partition.

Wahl des Typs der Partition.

Select primary as the type of the partition.

Select the mount point /var manually.

Wahl der Einbindungspunkts.

Select the mount point.

Select /var with the Spacebar.

Wahl des Einbindungsorts.

Select /var with the Spacebar.

The mount options are now selected.

Wahl der Einbindungsoptionen.

Select the mount options item.

Select the mount options usrquota and grpquota with the Spacebar.

Wahl der Einbindungsoptionen.

Choose the option usrquota and grpquota.

Finally, confirm the creation of the partition.

Bestätigung des Anlegens der 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.

Keine Swap-Partition anlegen.

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.

Bestätigen Sie das Schreiben der Änderungen der Partitionen.

Confirm the writing of the changes to the partitions.

The server is not connected via a proxy, continue with “Next”.

Es wird kein Proxy genutzt.

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.

Kein automatisches Einspielen von Updates

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.

Kein Software auswählen.

If no software is selected, continue with “Next”.

Confirm that the bootloader is to be installed in the master boot record.

Bestätigung des Speicherorts des Bootloaders.

Confirm that the bootloader is to be installed in the master boot record.

The system is rebooted to complete the installation.

Bestätigung des Neustarts des Systems

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

Keine Konfiguration des postfix

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.

Bestätigen der Hinweise

Confirm the notes.

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

Eingabe des internationalen Länderkürzels.

Enter the international country code.

Enter the short name of the state.

Eingabe der Kurzbezeichnung des Bundeslandes.

Enter the short name of the state.

Enter the city name of your school.

Eingabe des Orts- oder Stadtnamens Ihrer Schule.

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.

Eingabe des Schulnamens.

Enter the name.

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

Eingabe des Namens der Samba-Domäne.

Enter the name of the Samba domain.

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

Eingabe des Hostnames.

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.

Eingabe der Internet-Domänenname.

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.

Auswahl des  IP-Bereichs für das interne Netz.

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.

Eingabe des externen Servernamens.

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

Wahl der Firewalllösung.

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.

Eingabe der Internetadresse des Mailservers Ihres Providers.

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

Entscheidung über Einsatz von Subnetzen.

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:

äöüß$&{}![]+#

Wahl des Passworts für den Benutzer ``administrator``.

Select a password for the administrator user.

Re-enter the password.

Nochmalige Eingabe des Passworts für den Benutzer ``administrator``.

Enter the password for the administrator again.

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

Eingabe des Passworts für den ``root`` auf dem IPFire ein.

Enter the password for the root user on the IPFire.

Re-enter the password.

Nochmalige Eingabe des Passworts für den ``root`` auf dem IPFire ein.

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.

Wahl der Netzwerkkarte, die mit dem grünen Netz verbunden ist.

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:

_images/install-on-kvm-image01.png

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.

_images/adminpc-image01.png

The hardware should have the following minimum characteristics:

  • DualCore CPU
  • 1GB RAM
  • 20GB HDD

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

adminPC: Installation of updates

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

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

adminPC: Deactivation of IPv6

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

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

kvm: KVM-Server-Installation

Hint

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

_images/kvmserver-image01.png

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

The server should at least provide the following hardware:

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

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

kvm tip: Create a USB stick

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

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

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

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

kvm: Installation

Hint

Bei der Installation sind folgende Merkmale zu berücksichtigen:

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

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

kvm: Netzwerkkonfiguration des KVM-Servers

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

Herausfinden der Namen der Netzwerkkarten

# dmesg | grep eth

Anpassen der Netzwerkkonfiguration

/etc/network/interfaces

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

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

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

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

kvm: Installation der Updates

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

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

kvm: Einrichten des SSH-Zugangs auf Zertifikatsbasis

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

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

# sudo passwd

/etc/ssh/sshd_config

PermitRootLogin yes

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

# ssh-keygen

# ssh-copy-id root@192.168.1.10

Deaktivierung des SSH-Zugangs für root per Passwort

/etc/ssh/sshd_config

PermitRootLogin prohibit-password

Löschen des lmadmin Users auf dem KVM-Server

# userdel -r lmadmin

kvm: Einrichten der Zeit-Synchronisation

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

Installieren von ntpdate
# apt-get install ntpdate

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

Installieren des NTP-Daemons
# apt-get install ntp

Anzeigen der Zeitsynchronisation
# ntpq -p

adminPC: Installation des Virt-Managers

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

Suchen des Paketes
# apt-cache search virt-manager

Installieren des Paketes
# apt-get install virt-manager

kvm: Konfigurieren der Virt-Manager-Verbindung im Schulnetz

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

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

kvm: Anpassen des Namens der Virt-Manager-Verbindung

kvm: Einrichtung des LVM-Storage-Pools

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

Hint

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

kvm: Deaktivierung von IPv6

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

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

kvm: Einstellen der Swappiness

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

Sofort auf der Konsole
# sysctl vm.swappiness=0

/etc/sysctl.conf
vm.swappiness = 0

adminPC: Erstellung eines ssh-Aliases zum KVM-Server

.bash_aliases
alias kvm="ssh root@10.16.1.10

# source bash.aliases

ipfire: Installation der VM

Hint

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

_images/ipfire-image01.png

Die Installation der Firewall erfolgt in folgenden Schritten:

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

Die VM verfügt über folgende Parameter:

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

ipfire: Grundkonfiguration des IPFire

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

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

server: Installation des Servers

Hint

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

_images/server-image01.png

server: Download des Ubuntu 12.04.5 ISOs

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

server: Erstellen, Konfigurieren und Installieren der VM des Servers

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

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

Hint

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

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

Die Installation der Updates erfolgt mit den üblichen Befehlen:

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

Hint

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

server: Grundkonfiguration des Servers

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

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

server: Installation des linuxmuster-base Paketes

Die Installation erfolgt mittels:

# apt-get install linuxmuster-base

server: Start der LinuxMuster-Erstkonfiguration

Endlich ist das Ziel der Vorbereitungen erreicht und mittels

# linuxmuster-setup --first

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

Hint

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

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

Hint

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

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

adminPC: Zulassen des Zugriffs auf den Server

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

Firewall stoppen/starten
# linuxmuster-base stop/start

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

adminPC Tipp: Anpassen der Zeitquelle

Als Zeitquelle des adminPCs soll auch die Firewall dienen.

adminPC: Erstellen eines ssh-Aliases zum Server

server: Anpassen der Linbo-Konfiguration

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

Aktivieren des Bittorrent Dienstes
# /etc/default/bittorrent
START_BTTRACK=1
Anpassen der Startparameter des TFTP-Dienstes nach Deaktivierung von IPv6
# /etc/default/tftpd-hpa
TFTP_OPTIONS="--secure -4"

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

kvm: Aktivieren des Autostarts der VMs

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

Damit ist die Erstinstallation aller Komponenten mittels KVM geschafft.

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.

_images/kvmserver-image02.png

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

siehe Bekannte Software Probleme

Vorlage der Netzwerkzeichnungen

Bei Interesse kannst Du die Netzwerk-Skizzen zur eigenen Bearbeitung hier als LibreOffice Draw herunterladen.

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

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
  1. 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.
  2. After that, the new system (linuxmuster.net 6. x with IPFire and server) is rebuilt. Hardware and partitioning may differ from the source system.
  3. 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.

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:

  1. Loggen Sie sich als User root auf einer Serverkonsole ein.

  2. Aktualisieren Sie die Paketlisten:

    # aptitude update
    
  3. Installieren Sie nun Aktualisierungen und weitere Software-Pakete über das Internet:

    # aptitude dist-upgrade
    
  4. 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:

    Upgrade Ubuntu Server
  5. 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:

  1. a possible reinstallation of the IPFire,
  2. a new installation of the Ubuntu server
  3. a one-time setup of the newly installed server
  4. 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.

Netzwerkübersicht beim Einsatz eines Coovachilli als Hot-Spot

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).
Einsatz eines Coova im blauen Netz
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.
Einsatz eines Coova im grünen Netz
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).
Einsatz eines Coova im roten Netz

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:

Einsatz eines Coova 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:

DHCP-Server im blauen Netz

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
CoovaChilli im blauen Netz fest zuordnen
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
Zugriff von Blau auf LDAPs zulassen

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

Änderungen übernehmen
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.

Weitere Dienste erlauben

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.

Advanced Proxy für das blaue Netz aktivieren

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.
Eingabe der IP-Adresse des LDAP-Servers
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.

Eingabe der Suchbasis für den LDAP-Server
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.

Eingabe des LDAP-Abfrage-Passworts für den LDAP-Server
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.

Eingabe des Netzwerks für die WLAN-Clients

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

Eingabe der Netzmaske für die WLAN-Clients
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.

Eingabe der Netzmaske für die WLAN-Clients
Zugangsgruppen

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

Eingabe der Systemgruppen mit permanentem Zugang zum Internet
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.

Eingabe der Zeit bis zum automatischen Logout
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.

_images/chillispot-root_linuxmuster-chilli_081.png
Freie Domains

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

_images/chillispot-root_linuxmuster-chilli_068.png
Überschrift der Anmeldeseite
_images/chillispot-root_linuxmuster-chilli_069.png
SSL Zertifikat

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

_images/chillispot-root_linuxmuster-chilli_066.png
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.
VLAN-Topologie

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.

VLAN-Topologie

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.

VLAN-Netzwerkkarte

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.

Konfiguartion speichern
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.

VLAN-Einstellungen

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.

VLAN-Hinzufügen

Fügen Sie die VLANs wie im Bild hinzu.

VLAN-Übersicht

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
VLAN-Topologie
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.

VLAN1

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.

VLAN2

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.

VLAN10

Für die Ports 1 bis 5 wählen Sie getaggt.

Und schließlich noch VLAN 16.

VLAN16

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.

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.

Sprachenauswahl

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.

Rechnername

Wählen Sie einen Benutzer, seinen Benutzernamen und das Passwort.

Verschlüsseln Sie Ihren persönlichen Ordner nicht!

Home verschlüsseln

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

Vollständige Festplatte

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

Keine Updates

An Software gibt es nichts Besonderes zu wählen.

Softwareauswahl

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.

Sprachenauswahl

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

Geräteauswahl

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

SSID einrichten

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

admin

An dieser Stelle wird ein Administrator-Zugang angelegt.

Cloud

Überspringen Sie auch diesen Schritt.

Bestätigung

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.

Einstellungen

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

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.

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

Radiusprofil

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.

Schülernetz

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

Voucherbeispiel

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.

Gastrichtlinien

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.

Portal-Anpassung

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.

Portal-Anpassung

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.

IPFire-Regel

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.

Port 8880
Port 8443
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.

Voucherbeispiel

Gehen Sie auf GUTSCHEINE->`GUTSCHEIN ERSTELLEN`.

Voucherbeispiel

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

Voucherbeispiel

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.

Struktur: Segmentiertes Netz

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.

Struktur: Segmentiertes Netz mit virtualisierten Servern

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 !!

CUPS Einstellungen anpassen

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

CUPS Einstellungen anpassen

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

CUPS Einstellungen anpassen

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

CUPS Einstellungen anpassen

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

CUPS Einstellungen anpassen

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
VLANs 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 IDs 10, 20, 30, 40, 50, 100, und 200 anlegen.

Important

Bilder sind noch anzupassen !!

VLANs HP2650 VLANs HP2650 VLANs HP2650

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 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:

Einfache Dokumentation mit Calc.

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:

_images/drucker-hinzufuegen-server.png

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.

https://server:631

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:

_images/cups-server1.png

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 PrinterAdd printer. The following screen appears:

_images/cups-server3.png

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:

_images/cups-server4.png

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.

_images/cups-server2.png

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.

_images/cups-server5.png

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.

_images/cups-server6.png

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.

_images/cups-server-anmeldung.png

Then you reach the setting page of the printer.

Configure the printer
_images/cups-server7.png

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.

_images/cups-server7a.png

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:

_images/cups-server8.png

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:

http://server:631/printers/r203-pr01

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.

_images/drucker-overview.png

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.

_images/drucker-assign-room.png

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.

_images/drucker-linux1.png

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.

Attention

Here are the steps:

How do I set up printers 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.

_images/win7druck1.png

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

_images/win7druck2.png

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

_images/win7druck3.png

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:

_images/win7druck4.png

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.

_images/linbo-empty-startpage1.png

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

_images/linbo-passwordentry.png

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.

_images/linbo-timeoutdialog.png

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

_images/linbo-registrationdialog.png

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.

_images/Rechneraufnahme_1.png

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

_images/Rechneraufnahme_2.png

In the screenshot the registration ends with an error message

_images/Rechneraufnahme_3a.png _images/Rechneraufnahme_3.png

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

_images/Rechneraufnahme_4.png

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

_images/Rechneraufnahme_5.png

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.

10000000000003FC0000030089B2BD2A_png

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!”.

1000000000000382000003C15DFFA156_png

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:

100000000000032A00000261ABEB2582_png

Click on the ‘Imaging’ tab, enter the password and confirm by clicking “Enter”.

100000000000032A000002612A58B1AE_png

Click the button Partition and confirm the message with Yes

100000000000032A000002611AE27D91_png

After this, you can restart the computer.

100000000000032A00000261D7ACA8F5_png

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

100000000000040A00000319F588B76C_png

Click on Install Now

100000000000040A00000319DD5ADC8E_png

Accept the license conditions and set the corresponding hook and confirm with Next.

100000000000040A00000319E918A8C7_png

Click on Custom: Install Windows only.

100000000000040A00000319A60B7FD3_png

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.

100000000000040A00000319B79CACB3_png

Wait until the installation has completed.

100000000000040A000003193E3F3EC2_png

Select the option Adjust settings.

100000000000040A000003163D31984A_png

Configure the privacy settings to your needs.

100000000000040A000003162FF66162_png

100000000000040A0000031696C05077_png

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.

10000000000004090000031BD6C06D3C_png

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.

100000000000040900000309C0521273_png

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/

1000000000000288000001884164BC97_png

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.

100000000000040900000309AD122632_png

Enter the credentials for the user pgmadmin and confirm with OK

100000000000040900000309D4AC838A_png

Copy the file win10-global to the desktop.

100000000000040900000309A0EFAE74_png

1000000000000409000003095FAC6141_png

Double-click the file and click in both dialogs on Yes.

100000000000040900000309C9151860_png

1000000000000409000003090DE77B1D_png

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.

100000000000040900000309D7642C20_png

Click on Change Settings (next to the computer name).

1000000000000409000003093D2980DF_png

Click on Change.

100000000000040900000309727EA44E_png

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

100000000000040900000309AFC96356_png

Enter one of the administrator users. For example, the user domadmin with the appropriate password and confirm with Ok.

10000000000004090000030964D1E68C_png

Confirm the message with Ok, close all the windows and click on Restart Now.

100000000000040900000309827575BC_png

1000000000000409000003095F824A32_png

100000000000040900000309B4D432CA_png

After rebooting you can choose Other User in the left-bottom corner to log in with a domain user.

100000000000040900000309092F3627_png

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.

10000000000003300000026052C7AA3A_png

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:

  1. Restart the computer after installing programs without synchronization

Attention

The restart is necessary because the profile of the “pgmadmin” can not be copied otherwise

  1. Log in as a local user with admin rights
  2. 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 in C:\Windows\system32\, go to step 4.
  3. Run the command C:>defprof pgmadmin
  4. Log off as local user and login again as pgmadmin
  5. Shut down the computer
  6. 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:

  1. apt-get install dkms
  2. Virtualbox Schlüssel laden, Quellen eintagen, apt-get update
  3. apt-get install virtualbox-5.1
  4. 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

Wählen Sie eine virtuelle Maschine

Nachdem eine VM gewählt wurde, werden mehrere Optionen angeboten

Optionen zum Starten der virtuellen Maschine

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

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 Namen Software2016.

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 mit df ü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 Variable SERVERDIR auf ein Verzeichnis gesetzt wird, in das im Verlauf des Bootprozesses oder der Anmeldung ein Netzwerk-Share gemountet wird

  • das 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 und CCleaner in der VM installieren:

    • download → sdelete (Microsoft-Tool), kopieren nach C:\Windows
    • download → CCleaner von heise.de
  • Auslagerungsdatei abschalten, reboot der VM und dann die versteckte Datei C:\pagefile.sys löschen

  • CCleaner 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 Basisfestplatte winxp.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:

/usr/share/applications/leoclient2-directstart.desktop
[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).
  • 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 nach PFAD/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 Startbildschirm eines nicht aufgenommenen Client

Linbo Startup screen of a non-registered client

Once the client is registered, the Start screen will display more options.

Linbo Startbildschirm eines aufgenommenen Clients

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.

Reboot

_images/system-reboot-32x32.png

forces a restart and

_images/system-shutdown-32x32.png

shuts down the client.

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.

_images/sync+start-22x22.png

Sync+Start button

synchronizes the system with the last current image. A provided registry patch file is applied to Windows systems. On Linux systems hostname and root partition are patched. If there is a newer image on the server, this will be downloaded first.
_images/start-22x22.png

Start button

the system starts in the current state, unsynchronized, no patches are applied.
_images/new+start-22x22.png

New+Start button

reformats the relevant partition, synchronizes the system from scratch with the current image and starts the system like Sync+Start.
_images/information-22x22.png

Information

displays information about the currently stored image.
_images/ubuntu.png

Standard Button Ubuntu

_images/Windows.png

Standard Button Windows

executes the start method defined as such.

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

_images/password-dialog.png

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.

_images/linbo-imagingscreen.png

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

_images/image-22x22.png

Create image

A new dialog window will open, where you can create (and upload) a new image.
_images/upload-22x22.png

Upload Image

A new dialog window opens, where you can upload the current image to the server.

There are also buttons for the following administrative functions

_images/console-22x22.png

Console

You can open a (rudimentary) console to run shell commands and diagnose errors.
_images/cache-22x22.png

Update cache

Usually, a partition on the client is set as cache. This button can be used to update the cache, i. e. all images and postsync files required for this client will be downloaded if necessary.
_images/partition-22x22.png

partitioning

Partitioning partitions the entire hard disk.
_images/register-22x22.png

registration

opens a dialog for the first time 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

_images/create-image-dialog.png

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

_images/upload-image-dialog.png

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

Dialog: Console

_images/console-dialog.png

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

_images/update-cache-dialog.png

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

_images/register-dialog.png

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
Initialmeldungen beim Bootvorgang via Netzwerk (PXE)

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.
Bootbildschirm: Laden des Kernels

Boot screen: loading the kernel

  • The booted LINBO kernel appears as an ASCII-art.
LINBO-Kernelboot ASCII-Art

LINBO-Kernelboot ASCII-art

  • The Grub configuration is updated.
LINBO-Grub Installation

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:

_images/linbo_screen11.png

With Enter the client is booted

_images/linbo_screen2.png

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.

_images/linbo_screen41.png

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:

_images/patchclasses-postsync.png

Das allgemeine Postsync-Script arbeitet nach folgendem Schema:

_images/scheme-for-general-postsync-usage.png

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:

https://github.com/linuxmuster/linuxmuster-client-servertools/blob/master/usr/lib/linuxmuster-client-servertools/generic.postsync

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

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:

_images/schulkonsole-benutzer-menue.png

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

_images/schulkonsole-benutzer-hilfe.png
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
_images/schulkonsole-schueler-pflegen.png

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.

_images/schulkonsole-extraschueler.png

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.
_images/schulkonsole-benutzer-pruefen.png
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.

_images/schulkonsole-benutzer-uebernehmen.png

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

_images/schulkonsole-benutzer-uebernehmen-log.png

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.

_images/011.png

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.

_images/032.png

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

_images/04.png

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.

_images/schulkonsole-user1.png

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.

_images/teacher-passwords-pdf.png

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.

_images/teacher-passwords-row.png

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

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

_images/012.png

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

_images/021.png

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.
_images/033.png

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

_images/041.png

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

_images/05.png

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

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.

_images/schulkonsole-einstellungen-global.png

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

_images/schulkonsole-quota1.png

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

_images/schulkonsole-quota-lehrer.png

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.

_images/logon-schulkonsole.png

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.

_images/menue-class.png

Sie sehen dann die bereits zugeordneten Klassen.

_images/classoverview.png

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

_images/getclasses.png

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.

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.

_images/current-room.png

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.

_images/room-selected.png

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.

_images/active-room.png

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.

_images/close-directly.png

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.

_images/send-file.png

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.

_images/copy-files-class.png

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.

_images/choose-user.png

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.

_images/get-files-class.png

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.

_images/login1.png

Klassenarbeit starten

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

_images/class-start.png

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

_images/currentroom-test.png

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

_images/set-password-start-test.png

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.

_images/provide-files.png

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.

_images/set-password-second-time.png

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:

_images/during-test.png

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.

_images/students-view-winclient.png

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.

_images/students-saveto-winclient.png

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

_images/collect-and-finish.png

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

_images/confirm-finish.png

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.

_images/collected-folderview1.png _images/collected-folderview2.png

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.

_images/menu-project.png

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

_images/new-project-name.png

Man klickt auf den Projektnamen

_images/new-project-select.png

und sieht das folgende Fenster.

_images/member-select.png

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

_images/member-select-2.png

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

_images/member-select-3.png

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

_images/member-select-4.png

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

_images/member-selected.png

Lehrer als Projektleiter hinzufügen

Sollen Lehrer zur Gruppe hinzugefügt werden, dann setzt man den Radiobutton auf Lehrer,

_images/teacher-select-2.png

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

_images/teacher-select-1.png

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

_images/teacher-select-3.png

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

_images/teacher-select-4.png

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.

_images/Klasse_Wlan2.png

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

_images/Klasse_Wlan3.png

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

_images/Klasse_Wlan4.png

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

_images/Klasse_Wlan5.png

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

_images/Klasse_Wlan6.png

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

_images/Klasse_Wlan7.png

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.

_images/Wlan_Projekt1.png

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

_images/Wlan_Projekt2.png

Hier p_demo

_images/Wlan_Projekt3.png

Im folgenden Fenster klickt man auf Unterricht beginnen

_images/Wlan_Projekt4.png

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.

_images/Wlan_Projekt7.png

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

https://server/horde3

auf. Üblicherweise ist diese Adresse nur von innerhalb des Schulnetzwerkes erreichbar.

_images/horde-login-https.png

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

_images/horde-defaultscreen.png

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

_images/horde-new-message.png

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.

_images/horde-address-lookup.png

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.

_images/horde-forwarding.png

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.

_images/horde-filemanager.png

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,

_images/create-vpn-certificate.png

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:

_images/creation-vpn-certificate-validated-1.png _images/creation-vpn-certificate-validated-2.png

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

_images/openvpn-directory-certificate-files.png

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.

_images/openvpn-config-files-ubuntu.png

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

_images/openvpn-ubuntu-network-manager-setup.png

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.

_images/openvpn-config-ubuntu-network-manager.png

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

_images/openvpn-config-tls-legitimation.png

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

  1. Gehen Sie im Explorer auf Extras → Netzwerklaufwerk verbinden
  2. Geben Sie unter Adresse „\<Name-oder-IP-des-Servers>“ gefolgt von Ihrem Kürzel ein, also z.B. \serverme
  3. Wählen Sie einen freien Laufwerksbuchstaben
  4. 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.

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

_images/01.png

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.

_images/02.png

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

_images/031.png

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.

_images/schulkonsole-benutzer-quota.png

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 sudo -i

omdadmin omd

Administrativer Benutzer für das ChecMK Webinterface

Erreichbar unter https://<monipi-IP>/default/

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 Passwort muster

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

raspi-config Vergrößern der Parrtition.
raspi-config Neustart.

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:

Exemplarische Ausgabe des Befehls "telnet localhost 6556"

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

Anmeldung am Webinterface

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

Check_MK Webinterface

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

Persönliche Einstellungen öffnen

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

Passwort ändern

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.

Wato: Hosts

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

Hostliste, "New Host"

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.

Konfiguration des neuen Hosts

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

Automatische Inventarisierung des neuen Hosts

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

Hostliste mit ungespeicherten Änderungen

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

Liste der Änderungen

Die Änderungen werden übernommen.

Übernehmen der Änderungen

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.

Liste der überwchten Hosts
Liste der Überwahten Services von "server"

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.

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.

  1. 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
  1. Nun aktualisieren wir die Paketlisten, damit dem System bekannt wird, welche zusätzlichen Pakete zur Verfügung stehen:
apt-get update
  1. 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.

_images/backup1.png

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.

_images/backup2.png

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.

_images/linuxmuster-schulkonsole-backup-page.png

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:

_images/restore1.png

Wählen Sie als Backupmedium Hard Disk aus:

Geben Sie nun den kompletten Pfad zu dem Backupset an, von dem Sie restaurieren wollen:

_images/restore3.png

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

_images/restore4.png

Anschließend liest mondorescue die Dateilisten ein:

_images/restore5.png

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.

_images/restore7.png

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.

_images/restore8.png

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:

_images/restore9.png

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.

_images/restore10.png

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

_images/restore11.png

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

_images/restore12.png

um schließlich auf die Konsole zu gelangen.

_images/restore13.png

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

_images/backup1.png

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:

_images/restore14.png

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

_images/restore2.png

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

_images/restore4.png

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

_images/restore15.png

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

_images/restore16.png

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.

_images/restore17.png

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.

_images/restore18.png

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

_images/restore19.png

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.

_images/restore20.png

Schließlich startet der Restaurationsvorgang.

_images/restore11.png

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

_images/restore21.png

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

_images/restore22.png

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

_images/restore23.png

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

_images/restore24.png

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.

Restore von einem NFS-Share

Bei meinen Versuchen von einem NFS-Share zu restaurieren, gelang es der Mondo-Rescue-CD nicht, das Netzwerk zu konfigurieren. In dem Fall müssen Sie die Netzwerkkonfiguration auf der Konsole von Hand einrichten. Gehen Sie so vor:

  • Beenden Sie mondorestore, um auf die Konsole zu gelangen.
  • Finden Sie heraus, welches Netzwerkinterface mit dem NFS-Server verbunden ist. Der Befehl
        ifconfig -a

gibt eine Übersicht aller Netzwerkinterfaces aus.
  • Konfigurieren Sie jetzt das Netzwerkinterface (Beispiel, Interface und IP-Adresse müssen ggf. angepasst werden):
ifconfig eth0 10.16.1.1 netmask 255.240.0.0 up
  • Überprüfen Sie mit ping, ob der NFS-Server erreichbar ist.
  • Starten Sie den Portmap-Dienst:
portmap
  • Mounten Sie nun das NFS-Share nach /tmp/isodir (Beispiel):
mount -t nfs -o nolock 10.16.1.10:/home/nfs /tmp/isodir

Starten Sie nun mondorestore und führen Sie die Restauration durch.

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

Linuxmuster.net helfen

Es gibt verschiedene Möglichkeiten, wie Sie helfen können, linuxmuster.net zu verbessern.

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.

Edit on Github

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.

Edit not signed in

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

Edit signed in

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.

propose changes

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.

commit changes directly

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.

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

Fork on Github

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

PR on Github

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 Aktionen

  • fü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.

Sollen statistische Daten übermittelt werden oder nicht?

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

Einsatzzweck von linuxmuster.net?

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

Ist die Installation virtualisiert, wenn ja, wie?

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

Dienstleister?

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.

Einsatzort: Bundesland in Deutschland

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

Einsatzort: Freie Eingabe für das Ausland

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.

Soll die Zahl der Benutzeraccounts übermittelt werden?

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.

Sollen die Clientzahlen übermittelt werden?

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.

Soll der Schulname übermittelt werden?

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

Schulname, wenn dieser übermittelt werden soll.

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

Installation auf der Nutzerkarte anzeigen?

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

Postleitzahl für die Kartendarstellung

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

Installation

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.

Installation

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:

Minimaler Datensatz

Ü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:

Maximaler Datensatz

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.

school console

Schulkonsole nutzen

Aufgerufen wird die Schulkonsole mittels https://server:242 in einem Webbrowser.

Login der Schulkonsole als Administrator

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

_images/schulkonsole-header-admin.png

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.

Login der Schulkonsole als Lehrer

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

_images/schulkonsole-header-teacher.png

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
_images/schulkonsole-room.png

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:

_images/schulkonsole-room-menu.png
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