wiki:AdminClientAufsetzen
close Warning: Can't synchronize with repository "keplertools" (/srv/svn/keplertools does not appear to be a Subversion repository.). Look in the Trac log for more information.

Version 88 (modified by Rüdiger Kupper, 10 years ago) ( diff )

--

Aufsetzen eines Linuxmuster-Clients from scratch

Hier werden Hinweise beschrieben, wie man einen völlig neuen Linuxmuster-Client im pädagogischen Netzwerk des Kepler-Gymnasiums aufsetzen kann. In der Regel wird man das nicht durchführen, sondern auf ein bestehendes Image aufbauen. Es kann jedoch Situationen geben, in denen ein frisches Image gewünscht wird.

Hintergrund
Das hier beschriebene Verfahren dokumentiert das Aufsetzen des Kepler-Releases "Crativer Chirstof", beruhend auf "Ubuntu 16.04 LTS (Xenial Xerus)". Grund für das Neuaufsetzen war der Übergang von einem 32-bit zu einem 64-bit Image (ticket:2229). Das letzte vorhergehende Image ("Bahnbrechende Birgit") beruhte auf "Ubuntu 10.04 LTS (Lucid Lynx) (32-bit)". Das Image wurde also über sechs Jahre gepflegt und aktualisiert. Wäre nicht der Übergang zu 64-bit gewünscht gewesen, hätte dieses Image problemlos weitergeführt werden können. Das soll uns erst einmal jemand mit Windows nachmachen!

Bei Bedarf: Client aufnehmen

Im Folgenden gehen wir davon aus, dass wir an einer Client-Maschine arbeiten, die bereits ins Linuxmuster-Setup aufgenommen wurde. Sie erhält also eine fest vergebene IP-Adresse (vorzugesweise im Schülernetz) und bootet Linbo vom Netz.

(Ed)ubuntu installieren

  • Ein aktuelles (Ed)ubuntu-Installations-ISO herunterladen und auf einen USB-Stick schreiben.
    • Hinweis: Im Moment gibt es keine aktuellen Edubuntu-Installationsimages mehr. Also Ubuntu benutzen.
  • Client vom USB booten.
  • Optional: Um während der Installation gleich die aktuellen Updates herunterladen zu können, muss apt den Software-proxy kennen:
    ~ sudo -sH
    # echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";'
    
  • Sprache "Deutsch" auswählen
  • "Aktualisierungen herunterladen" auswählen, wenn der Proxy gesetzt wurde (sonst machen wir das später!)
  • "Lizensierte Inhalte installieren" auswählen
  • Bei der Partitionswahl "etwas anderes" auswählen, dann konsistent mit unseren Linuxmuster-Partitionen wählen:
    • /dev/sda1 als / (formatieren)
    • /dev/sda2 als /usr/share/virtualbox-vdi
    • /dev/sda3 als Swap
  • Nutzer "linadmin" mit dem zugehörigen Passwort

Die Installation dauert nur wenige Minuten :-).

  • USB-Stick entfernen und den neuen Client booten.

Grundkonfiguration

Als lindamin einloggen, dann root werden:

~ sudo -sH

fstab

Der Ubuntu-Installer schreibt in die fstab UUIDs. Das können wir nicht gebrauchen, da die UUID der Festplatte auf jedem Client anders ist. Wir überschreiben die fstab mit der guten alten dev-Schreibweise:

  # cat > /etc/fstab << EOF
# /etc/fstab: static file system information.
#
# Use 'blkid -o value -s UUID' to print the universally unique identifier
# for a device; this may be used with UUID= as a more robust way to name
# devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>              <type>  <options>         <dump>  <pass>
/dev/sda1       /                          ext4    errors=remount-ro 0       1
/dev/sda2       /usr/share/virtualbox-vdi/ ext4    defaults          0       2
/dev/sda3       none                       swap    sw                0       0
EOF
Hinweis
Früher enthielt unsere fstab die Option discard zum Online-Trimming der SSD-Deteisysteme. Über die Verwendung von Online-Trimming gehen die Meinungen auseinander. Ich halte mich hier an das Standard-Setup von Ubuntu: kein discard in der fstab. Stattdessen wird über cron.weekly einmal wöchentlich der fstrim-Befehl für alle gemounteten Filesysteme ausgeführt. Die Swap-Partition wird bei jedem ersten Mounten getrimmt. Siehe: ​UbuntuusersDe:SSD/TRIM/

Systemweiter Proxy

# echo >> /etc/environment http_proxy=http://proxy.kg-fds.de:8080/
# echo >> /etc/environment https_proxy=https://proxy.kg-fds.de:8080/
# echo >> /etc/environment ftp_proxy=ftp://proxy.kg-fds.de:8080/

Im Schülernetz wird dieser Name aufgelöst zu 10.32.1.251 (proxys) im Lehrernetz zu 129.143.4.2 (BelWü-Proxy), jeweils Port 8080 oder 3128.

APT-Proxy

Um unüberwachte Updates zu ermöglichen, muss außerdem APT einen durchlässigen Proxy kennen. Im Lehrernetz ist das ebenso der BelWü-Proxy, im Schülernetz haben wir hierfür einen speziellen APT-Proxy. Beide werden dynamisch über den Namen proxysw aufgelöst, also:

# echo > /etc/apt/apt.conf.d/80kepler-proxysw 'Acquire::http::proxy "http://proxysw.kg-fds.de:8080";'

Pakete auf den neusten Stand bringen:

# apt update
# apt full-upgrade

SSH-Zugang einrichten

# apt install ssh

Ab jetzt kann die weitere Adminstration über ssh erfolgen. Bevor wir irgend etwas weiteres beginnen, installieren wir aber einen Editor :-) :

# apt-get install emacs

Root-Login ermöglichen

# passwd

Die SSH-Schlüssel der Administratoren zulassen:

# mkdir ~root/.ssh
# chmod go-rx ~root/.ssh
# cat > ~root/.ssh/authorized_keys <<EOF
ssh-dss AAAAB3NzaC1kc3MAAACBAMdoKtqur91lfZex03bRLQz37MIRWjY3u+9FQORjEgBUhUBU40rPdsQo5iWhZeP0bIVBYnxbtESbhO3jJDciRpcXsVvUGMri/d/YEsb4TFueZBonGtaCKc460ox2ZfO60k5qjj4wasHe2otkqLfhoyimqFIRsJRhGrEcXg17x5pXAAAAFQCpq9gXtdCrSDWniYuThDw2hgHE0wAAAIB2UjzLoPrw0tdTFNtgWdf3JFnHj0GmNKVXyqoNAA12Gz4Ea4Rr9nugIzyE1wQbqXoYhBU+jaHxrYwveZu/mhzl/5Mu7Xvfk4Vu/Nh7vRZVRDDvupB8TnEujJUrqiB1s9gxXyrMm18+yS0Xr8SlEnImKK6T7LECq/ymYBKr3/n9pQAAAIEAtBFY+a3fbRhaFggaybJJYB9qai19QVTGDHyjGthmOpz3UMj843QdG48tCUsiPuZumeHxbjc+Nx4ye6PPpGi9Edu170zlKqnOjTknZ0Kzo/hALI0Kn+q72wlQfsEGR9ulub+Oov+kwg9DWsMGs3/MsUvCvSjQjAS09Sr/L0nQH84= root@paedml
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFPgkPpCEL/DocyXSbl2FmJeL1FuQ0AE5zjGgK2IJ3/u9o8eet6UWOABX2zLNk393rYvzE6jhgng3LTCXxzhdsQ= root@paedml
ssh-dss AAAAB3NzaC1kc3MAAACBAKJtBo9a4cqiBjshdfGiV0jkPyaPho4ew1CiEw2qLOgoRWrUZ3LFnm10pbhIH0mm4HcYkyszIQLBB21ryDmsNLfs2hqQF9vD2bOls29rfBGp6KDzfP9JJfJijPhrzYuFK7slyki/PVqTEL0vdcfQBH/sIZkgGQZX2avA1hG/iV4XAAAAFQCNepeRPaWXhTBR8k8igkPLalAEyQAAAIEAlriuMxQW8GkUzan3zvV4uTVlPSxlXGzLvQBEnwS2GD3PLKuTMAZj4j6mCAUy/c6jwZDZ+6YRgHD8J4ZdZExb8qDhj7Dmd7WhWblZ+KiBsZLYBUeEwcC0suPmnOSL2RXx3d2b+LtgnXJBnlUg2ipPveA/PgbLEx1GUUHCM1FXJuQAAACAGheG34JXHdAaxp7gfUPQfj0KVERZe6tCVAGbZKgYZy+abBZA3GeJdy0+w+MDzpSTMCnMW6g+tLHYzKjhGreR/qIWU3oK9+s6uiaqE0ExheH06sum2BvJj8sS8gFbYd0e5xYKdr1BrENGW22F+/IbNeogR6gu/rQ+GRAHHG+oY9g= Dr. Rüdiger Kupper
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgrXpLQR5MtdHsLmhHWO2fQlGnVaxEdWFatjF52SXYEXKZ1MdLSBlTaD2UMBGpeZxqfFypxtcq7/bvygli7Knht9BInJTy0ADFwKBTE0Q3oFIVqDh2jkmfnmEoBXfkaMvzCFDv2PWGF6xWAChX2JLn8oP4uyG5sfhebykChuheYHU2rPtXuZntMdWdttExFIw6UhInSrsuPY1YGP0zr7Cd+JB0baZxk3qIPiNj/ALGl0HtAFUgOX4FmcJjUuZOsCUQzMxHQqeyWpSbD0fMXRS16Z2raTVGzhYXnt5CqjPpKkg8add90cWYM103Fyjd8CDtzkTl1k8dsP590xJiEQm3 kup@reinhold
ssh-dss AAAAB3NzaC1kc3MAAACBAJvTdAeRisrjbyJJxM9I7nYHgCz32XY/l4zUbVbLreR2DI9xf/ihOw2f+2WkQpkUmi1KKnaRDW2Bt/rMVZMC4rPxwvRBQi5r6aYmVZMSVE3o3td23wEIUpXVtCUCnIrPvGfaHDO6P54WizM9vMwJQQ/ZtAW/JUX22vqLlGefVpbbAAAAFQDFmUMNnr9BFMagZph2k/NuazPArQAAAIBCWDLurI2p08Ju7oqPxlpiW6JXgEx0EvOlVA8mCbWB15XP+rXl9oZKKIYoqXXbhkp0FtdolHUvWszSX7WO67a1debKVDiwiNs+Rp0Uu6XrLYpqmpoXHKrbVtBJebNMoa5lMBPl/NLGhvfQZ65M+Fwdn2APJAaq9FEjFj/A5X7UOAAAAIB7aXQVRqyVVv6+JcIpg5bJgQKzSTqkyQA0+bxMiZtcTgU0jZjr2hsLaPKv0ZXnUqYvUsM2ST/aWrppwu3tC/ns8yixq/z3CaFKy1iXHwFTSQx3dug0j2LJ5qKZ9J02f6kSapU5nnDbk5bL0A2t5+Rv/9UhPCAENP7hJzcfk8qQqw== bau@BauLap
ssh-dss AAAAB3NzaC1kc3MAAACBALNd5hogWwu1yq0yjM+wwB0/uQeDpKy2vUdHsm7niDpnxLJNtdBlDGa2oZ9knyYXXbW7vQTyHpP4DBaNoYUMrqYGytpHEHsw8Rw0eZ52/YfFlarFqO2PA1NWZv/dvWJ1tKxDQI6Osm4bUaLU8YhiCWi/SSVjm57+szYTxaogND8pAAAAFQCUDEw+ziMw7/VTz51kIpuQovylFQAAAIBuj/6Xheccb3VY4ZccWuzkxOwxYF7RWtdTlSbJ6EQDBf4IxoFU5uMkT3JiujA8ETBIC4I1ZFqSwXDvFM7mcEuVnswBfCgEUaGgVMQCVxFJbDQ5a096ALJY9GMNw47nnHpOhxMjIf51X6y3OlB1gJMGma3l/BCVlsAEyrDcgSfUxwAAAIEAoBRNZqk/hTM740yYjwNdYOa/8HxdpoGYNVi9mLCX4lEnihvvfBa7yNagrvRHEG/DIzNh9l+1LamuVK/DtHZVDyvLxaLPhKIZo0e/GGrYjQcykMn7ZHL1oqWfIxNN3VDw7lpuisi6ks4m2FK+u3+y24kvOqyop2jOYl+bYKMu9ks= root@LTSP
ssh-dss AAAAB3NzaC1kc3MAAACBAP2kNGWNDXoIN/eCfqR2Ja7ky/ETVhi/TDUlRXDgLwO7SHHH8WT/K5KeYDxl2IV62WfRKHNbDUg30xKJBbQKg2w8HvFPFTvONdeU7wXazFwGpuLV4LeZbg2d6bcz8nBBqXD+/DQETIcKVvv0cJYqm8SU25NFsfZ7YICHQt8llEKDAAAAFQDeGjaLoldUGOvwG+IlnRUIgDSjYwAAAIAEb87oiJhOBTOZ4NJAgFDprx14SRs9ckL+M0acmyD+8xhMCBY0F8VG2wv7MHjNyTnRj02naJ05D8ygwRATccgudXjGL4OWe+gafLTC4gPfm5YRKpD4+zSindmzPifBHpHOH6z++vx55MRjWHwAoqTIlvNHNeIo97RRFVHu+FoKPwAAAIAu5CtkEAEoFnLOo3up45E72IqA/TQhRIpD7dHIJXPktoUdlasgGZTwCVI+lkrB5NJKjpQoAJpyKQzFMveRrnEgDAKMo8D+XrI7WQTDm4OeCCz3t6HMas8jBvv0JHIWMFZyEJve4n7xYGr3CuGF+LJlG0ARuCuablJiKIwnPsJGgw== linadmin@LTSP
ssh-dss AAAAB3NzaC1kc3MAAACBALctoN5jVWYvA4RxAHLgQI8btl5Fll/JOSFmpo52Ey1fF0QxT3DKO29JHPyFjcfFqBwwQ59ycRWWV9c41Hi+96y7G0OD/6xizOp9D5UK1ZoMbLcQcOtW2mlIE1rSDt/tbRwHPZa2ENDkIOZvVhQwk5pmPqRMyyL70/HWBpEMKypBAAAAFQCTsjBQnmndH+Ujw/rJz/N+fQoigQAAAIEAr4AHPmBP5MYPbUU7HPjGaChfRfJ09Ao6SyUhXK/ebIc/DZsRS8U9vWW8LcoVBnR6dVgb0jZu2E3S0ma7yqlsa7jmNmAo+rRoty2GLcQl6q1dVCYV+DI8q7M8eFHiNmcNPYX/QkKddeT9osv3fwZSH3cjrpEKHeAhqwHx4+pTTgwAAACAS4ZlSRxCuNwZsv5JLJIkyt7ROBuYjQjxv+b/cHgh1ErCbh4Y+QVjap3TMlSn/wNCUjcTZ2fP1srAk2w53y63w4009cXMwA2iktz7z0LqhdQs3ArF8+ZrXDbPhh7rhtCRKvd5TF4C0ZGeUdiPp05PBlrstE2b8Raw8QVwfFlofFQ= jas@paedml
ssh-dss AAAAB3NzaC1kc3MAAACBAIVxw23kJxoqK0Jb/vjxT2gQZKwCSmNa2s1OCfbjB3+3C7ytKHX09aovIof0xrJx3L4JUk1sYhfSZs/eMh46gkOeGcBK22ocN5CNpqMHti+v1Gj5kVLYJq0jDIp6BHbqlctlKlODXKW8fQ37FWAetn1TEHIUNK0xiOg0lkyPzuh1AAAAFQDxHStaYHbBopAMYEN3LsccDXBnRwAAAIBOBLM3Aw5otlgy+BgHgGtXAzd12hH6MEQSbEWMP7n9G0aaYsALiN5IR/3Lqn7x8dcxD1iPyy/wigmcTY0iZGMMmIf0x929QgBpNwF00kuDTI8LjymVAPCwpHgJryB3ZYdcVX1vk9827rMXXGuXjn+d+ih8aLRcQ/repq3I8658RgAAAIAa5LkSnBdm2nMc/fCw8yxu/gjt8xgY9JUAMjEfb1IUq5TV0sMyikpFG77Khmk7WfiWS1aX4464sr7jXFA9RqRyfSE+oHQeUoObRalVAavqquqHscUu4Qg7dhN/dmSV+aniVD0/RE0etple6i6CnK2r0tV1WS+hNIA/n3nGB726nQ== root@db
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDgrXpLQR5MtdHsLmhHWO2fQlGnVaxEdWFatjF52SXYEXKZ1MdLSBlTaD2UMBGpeZxqfFypxtcq7/bvygli7Knht9BInJTy0ADFwKBTE0Q3oFIVqDh2jkmfnmEoBXfkaMvzCFDv2PWGF6xWAChX2JLn8oP4uyG5sfhebykChuheYHU2rPtXuZntMdWdttExFIw6UhInSrsuPY1YGP0zr7Cd+JB0baZxk3qIPiNj/ALGl0HtAFUgOX4FmcJjUuZOsCUQzMxHQqeyWpSbD0fMXRS16Z2raTVGzhYXnt5CqjPpKkg8add90cWYM103Fyjd8CDtzkTl1k8dsP590xJiEQm3 kup@reinhold
EOF

Ab jetzt können sich die Administratoren kup, bau, jas, root@paedml, root@LTSP und root@db mit ihren SSH-Schlüsseln einloggen.

Praktischerweise die selben Schlüssel auch für den Login als linadmin zulassen:

# rsync -rv ~root/.ssh ~linadmin/
# chown -R linadmin:linadmin ~linadmin/.ssh

An dieser Stelle bietet es sich an, das erste Linuxmuster-Image von unserem neuen Client hochzuladen :-).

SSH-Schlüssel kopieren

Damit root und linadmin ihre Schlüssel auch verfügbar haben, wenn sie sich lokal an der Maschine einloggen, die betreffenden Schlüssel (öffentlich UND privat) von einer bekannten Maschine kopieren:

  • root@linuxmusterclient
  • linadmin@linuxmusterclient

Kepler-Release

Der Name des jeweiligen Kepler-Releases wird von unseren Skripten in /etc/issue.kepler erwartet (#2122):

# echo > /etc/issue.kepler '"Creativer Cristof"'  # oder jetzt aktueller Codename
# cat > /etc/update-motd.d/05-kepler-release <<EOF
#!/bin/sh
cat /etc/issue.kepler
EOF

# chmod a+x /etc/update-motd.d/05-kepler-release

Software

Als nächstes instalieren wir die Software, die auf unserem Clients verfügbar sein soll.

Partner-Repository aktivieren

In der sources.list die deb-Zeile für das Partner-Repository einkommentieren:

  # emacs /etc/apt/sources.list

zusätzliche Paketquellen

# ISSUE=xenial  # oder das inzwischen aktuelle release
 
# cat > /etc/apt/sources.list.d/atareao-telegram.list <<EOF
deb http://ppa.launchpad.net/atareao/telegram/ubuntu $ISSUE main
deb-src http://ppa.launchpad.net/atareao/telegram/ubuntu $ISSUE main
EOF

# cat > /etc/apt/sources.list.d/geogebra.list <<EOF
## THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You may comment out this entry, but any other modifications may be lost.
deb http://www.geogebra.net/linux/ stable main
EOF

# cat > /etc/apt/sources.list.d/linuxmuster-net.list <<EOF
deb http://pkg.linuxmuster.net/ $ISSUE/
EOF

Die Repositories sind signiert. Damit apt die Repositories auch verwendet, benötigt es die öffentlichen GPG-Schlüssel:

# apt-key --keyring /etc/apt/trusted.gpg.d/atareao-telegram.gpg add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mI0ETQfDgQEEAPSiDI/aHY9bPa1K4pvcMR8g3eJr6/9cdEDihLj0JbMCn8a8rXMi
4iTwvFJJQFUalIzRSc67AUEp9rNQyAHsZFEmxD9Ah+j8eI/ULmMRN/YzHUT3V2vt
W29pxrsz4ZFNQKYENoDoNrY0sCmkNnWk9gXwPKazYVCkTv9fpQdhhIbbABEBAAG0
GUxhdW5jaHBhZCBQUEEgZm9yIGF0YXJlYW+IuAQTAQIAIgUCTQfDgQIbAwYLCQgH
AwIGFQgCCQoLBBYCAwECHgECF4AACgkQapZT+Tb9VSlxUQP/aEolfHZZmJMt5SEl
SItaUAVHR5egWcZeDPdVKcaUsTTGDx7Q2oXNjT88ZAF+pWXqLzzBHE0Hn0BiqcuH
YQ5hwgzW2KpVj6MjyUKHXHBAA5e7E0O7q8JWJXKMystILbhQCpM33JkwF4VtprV4
yLzn23RakMw9PONVA0du5ABfIZY=
=8gbf
-----END PGP PUBLIC KEY BLOCK-----
EOF

# apt-key --keyring /etc/apt/trusted.gpg.d/geogebra.gpg add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBFFMIIkBCAC4YLnoBGrp8bIrebBp6dpRCyet7V8DxNurJynQA4R9MyXWTND0
Wi7UeJFJQTFFBdlNgCfTts4fAU9s3iA7m9WCUIsVtx288+QC6oLwb4/p7ZX53Tl1
0HhRBSsOC5OmU7/Ds5YNyvOV29ScjrxDwSHyvIjGpnL/2mc6JZNUSRGxDPbikhPt
CU5QnrlC1+NnJbH2bQz93jXb3E3hZvXreeJwG/UXO6pcGayUfqwzOcOZWikcTi1g
/uUurlABHyS6SwLnSE8mhs8nGB8fCTmRkjNP59aQdSwOo2ppBSRjVS/RiIJCI2B/
avuolIfqq46IgcvKAuBAcex/icBCNgTEz61JABEBAAG0NkludGVybmF0aW9uYWwg
R2VvR2VicmEgSW5zdGl0dXRlIDxvZmZpY2VAZ2VvZ2VicmEub3JnPokBOAQTAQIA
IgUCUUwgiQIbAwYLCQgHAwIGFQgCCQoLBBYCAwECHgECF4AACgkQwHKjKYOnNs93
vggAkOsNAqGsKtVgAgmhocK7ealctiwFQUIFVGRl8enKU64Qijh9aPX32EJKhOXO
6WMNmFPeqRdp7ApBAt+/hiftZDm2kkhobM178gN0iZD5CN/sgX5fnLG7Afb9TS/+
USV+7vxt2eBNU/q+Fr4+uAkL5999KaNArYrXI2YlBWlUnQt7gVedRRM/2PPwJEqu
UpXr7TJODK7xUgSgUHb0QYxcm9lVTHr3kTBukzqx7NxPzJtYULJOpIxPh6+g7dUK
CR1mfFdILvG3KnPHVE2bAznxhYLHtK0W0x/TjtsMz2+lySFSn+zDV612t5lhcgLm
H5mYhQP1C4V9xFrJVK8JroVwJA==
=v29t
-----END PGP PUBLIC KEY BLOCK-----
EOF

# apt-key --keyring /etc/apt/trusted.gpg.d/linuxmuster-net.gpg add - <<EOF
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1

mQENBE+ddzwBCADYcRLrZnVd3c8+/2BsRprUoXY500Hkqw0DlkEEBft1kmsANWVc
pMPC83VWvWttDerjEYLM1K+WNyzAMRGEq7UOQd1H1yjlzp22lr4S/xWmHaSisq9l
qf/LUil0VXd6jM02r+SEGRQVuuDlQ/pgSgQuQI/qvjaSZK245TBTpzXM4FAFp416
rEVP0IHZL/5uN3/hptrHRzhxRFLHTA7C8xGQGxYW5DZ3bov2h3xzBBqHKa7rjjZa
W3WXuUCU2t4tY+ghi58YEHmP3An3ofV40tuw+oVOVQC5Gmxj7GALBscDfYX6rBXa
AXf7zZtStsXuwDKvbL0WU95IoyR5RJJcOuZDABEBAAG0VmxpbnV4bXVzdGVyLm5l
dCBkZXZlbG9wZXJzIChsaW51eG11c3Rlci5uZXQgcmVsZWFzZSBrZXkpIDxsaW51
eG11c3RlckBsaW51eG11c3Rlci5uZXQ+iQE4BBMBAgAiBQJPnXc8AhsDBgsJCAcD
AgYVCAIJCgsEFgIDAQIeAQIXgAAKCRCDkDvGaEszbukmB/4yu4ARdRbdy+CGU1tc
fz941Iu6rJ83itRSY+entyJDbn4MUfWqz7EFc/88w+JFrNI17X35of5fXw9B2WVC
2d/SI4ho/0Azkkhhu0EEbFJTpg34h9b+rn3/Ok6GadPRuP8nArGvfBiiz/EGdNdE
781oO2DqzM/Bnwk/4R1GIMe5vw11yItsrZkNw6jIGrHXWp+3+OltADnrAb2Lf1E5
rXQmaALAuU4dmFHIV616w86E8cr0ifbSqqS6O4csXAU8tfF5E+x46d2Fu+ARCHBm
vjwLsouxd2z+o3h4WkNXOA2BqOVJkY4rfGsw3NuJ+N7BhgAStNlvMfttl3M8ssO+
Z9LeuQENBE+ddzwBCACU0kbNnUX7aGkrC631BxHJlb+rxLawj1j1V+V4eBdXrbGp
ZNQRwA96iCJbJxKFtMuLO0yVMhGwjfQxwLHK2NUgaHOR4IRAW77cusuB20V7Wlgj
0tEDmUpxE2iLg0jNxxS7KVNmP+KbGELwWu8qVP4ZYwKGAVDWdLQUsyAwzt+516Oo
DA2iANvBdiSxJCatUQW9G91eelMgrRIAHgsPqWYmnQNovB9m31kH4nrPmsS7Opq6
xcjVQvPUH4DRwlOxq6kBPHvag7edl9Un6omyjLdVkYnrr1OUOKbXw7UHAKoN/1fV
zCMTYavL3o8P5aPs4eLXBbMRIBHDaXcmXdbwjZF1ABEBAAGJAR8EGAECAAkFAk+d
dzwCGwwACgkQg5A7xmhLM25RKgf/f4Pzvhq9VEdwclyx+XSXvLfdPQyX7VBRnOIm
a7EJ6TC2ErVh/sB7dub4OVqDbb4rXOHSZQCJdxIYbtDY30d7XnigF74/KypqpdxY
pQVqWjlHwQ+XhONYnzvDHnVfPfu3mzrnfa0ihv5EN+JAmftvPW5Ef4D4fPWZ2QuG
mgMpdiQOszDemPVzvOmQzUkgZjqTf7KHGXCrxt+ijgTI9pwIiT1tya/2d7NlgnDK
ICZw9nDDAnM4aE09j53Th2XTiEcUBj4k/DzbN12T15cSzIkHa0WE0OZgfad8cQiD
HT1Oq8dRaLD4//Pjkg/hLDva4fc1D47owtzmyXb72Lu2r14fjA==
=nhAI
-----END PGP PUBLIC KEY BLOCK-----
EOF

Jetzt sollte ein apt update durchlaufen:

  # apt update

typische Software

Folgende Pakete sind in unserer Installation:

# apt install  ardesia auctex audacity clusterssh dconf-editor debfoster devilspie2 edubuntu-desktop emacs enigmail epoptes-client finger firefox-locale-de firefox-locale-en fonts-crosextra-caladea fonts-crosextra-carlito fonts-opendyslexic gcompris-sound-de gconf-editor gedit-latex-plugin geogebra5 gimp-help-de gimp-help-en gnome-activity-journal gnome-clocks gnome-system-tools hamster-applet hedgewars hyphen-de hyphen-en-us ipython ipython3 kde-l10n-de kde-l10n-engb kdenlive krita language-pack-gnome-de language-pack-gnome-en ldap-utils libreoffice-help-de libreoffice-help-en-gb libreoffice-help-en-us libreoffice-l10n-en-za lm-sensors mesa-utils mypaint mythes-de mythes-de-ch mythes-en-au mythes-en-us nautilus-dropbox network-manager-openvpn ntp openoffice.org-hyphenation pingus pitivi postfix pylang python-matplotlib python-usb python-whiteboard simple-image-reducer smartmontools ssh stellarium subversion synaptic telegram texlive-lang-french texlive-lang-german texlive-lang-spanish texlive-science texmaker thunderbird thunderbird-locale-de thunderbird-locale-en-gb thunderbird-locale-en-us ubuntu-minimal ubuntu-restricted-extras ubuntu-standard unison unity-tweak-tool virtualbox wine xournal xpad

Epoptes und ubuntu-artwork werden von edubuntu-desktop empfohlen, doch stören in unserer Installation und werden daher entfernt:

 # apt purge epoptes edubuntu-artwork
 # apt autoremove

postfix

Das paket postfix muss bei der Installation konfiguriert werden. (Vom neuen Client soll Mail an die Nutzer des Kepler-Netzwerkes zu verschicken sein. Insbesondere soll Mail an root nicht auf dem lokalen Server stecken bleiben, sondern an den paedml weitergeschickt werden. Dazu muss ein MTA installiert werden, wir nutzen Postfix):

  • "Satellitensystem" wählen
  • System-Emailendung: kg-fds.de
  • Relayhost: paedml.kg-fds.de
  • Empfänger für Mails an root und postmaster: root@kg-fds.de
  • Namen, für die dieser Rechner sich als Zielsystem betrachten soll: kg-fds.de ENTFERNEN!
  • alle anderen Einstellungen können unverändert übernommen werden.
  • Testmails verschicken, an:
    • <nutzer>
    • <nutzer>@kg-fds.de
    • root
  • Dalls nicht alle Optionen bei der Installation abgefragt werden, oder sie später noch einmal gesetzt werden sollen, ist das möglich mit dpkg-reconfigure postfix.

TODO: Hinweis: in Xenial offenbar nicht mehr verfügbar: freemind, xfonts-mathml TODO: Fehlen noch: acroread, vstdrivers, xaralx

ev. zusätzliche Treiber aktivieren

Als linadmin einloggen und mit dem "Software&Repositories"-Tool möglicherweise verfügbare zusäztliche Treiber aktivieren.

manuell zu installierende Software

TODO: Xara Xtreme

Siehe #467, ​http://www.xaraxtreme.org/download.html

TODO: Dropbox-Daemon

Normalerweise lädt Dropbox beim ersten Start (oder durch den AUfruf dropbox start -i) den Dropbox-Daemon automatisch herunter. Das funktioniert derzeit hinter Firewalls offenbar nicht. So installiert man den Daemon manuell:

Hinweis
Der Daemon startet dennoch nicht, Grund unbekannt. Derzeitige Lösung: Das Verzeichnis /var/lib/dropbox/.dropbox-dist per rsync von einem funktionierenden Server kopieren.
# cd /var/lib/dropbox/
# wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar --no-same-owner -xzf -

Ev. muss zuvor die http(s)-Umgebungsvariable mit Nutzer und Passwort gesetzt werden.

Das lädt den Daemon herunter und packt ihn in das Verzeichnis .dropbox-dist aus. Danach kann man Dropbox verwenden.

FUNKTIONIERT DERZEIT NICHT: Google Earth

GE gibt es nicht in den Ubuntu-Paketquellen (logisch). Es gibt aber ein Paket, dass die Installationsdatei von Google herunterlädt und ein *.deb-Paket daraus baut:

# apt install googleearth-package
  • Dann die http_proxy-Variable setzen (am besten auf den Lehrerproxy)
  • Dann make-googleearth-package --force --cleanup aufrufen.
  • Abhängigkeiten von Hand installieren und dann googleearth-Paket installieren:
    # apt install lsb-core libfreeimage3
    # dpkg -i <angegebener-Paketname>
    

TODO: zusätzliche Microsoft-Fonts

(siehe #1723)

Skripte in /usr/local/sbin

# rmdir /usr/local/sbin/
# svn checkout svn+ssh://root@paedml/srv/svn/keplertools/scripts/trunk/ /usr/local/sbin/

LDAP-utils einrichten

Einige unserer Skripte fragen die LDAP-Datenbank auf dem paedml ab. Das zugehörige Paket ldap-utils muss ensprechend konfiguriert werden:

# emacs -nw /etc/ldap/ldap.conf

Einfügen:

BASE    dc=kg-fds,dc=de
URI     ldaps://paedml/
TODO
auch: bind_policy soft??

Test: Danach sollte der Befehl teachers die UIDs der Lehrer auflisten.

linuxmuster.net-Paket

Vorgehen wie auf ​https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:ubuntu.manualinstallation beschrieben.

client-auth-Paket

# apt install linuxmuster-client-auth

Alle Fragen beantworten, wie hier beschrieben: ​https://www.linuxmuster.net/wiki/dokumentation:handbuch:clients:linuxmuster-client-auth.

Sofern nicht bereits im letzten Schritt abgefragt, den LDAP-Server auf paedml einstellen:

# dpkg-reconfigure linuxmuster-client-auth
  • LDAP-Server: paedml
  • Suchbasis: dc=kg-fds,dc=de

Der Name paedml wird im Lehrer- und Schülernetz passend aufgelöst.

Weiteres Anpassen der ldap.conf ist offenbar nicht mehr nötig (Defaultwert für timelimit steht auf 5s).

client-shares-Paket

# apt install linuxmuster-client-shares
Problem
Derzeit ist im postinst-Skript ein Fehler, siehe ​http://www.linuxmuster.net/flyspray/task/588.
Wichtig
Das Installationsskript trägt in der Datei /etc/security/pam_mount.conf.xml die Serveradresse als IP ein. Das können wir bei unserem Setup mit Schülernetz und Lehrernetz nicht gebrauchen. Daher ändern wir den Eintrag "10.32.1.1" ab in "paedml", der in beiden Netzen richtig aufgelöst wird:
# sed -i "s/10.32.1.1/paedml/g" /etc/security/pam_mount.conf.xml
Außerdem
Die Linuxmusterleute haben den Namen für "Tausch_auf_Server" in "Tauschen_auf_Server" geändert. Bei uns zeigen die Bookmarks aber noch auf den alten Wert, also ändern wir zurück:
# sed -i "s/Tauschen_auf_Server/Tausch_auf_Server/" /etc/linuxmuster-client/shares/linkfoldername.conf

client-profile-Paket

# apt install linuxmuster-client-profile
Wichtig
Damit unsere derzeitige Konfiguration mit getrenntem linadmin/Vorlagennutzer und unsere angepassten Linkstruktur funktioniert, müssen einige Konfigurationsdateien angepasst werden. (Hinweis: kann sich mit der Zeit ändern. Überprüfen!)

Datei /etc/linuxmuster-client/profile/profile.conf anpassen:

  • PROFILE_USER="vorlage"
  • OWNDOCSFOLDER="."
  • RSYNC_OPTIONS="--links"

Datei /etc/linuxmuster-client/profile/home-preference.conf anpassen:

  • HOMEPREFERENCEFOLDERNAME="einstellungen"

Datei /etc/linuxmuster-client/profile/usersettings.conf überschreiben:

# cat > /etc/linuxmuster-client/profile/usersettings.conf <<EOF
Schreibtisch:Schreibtisch
Downloads:Downloads
Vorlagen:Vorlagen
Öffentlich:Öffentlich
Dokumente:Dokumente
Musik:Musik
Bilder:Bilder
Videos:Videos
EOF

Datei /etc/linuxmuster-client/profile/usersettings-opt.conf überschreiben:

# cat > /etc/linuxmuster-client/profile/usersettings-opt.conf <<EOF
#libreoffice:.config/libreoffice
## Do NOT use ALL:ALL while we still have shared profiles for firefox/thunderbir
#ALL:ALL

config:.config
local:.local
recentf:.recentf
emacs.d:.emacs.d
xournal:.xournal
ssh:.ssh
VirtualBox VMs:VirtualBox VMs
VirtualBox:.VirtualBox
gnupg:.gnupg
bashrc:.bashrc
gconf:.gconf
EOF

lokale Nutzer anlegen

Auf unseren Clients gibt es lokale Accounts, die wichtige Aufgaben erfüllen:

kepler
Passwort: "lokal", Name: "ohne Netzwerk anmelden"
windows
Passwort: (klar), Name: "Windows-Nutzer"
vorlage
Passwort: (klar), Name: "Vorlagennutzer fuer Linuxmusterclient"
# adduser kepler
# adduser windows
# adduser vorlage

Verzeichnis des Vorlagennutzers einrichten

Damit unser Skeleton-Mechanismus richtig funktioniert, muss das Homeverzeichnis des Vorlagennutzers folgendes enthalten:

  # su vorlage
  # cd
  # (VORSICHT) rm -r *
  # (VORSICHT) rm -r .*
  # ln -s /home/windows/Dokumente/ Infosys_Dateien
  # ln -s Home_auf_Server/__Scans __Scans
  # mkdir -p .mozilla/firefox .thunderbird
  # cat > .mozilla/firefox/profiles.ini <<EOF
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=../../Home_auf_Server/einstellungen/firefox
EOF
  # cat > .thunderbird/profiles.ini <<EOF
[General]
StartWithLastProfile=1

[Profile0]
Name=default
IsRelative=1
Path=../Home_auf_Server/einstellungen/thunderbird
EOF
  # cat > README--ACHTUNG--Hier-keine-Dateien-speichern.txt <<EOF
Achtung, Dateien, die in diesem Verzeichnis abgelegt werden,
bleiben nicht dauerhaft erhalten!

Nutzen Sie zum dauerhaften Abspeichern eins der Server-Verzeichnisse:
 ~/Home_auf_Server
 ~/Tausch_auf_Server
 ~/Dokumente
 ~/Bilder
 ~/Videos
 ~/Musik
 ~/Downloads
 ~/Schreibtisch
EOF

LightDM konfigurieren

LightDM-Optionen setzen. Z.B. muss die Eingabe eines Benutzernamens erlaubt werden. Die Gast-Sitzung sollte deaktiviert sein. Hier kann auch die voreingestellte Sitzung gewählt werden:

  # cat > /etc/lightdm/lightdm.conf.d/21-kepler-disable-greeter-hide-users.conf <<EOF
### kup: bei uns ist die Nutzerliste aktiv, da sonst unbedarfte Kollegen den
###      Sperrbildschirm mit dem Login verwechseln und versehentlich ihr Passwort
###      präsentieren.
###      Der manuelle Login ist ebenfalls aktiviert.
[SeatDefaults]
greeter-hide-users=false
greeter-show-manual-login=true
EOF

  #  cat > /etc/lightdm/lightdm.conf.d/50-kepler-seats.conf <<EOF
[Seat:0]
user-session=ubuntu
autologin-user=

[Seat:1]
user-session=kepler-virtual-windows-infosys
autologin-user=windows
EOF

Kepler-Profil

Wir nutzen den Profil-Mechanismus von Gnome, um unserem Desktop das gewünschte Aussehen zu verleihen. Das Kepler-Schema ist möglichst wenig invasiv, baut also auf den Defaults der jeweils aktuellen Ubuntu-Version auf.

  # cat > /usr/share/glib-2.0/schemas/96_kepler.gschema.override <<EOF
[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/kepler_default.jpg'

[com.canonical.unity-greeter]
background = '/usr/share/backgrounds/kepler_default.jpg'
logo = '/usr/share/unity-greeter/kepler_logo.png'

[com.canonical.Unity.Launcher]
#favorites=['application://nautilus.desktop','application://firefox.desktop','application://thunderbird.desktop','application://libreoffice-writer.desktop','application://libreoffice-calc.desktop','application://libreoffice-impress.desktop','application://cheese.#desktop','application://vlc.desktop','application://gnome-clocks.desktop','unity://running-apps','unity://expo-icon']

favorites = ['nautilus-home.desktop', 'firefox.desktop', 'thunderbird.desktop', 'libreoffice-writer.desktop', 'libreoffice-calc.desktop', 'libreoffice-impress.desktop', 'cheese.desktop', 'vlc.desktop', 'org.gnome.clocks.desktop']

# make gnome-clocks start with timer window
[org.gnome.clocks.state.window]
panel-id='timer'

# Der Desktop-Switcher lässt sich leider von hier aus nicht anschalten, da er kein
#  Schema besitzt. Das folgende schlägt also (leider) fehl:
# turn on the desktop switcher
[org.compiz.profiles.unity.plugins.core]
hsize = 2
vsize = 2

[com.ubuntu.update-notifier]
no-show-notifications=true
show-apport-crashes=false

### Das folgende scheint von irgendwo überschrieben zu werden -> herausfinden!
# set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217
[org.gnome.desktop.input-sources]
sources = [('xkb', 'de'), ('xkb', 'de+nodeadkeys')]
EOF
# glib-compile-schemas /usr/share/glib-2.0/schemas/
TODO
Herausfinden, von wo [org.gnome.desktop.input-sources] überschrieben wird (s.o) und warum das Aktivieren des Desktop switchers nicht funktioniert.

Hintergrundbild

Das Default-Hintergrundbild, das mit Edubuntu kommt, ist bei uns im Schülernetz und im Lehrernetz (per Linbo-Postsync) unterschiedlich verlinkt. Das jeweils aktuelle Bild ist unter den Links kepler_default_{schueler,lehrer} erreichbar:

# cd /usr/share/backgrounds
# ln -s <aktuelles_Hintergrundbild_für_Schüler> kepler_default_schueler 
# ln -s <aktuelles_Hintergrundbild_für_Lehrer> kepler_default_lehrer 
Hinweis
Wenn wir jetzt noch keine zwei Hintergrundbilder haben, nehmen wir vorerst mal den Ubuntu-Standard warty-final-ubuntu.png.

Im Client-Image muss der Defaultlink auf `kepler_default_schueler" verweisen. (Im Lehrerimage wird es vom postsync-Skript passend abgeändert):

# cd /usr/share/backgrounds
# ln -sf kepler_default_schueler edubuntu_default.png
# ln -sf kepler_default_lehrer edubuntu_default.jpg

in /usr/share/unity-greeter/kepler_logo.png

ENTFÄLLT? Vorgaben für Gnome-Settings (dconf) einrichten

User-Datenbank einrichten und erzeugen:

# cat > /etc/dconf/profile/user <<EOF
user-db:user
system-db:site
EOF
  # mkdir /etc/dconf/db/site.d
  # cat > /etc/dconf/db/site.d/00_site_settings <<EOF
[com/ubuntu/update-notifier]
no-show-notifications=true
show-apport-crashes=false

[com/canonical/unity/launcher]
favorites=['application://nautilus.desktop','application://firefox.desktop','application://thunderbird.desktop','application://libreoffice-writer.desktop','application://libreoffice-calc.desktop','application://libreoffice-impress.desktop','application://cheese.desktop','application://vlc.desktop','application://gnome-clocks.desktop','unity://running-apps','unity://expo-icon']

# turn on the desktop switcher
[org/compiz/profiles/unity/plugins/core]
hsize=2
vsize=2

# set default keyboard layout from "de-nodeadkeys" to "de", see ticket:1217
[org/gnome/desktop/input-sources]
sources=[('xkb', 'de'), ('xkb', 'de+nodeadkeys')]

[org/gnome/clocks/state/window]
panel-id='timer'
EOF
  # mkdir /etc/dconf/db/site.d/locks
  # cat > /etc/dconf/db/site.d/locks/00_site_locks <<EOF
###wozu?### /org/gnome/desktop/input-sources/sources
EOF
# dconf update

Timeserver

Müsste bereits oben passiert sein: ntpd installieren (zuverlässiger als das mitgelieferte ntpdate, siehe man ntpdate)

# apt install ntp

In /etc/ntp.conf alle pool- und server-Zeilen auskommentieren, dann im Abschnitt "Specify one or more NTP servers" einfügen:

# Specify one or more NTP servers.
server ntp.kg-fds.de

(Der Name ntp.kg-fds.de wird im Schüler- wie Lehrernetz zu einer geeigneten Adresse aufgelöst.)

dann

# service ntp restart

Cronskripte

globale Crontab

In /etc/crontab und /etc/anacrontab muss der Proxy eingetragen werden, damit der flashplugin-installer seine Datei herunterladen kann:

Im oberen Bereich von /etc/crontab und /etc/anacrontab:

# package flashplugin-installer needs to know the proxy:
# note: put this into /etc/anacrontab, too, if anacron is installed
http_proxy=http://proxysw:8080

Der name proxysw wird im Lehrer- und Schülernetz passend aufgelöst.

Nun die Einträge für unseren automatischen Logout (können hoffentlich irgendwann entfallen):

  # cat >> /etc/crontab <<EOL


# Cron jobs zum Ausloggen der Nutzer im Schülernetz (in der Mitte der Pausen):
15 09   * * *   root    schuelernetz && friendly-logout-users
05 11   * * *   root    schuelernetz && friendly-logout-users
55 12   * * *   root    schuelernetz && friendly-logout-users
40 15   * * *   root    schuelernetz && friendly-logout-users

# Cron jobs zum Ausloggen der Nutzer im Lehrernetz (alle 20 Minuten):
*/20 *  * * *   root    lehrernetz && friendly-logout-users

# Cron jobs to shut down the machine:
20 17   * * *   root    friendly-shutdown
00 20   * * *   root    friendly-shutdown
00 23   * * *   root    friendly-shutdown
00 04   * * *   root    shutdown -P +10
EOL

(Kepler-spezifische Cronskripte)

(Derzeit stehen auf den LTSP-Servern keine Kepler-spezifischen Skripte in /etc/cron.{hourly,daily,weekly,monthly}.)

Devilspie

Wir benutzen devilspie, um das Logout-Fenster im Vordergrund zu halten. (Siehe #2131. Wenn der automatische Logout irgendwann entfallen kann, wird auch devilspie nicht mehr gebraucht.)

  # mkdir /etc/devilspie2/

  # cat > /etc/devilspie2/debug.lua <<EOF
-- the debug_print command does only print anything to stdout
-- if devilspie2 is run using the --debug option
debug_print("---------------------------------------------");
debug_print("Window Name: " .. get_window_name());
debug_print("Application name: " .. get_application_name());
debug_print("Window Type: " .. get_window_type());
debug_print("Window Role: " .. get_window_role());
debug_print("Window Class: " .. get_window_class());
EOF

  # cat > /etc/devilspie2/logout-dialog.lua <<EOF
-- Keep logout dialog on top

if (get_window_class()=="Zenity" and get_window_name()=="Sicherheitsabfrage") then
   make_always_on_top();
   stick_window();
end
EOF

devilspie2 wird beim Einloggen in der Usersession der einzelnen Nutzer gestartet (weil es einen laufenden X-Server braucht):

  # cat > /etc/xdg/autostart/devilspie2.desktop <<EOF
[Desktop Entry]
Type=Application
Exec=devilspie2 --folder=/etc/devilspie2/
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[de_DE]=Devilspie2
Name=Devilspie2
Comment[de_DE]=
Comment=Perform scripted actions on windows as they are created
EOF

SMART

Vorgehen wie unter AdminSmart beschrieben.

Drucker einrichten

Die Drucker werden über den CUPS des paedml zur Verfügung gestellt. Auf dem paedml ist das "printer-sharing" aktiviert, so dass die LtspServer die verfügbaren Drucker selbst entdecken. Dabei sollen sie nur die Drucker anzeigen, die vom paedml veröffentlicht werden. Sonst erscheinen auch Drucker, die an Rechnern irgendwo im Netzwerk eingerichtet sind -- z.B. an der TGS oder am Laptop von Kollegen ("Drucker-Waschküche").

In /etc/cups/cups-browsed.conf in der Sektion "Only browse remote printers from selected servers" einfügen:

BrowseAllow 10.32.1.1
BrowseAllow 10.16.112.4
TODO
Auf dem alten Client steht der Eintrag BrowseRemoteProtocols cups (statt BrowseRemoteProtocols dnssd cups. Nötig?

Kepler-Logos

Für unsere Briefpapiervorlage und andere Zwecke sollen die Kepler-Logos unter /usr/local/include liegen. Das Verzeichnis kann vom paedml kopiert werden:

# rsync -av paedml:/usr/local/include /usr/local/
Test
Danach sollte die LaTeX-Briefvorlage, die man per Rechtsklick auf dem Desktop erreicht, kompilieren.

Apport deaktivieren

Unsere Nutzer sollen keine Aufforderungen sehen, Fehlerreports zu schicken (denn sie haben ohnehin keine Rechte dafür):

# emacs -nw /etc/default/apport
  • Ändern: enabled=0

Soll apport später manuell einmalig gestartet werden, so geht das mit sudo service apport start force_start=1.

Epoptes-Integration

Mit Epoptes können die Schülerbildschirme kontrolliert werden. Epoptes benötigt einen netzwerkweiten Server, bei dem sich alle Clients anmelden. Von dort aus könnendaraufhin die angemeldeten Clients verwaltet werden. Unser derzeitiges Setup verwendet ltsp6 als "Ausgezeichneten Epoptes-Server"

Client konfigurieren

Das Paket edubuntu-desktop empfiehlt das Paket epoptes, so dass dieses auf unserem derzeitigen Client installiert sein dürfte. Wir benötigen es aber nicht (der Epoptes-Server läuft ja auf ltsp6). Darüber hinaus hat der Epoptes-Client die eigenwillige Eigenschaft, nicht zu starten, wenn auf dem selben Rechner auch der Server installiert ist. Über den Sinn kann man streiten, ist aber so. Also:

# apt purge epoptes

Alle Clients sollen eine Verbindung mit dem Epoptes-Daemon auf ltsp6 herstellen. Hierzu ist ein Eintrag in /etc/default/epoptes nötig.

Hinweis
Damit sich auch die Rechner im Lehrernetz mit dem ltsp6 verbinden können, wurd hierfür eine spezielle Route eingerichtet.

Also:

# emacs -nw /etc/default/epoptes-client

folgende Zeile einfügen:

SERVER=ltsp6

Dann müssen die ssh-Zertifikate, die Epoptes für die SSH-Verbindung verwendet, vom Server kopiert werden. Das geschieht mittels:

# epoptes-client -c

Output überprüfen, es sollte bestätigt werden, dass das Zertifikat von ltsp6 geholt wird.

pam_group aktivieren

Für die Benutzung der Bildschirmüberwachung müssen die Lehrer in der Gruppe epoptes sein. Das geht mit dem pam_group-Mechanismus, der den User beim Login in die angegebenen Gruppen zuweist.

  • Eintrag in /etc/security/group.conf:
    *;*;%teachers;Al0000-2400;epoptes
    
  • dann:
    # pam-auth-update
    # service nscd restart
    

Damit werden beim Login über das pam_group-Modul die fehlenden Gruppenzugehörigkeiten ergänzt - jetzt können alle Lehrer (nicht aber Schüler) Epoptes benutzen.

Passwortloser Zugang zum ltsp6

Da sich alle Clients auf dem Epoptes-Server ltsp6 registrieren, muss das Epoptes-Programm auch dort gestartet werden, um die Clients zu verwalten (wäre schön, wenn das auch remote ginge, das wird aber nicht unterstützt).

Hierfür ist auf dem ltsp6 ein nicht-priviligierter User namens "epoptes" eingerichtet. Dieser kann sich mit seinem SSH-Schlüssel passwortlos auf dem ltsp6 einloggen. Unsere Nutzer nutzen diesen Weg, um das Epoptes-Programm auf dem ltsp6 zu starten.

Damit der passwortlose Zugang zum ltsp6 als epoptes funktioniert muss die /etc/ssh/ssh_config angepasst werden (anfügen am Ende):

  # cat >> /etc/ssh/ssh_config <<EOF

# passwortloser Zugang zum Epoptes-Server
Host         epoptes_server
Hostname     ltsp6
User         epoptes
IdentityFile /etc/ssl/certs/epoptes_key
ForwardX11   yes
StrictHostKeyChecking no
EOF

Der (private) Schlüssel des Nutzers epoptes muss dem SSH-Server als Zertifikat bekannt sein. Der Schlüssel kann vom ltsp6 kopiert werden:

# rsync -a ltsp6:/etc/ssl/certs/epoptes_key /etc/ssl/certs/

Außerdem sollte der Host-Key von ltsp6 bekannt sein, damit er nicht in die known_hosts jedes Nutzers eingetragen wird (was später Probleme verursachen kann, wenn sich der Schlüssel mal ändern sollte):

# echo -n "ltsp6,10.32.2.6 " >> /etc/ssh/ssh_known_hosts
# ssh >> /etc/ssh/ssh_known_hosts ltsp6 cat /etc/ssh/ssh_host_ecdsa_key.pub

Test: Nichtpriviligierter Nutzer werden (z.B. lehrer), dann sollte ssh epoptes_server ohne Passwort funktionieren.

Starter anpassen

Die Clients melden sich beim Login eines Schülers am epoptes-Server (ltsp6) an. Damit nicht Kollegen ebenfalls überwacht werden können, muss der epoptes-Starter angepasst werden.

In /etc/xdg/autostart/epoptes-client.desktop:

[Desktop Entry]
...
#Exec=/usr/sbin/epoptes-client
Exec=/usr/local/sbin/kepler--epoptes-client-starter
...

Für die Kollegen gibt es die Möglichkeit, die Fernwartung per epoptes trotzdem einzuschalten.

Neue Datei /usr/share/applications/epoptes-client.desktop: (Aufruf: Fernwartung):

# cat > /usr/share/applications/epoptes-client.desktop <<EOF
[Desktop Entry]
Name=Überwachung meines Bildschirms erlauben
Comment=Ermöglicht für die Dauer dieser Sitzung, dass Administratoren (und andere Lehrer) Ihren Bildschirminhalt sehen und ihren Rechner steuern können. Damit können die Administratoren Sie bei der Verwendung des Rechners unterstützen.
Exec=bash -c "zenity --question --title 'Fernüberwachung erlauben' --text 'Erlauben Sie, dass andere Lehrer und die Administratoren Ihren Bildschirminhalt sehen und Ihren Rechner steuern können?\n(Diese Entscheidung gilt nur für die laufende Sitzung und wird mit Ihrem Logout wieder aufgehoben.)' && /usr/sbin/epoptes-client"
Icon=epoptes
Terminal=false
Type=Application
Categories=Network;Settings;Utility;RemoteAccess;DesktopSettings;Security;Accessibility;
EOF

Die Kollegen können auch Schülerdesktops überwachen.

Neue Datei /usr/share/applications/epoptes-app-starter.desktop (Aufruf: Bildschirme der Schüler anzeigen`):

# cat > /usr/share/applications/epoptes-app-starter.desktop <<EOF
[Desktop Entry]
Name=Bildschirme der Schüler anzeigen
Comment=Die Lab-Management-Software Epoptes erlaubt es, den eingeloggten Schülern auf den Bildschirm zu sehen und ihre Rechner zu steuern.
Exec=/usr/local/sbin/kepler--epoptes-app-starter
Icon=epoptes
Terminal=false
Type=Application
Categories=Education;Network;Utility;Monitor;RemoteAccess;
EOF

Die obigen Starter referenzieren das epoptes-Icon, das wurde aber zusammen mit dem epoptes-Paket deinstalliert. Wir können es vom ltsp6 kopieren:

# scp ltsp6:/usr/share/icons/hicolor/scalable/apps/epoptes.svg /usr/share/icons/hicolor/scalable/apps/
# gtk-update-icon-cache /usr/share/icons/hicolor

Virtualbox konfigurieren

Wir stellen derzeit zwei Virtualbox-Umgebungen zur Verfügung, eine für die TI-Emulation, eine zweite für ein allgemeines XP/InfoSys (nur im Lehrernetz).

Die Maschinen sind für alle Lehrer eingerichtet, die virtuellen Festplatten (vdi-Files) liegen aus Effizienzgründen aber lokal auf den Linuxmusterclients, und zwar in /dev/sda2, gemountet unter /usr/share/virtualbox-vdi/. Man erhält sie durch syncen der Partition 2 über Linbo.

(Alternativ können sie von einem (geeigneten, d.h. mit gleicher Prozessorarchitektur) LtspServer kopiert werden:

# rsync -a <ltspserver>:/usr/share/virtualbox-vdi /usr/share/

)

Erklärung
Damit die Kollegen InfoSys und TINSpire schnell benutzen können, liegen unter /sr/share/virtualbox Speicherabbilder, so dass die VM innerhalb weniger Sekunden startet. Diese Abbilder müssen von einem Server mit der selben Prozessorarchitektur stammen. Eventuell müssen sie neu erzeugt werden, siehe AdminVirtualBox#SpeicherabbildderVirtuellenMaschineerzeugen.

Die Starter von /usr/share/virtualbox-vdi/ müssen nach /usr/share/applications/ verlinkt werden:

# ln -s /usr/share/virtualbox-vdi/{TINSpire,XP}.desktop /usr/share/applications/

ab hier unbearbeitet


Windows-Sitzung für Infosys einrichten


Creative-Commons-Lizenz

Die Inhalte dieser Wiki-Seite erscheinen, (wo anwendbar und nicht anderweitig angegeben), unter einer Creative-Commons-Lizenz CC BY NC SA 3.0 Germany. Urheber: Dr. Rüdiger Kupper, Kepler-Gymnasium Freudenstadt.

Note: See TracWiki for help on using the wiki.