Linux-Server – Das umfassende...

58
Leseprobe Dieses Buch ist wie ein Schweizer Taschenmesser für den Linux-Admin: Für jede Herausforderung hat es eine Lösung. In dieser Leseprobe finden Sie alles Wichtige über den Bootvorgang, und Sie machen sich mit dem Paketmanagement vertraut. Außerdem können Sie einen Blick in das vollständige Inhalts- und Stichwortverzeichnis des Buches werfen. Dirk Deimeke, Stefan Kania, Daniel van Soest, Peer Heinlein Linux-Server – Das umfassende Handbuch 1.151 Seiten, gebunden, 4. Auflage 2016 49,90 Euro, ISBN 978-3-8362-4274-5 www.rheinwerk-verlag.de/4203 »Bootvorgang« »Paketmanagement« (Auszug) Inhaltsverzeichnis Index Die Autoren Leseprobe weiterempfehlen Wissen, wie’s geht. Wissen, wie’s geht.

Transcript of Linux-Server – Das umfassende...

Page 1: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

LeseprobeDieses Buch ist wie ein Schweizer Taschenmesser für den Linux-Admin: Für jede Herausforderung hat es eine Lösung. In dieser Leseprobe finden Sie alles Wichtige über den Bootvorgang, und Sie machen sich mit dem Paketmanagement vertraut. Außerdem können Sie einen Blick in das vollständige Inhalts- und Stichwortverzeichnis des Buches werfen.

Dirk Deimeke, Stefan Kania, Daniel van Soest, Peer Heinlein

Linux-Server – Das umfassende Handbuch1.151 Seiten, gebunden, 4. Auflage 2016 49,90 Euro, ISBN 978-3-8362-4274-5

www.rheinwerk-verlag.de/4203

»Bootvorgang« »Paketmanagement« (Auszug)

Inhaltsverzeichnis

Index

Die Autoren

Leseprobe weiterempfehlen

Wissen, wie’s geht.Wissen, wie’s geht.

Page 2: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 63 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2Kapitel 2

Bootvorgang

Der Startvorgang eines Linux-Systems ist die Basis dafür, überhaupt etwas mit

dem System anfangen zu können. Wir geben einen Einblick in den Bootloader und

die initiale Ramdisk. Wir widmen uns init-Skripten und blicken auf »eventgesteuer-

tes Starten« mittels »systemd«.

2.1 Einführung

Mit dem Bootloader wird das Betriebssystem gestartet. Nachdem das BIOS den mehr oder

weniger ausführlichen Systemcheck durchgeführt hat, werden die Bootmedien in der Rei-

henfolge der Präferenzen abgearbeitet.

Wenn es zur Festplatte kommt, werden die ersten 512 Byte der Festplatte ausgewertet; in die-

sen ist der Master Boot Record (MBR) zu finden. Von den 512 Byte sind die ersten 446 für den

Bootloader reserviert. In diesem begrenzten Bereich lassen sich keine großen Programme

unterbringen, daher wird der Bereich dafür genutzt, Code von anderer Stelle nachzuladen.

Der frühere Linux Loader (LILO) ist heute kaum noch verbreitet, daher beschränken wir uns

im Weiteren auf die Weiterentwicklung des Grand Unified Bootloader (GRUB) mit dem Na-

men GRUB 2.

2.2 Der Bootloader GRUB 2

Mit GRUB 2 wurde GRUB von Grund auf neu entwickelt, die Entwickler haben sich sehr viel

Zeit gelassen und sich in kleinen Sprüngen der Version 2 genähert.

In allen im Buch behandelten Distributionen findet sich die Version 2.02-beta2 von GRUB.

Da die Macher des Bootloaders einen sehr konservativen Ansatz bei der Versionierung ver-

folgen, darf man sich von »beta2« nicht schrecken lassen. Die erste Version des Bootloaders

hat beispielsweise nie die Version 1 erreicht, die höchste Versionsnummer war 0.97.

2.2.1 Funktionsweise

Der große Unterschied von GRUB 2 im Vergleich zu GRUB ist, dass die ehemaligen Stages

1.5 und 2, vom Laden der Dateisystemtreiber bis zum Anzeigen des Bootmenüs, zu einem

63

Page 3: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 64 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

einzigen Stage 2 zusammengelegt wurden. Dabei nutzt GRUB 2 einen minimalistischen und

sehr kleinen Kern und viele Module, die je nach Bedarf nachgeladen werden können, um auf

die Konfigurationsdatei zugreifen zu können.

Auf diese Weise unterstützt GRUB 2 auch das Starten von LVM oder Software-RAIDs mit md.

2.2.2 Installation

GRUB 2 wird genauso wie GRUB mit grub-install (bei CentOS und openSUSE mit

grub2-install) installiert, allerdings müssen Sie bei GRUB 2 angeben, wo der Bootloader

installiert werden soll. Dabei zeigt GRUB 2 deutlich weniger Ausgaben bei der Installation

(siehe Listing 2.1):

# Debian und Ubuntugrub-install /dev/sdaInstalling for i386-pc platform.Installation finished. No error reported.

# CentOS und openSUSEInstalling for i386-pc platform.Installation finished. No error reported.

Listing 2.1 Installation »GRUB 2«

2.2.3 Konfiguration

Die Konfigurationsdatei von GRUB 2 liegt in /boot/grub/grub.cfg bzw. /boot/grub2/grub.cfg.

Bitte ändern Sie diese nicht von Hand, sie wird von den Skripten unter /etc/grub.d erstellt.

In diesem Verzeichnis wird den Skripten eine Nummer vorangestellt, um die Reihenfolge

festzulegen. Das Verfahren, die Konfiguration aus einzelnen Bausteinen (Skripten) zusam-

menstellen zu lassen, macht GRUB 2 deutlich flexibler und besser automatisierbar – so wer-

den installierte Kernel automatisch erkannt und in das Bootmenü aufgenommen – als den

Vorgänger GRUB.

Die hohe Flexibilität wird allerdings durch eine komplexere Konfiguration erkauft. Ohne

gutes Shell-Skripting-Know-how kommt man da nicht viel weiter.

Einfachere Konfigurationen wie das Bootmenü sind relativ leicht machbar. Einstellungen,

die das komplette Bootverhalten beeinflussen, wie beispielsweise Timeouts oder der Kernel,

der standardmäßig gestartet werden sollte, werden in der Datei /etc/default/grub vorgenom-

men.

In der aktuellen Ubuntu-Version 16.04 sind die folgenden Dateien im Verzeichnis /etc/grub.d

zu finden:

64

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 65 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.2 Der Bootloader GRUB 2

E 00_header

Mit diesem Skript werden die Standardeinstellungen aus der Datei /etc/default/grub

gesetzt.

E 05_debian_theme

Diese Datei sorgt für das Aussehen des Bootmenüs, hier werden Farben und Hintergrund-

bild definiert.

E 10_linux

Dieses Skript nimmt alle installierten Kernel in das Bootmenü auf.

E 20_linux_xen

Hier werden besondere Einstellungen und besondere Kernel für Xen-Virtualisierung

getroffen.

E 30_os-prober

Dieses Skript sucht nach installierten (anderen) Betriebssystemen und nimmt sie in das

Bootmenü auf.

E 30_uefi-firmware

Besondere Einstellungen für UEFI-Systeme werden mit diesem Skript getroffen.

E 40_custom

Diese Datei ist für eigene Booteinträge vorhanden.

E 41_custom

Hiermit wird die /boot/grub/custom.cfg eingebunden, sofern sie existiert.

E README

Diese Datei enthält Hintergrundinformationen für die Skripte in diesem Verzeichnis.

Die Skriptnummern, die mit 00, 10 oder 20 beginnen, sind reserviert. Alle Nummern da-

zwischen können Sie für eigene Skripte verwenden. Je nachdem, welche Nummer Sie Ihrem

Skript geben, wird es früher oder später im Prozess ausgeführt. Apropos ausgeführt, die

Skripte unterhalb von /etc/grub.d müssen alle ausführbar sein.

Wir legen jetzt einen neuen Eintrag im Bootmenü an. Dazu werden am Ende der Datei

40_custom die Zeilen aus Listing 2.2 neu eingefügt:

#!/bin/shexec tail -n +3 $0# This file provides an easy way to add custom menu entries. Simply type the# menu entries you want to add after this comment. Be careful not to change# the 'exec tail' line above.

menuentry "Ubuntu 16.04.1 LTS, kernel 4.4.0-31-Adminbuch" {set root='(hd0,1)'linux /vmlinuz-4.4.0-31-generic \

root=/dev/mapper/ubuntu--vg-root ro console=hvc0

65

Page 4: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 66 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

initrd /initrd.img-4.4.0-31-generic}

Listing 2.2 Eigener Eintrag in der Datei »40_custom«

Das Skript sorgt nur dafür, dass die Zeilen ab der dritten Zeile ausgegeben werden. Die ei-

gentliche Konfiguration findet sich in der geschweiften Klammer nach dem menuentry, der

den Text des Eintrags im Bootmenü enthält.

Wie gewohnt kennzeichnet set root die Partition, in der sich das Verzeichnis /boot befindet.

Natürlich bietet GRUB 2 eine Besonderheit: Die Festplattennummerierung beginnt bei 0,

und die Nummerierung der Partition beginnt bei 1. So wird aus der Partition /dev/sdb3 unter

GRUB hd1,2 und unter GRUB 2 hd1,3.

Nach linux (früher kernel) folgt der zu startende Betriebssystemkern. Und initrd ist so, wie

bereits beschrieben, die Initial Ramdisk. Mittels update-grub wird ein neuer Bootloader ge-

schrieben, und beim nächsten Start finden wir unseren neuen Eintrag im Bootmenü.

Wie bereits beschrieben ist GRUB 2 modular aufgebaut und bringt keine Treiber mit, daher

muss man eventuell noch Module mit dem Kommando insmod hinzuladen, um aus einem

einfachen Menüeintrag ein startfähiges System zu machen.

Beispiele dafür sind LVM, besondere Dateisysteme oder auch RAID. Alle verfügbaren

Module Ihrer GRUB-2-Installation finden sich im Verzeichnis /boot/grub/i386-pc oder

/boot/grub2/i386-pc und enden auf .mod. In Listing 2.3 finden Sie die Module eines De-

bian-Jessie-Systems:

root@debian:~# ls /boot/grub/i386-pc915resolution.mod gcry_whirlpool.mod password_pbkdf2.modacpi.mod gdb.mod pata.modadler32.mod geli.mod pbkdf2.modaffs.mod gettext.mod pbkdf2_test.modafs.mod gfxmenu.mod pci.modahci.mod gfxterm.mod pcidump.modall_video.mod gfxterm_background.mod plan9.modaout.mod gfxterm_menu.mod play.modarchelp.mod gptsync.mod png.modat_keyboard.mod gzio.mod priority_queue.modata.mod halt.mod probe.modbacktrace.mod hashsum.mod procfs.modbfs.mod hdparm.mod progress.modbiosdisk.mod hello.mod pxe.modbitmap.mod help.mod pxechain.modbitmap_scale.mod hexdump.mod raid5rec.modblocklist.mod hfs.mod raid6rec.mod

66

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 67 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.2 Der Bootloader GRUB 2

boot.img hfsplus.mod read.modboot.mod hfspluscomp.mod reboot.modbsd.mod http.mod regexp.modbtrfs.mod hwmatch.mod reiserfs.modbufio.mod iorw.mod relocator.modcat.mod iso9660.mod romfs.modcbfs.mod jfs.mod scsi.modcbls.mod jpeg.mod search.modcbmemc.mod keylayouts.mod search_fs_file.modcbtable.mod keystatus.mod search_fs_uuid.modcbtime.mod ldm.mod search_label.modchain.mod legacy_password_test.mod sendkey.modcmdline_cat_test.mod legacycfg.mod serial.modcmosdump.mod linux.mod setjmp.modcmostest.mod linux16.mod setjmp_test.modcmp.mod loadenv.mod setpci.modcommand.lst loopback.mod sfs.modconfigfile.mod ls.mod signature_test.modcore.img lsacpi.mod sleep.modcpio.mod lsapm.mod sleep_test.modcpio_be.mod lsmmap.mod spkmodem.modcpuid.mod lspci.mod squash4.modcrc64.mod luks.mod syslinuxcfg.modcrypto.lst lvm.mod tar.modcrypto.mod lzopio.mod terminal.lstcryptodisk.mod macbless.mod terminal.modcs5536.mod macho.mod terminfo.moddate.mod mda_text.mod test.moddatehook.mod mdraid09.mod test_blockarg.moddatetime.mod mdraid09_be.mod testload.moddisk.mod mdraid1x.mod testspeed.moddiskfilter.mod memdisk.mod tftp.moddiv_test.mod memrw.mod tga.moddm_nv.mod minicmd.mod time.moddrivemap.mod minix.mod tr.modecho.mod minix2.mod trig.modefiemu.mod minix2_be.mod true.modefiemu32.o minix3.mod truecrypt.modefiemu64.o minix3_be.mod udf.modehci.mod minix_be.mod ufs1.modelf.mod mmap.mod ufs1_be.modeval.mod moddep.lst ufs2.modexfat.mod modinfo.sh uhci.mod

67

Page 5: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 68 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

exfctest.mod morse.mod usb.modext2.mod mpi.mod usb_keyboard.modextcmd.mod msdospart.mod usbms.modfat.mod multiboot.mod usbserial_common.modfile.mod multiboot2.mod usbserial_ftdi.modfont.mod nativedisk.mod usbserial_pl2303.modfreedos.mod net.mod usbserial_usbdebug.modfs.lst newc.mod usbtest.modfshelp.mod nilfs2.mod vbe.modfunctional_test.mod normal.mod verify.modgcry_arcfour.mod ntfs.mod vga.modgcry_blowfish.mod ntfscomp.mod vga_text.modgcry_camellia.mod ntldr.mod video.lstgcry_cast5.mod odc.mod video.modgcry_crc.mod offsetio.mod video_bochs.modgcry_des.mod ohci.mod video_cirrus.modgcry_dsa.mod part_acorn.mod video_colors.modgcry_idea.mod part_amiga.mod video_fb.modgcry_md4.mod part_apple.mod videoinfo.modgcry_md5.mod part_bsd.mod videotest.modgcry_rfc2268.mod part_dfly.mod videotest_checksum.modgcry_rijndael.mod part_dvh.mod xfs.modgcry_rmd160.mod part_gpt.mod xnu.modgcry_rsa.mod part_msdos.mod xnu_uuid.modgcry_seed.mod part_plan.mod xnu_uuid_test.modgcry_serpent.mod part_sun.mod xzio.modgcry_sha1.mod part_sunpc.mod zfs.modgcry_sha256.mod partmap.lst zfscrypt.modgcry_sha512.mod parttool.lst zfsinfo.modgcry_tiger.mod parttool.modgcry_twofish.mod password.mod

Listing 2.3 GRUB-2-Module eines Debian-Jessie-Systems

Auf dem gleichen System findet sich in der /boot/grub/grub.cfg ein Beispiel dafür, wie ein

Teil dieser Module eingesetzt wird (siehe Listing 2.4):

[...]menuentry 'Debian GNU/Linux, with Linux 3.16.0-4-amd64' --class debian \--class gnu-linux --class gnu --class os $menuentry_id_option \'gnulinux-3.16.0-4-amd64-advanced-eac6da17-314e-43c0-956f-379457a505fa' {

load_videoinsmod gzioif [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi

68

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 69 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.2 Der Bootloader GRUB 2

insmod part_msdosinsmod ext2set root='hd0,msdos1'if [ x$feature_platform_search_hint = xy ]; then

search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 \--hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 \eac6da17-314e-43c0-956f-379457a505fa

elsesearch --no-floppy --fs-uuid --set=root eac6da17-314e-43c0-956f-379457a505fa

fiecho 'Loading Linux 3.16.0-4-amd64 ...'linux /boot/vmlinuz-3.16.0-4-amd64 root=UUID=eac6da17-314e-43c0-956f-\

379457a505fa ro quietecho 'Loading initial ramdisk ...'initrd /boot/initrd.img-3.16.0-4-amd64

}[...]

Listing 2.4 Die Optionen des Standardkernels aus der »/boot/grub/grub.cfg«

Änderungen in der Datei /boot/grub/grub.cfg werden nicht automatisch übernommen. Mit

dem Kommando update-grub wird GRUB 2 aktualisiert, wie in Listing 2.5 zu sehen ist:

root@debian:~# update-grubGenerating grub configuration file ...Found linux image: /boot/vmlinuz-3.16.0-4-amd64Found initrd image: /boot/initrd.img-3.16.0-4-amd64done

Listing 2.5 »update-grub«

Interessant ist, dass die Konfigurationsdatei /etc/default/grub ein Shell-Skript ist. Allerdings

werden dort nur Variablen gesetzt, die nach Aufruf von update-grub durch /etc/grub.d/00_

header ausgewertet werden. In der folgenden Auflistung finden Sie die wichtigsten Variablen:

E GRUB_DEFAULT=0

Hiermit wird der Standardeintrag gesetzt.

E GRUB_TIMEOUT=5

Nach Ablauf der durch TIMEOUT gesetzten Zeit wird der Standardeintrag gestartet.

E GRUB_HIDDEN_TIMEOUT=0

Wenn nur ein Betriebssystem existiert, wird dieser Wert als Wartezeit benutzt. Sobald ein

weiterer Eintrag hinzukommt, ist der Wert bedeutungslos.

E GRUB_HIDDEN_TIMEOUT_QUIET=true

Mit true wird kein Countdown angezeigt, bei false wird er entsprechend angezeigt.

69

Page 6: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 70 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

E GRUB_CMDLINE_LINUX=

Hiermit werden Standardoptionen für jede linux-Zeile gesetzt.

Die Variablen werden erst nach einem erneuten Aufruf von update-grub gültig.

2.3 Bootloader Recovery

Es passiert selten, aber wenn Sie Ihr System aufgrund einer Fehlkonfiguration des Bootloa-

ders nicht mehr starten können, sollten Sie den Bootloader reparieren. Dazu können Sie den

Rechner von einer beliebigen Live-CD1 oder DVD oder von einem USB-Stick neu starten.

Der einfachste Weg, eine Reparatur durchzuführen, ist, die Live-CD des Systems zu verwen-

den, mit der Sie den Rechner installiert haben. Beachten Sie jedoch, dass Sie in jedem Fall bei

Benutzung einer anderen Rettungs-CD die gleiche Architektur verwenden wie das installier-

te System.

Nach dem Start des Rettungssystems wird die Festplatte Ihres defekten Systems eingebun-

den. Das bedeutet, dass Sie alle Partitionen mounten. Im Regelfall werden die Partitionen

unter /mnt eingebunden. Sie können natürlich auch eigene Verzeichnisse verwenden, wenn

Sie dabei keines der vom Live-System benutzten Verzeichnisse nutzen.

Das Kommando fdisk -l zeigt Ihnen alle gefundenen Festplatten an. Falls Software-RAIDs

oder LVM benutzt werden, müssen diese vor der Benutzung aktiviert werden. Wie das geht,

finden Sie in Kapitel 3, »Festplatten und andere Devices«.

Device Boot Start End Blocks Id System/dev/sda1 * 2048 499711 248832 83 Linux/dev/sda2 501758 20969471 10233857 5 Extended/dev/sda5 501760 20969471 10233856 8e Linux LVM

Listing 2.6 Ausgabe »fdisk -l« auf einem Testsystem

In Listing 2.6 finden Sie den seltenen Fall eines Systems ohne eigene swap-Partition. Ver-

mutlich findet sich in der ersten Partition das boot-Verzeichnis, was wir durch Mounten

verifizieren können (siehe Listing 2.7):

Rescue:~# mount /dev/sda1 /mntRescue:~# ls /mntSystem.map-3.16.0-4-amd64 grub vmlinuz-3.16.0-4-amd64config-3.16.0-4-amd64 initrd.img-3.16.0-4-amd64Rescue:~# umount /mnt

Listing 2.7 Mounten des vermeintlichen »boot«-Filesystems

1 Zum Beispiel die »System Rescue CD«, www.sysresccd.org.

70

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 71 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.3 Bootloader Recovery

Die fünfte Partition wird vom Logical Volume Manager (LVM) verwaltet.

Mit dem Kommando lvs können wir uns die gefundenen Logical Volumes anzeigen lassen.

Der Parameter -o +lv_path sorgt dafür, dass uns auch gleich der Pfad für das Mounten ge-

zeigt wird (siehe Listing 2.8):

Rescue:~# lvs -o +lv_pathLV VG Attr LSize Pool Origin Data% Move Log Copy% Convert \

Pathroot debian -wi-ao-- 9.31g \

/dev/debian/rootswap_1 debian -wi-ao-- 460.00m \

/dev/debian/swap_1

Listing 2.8 Gefundene Partition im LVM

An dieser Stelle haben wir alle Informationen zusammen, um die Dateisysteme benutzen zu

können (siehe Listing 2.9):

Rescue:~ # mount /dev/debian/root /mntRescue:~ # mount /dev/sda1 /mnt/boot/

Listing 2.9 Mounten der Dateisysteme

Um das Linux-System komplett zu machen, müssen wir die dynamischen Pseudo-Datei-

systeme (/dev, /proc und /sys) aus der Live-CD in die Verzeichnisse unterhalb von /mnt ein-

binden. Das funktioniert über Bind-Mounts.

Wenn das nicht passieren würde, erhielten wir nach Wechsel der root-Umgebung mittels

chroot (»change root environment«) keine Informationen über verbundene Geräte und Ker-

nelparameter (siehe Listing 2.10):

Rescue:~ # mount --bind /dev /mnt/devRescue:~ # mount --bind /proc /mnt/procRescue:~ # mount --bind /sys /mnt/sys

Listing 2.10 Bind-Mount der Pseudodateisysteme

Damit sind jetzt alle Vorarbeiten abgeschlossen, um via chroot auf das System zu wechseln

und den Bootloader zu reparieren (siehe Listing 2.11):

Rescue:~ # chroot /mntRescue:/ # grub-installRescue:/ # exit

Listing 2.11 Neuinstallation des Bootloaders

Sobald Sie fertig sind, müssen alle Dateisysteme ausgehängt werden. Sie müssen anschlie-

ßend das System neu starten.

71

Page 7: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 72 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

2.4 Der Kernel und die »initrd«

Beim Laden des Kernels gibt es ein klassisches Henne-Ei-Problem: Der Kernel probiert näm-

lich zunächst, alle notwendigen Module zu laden, die für den Zugriff auf die Hardware not-

wendig sind. Das sind insbesondere die Treiber zum Ansprechen der Festplatte und des

Dateisystems. Die dafür notwendigen Module liegen aber auf dem noch nicht lesbaren Datei-

system.

Um dieses Dilemma zu lösen, lädt der Bootloader nicht nur den Kernel direkt in den Spei-

cher, sondern auch die Initial Ramdisk (initrd). Die initrd besteht aus einem komprimierten

cpio-Archiv und enthält ein absolut minimales Linux mit allen für den Start notwendigen

Modulen.

Der Kernel benutzt die initrd als root-Filesystem. Sobald alle nötigen Treiber geladen sind,

bindet der Kernel das eigentliche root-Filesystem ein und startet den systemd-Prozess.

2.4.1 »initrd« erstellen und modifizieren

Bei der Installation eines Systems wird auch eine Initial Ramdisk (initrd) erstellt, die Treiber

enthält, die für den Start des Rechners benötigt werden, bevor die Dateisysteme verfügbar

sind. Diese Ramdisk wird bei jedem Kernelupdate neu erstellt und mit neuen Versionen der

Treiber versehen.

Wenn Sie allerdings Hardware benutzen, die Treiber benötigt, die nicht im Kernel vorhan-

den sind, wie beispielsweise besondere RAID-Controller oder Netzwerkkarten, so müssen Sie

– wenn Sie Ihr System von den Geräten aus starten wollen – selbst Hand anlegen, wenn das

nicht die Installationsroutine des Herstellers für Sie übernimmt. Die verschiedenen Distri-

butionen nutzen unterschiedliche Tools für die Erstellung.

In den folgenden Abschnitten finden Sie die Beschreibungen für die im Buch unterstütz-

ten Distributionen, gefolgt von einem Abschnitt über die komplett manuelle Erstellung der

Initial Ramdisk.

Debian und Ubuntu

Debian und Ubuntu benutzen mkinitramfs und update-initramfs. Wenn Sie nicht besonde-

re Gründe haben, sollte immer update-initramfs verwendet werden, da dieses Kommando

unter anderem auch mkinitramfs auf Basis der bereits bestehenden Konfiguration aufruft.

Die Erstellung der initrd wird über die Konfigurationsdatei /etc/initramfs-tools/initramfs.conf

und weitere Dateien innerhalb des Verzeichnisses /etc/initramfs-tools gesteuert. Aufgrund

der vielen Kommentare in den Dateien werden Sie schnell zum Ziel kommen.

Einen besonderen Blick verdient die wichtigste Variable, MODULES. Sie kann verschiedene Wer-

te annehmen, wie folgende Auflistung zeigt:

72

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 73 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.4 Der Kernel und die »initrd«

E most

Das ist die Standardeinstellung bei Ubuntu und Debian. Damit werden fast alle Datei-

system- und Hardwaretreiber übernommen. Die daraus resultierende sehr große Initial

Ramdisk kann dafür aber auch fast jedes System starten.

E dep

Das laufende System wird analysiert, um festzustellen, welche Module wichtig sind. Diese

Einstellung verkleinert die Initial Ramdisk auf ein Minimum.

E netboot

Wie der Name es beschreibt, werden mit dieser Einstellung nur Treiber verwendet, die

für das Starten vom Netz nötig sind.

E list

Ausschließlich Module aus /etc/initramfs-tools/modules werden zum Bau der Initial Ram-

disk verwendet, dies erlaubt die größtmögliche Kontrolle.

Auch ohne weitere Konfiguration werden die Module aus /etc/initramfs-tools/modules bei

den Parametern most, dep und netboot zur Initial Ramdisk hinzugefügt.

Die Konfigurationen in den Dateien unterhalb von /etc/initramfs-tools/conf.d können die

Werte aus /etc/initramfs-tools/initramfs.conf überschreiben.

Um eine neue initrd zu erstellen bzw. die bestehende aktualisieren zu lassen, können Sie

mit update-initramfs den Neubau starten. Die unten stehenden Parameter helfen bei der

Erstellung:

E update-initramfs -u

Hiermit werden alle vorhandenen initrds aktualisiert.

E update-initramfs -k KERNEL

Dieser Parameter wird benötigt, wenn nur die initrds einer bestimmten Kernelversion

aktualisiert werden sollen.

E update-initramfs -c

Dieser Parameter erstellt komplett neue Initial Ramdisks.

Der Name der initrd ergibt sich aus dem Namen des Kernels. Eine vorhandene Ramdisk wird

somit bei jedem Aufruf von update-initramfs überschrieben.

Wenn Sie dieses Verhalten nicht wünschen, sollten Sie den Parameter backup_initramfs=yes

in der Datei /etc/initramfs-tools/update-initramfs.conf setzen oder manuelle Backups erstel-

len (siehe Listing 2.12):

root@debian:~# update-initramfs -v -k 3.16.0-4-amd64 -cupdate-initramfs: Generating /boot/initrd.img-3.16.0-4-amd64Copying module directory kernel/drivers/hid(excluding hid-*ff.ko hid-a4tech.ko hid-cypress.ko hid-dr.ko hid-elecom.ko \hid-gyration.ko hid-icade.ko hid-kensington.ko hid-kye.ko hid-lcpower.ko \

73

Page 8: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 74 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

hid-magicmouse.ko hid-multitouch.ko hid-ntrig.ko hid-petalynx.ko \hid-picolcd.ko hid-pl.ko hid-ps3remote.ko hid-quanta.ko hid-roccat-ko*.ko \hid-roccat-pyra.ko hid-saitek.ko hid-sensor-hub.ko hid-sony.ko \hid-speedlink.ko hid-tivo.ko hid-twinhan.ko hid-uclogic.ko hid-wacom.ko \hid-waltop.ko hid-wiimote.ko hid-zydacron.ko)Adding module /lib/modules/3.16.0-4-amd64/kernel/drivers/hid/hid.ko[...]Adding library /lib/x86_64-linux-gnu/librt.so.1Adding module /lib/modules/3.16.0-4-amd64/kernel/drivers/md/dm-mod.ko/usr/share/initramfs-tools/scripts/local-premount/ORDER ignored: not executable/usr/share/initramfs-tools/scripts/init-top/ORDER ignored: not executable/usr/share/initramfs-tools/scripts/init-bottom/ORDER ignored: not executableBuilding cpio /boot/initrd.img-3.16.0-4-amd64.new initramfs

Listing 2.12 Neuerstellen einer »initrd«

Wenn der Name der initrd bereits existierte, ist nichts weiter zu tun. Sollten Sie aber einen

neuen Namen verwenden, muss im Bootloader der entsprechende Name eingetragen wer-

den, sonst können Sie das System nicht mehr starten.

CentOS und openSUSE

Anders als bei Ubuntu und Debian nutzen CentOS und openSUSE das Skript mkinitrd, um

eine Initial Ramdisk zu erstellen. Das Skript ermittelt die Treiber, die aufgenommen wer-

den müssen, und nutzt die Informationen aus /etc/sysconfig/kernel, in der eine Liste von

Modulen zu finden ist, die zusätzlich hinzugefügt werden sollen (siehe Listing 2.13):

Creating initrd: /boot/initrd-4.1.27-27-defaultExecuting: /usr/bin/dracut --logfile /var/log/YaST2/mkinitrd.log \--force /boot/initrd-4.1.27-27-default 4.1.27-27-default...

*** Including module: bash ****** Including module: warpclock ****** Including module: i18n ****** Including module: ifcfg ****** Including module: btrfs ****** Including module: kernel-modules ***Omitting driver i2o_scsi

*** Including module: resume ****** Including module: rootfs-block ****** Including module: terminfo ****** Including module: udev-rules ***Skipping udev rule: 91-permissions.rulesSkipping udev rule: 80-drivers-modprobe.rules

*** Including module: haveged ***

74

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 75 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.4 Der Kernel und die »initrd«

*** Including module: systemd ****** Including module: usrmount ****** Including module: base ****** Including module: fs-lib ****** Including module: shutdown ****** Including module: suse ****** Including modules done ****** Installing kernel module dependencies and firmware ****** Installing kernel module dependencies and firmware done ****** Resolving executable dependencies ****** Resolving executable dependencies done****** Hardlinking files ****** Hardlinking files done ****** Stripping files ****** Stripping files done ****** Generating early-microcode cpio image ****** Store current command line parameters ***Stored kernel commandline:resume=UUID=54c1a2e0-c4d6-4850-b639-7a5af8ef4339

root=UUID=0f4f79aa-7544-44b0-a8b7-d1f1947cd24f \rootflags=rw,relatime,space_cache,subvolid=257,subvol=/@ rootfstype=btrfs

*** Creating image file ****** Creating image file done ***Some kernel modules could not be includedThis is not necessarily an error:

*** Including module: udev-rules ***Skipping udev rule: 91-permissions.rulesSkipping udev rule: 80-drivers-modprobe.rules

*** Including module: haveged ****** Including module: systemd ****** Including module: usrmount ****** Including module: base ****** Including module: fs-lib ****** Including module: shutdown ****** Including module: suse ****** Including modules done ****** Installing kernel module dependencies and firmware ****** Installing kernel module dependencies and firmware done ****** Resolving executable dependencies ****** Resolving executable dependencies done****** Hardlinking files ****** Hardlinking files done ****** Stripping files ***

75

Page 9: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 76 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

*** Stripping files done ****** Generating early-microcode cpio image ****** Store current command line parameters ***Stored kernel commandline:resume=UUID=54c1a2e0-c4d6-4850-b639-7a5af8ef4339

root=UUID=0f4f79aa-7544-44b0-a8b7-d1f1947cd24f \rootflags=rw,relatime,space_cache,subvolid=257,subvol=/@ rootfstype=btrfs

*** Creating image file ****** Creating image file done ***Some kernel modules could not be includedThis is not necessarily an error:

Listing 2.13 Beispiel »mkinitrd« auf openSUSE

Die Installation des Systems setzt automatisch die Variable INITRD_MODULES. Wenn diese Liste

um eigene Einträge ergänzt wird, muss anschließend mkinitrd aufgerufen werden.

Analog zu update-initramfs bei Ubuntu und Debian bietet auch mkinitrd einige Optionen

an, die Ihnen helfen, die initrd anzupassen:

E -k KERNEL

Angabe des Kernels, für das die initrd gebaut werden soll. Ohne Angabe des Parameters

wird vmlinuz benutzt.

E -i INITRD

setzt den Namen der initrd. Ohne diese Angabe wird /boot/initrd genommen.

E -m MODULES

nimmt eine Liste von Modulen auf der Kommandozeile, ansonsten wird der Inhalt der

Variablen INITRD_MODULES aus /etc/sysconfig/kernel ausgelesen.

E -f FEATURES

setzt Funktionalitäten für den Kernel, abhängig davon werden weitere Module und Skrip-

te eingebunden. Als Beispiel seien hier Software-RAID (Parameter dm) und Logical Volume

Manager (Parameter lvm2) genannt.

In Listing 2.14 sehen Sie einen Beispielaufruf von mkinitrd:

opensuse:~ # mkinitrd -k 4.1.27-27-default -i initrdtest -m ext4 \-f "lvm2 dm block"

Listing 2.14 Beispielaufruf von »mkinitrd«

2.4.2 »initrd« manuell modifizieren

Zusätzlich zu den vorgestellten Methoden, die zugegebenermaßen relativ beschränkt sind,

lässt sich die initrd auch manuell verändern.

76

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 77 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

Als Basis für Ihre Arbeiten nehmen Sie sich bitte eine vorhandene initrd und packen diese

aus. Listing 2.15 zeigt Ihnen, dass es sich bei der initrd um ein minimales root-Filesystem

handelt:

root@debian:~# mkdir /var/tmp/initrdroot@debian:~# cd /var/tmp/initrd/root@debian:/var/tmp/initrd# gzip -dc /boot/initrd.img-3.16.0-4-amd64 \| cpio --extract --make-directories90084 blocksroot@debian:/var/tmp/initrd# ls -ltotal 40drwxr-xr-x 2 root root 4096 Aug 4 15:31 bindrwxr-xr-x 3 root root 4096 Aug 4 15:31 confdrwxr-xr-x 5 root root 4096 Aug 4 15:31 etc-rwxr-xr-x 1 root root 7137 Aug 4 15:31 initdrwxr-xr-x 7 root root 4096 Aug 4 15:31 libdrwxr-xr-x 2 root root 4096 Aug 4 15:31 lib64drwxr-xr-x 2 root root 4096 Aug 4 15:31 rundrwxr-xr-x 2 root root 4096 Aug 4 15:31 sbindrwxr-xr-x 5 root root 4096 Aug 4 15:31 scripts

Listing 2.15 »initrd« entpacken

In dem resultierenden Verzeichnis /var/tmp/initrd können Sie nun Ihre Änderungen einpfle-

gen und danach alles wieder einpacken (siehe Listing 2.16):

root@debian:/var/tmp/initrd# find . \| cpio --create --format=newc \| gzip > /boot/initrd.adminbuch90084 blocks

Listing 2.16 »initrd« einpacken

In der Datei /boot/initrd.adminbuch findet sich nun die initrd, die alle Ihre Änderungen

enthält.

2.5 »systemd«

Nach dem Bootvorgang, in dem der Kernel das root-Filesystem eingebunden und alle not-

wendigen Module geladen hat, übernimmt der systemd-Daemon den weiteren Ablauf. Der

klassische init-Prozess folgt dem in System V2 vorgestellten Verfahren und wird nach die-

sem auch SysVinit genannt. Er ist verantwortlich für das Starten der Dienste in der richtigen

2 https://de.wikipedia.org/wiki/System_V

77

Page 10: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 78 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

Reihenfolge, das Folgen und auch den Wechsel von Runleveln sowie für das Stoppen von

Prozessen. Dieses Verfahren ist sehr robust, aber leider auch sehr statisch.

systemd ist der Nachfolger, den mittlerweile alle Distributionen verwenden. Mit systemd

gibt es einen Übergang vom statischen Starten von Skripten zum eventbasierten Starten.

So können Bedingungen definiert werden, die erfüllt sein müssen, um Dienste starten zu

können (beispielsweise wird der Webserver erst dann gestartet, wenn das Netzwerk verfüg-

bar ist, oder ein Virenscanner, wenn ein USB-Stick eingesteckt wird). Der Start von Diensten

mit systemd ist im Unterschied zu SysVinit hoch parallelisierbar. Als besonderes Feature ist

systemd auch in der Lage, abgestürzte Dienste neu zu starten.

Es gibt kaum ein Thema in den letzten Jahren, das in der Linux-Community so kontrovers

diskutiert wurde, wie die Einführung von systemd.

systemd schickt sich an, den kompletten altbekannten und bewährten Bootvorgang auf den

Kopf zu stellen. Den einen gehen die Änderungen zu weit, die anderen feiern mit systemd

die Ankunft im neuen Jahrtausend. Tatsache ist, dass mit systemd Start-Skripte – genauer

Startkonfigurationen – parallel ausgeführt werden können und nicht wie früher linear. Dazu

kommt, dass systemd Programme voneinander kapselt und in eigenen Control Groups und

Namespaces startet und so sicherstellt, dass bei Beenden eines Dienstes auch alle Prozesse

im gleichen Namespace mit beendet werden und es keine verwaisten Prozesse mehr gibt.

Weitergehende Änderungen sind, dass mit journald ein eigenes Logging-Framework mitge-

liefert wird, das es erlaubt, fälschungssichere Logs zu führen und so das altbekannte syslog

ablösen will. timers in systemd sind in der Lage, klassische Cron- und Anacronjobs abzulösen,

systemd-mounts könnten die fstab überflüssig machen.

Die beiden Hauptkritikpunkte der systemd-Gegner sind, dass systemd von der UNIX-Phi-

losophie »one task, one tool« abweicht und dass das systemd-Team zum Teil fragwürdige

Entscheidungen in der Weiterentwicklung trifft.

2.5.1 Begrifflichkeiten

systemd wird mit Units verwaltet, Units kapseln verschiedene Aspekte eines Systems und

können untereinander in Beziehung gesetzt werden. Die Definitionen der Units sind ein-

fache Textdateien, die ein wenig an ini-Dateien aus Windows erinnern. Die einzelnen Unit-

Typen sind die folgenden:

E Service Units

werden benutzt, um Dienste und Prozesse zu starten.

E Socket Units

kapseln IPC oder Netzwerk-Sockets, die vor allem gebraucht werden, um Socket-basie-

rend Dienste zu aktivieren.

78

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 79 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

E Target Units

können zur Gruppierung von Diensten oder zur Erstellung von Synchronisationspunk-

ten benutzt werden (hiermit lassen sich Runlevel wie im SysVinit emulieren).

E Device Units

sind die Verbindung zu Kernel-Devices und können ebenfalls benutzt werden, um Devi-

ce-basierende Dienste zu steuern.

E Mount Units

kontrollieren Mountpunkte im System.

E Automount Units

werden für zugriffsbasiertes Einbinden von Dateisystemen benutzt und dienen insbe-

sondere auch der Parallelisierung im Bootprozess.

E Snapshot Units

können den Status einer Anzahl von systemd-Units aufzeichnen und diesen Status durch

Aktivierung auch wiederherstellen.

E Timer Units

bieten die Möglichkeit, zeitbasierte Steuerung anderer Units vorzunehmen.

E Swap Units

verwalten – analog zu Mount Units – Swap-Speicherplatz.

E Path Units

werden benutzt, um andere Dienste bei Veränderung von Dateisystemobjekten zu akti-

vieren.

E Slice Units

gruppieren Units in hierarchischer Form, die Systemprozesse – beispielsweise Service

oder Scope Units – verwalten.

E Scope Units

gleichen Service Units, verwalten aber Fremdprozesse, statt sie nur zu starten.

Wie Sie alleine an den verschiedenartigen Units feststellen können, kann man in systemd

vielfältige Aspekte eines Systems beeinflussen.

Im Folgenden gehen wir auf System Units ein, das sind die Units, mit denen Sie am häufigs-

ten in Kontakt kommen werden.

2.5.2 Kontrollieren von Diensten

Das Hauptkommando, mit dem Sie systemd kontrollieren können, heißt systemctl. Dieser

Befehl wird auch benutzt, um Dienste zu verwalten.

Analog zu den früheren init-Skripten gibt es die Kommandos start, stop, reload, restart und

status.

79

Page 11: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 80 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

systemctl macht Gebrauch von Farben im Terminal, stellen Sie daher bitte sicher, dass Ihr

Terminal auch Farben darstellen kann.

Service Units in systemd enden auf .service, diese Endung muss aber nicht explizit angegeben

werden. In Listing 2.17 sehen Sie, dass weder das Stopp- noch das Start-Subkommando sehr

gesprächig ist, daher sollte das Ergebnis mit einer Statusabfrage überprüft werden.

# systemctl stop sshd# systemctl status sshd

* sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: \

enabled)Active: inactive (dead) since Fre 2016-08-05 13:26:32 CEST; 5s ago

Docs: man:sshd(8)man:sshd_config(5)

Process: 2054 ExecStart=/usr/sbin/sshd -D $OPTIONS (code=exited, status=0/SUCCESS)Main PID: 2054 (code=exited, status=0/SUCCESS)

Aug 05 13:25:49 centos sshd[2054]: Server listening on 0.0.0.0 port 22.Aug 05 13:25:49 centos sshd[2054]: Server listening on :: port 22.Aug 05 13:25:49 centos systemd[1]: Started OpenSSH server daemon.Aug 05 13:25:49 centos systemd[1]: Starting OpenSSH server daemon...Aug 05 13:26:32 centos sshd[2054]: Received signal 15; terminating.Aug 05 13:26:32 centos systemd[1]: Stopping OpenSSH server daemon...Aug 05 13:26:32 centos systemd[1]: Stopped OpenSSH server daemon.

# systemctl start sshd# systemctl status sshd

* sshd.service - OpenSSH server daemonLoaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: \

enabled)Active: active (running) since Fre 2016-08-05 13:26:43 CEST; 5s ago

Docs: man:sshd(8)man:sshd_config(5)

Main PID: 2072 (sshd)CGroup: /system.slice/sshd.service

`-2072 /usr/sbin/sshd -D

Aug 05 13:26:43 centos sshd[2072]: Server listening on 0.0.0.0 port 22.Aug 05 13:26:43 centos sshd[2072]: Server listening on :: port 22.Aug 05 13:26:43 centos systemd[1]: Started OpenSSH server daemon.Aug 05 13:26:43 centos systemd[1]: Starting OpenSSH server daemon...

Listing 2.17 Stoppen des SSH-Servers

80

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 81 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

Gerade die Statusausgaben sind auf den ersten Blick sehr verwirrend:

E In der ersten Zeile finden Sie den Namen des Dienstes und die Beschreibung.

E Die Zeile, die mit »Loaded:« beginnt, zeigt Ihnen, ob die Unit-Datei geladen ist, und

den Speicherort. Mit »enabled« ist gemeint, dass die Unit standardmäßig (beispielsweise

beim Start des Systems) ausgeführt wird und wie die Einstellung des Distributors (CentOS,

Debian, openSUSE oder Ubuntu) ist. Mehr Informationen dazu finden Sie im Abschnitt

2.5.3, »Aktivieren und Deaktivieren von Diensten«.

E »Active:« kennzeichnet den aktuellen Status und seit wann dieser Status besteht.

E »Docs:« verweist auf Dokumentationen zum Service, hier sind es Manpages, üblich ist

aber auch der Hinweis auf eine URL.

E »Process:« zeigt Ihnen, wie der Dienst gestartet wurde, und den letzten Status des Pro-

zesses.

E »Main PID:« enthält die Hauptprozess-ID.

E »CGroup:« stellt die Control Group, in der der Dienst gestartet wurde dar.

E Zum Schluss folgt ein Auszug der letzten Log-Ausgaben. Wie Sie mehr Log-Ausgaben

sehen können, erfahren Sie in Abschnitt 2.5.8.

Die Subkommandos »restart«, um den Dienst neu zu starten, und »reload«, um die Konfi-

guration – in diesem Fall /etc/ssh/sshd_config – neu einzulesen, vervollständigen die Basis-

kommandos.

Folgende Befehle wurden in diesem Abschnitt behandelt:

E systemctl start <SERVICE>

E systemctl stop <SERVICE>

E systemctl status <SERVICE>

E systemctl restart <SERVICE>

E systemctl reload <SERVICE>

2.5.3 Aktivieren und Deaktivieren von Diensten

Units werden mit den Subkommandos enable und disable aktiviert und deaktiviert.

# systemctl disable sshdRemoved symlink /etc/systemd/system/multi-user.target.wants/sshd.service.

# systemctl enable sshdCreated symlink from /etc/systemd/system/multi-user.target.wants/sshd.service \to /usr/lib/systemd/system/sshd.service.

Listing 2.18 Aktivieren und Deaktivieren des SSH-Servers

81

Page 12: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 82 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

Die Subkommandos lesen die Servicedefinition und schauen, für welches Target der Dienst

aktiviert werden soll. In Listing 2.18 sehen Sie, dass es das multi-user.target für den Dienst

sshd ist. Beim Aktivieren wird nun ein Link in dem Verzeichnis des Targets erstellt und beim

Deaktivieren wieder gelöscht. Folgende Befehle wurden in diesem Abschnitt behandelt:

E systemctl enable <SERVICE>

E systemctl disable <SERVICE>

2.5.4 Erstellen und Aktivieren eigener Service Units

Wie Sie bereits in Listing 2.17 im Abschnitt 2.5.2 gesehen haben, ist die Konfigurationsdatei

/usr/lib/systemd/system/sshd.service die Datei, in der die Angaben des SSH-Servers gespei-

chert werden. Den Inhalt sehen Sie im folgenden Listing. Viele Ausgaben des Statuskom-

mandos werden durch Einträge im Servicefile angezeigt, beispielsweise die »Description«

oder »Documentation«:

# cat /usr/lib/systemd/system/sshd.service[Unit]Description=OpenSSH server daemonDocumentation=man:sshd(8) man:sshd_config(5)After=network.target sshd-keygen.serviceWants=sshd-keygen.service

[Service]EnvironmentFile=/etc/sysconfig/sshdExecStart=/usr/sbin/sshd -D $OPTIONSExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failureRestartSec=42s

[Install]WantedBy=multi-user.target

Listing 2.19 Inhalt von sshd.service

Die Ausgabe von systemctl show sshd zeigt Ihnen neben den Einträgen aus dem Servicefile

auch noch die ganzen Standardoptionen und Statusinformationen an. Die 143 Zeilen Infor-

mation werden Ihnen an dieser Stelle erspart, da Sie diese jederzeit selbst abrufen können.

Die einzelnen Parameter der Konfiguration aus Listing 2.19 haben die folgende Bedeutung:

E Description

enthält eine lesbare Beschreibung des Dienstes.

82

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 83 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

E Documentation

verweist auf weiterführende Informationen.

E After

wird benutzt, um Abhängigkeiten zu definieren. In diesem Fall soll der Dienst nach den

angegebenen anderen Diensten gestartet werden (analog dazu »Before«).

E Wants

erfordert, dass die angegebenen Dienste vor dem Start erfolgreich gelaufen sind (abge-

milderte Form von »Require«).

E EnvironmentFile

gibt eine Datei mit Umgebungsvariablen an, die zur Verfügung stehen sollen.

E ExecStart

enthält das Kommando, das zum Start benutzt wird (analog dazu »ExecStop«).

E ExecReload

Mit diesem Kommando werden die Konfigurationsdateien neu eingelesen.

E KillMode

zeigt, mit welchem Verfahren der Prozess gekillt werden kann.

E Restart

definiert die Option für den automatischen Neustart des Dienstes.

E RestartSec

enthält die Zeit, nach der neu gestartet werden soll.

E WantedBy

beschreibt das Target (oder den Service), durch das der Dienst automatisch gestartet

werden soll.

Zusätzlich zu den Optionen, die Sie in der Definition des SSH-Servers sehen, gibt es noch die

folgenden Optionen, denen Sie häufiger begegnen werden:

E Before

wird analog zu »After« benutzt, um Abhängigkeiten zu definieren. In diesem Fall soll der

Dienst vor den angegebenen anderen Diensten gestartet werden.

E Require

erfordert, dass die angegebenen Dienste vor dem Start erfolgreich gelaufen sind. Wenn

die Dienste beendet werden, soll unser Dienst ebenfalls gestoppt werden.

E ExecStop

enthält das Kommando, das zum Stoppen benutzt wird.

E Conflicts

beendet die angegebenen Dienste, wenn dieser jetzt konfigurierte gestartet wird.

83

Page 13: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 84 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

E OnFailure

enthält eine Liste an Units, die gestartet wird, wenn sich dieser Service fehlerhaft beendet.

E Type

ist für Services entweder »simple« oder »forking«, wobei das Erste für einen Prozess steht,

der ständig läuft, und das Zweite für einen Prozess, der einen Kindprozess abspaltet und

sich danach beendet (»oneshot« ist ein Service, der nur läuft und sich danach selbst

beendet, wird manchmal als Ziel für »OnFailure« benutzt).

Eigene Servicedateien sollten Sie im dafür vorgesehenen Verzeichnis /etc/systemd/system

anlegen und nach dem Anlegen mittels systemctl daemon-reload aktivieren.

Weitergehende Informationen finden Sie in der Manpage systemd.unit. Folgender Befehl

wurde im aktuellen Abschnitt behandelt:

E systemctl show <SERVICE>

2.5.5 Target Units

Die folgenden Targets finden sich auf einem Desktop-System:

# systemctl list-units "*.target"UNIT LOAD ACTIVE SUB DESCRIPTIONbasic.target loaded active active Basic Systembluetooth.target loaded active active Bluetoothcryptsetup.target loaded active active Encrypted Volumesgetty.target loaded active active Login Promptsgraphical.target loaded active active Graphical Interfacelocal-fs-pre.target loaded active active Local File Systems (Pre)local-fs.target loaded active active Local File Systemsmulti-user.target loaded active active Multi-User Systemnetwork-online.target loaded active active Network is Onlinenetwork.target loaded active active Networknfs-client.target loaded active active NFS client servicespaths.target loaded active active Pathsremote-fs-pre.target loaded active active Remote File Systems (Pre)remote-fs.target loaded active active Remote File Systemsslices.target loaded active active Slicessockets.target loaded active active Socketssound.target loaded active active Sound Cardswap.target loaded active active Swapsysinit.target loaded active active System Initializationtimers.target loaded active active Timers

LOAD = Reflects whether the unit definition was properly loaded.

84

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 85 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

ACTIVE = The high-level unit activation state, i.e. generalization of SUB.SUB = The low-level unit activation state, values depend on unit type.

20 loaded units listed. Pass --all to see loaded but inactive units, too.To show all installed unit files use 'systemctl list-unit-files'.

Listing 2.20 Targets auf einem Desktop-System

Mittels systemctl list-dependencies multi-user.target können Sie sich anzeigen lassen,

von welchen Diensten das Multi-User-Target abhängt. Folgender Befehl wurde in diesem

Abschnitt behandelt:

E systemctl list-units '*.targets'

2.5.6 »systemd«- und Servicekonfigurationen

Ein installiertes System kommt mit einer großen Anzahl an Diensten daher. Um da nicht

den Überblick zu verlieren, bietet systemd einige Kommandos, um das laufende System ab-

zufragen. Listing 2.21 zeigt Ihnen einen Auszug der 228 bekannten Units auf einem minimal

installierten CentOS-System:

UNIT FILE STATE[...]crond.service enabledfstrim.service statickdump.service enabledNetworkManager.service enabledpostfix.service enabledsshd.service enabledctrl-alt-del.target disabledgraphical.target statichibernate.target statichybrid-sleep.target staticnetwork-online.target staticrunlevel0.target disabledrunlevel1.target disabledrunlevel2.target staticrunlevel3.target staticrunlevel4.target staticrunlevel5.target staticrunlevel6.target disabled[...]228 unit files listed.

Listing 2.21 Auszug der bekannten Units eines Systems

85

Page 14: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 86 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

Von diesen 228 bekannten Units wurden aber nur 96 geladen:

# systemctl list-unitsUNIT LOAD ACTIVE SUB DESCRIPTION[...]-.mount loaded active mounted /boot.mount loaded active mounted /bootdbus.service loaded active running D-Bus System Message [email protected] loaded active running Getty on tty1NetworkManager.service loaded active running Network Managergetty.target loaded active active Login Promptslocal-fs.target loaded active active Local File Systemsmulti-user.target loaded active active Multi-User Systemnetwork-online.target loaded active active Network is Onlinenetwork.target loaded active active Networksystemd-tmpfiles-clean.timer loaded active waiting Daily Cleanup of \

Temporary Directories[...]LOAD = Reflects whether the unit definition was properly loaded.ACTIVE = The high-level unit activation state, i.e. generalization of SUB.SUB = The low-level unit activation state, values depend on unit type.

96 loaded units listed. Pass --all to see loaded but inactive units, too.To show all installed unit files use 'systemctl list-unit-files'.

Listing 2.22 Auszug der geladenen Unit-Dateien

Folgender Befehl wurde in diesem Abschnitt behandelt:

E systemctl list-unitfiles

2.5.7 Anzeige von Dienstabhängigkeiten

Wenn man sich die Voraussetzungen anschauen möchte, die es braucht, um eine Unit zu

starten, kann man das Subkommando list-dependencies benutzen:

# systemctl list-dependencies sshd.servicesshd.service

* |-sshd-keygen.service

* |-system.slice

* `-basic.target

* |-microcode.service

* |-rhel-autorelabel-mark.service

* |-rhel-autorelabel.service

* |-rhel-configure.service

86

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 87 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2

2.5 »systemd«

* |-rhel-dmesg.service

* |-rhel-loadmodules.service

* |-paths.target

* |-slices.target

* | |--.slice

* | `-system.slice

* |-sockets.target

* | |-dbus.socket

* | |-dm-event.socket

* | |-systemd-initctl.socket

* | |-systemd-journald.socket

* | |-systemd-shutdownd.socket

* | |-systemd-udevd-control.socket

* | `-systemd-udevd-kernel.socket

* |-sysinit.target

* | |-dev-hugepages.mount

* | |-dev-mqueue.mount

* | |-kmod-static-nodes.service

* | |-lvm2-lvmetad.socket

* | |-lvm2-lvmpolld.socket

* | |-lvm2-monitor.service

* | |-plymouth-read-write.service

* | |-plymouth-start.service

* | |-proc-sys-fs-binfmt_misc.automount

* | |-sys-fs-fuse-connections.mount

* | |-sys-kernel-config.mount

* | |-sys-kernel-debug.mount

* | |-systemd-ask-password-console.path

* | |-systemd-binfmt.service

* | |-systemd-firstboot.service

* | |-systemd-hwdb-update.service

* | |-systemd-journal-catalog-update.service

* | |-systemd-journal-flush.service

* | |-systemd-journald.service

* | |-systemd-machine-id-commit.service

* | |-systemd-modules-load.service

* | |-systemd-random-seed.service

* | |-systemd-sysctl.service

* | |-systemd-tmpfiles-setup-dev.service

* | |-systemd-tmpfiles-setup.service

* | |-systemd-udev-trigger.service

* | |-systemd-udevd.service

* | |-systemd-update-done.service

87

Page 15: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 88 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: bootvorgang/bootvorgang , Aktueller Job: administration

2 Bootvorgang

* | |-systemd-update-utmp.service

* | |-systemd-vconsole-setup.service

* | |-cryptsetup.target

* | |-local-fs.target

* | | |--.mount

* | | |-boot.mount

* | | |-rhel-import-state.service

* | | |-rhel-readonly.service

* | | `-systemd-remount-fs.service

* | `-swap.target

* | `-dev-mapper-centos_centosswap.swap

* `-timers.target

* `-systemd-tmpfiles-clean.timer

Listing 2.23 Auszug der Abhängigkeiten von »sshd«

Folgender Befehl wurde in diesem Abschnitt behandelt:

E systemctl list-dependencies <UNIT>

2.5.8 Logs mit »journald«

Wie bereits eingangs des systemd-Abschnitts beschrieben, bringt systemd sein eigenes Log-

ging-Framework namens journald mit. Dass die Log-Dateien binär gespeichert werden, um

sie auch länger und fälschungssicher – so zumindest der Anspruch der systemd-Entwickler –

speichern zu können, ist ebenfalls ein großer Kritikpunkt der Linux-Community.

Allerdings hat journald Charme und bringt außer der Umgewöhnung auch einige Vorteile

mit, wie beispielsweise, dass Fehler in den Log-Dateien in Rot markiert werden und so eher

auffallen.

Rufen Sie beispielsweise journalctl ohne weitere Parameter auf, bekommen Sie einen inter-

aktiven Auszug aller Log-Dateien, so wie sie früher in /var/log/syslog oder /var/log/messages

landeten. Hier können Sie auch mit Eingabe eines großen »F« in den Follow-Modus wechseln.

Mit dem Parameter -f oder --follow wird Ihnen das Log analog zu einem tail -f angezeigt.

Wenn Sie die letzten 20 Log-Einträge anschauen wollen, benutzen Sie -n 20 oder --lines=20.

Der Parameter --reverse zeigt die Einträge in umgekehrter Reihenfolge an.

Einträge eines bestimmten Zeitraums grenzen Sie durch --since und --until ein, dabei wird

ein Datum in der Form "2016-07-30 18:17:16" ausgewertet. Ohne Datum wird der heutige

Tag angenommen, ohne Sekunden wird null angenommen, Sonderausdrücke wie »yester-

day«, »today«, »tomorrow« oder »now« sind möglich.

Einer der wichtigsten Parameter ist dabei -u oder --unit=, womit nur die Log-Dateien einer

einzelnen oder eines Satzes an Units ausgegeben werden.

88

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 89 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: festplatten/festplatten , Aktueller Job: administration

2

2.5 »systemd«

Wollen Sie beispielsweise die Log-Einträge des SSH-Daemons vom 5. August 2016 zwischen

13:00 Uhr und 14:00 Uhr haben, geben Sie den Befehl aus Listing 2.24 ein:

# journalctl --since="2016-08-05 13:00" --until="2016-08-05 14:00" \--unit=sshd.service

-- Logs begin at Fr 2016-08-05 07:19:24 CEST, end at Fr 2016-08-05 15:56:51 CEST. --Aug 05 13:07:24 centos sshd[13128]: reverse mapping checking getaddrinfo for \

1-2-3-4.a.b [1.2.3.4] failed - POSSIBLE BREAK-IN\ATTEMPT!

Aug 05 13:07:24 centos sshd[13130]: reverse mapping checking getaddrinfo for \1-2-3-4.a.b [1.2.3.4] failed - POSSIBLE BREAK-IN\ATTEMPT!

Aug 05 13:07:24 centos sshd[13128]: Connection closed by 1.2.3.4 [preauth]Aug 05 13:07:24 centos sshd[13130]: Connection closed by 1.2.3.4 [preauth]

Listing 2.24 Log-Auszug des SSH-Daemons

Die Logs von journald werden nach einem Neustart gelöscht. Wenn Sie das nicht wollen,

sollten Sie das Verzeichnis /var/log/journal anlegen und das Signal SIGUSR1 an den jour-

nald-Prozess senden, damit werden die Logs in dem angegebenen Verzeichnis persistiert,

sodass sie maximal zehn Prozent der Größe des Dateisystems belegen. Weitere Konfigura-

tionen nehmen Sie in der Datei /etc/systemd/journald.conf vor.

Folgender Befehl wurde in diesem Abschnitt behandelt:

E systemctl journalctl

2.5.9 Abschlussbemerkung

Die hier vorgestellten Befehle und Direktiven bilden nur einen Ausschnitt der Möglichkeiten

von systemd ab. Dieser Ausschnitt ist jedoch eine gute Basis für weitere Schritte. Eigene

Skripte und Job-Definitionen können Sie damit bereits jetzt erstellen. Über die Manpages

können Sie noch einige andere Kommandos und Subkommandos finden.

89

Page 16: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 195 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

Kapitel 6

Paketmanagement

Der Umgang mit Software – Quellcode, Paket und Paketmanagementlösungen –

steht im Vordergrund dieses Kapitels. Erfahren Sie, wie Sie Ihre selbst entwickelte

Software in Pakete schnüren, Update-Pakete erstellen und das Paketmanagement

Ihrer Distribution richtig einsetzen.

Zu den Aufgaben einer Paketverwaltung (engl. packet management) gehören das Installie-

ren, das Aktualisieren und das Deinstallieren von Software. Schon in den Anfangsjahren von

Linux wurde solch ein System erforderlich. Durch die wachsende Anzahl von Programmen

der GNU-Sammlung konnten Linux-Systeme fast alle Aufgaben bewältigen. Lediglich das In-

stallieren der Software sorgte für Unmut, da das Übersetzen des Quellcodes (Kompilieren) auf

dem eigenen System oft beschwerlich war. Vorausgesetzte Software (dependencies1) muss-

ten von Hand nachinstalliert werden, Updates sorgten für Konflikte mit anderer installierter

Software, und die Deinstallation musste ebenfalls von Hand durchgeführt werden.

6.1 Paketverwaltung

Hier setzt die Paketverwaltung an. Sie löst Abhängigkeiten auf und versucht, notwendige

Software selbstständig nachzuinstallieren. Sie entfernt Programme sauber aus dem System

und prüft bei Updates, ob Überschneidungen existieren und wie diese gelöst werden können.

Dafür musste die Software aber in eine entsprechende Form gebracht werden: in Pakete.

Eine Paketverwaltung besteht aus zwei Teilen. Der erste Teil ist für das Laden der Programme

aus einem Repository2 sowie für das Auflösen von Abhängigkeiten und Konflikten verant-

wortlich. Der zweite Teil, zum Beispiel dpkg (Debian Packet Management) oder rpm (RPM

Packet Management), sorgt für die eigentliche Installation.

In diesem Kapitel erfahren Sie alles zu den zwei größten Paketverwaltungen, dpkg und rpm.

Sie erfahren, wie Pakete zu diesen Paketverwaltungen konvertiert werden, welche weiteren

Programme es gibt und wie Sie selbst Pakete aktualisieren, erstellen und patchen können.

1 dependencies, engl. für Abhängigkeiten. Damit meint man in der Paketverwaltung Software, die für den

Betrieb anderer Software benötigt wird.

2 Repository, engl. für Lager, Depot.

195

Page 17: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 196 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

6.1.1 »rpm« oder »deb«?

Trotz aller Vorteile, die eine Paketverwaltung bietet, besitzen Paketverwaltungen auch Nach-

teile. Zum einen verfügen Paketverwaltungen zum Großteil lediglich über Binärpakete. Diese

Pakete sind für eine Architektur übersetzt und nur auf dieser lauffähig. Dies führt zu stati-

schen Paketen, die nicht voll an das System, auf dem sie laufen, angepasst sind. Zum anderen

kommt es bei Paketverwaltungen auch zu Konflikten.

Wenn in den Paketen Alpha und Beta teilweise die gleichen Dateien enthalten sind, können

Sie nicht beide Pakete gleichzeitig installieren. Falls die Aktualisierung des Pakets Gamma

auch die Aktualisierung des Pakets Delta fordert, das Paket Epsilon aber die »alte Version«

des Pakets Delta benötigt, ist eine Aktualisierung von Alpha nicht möglich. Eine gute Paket-

verwaltung zeichnet sich dadurch aus, dass sie diese Konflikte effektiv löst.

In der heutigen Zeit haben sich drei Konzepte durchgesetzt:

E die rpm-Paketverwaltung

E die dpkg-Paketverwaltung

E quellenbasierte Distributionen

Die ersten beiden Paketverwaltungen haben die Linux-Welt quasi in zwei Lager gespalten. Die

letzte Variante findet eher selten Anwendung, aber Distributionen wie zum Beispiel Gentoo

Linux verzichten ganz auf Binärpakete und stellen lediglich den Quellcode zur Verfügung,

sodass jede Installation voll an das System angepasst wird.

Jede Distribution verfügt über ihre eigene Implementierung einer Paketverwaltung. Das hat

zur Folge, dass zum Beispiel zwei auf rpm basierende Distributionen nicht zwingend mitein-

ander kompatibel sein müssen.

»rpm«

Die Paketverwaltung rpm wurde ursprünglich als Red Hat Packet Management bezeichnet,

da sie von Red Hat entwickelt wurde. Da rpm aber ein Teil der Linux Standard Base werden

wollte, wurde das Projekt einfach in ein rekursives Akronym umbenannt: RPM Packet Ma-

nagement. Das Ziel vom rpm bestand darin, Softwarepakete sowohl für Entwickler als auch

für den Anwender einfacher zu gestalten. Abhängigkeiten sollten berücksichtigt und auto-

matisch aufgelöst werden, Redundanzen sollten vermieden, und das saubere Entfernen von

Software sollte möglich gemacht werden. Ebenso sollte das Einspielen von Updates einfacher

gestaltet werden, ebenso wie das sichere Verwalten von Konfigurationen.

1999 kam es zur Zweiteilung von rpm, da der Hauptentwickler Jeff Johnson Red Hat verließ

und einen Fork des Projekts startete. Jetzt gibt es zwei rpm-Versionen: zum einen das in

SUSE, Red Hat, Fedora und vielen anderen Distributionen verwendete rpm von rpm.org, zum

anderen den Fork von Johnson, rpm5, der zum Beispiel in Alt Linux, ArkLinux und Unity Linux

Anwendung findet.

196

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 197 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.1 Paketverwaltung

Bei rpm-Paketen handelt es sich um komprimierte Dateien, denen ein binärer Header vor-

angestellt ist. Dieser Header ist nicht komprimiert, sodass dieser leicht durchsucht werden

kann.

Die zentrale Datei eines Pakets im rpm-Format ist die SPEC-Datei. Sie enthält alle Metainfor-

mationen des Pakets, also Informationen darüber, was in dem Paket enthalten ist, wohin es

installiert wird, wie es installiert wird, sowie Informationen zum Paket selbst.

Diese Datei ist in folgende acht Sektionen unterteilt:

E Präambel

Informationen über das Paket, die mittels rpm dem Benutzer angezeigt werden

E Prep

ein Skript, das den Quellcode-Dateibaum erzeugt

E Build

ein Kompilierungsskript

E Install

Installationsanweisung für die Binaries – in den meisten Fällen »make install«

E Files

eine Auflistung aller Dateien, die im Paket enthalten sind

E Install/Uninstall

Skripte für die Installation und Deinstallation. Diese Sektion besteht wiederum aus vier

Unterabschnitten: pre, post, prerun und postrun. Das sind Befehle, die vor/nach der

Installation/Deinstallation ausgeführt werden.

E Verify

Skript zur Prüfung der Installation

E Clean

Befehle, die auf dem Entwicklerrechner ausgeführt werden sollen

Die Dateinamen der rpm-Pakete haben folgende Konvention:

<Bezeichnung>-<Versionsnummer>-<Revisionsnummer>.<Architektur>.rpm

Listing 6.1 Schema der »rpm«-Paketdateinamen

»deb«

Die Paketverwaltung deb wurde von Ian Murdock entwickelt. Die Bezeichnung deb bezieht

sich hierbei auf die ersten drei Buchstaben der Linux-Distribution Debian. Die Zielsetzung

von deb entspricht der von rpm, allerdings sind beide nicht miteinander kompatibel. Hierfür

gibt es aber Konvertierungstools, die es erlauben, Pakete für die jeweils andere Paketverwal-

tung nutzbar zu machen.

Ein deb-Paket setzt sich aus folgenden Abschnitten zusammen:

197

Page 18: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 198 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

E debian-binary

Textdatei mit Angabe der Versionsnummer des verwendeten Paketformats

E control

enthält alle relevanten Informationen des Pakets, die in eigenen Dateien verwaltet wer-

den. Die folgenden Dateien sind immer vorhanden:

– control

Kurzbeschreibung des Pakets und Auflistung der Abhängigkeiten

– md5sums

Prüfsummen der enthaltenen Dateien

– conffiles

Auflistung der Konfigurationsdateien im Paket

– preinst, postinst, prerm, postrm

Skripte, die vor oder nach der Installation/Deinstallation ausgeführt werden

– config

ein debconf-Skript, das Metainformationen für die debconf-Datenbank enthält

– shlibs

Auflistung der Programmbibliotheken

E data

Archiv der enthaltenen Programmdaten

Auch hier gibt es eine zentrale Datei, die für das Paket verantwortlich ist: control. In ihr sind

sowohl alle Metainformationen zum Paket enthalten als auch die Installationsanweisungen.

Dateinamen von deb-Paketen folgen einer definierten Syntax:

<Bezeichnung>_<Versionsnummer>-<Revisionsnummer>_<Architektur>.deb

Listing 6.2 Schema der »deb«-Paketdateinamen

6.1.2 »yum«, »yast«, »zypper« oder »apt«?

Wie bereits erläutert besteht eine Paketverwaltung nicht allein aus einem Programm. Zu

ihr gehört immer (mindestens) ein Tool, das sich um das Laden der Software, das Auflösen

von Abhängigkeiten und die Beseitigung von Konflikten kümmert. Jede Distribution besitzt

eine eigene Umsetzung. So findet yum auf Red-Hat-basierten Systemen Anwendung, yast

und zypper auf SUSE-basierten und apt auf Debian-basierten. Wenn Distributionen binär-

kompatibel miteinander sind, können Sie auch Pakete aus der jeweils anderen Distribution

installieren.

Ubuntu- und Debian-Pakete sind zum Teil binärkompatibel, sodass Debian-Pakete auch un-

ter einigen Ubuntu-Versionen lauffähig sind. Ebenso gilt dies für Red Hat und SUSE.

198

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 199 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.1 Paketverwaltung

Die Bedienung der einzelnen Tools unterscheidet sich erheblich voneinander. Die Debian-

basierte Variante apt ist eine Suite mit mehreren Anwendungen, die jeweils eine Anwendung

für spezielle Aufgaben zur Verfügung stellt. Die Red-Hat-Variante yum kommt hingegen mit

nur einem Programm aus, und die SUSE-Variante yast kann sowohl als Kommandozeilen-

tool als auch im ASCII-Menü gesteuert werden, wobei ab openSUSE 10.2 das zusätzliche Tool

zypper parallel zu yast eingesetzt werden kann.

Neben den von den Distributionen ausgelieferten Programmen können auch unabhängige

eingesetzt werden. Hier ist vor allem das Tool smart erwähnenswert, das sich selbst als »der

Paketmanager« bezeichnet. Auf der Projektseite http://labix.org/smart erhalten Sie weitere

Informationen zum Einsatz des von Gustavo Niemeyer entwickelten Tools.

Einen Auszug der Befehle zur Bedienung der einzelnen Tools auf der Kommandozeile ent-

nehmen Sie Tabelle 6.1 für die Paketverwaltung und Tabelle 6.2 für lokale Pakete.

Aktion CentOS openSUSE leap Debian/Ubuntu

Paket installieren yum install yast -izypper install

apt-get install

Paket deinstallieren yum remove yast --removezypper remove

apt-get remove

Paketinformationen abfragen yum info zypper info apt-cache showpkg

Paket zur Datei suchen yum provides zypper wp apt-file search

Alle installierten Pakete

anzeigen

yum list * – –

Tabelle 6.1 Auszug: Kommandozeilenbefehle für Repositorys

Aktion CentOS openSUSE leap Debian/Ubuntu

Paket installieren yum install rpm -i dpkg -i

Paket deinstallieren yum remove rpm -e dpkg -r

Paketinformationen abfragen yum info rpm -qi dpkg -p

Paket zur Datei suchen yum provides rpm -qf –

Alle installierten Pakete

anzeigen

yum list * rpm -qa dpkg -l

Tabelle 6.2 Auszug: Kommandozeilenbefehle für lokale Pakete

199

Page 19: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 200 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

6.1.3 Außerirdische an Bord – »alien«

Es gibt Software, die nur in einer Paketform angeboten wird und nicht als Quellcode zur

Verfügung steht. Um diese Software auf dem eigenen System betreiben zu können, muss das

Paket umgewandelt werden. Hier eilt Ihnen alien zur Hilfe. Das ursprünglich von Debian-

Entwickler Christoph Lameter geschriebene Tool konvertiert Pakete in die Formate rpm, deb,

slp (Stampedes), tgz (Slackwares) und pkg (Solaris).

Die Installation von alien setzt viele weitere Pakete voraus, unter anderem auch die Kompi-

lierungsprogramme (gcc, make etc.). Auf Systemen, die auf Debian basieren, können Sie alien

aus den Paketquellen installieren. Leider ist alien weder in CentOS noch in openSUSE leap

enthalten. Laden Sie den aktuellen Quellcode unter http://packages.debian.org/unstable/

source/alien herunter, und führen Sie nach dem Entpacken wie in der enthaltenen Datei

INSTALL beschrieben die folgenden Befehle aus:

daniel@example:/usr/local/alien# perl MakeFiles.plroot@example:/usr/local/alien# makeroot@example:/usr/local/alien# make install

Listing 6.3 »alien« aus dem Quellcode installieren

Oder erzeugen Sie auf einem Debian-basierten System einfach ein rpm-Paket mittels alien.

Laden Sie dafür die entsprechende deb-Datei herunter. Falls Sie ein Paket konvertieren wol-

len, das bereits installiert ist, finden Sie die deb-Datei unter /var/cache/apt/archives. Wenden

Sie alien nun mit dem Schalter -r (oder -to-rpm) an:

root@example:/var/cache/apt/archives# alien -r alien_8.95_all.debalien-8.95-2.noarch.rpm generated

Listing 6.4 Umwandeln von »deb« zu »rpm«

alien erzeugt nun die Datei alien-8.95-2.noarch.rpm. Wie Sie dem neuen Dateinamen entneh-

men können, wurde auch die Versionsnummer angepasst. Falls Sie die eigentliche Versions-

nummer des Pakets behalten wollen, verwenden Sie den -k beim Aufruf von alien.

Speicherort installierter Pakete

Installierte Pakete auf Systemen mit deb-Paketverwaltung finden Sie im Verzeichnis

/var/cache/apt/archives/. Bei openSUSE leap finden Sie die installierten Pakete unter

/var/cache/zypp/packages/<Repository>:<RepoName>/rpm/ und bei CentOS unterhalb von

/var/cache/yum.

Falls Sie ein Paket auf dem System konvertieren, auf dem die Software installiert werden soll,

können Sie diese mit dem Schalter -i auch direkt von alien installieren lassen.

200

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 201 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

6.2 Pakete im Eigenbau

Neben der Vielzahl an Software, die über die Repositorys bezogen werden kann, gibt es auch

Software, die lediglich als Quellcode zur Verfügung steht. Um solche Programme auf Ihrem

System betreiben zu können, müssen sie kompiliert werden. Hierfür verwenden Sie den

Ihnen vermutlich bereits bekannten Dreisprung:

daniel@example:/usr/local/packet# ./configuredaniel@example:/usr/local/packet# makedaniel@example:/usr/local/packet# sudo make install

Listing 6.5 Kompilierung im Dreisprung

Dies ist natürlich eine adäquate Möglichkeit, Software auf »einem« System zu verwenden.

Wenn Sie aber mehrere Systeme der gleichen Architektur mit dem gleichen Betriebssystem

verwenden, können Sie den Quellcode auch in ein Paket schnüren, um so die Software ein-

fach zu verteilen, eine Update-Sicherheit zu erzeugen oder auch Patches effektiv zu verteilen.

In diesem Abschnitt erfahren Sie alles zu Paketen: wie Sie diese aus einem tarball3 erzeugen,

wie Sie Patches einspielen und wie Sie Update-Pakete erstellen.

6.2.1 Vorbereitungen

Damit Sie Pakete erzeugen können, müssen einige Pakete auf Ihrem System vorhanden sein,

die zur Erstellung notwendig sind, die sogenannte Build-Umgebung. Keine Sorge, Sie müssen

die benötigten Pakete nicht einzeln identifizieren und separat installieren. In den Paketquel-

len sind Metapakete oder Gruppen vorhanden, die alle benötigten Pakete enthalten.

Auf Debian/Ubuntu müssen Sie das Metapaket aus Listing 6.6 installieren:

root@ubuntu:~$ apt-get install build-essentail

Listing 6.6 Build-Umgebung installieren auf Debian/Ubuntu

Auf einem CentOS-System müssen Sie die Gruppe aus Listing 6.7 installieren:

[root@centos ~]# yum -y groupinstall Development\ Tools

Listing 6.7 Build-Umgebung installieren auf CentOS

Auf einem openSUSE-leap-System wiederum können Sie die benötigten Pakete über Muster

(engl. pattern) installieren lassen:

leap:~> sudo zypper install -t pattern devel_C_C++ devel_basis devel_rpm_build

Listing 6.8 Build-Umgebung installieren auf openSUSE leap

3 tarball (tape archive ball) – Archivformat, in dem oft Quellcode ausgeliefert wird.

201

Page 20: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 202 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

6.2.2 Am Anfang war das Makefile

Software, die nicht in den Repositorys zur Verfügung steht, wird in der Regel von den Ent-

wicklern als tgz oder auch tar.gz-Datei zur Verfügung gestellt. Aus dieser entpacken Sie den

Quellcode und kompilieren dann das Programm. Um selbst geschriebene Software so zur

Verfügung zu stellen, muss diese erst mal in die richtige Form gebracht werden. Dazu dient

das Makefile, auf das das configure-Skript zugreift, das das Programm entsprechend Ihrem

System verarbeitet.

Im Grunde genommen sind Makefiles nichts weiter als Textdateien, in denen der Überset-

zungsprozess von Programmen formalisiert enthalten ist. Darüber hinaus stellt das Make-

file eine Intelligenz zur Verfügung, die bereits vorhandene und kompilierte Abhängigkeiten,

oder bei Updates auch eigenen Code, erkennt und diese nicht erneut kompiliert.

Das Erstellen eines solchen Makefiles von Hand kann bei größeren Projekten mit vielen Ab-

hängigkeiten schnell in unüberschaubare Arbeit ausarten. Um effizient Makefiles zu erstel-

len, gibt es die »GNU autotools«, die Ihnen die Arbeit zu einem Großteil abnehmen. Folgende

Arbeitsschritte müssen Sie durchlaufen, um ein eigenes tgz zu erstellen:

1. Quellcode erstellen

2. Makefile.am erstellen

3. autoscan – configure.scan nach configure.in

4. aclocal – Anpassung für die Sprachumgebung

5. autoconf – Verarbeitung von Konfigurationsdateien

6. autoheader – Verarbeitung von zusätzlichem Quellcode

7. automake – Erzeugen des Makefiles

In diesem Abschnitt zeigen wir Ihnen, wie Sie das allseits beliebte Programm »helloworld«

von seinem C-Code-Dasein befreien und als tgz-Datei zur Verfügung stellen.

Wenn noch nicht vorhanden, installieren Sie das Paket autoconf aus den Paketquellen (auf

CentOS und openSUSE leap zusätzlich das Paket automake).

Erstellen Sie zunächst ein Verzeichnis hello-1.0 in Ihrem Homeverzeichnis. In diesem Ver-

zeichnis erstellen Sie das helloworld.c-Programm mit folgendem Quellcode:

/* Simple "Hello World!" program in C */#include <stdio.h>main(){printf("Hello world! Once again... \n");

}

Listing 6.9 »helloworld.c«

202

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 203 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

Erstellung als Benutzer

Die Erstellung von Paketen (tgz, rpm oder deb) sollte immer als normaler Benutzer ausgeführt

werden. Da »root« Vollzugriff auf alle Dateien hat, könnten während der Installation eines

von ihm erstellten Pakets Dateien überschrieben oder gelöscht werden, die auf dem System

benötigt werden.

Die Installation des gepackten Programms selbst muss hingegen von »root« durchgeführt

werden, da Benutzern die entsprechenden Rechte fehlen.

Das soeben erstellte Programm dient als zu verpackende Basis. Erstellen Sie nun die Datei

Makefile.am mit folgendem Inhalt:

bin_PROGRAMS = helloworldhelloworld_SOURCES = helloworld.c

Listing 6.10 »Makefile.am«

Die Datei Makefile.am wird von den autotools ausgewertet. In ihr werden der Name des Pro-

gramms (bin _PROGRAMS) und dessen Quellcode (helloworld_SOURCES) deklariert. Bei größeren

Projekten werden hier alle programmrelevanten Dateien aufgeführt und auch alle Bibliothe-

ken. Führen Sie nun autoscan aus. Dieses Programm analysiert die Makefile.am und ihren

Quellcode. Es erstellt die Datei configure.scan, die als Basis zur Erstellung der configure.ac

dient (siehe Listing 6.11):

# -*- Autoconf -*-# Process this file with autoconf to produce a configure script.

AC_PREREQ([2.69])AC_INIT([FULL-PACKAGE-NAME], [VERSION], [BUG-REPORT-ADDRESS])AC_CONFIG_SRCDIR([helloworld.c])AC_CONFIG_HEADERS([config.h])

# Checks for programs.AC_PROG_CC

# Checks for libraries.

# Checks for header files.

# Checks for typedefs, structures, and compiler characteristics.

# Checks for library functions.

203

Page 21: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 204 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

AC_CONFIG_FILES([Makefile])AC_OUTPUT

Listing 6.11 »configure.scan«

Benennen Sie die Datei entsprechend um, und passen Sie die Parameter dem hello-

world.c-Programm an:

AC_PREREQ([2.69])AC_INIT([helloworld], [1.0], [[email protected]])AC_CONFIG_SRCDIR([helloworld.c])AM_INIT_AUTOMAKE([1.9 foreign])AC_PROG_CCAC_CONFIG_FILES([Makefile])AC_OUTPUT

Listing 6.12 »configure.ac«

Achten Sie darauf, die Zeile AC_CONFIG_HEADERS([config.h]) zu entfernen, da unser Pro-

gramm keine Header-Datei besitzt. Da Sie weiter mit den autotools arbeiten, müssen Sie die

vierte Zeile hinzufügen, die von autoscan nicht erstellt wurde. Führen Sie anschließend die

Befehle aclocal und autoconf aus. Diese ergänzen und erweitern die Struktur des tgz. Führen

Sie nun autoheader aus, das mit einer Fehlermeldung endet (siehe Listing 6.13):

daniel@example:/home/daniel/hello-1.0# autoheaderautoheader: error: AC_CONFIG_HEADERS not found in configure.ac

Listing 6.13 Fehlermeldung: »autoheader«

Obwohl der Befehl eine Fehlermeldung ausgibt, nimmt er wichtige Konfigurationen vor.

Anschließend beenden Sie die Verarbeitung mit automake, das neben dem configure-Skript

das passende Makefile erzeugt.

daniel@example:/home/daniel/hello-1.0# automake --add-missing

Listing 6.14 Fehlende Dateien ergänzen

Der Parameter -add-missing gibt an, dass automake fehlende Standarddateien hinzufügen

soll. Jetzt stehen Ihnen alle benötigten Dateien zur Verfügung. Packen Sie diese mittels tar

in ein Archiv, das Sie auf jedem System entpacken und kompilieren können.

daniel@example:/home/daniel/# tar -cavhf hello-1.0.tar.gz hello-1.0/

Listing 6.15 Ein »tar«-Archiv erstellen

Nach dem bekannten Dreisprung können Sie das Programm einfach über den Befehl hello-

world aufrufen und erhalten die erwartete Ausgabe: »Hello World! Once again ...«. Beach-

ten Sie, dass der Befehl make install immer als root ausgeführt werden muss!

204

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 205 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

6.2.3 Vom Fellknäuel zum Paket

Eine noch elegantere Variante, um das Programm helloworld zur Verfügung zu stellen, be-

steht darin, es in ein rpm- oder deb-Paket zu hüllen. In diesem Abschnitt zeigen wir Ihnen

die minimalen Anforderungen, um ein Paket erzeugen zu können. Bitte beachten Sie, dass,

wenn Sie Pakete in Paketverwaltungen Ihrer Distribution hochladen wollen, noch weitere

Konfigurationen notwendig sind (lesen Sie dafür die Guidelines der Distribution).

DEB-Pakete erzeugen: »dpkg-buildpackage«

Zum Erzeugen von DEB-Paketen wird eine gewisse Verzeichnisstruktur vorausgesetzt. Erzeu-

gen Sie daher die benötigten Verzeichnisse:

daniel@ubuntu:~$ mkdir -p build/hello-1.0/debian

Listing 6.16 Build-Umgebung erzeugen

Legen Sie nun die Datei control im Verzeichnis debian an. Diese enthält wichtige Informatio-

nen zum Paket. In Listing 6.17 sehen Sie die Werte, die mindestens gesetzt sein müssen:

Source: helloBuild-Depends: debhelper (>= 9)Maintainer: Daniel van Soest <[email protected]>

Standards-Version: 3.9.5

Package: helloArchitecture: anyDescription: Easy to use "helloworld" Program written in C.Need some sunshine? Just go and run this nifty little program.

Listing 6.17 Inhalt von »debian/control«

Bitte passen Sie den Maintainer4 mit gültigen Werten an (in Fettschrift dargestellt). Bitte be-

achten Sie, dass die erste Zeile der Direktive Description die Kurzbeschreibung darstellt. Die

folgenden Zeilen beginnen stets mit einem Leerzeichen – all diese werden als ausführliche

Beschreibung ausgewertet. Eine weitere Datei, die im Verzeichnis debian zwingend vorhan-

den sein muss, ist changelog. Erstellen Sie diese mit dem Inhalt aus Listing 6.18:

hello (1.0-1) unstable; urgency=low

* Initial release

-- Daniel van Soest <[email protected]> Sat, 21 May 2016 07:10:08 +0200

Listing 6.18 Inhalt von »debian/changelog«

4 Maintainer (engl. »to maintain«, dt. »instandhalten«) – Autor des distributionsspezifischen Pakets.

205

Page 22: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 206 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Auch hier müssen Sie in der letzten Zeile den Maintainer korrigieren und das Datum und die

Uhrzeit anpassen.

Zusätzlich werden noch weitere Dateien benötigt, die wir in einem Schwung mit den Befeh-

len aus Listing 6.19 erzeugen:

daniel@ubuntu:~/build/hello-1.0$ echo '9' > debian/compatdaniel@ubuntu:~/build/hello-1.0$ echo 'helloworld /usr/bin/' > debian/hello.installdaniel@ubuntu:~/build/hello-1.0$ echo -e '%:\n\tdh $@' > debian/rules

Listing 6.19 Weitere Dateien anlegen und befüllen

Zu guter Letzt müssen Sie noch die bereits kompilierte Version des Programms ins Stamm-

verzeichnis der Build-Umgebung kopieren (siehe Listing 6.20).

daniel@ubuntu:~/build/hello-1.0$ cp /usr/local/bin/helloworld ./

Listing 6.20 Kopieren des eigentlichen Programms

Damit sind alle benötigten Dateien vorhanden, und Sie können das DEB-Paket mit dem

Befehl aus Listing 6.21 erzeugen:

daniel@ubuntu:~/build/hello-1.0$ dpkg-buildpackage -rfakeroot[…]daniel@ubuntu:~/build/hello-1.0$ ls -lha ../insgesamt 28Kdrwxrwxr-x 3 daniel daniel 4,0K Mai 21 08:03 .drwxr-xr-x 8 daniel daniel 4,0K Mai 21 08:02 ..drwxrwxr-x 3 daniel daniel 4,0K Mai 21 08:03 hello-1.0-rw-rw-r-- 1 daniel daniel 1,1K Mai 21 08:03 hello_1.0-1_amd64.changes-rw-r--r-- 1 daniel daniel 2,4K Mai 21 08:03 hello_1.0-1_amd64.deb-rw-rw-r-- 1 daniel daniel 485 Mai 21 08:03 hello_1.0-1.dsc-rw-rw-r-- 1 daniel daniel 2,2K Mai 21 08:03 hello_1.0-1.tar.gz

Listing 6.21 DEB-Paket erzeugen mit »dpkg-buildpackage«

RPM-Pakete erzeugen: »rpmbuild«

Um ein RPM-Paket aus dem bereits bekannten Programm helloworld zu erzeugen, müssen

Sie zunächst eine Build-Umgebung erstellen. Führen Sie dafür die Befehle aus Listing 6.22

aus:

[daniel@centos ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}[daniel@centos ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Listing 6.22 Build-Umgebung erstellen: »CentOS«

Mit diesen Befehlen erzeugen Sie alle benötigten Unterverzeichnisse und erstellen eine Ma-

kro-Datei, damit das rpmbuild auch weiß, was zu tun ist. Bei openSUSE leap ist diese eigentlich

206

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 207 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

bereits unter /usr/src/packages vorhanden – Sie können aber auch eine neue erstellen, so wie

in Listing 6.22 gezeigt. Kopieren Sie anschließend die gepackten Quellen in den erzeugten

Ordner SOURCES. Für das Beispielprogramm helloworld genügt der folgende Befehl:

[daniel@centos rpmbuild]$ cp ../hello-1.0.tgz SOURCES/

Listing 6.23 Quellen kopieren nach »SOURCES«

Zum Erzeugen eines RPM-Pakets wird stets eine sogenannte spec-Datei benötigt. Diese ent-

hält alle Informationen zum Paket und spezifiziert, wie das Paket erzeugt werden soll.

Öffnen Sie nun die Datei SPECS/hello.spec mit einem Editor. Da die Build-Umgebung erzeugt

wurde, wird im Editor direkt die passende Template-Datei geöffnet. Diese unterscheidet sich

von Distribution zu Distribution. In dieser Datei müssen aber immer mindestens folgende

Zeilen angepasst werden:

Name: hello

Version: 1.0

Release: 1

License: GPLv2

Summary: Easy to use "helloworld" Program written in C.

Group: Development/Tools

Source: %name-%version.tgz

[…]%files%doc/usr/bin/helloworld

Listing 6.24 Erforderliche Anpassungen in »SPECS/hello.spec«

Falls in Ihrem Paket die Standarddokumentation, wie zum Beispiel README oder COPYING,

vorhanden ist, müssen Sie diese unter doc mit Leerzeichen getrennt angeben: %doc <FILE1>

<FILE2> <...>. Ebenso sollten Sie eine ausführliche Beschreibung unter %description an-

geben. Falls Sie Aktualisierungen herausbringen, sollten die Änderungen unter %changelog

erläutert werden. Dies alles gehört zu einem guten Stil und ist ein »Muss«.

Wenn Sie alle Angaben eingetragen haben, können Sie nun mit dem Programm rpmbuild das

Paket erzeugen, so wie in Listing 6.25 dargestellt:

[daniel@centos rpmbuild]$ rpmbuild -ba SPECS/hello.spec[…][daniel@centos rpmbuild]$ find ./ -name '*.rpm'./RPMS/x86_64/hello-1.0-1.el7.centos.x86_64.rpm./RPMS/x86_64/hello-debuginfo-1.0-1.el7.centos.x86_64.rpm./SRPMS/hello-1.0-1.el7.centos.src.rpm

Listing 6.25 Erstellung des Pakets

207

Page 23: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 208 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Wie Sie in Listing 6.25 sehen, war die Erstellung des Pakets erfolgreich. Dieses befindet sich

dann, je nach Architektur, unterhalb von RPMS/<ARCH>/.

Noch bequemer für DEB: »checkinstall«

Zur bequemen Erstellung von DEB-Paketen verwenden Sie das Tool checkinstall von Felipe

Eduardo Sanchez Diaz Duran. Es ist in der Lage, aus vorliegendem tar.gz-Quellcode paket-

verwaltungstaugliche Pakete des Typs deb (Debian/Ubuntu), rpm (Red Hat/SUSE) und tgz

(Slackware) zu erstellen. Auf der Projektseite http://checkinstall.izto.org erfahren Sie aktuelle

Neuigkeiten zum Projekt.

Wenn Sie keine Software mit pre- und post-install-Skripten verwenden, was zum Beispiel bei

Kernelmodulen sehr oft der Fall ist, können Sie mit checkinstall bequem Pakete erstellen.

Installieren Sie checkinstall aus den Repositorys. Entpacken Sie den Quellcode, den Sie in

ein Paket umwandeln wollen, aus dem tarball, und führen Sie anschließend das Kommando

checkinstall aus. Wir verwenden hierfür wieder das erstellte hello-1.0.tar.gz.

daniel@example:~# tar -xsvf hello-1.0.tar.gzdaniel@example:~# cd hello-1.0daniel@example:~/hello-1.0# sudo checkinstall -D

Listing 6.26 Entpacken des »tarball« und Starten von »checkinstall«

Der Parameter -D gibt an, dass ein deb-Paket erzeugt werden soll. Anschließend prüft check-

install den vorliegenden Quellcode und stellt Ihnen ein paar Fragen zum Paket.

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz DuranDiese Software wurde unter der GNU GPL veröffentlicht

The package documentation directory ./doc-pak does not exist.Should I create a default set of package docs? [y]:

Listing 6.27 Rückfrage: Paketdokumentation

Paketverwaltungen erwarten für jedes Paket eine Dokumentation. Da in unserem selbst

erstellten Programm keine vorhanden ist, fragt checkinstall nach, ob es eine leere Dokumen-

tation für uns erstellen soll. Bestätigen Sie dies mit der Eingabe von (Y). Anschließend fragt

checkinstall nach einer Beschreibung für das Paket. Geben Sie eine passende Beschreibung

des Pakets an:

Bitte geben Sie eine Beschreibung für das Paket ein.Beenden Sie Ihre Beschreibung mit einer leeren Zeile oder EOF.>> Easy to use "helloworld" Programm written in C.>>

Listing 6.28 Angabe der Paketbeschreibung

208

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 209 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

Wenn Sie das Paket veröffentlichen wollen, sollten Sie diese Beschreibung in Englisch ver-

fassen, da Ihr Paket ansonsten vermutlich von der Paketverwaltung nicht akzeptiert wird.

Abschließend gibt checkinstall eine Übersicht über die Paketparameter aus und gibt Ihnen

die Möglichkeit, diese nochmals zu verändern.

********************************************* Debian package creation selected ********************************************

Das Paket wird entsprechend dieser Vorgaben erstellt:

0 - Maintainer: [ root@debian ]1 - Summary: [ Easy to use "helloworld" Programm written in C. ]2 - Name: [ hello ]3 - Version: [ 1.0 ]4 - Release: [ 1 ]5 - License: [ GPL ]6 - Group: [ checkinstall ]7 - Architecture: [ amd64 ]8 - Source location: [ hello-1.0 ]9 - Alternate source location: [ ]10 - Requires: [ ]11 - Provides: [ hello ]12 - Conflicts: [ ]13 - Replaces: [ ]

Geben Sie die betreffende Nummer ein, um die Vorgaben zu ändern:

Listing 6.29 Letzte Kontrolle der Paketparameter: »deb«

Wie Sie Listing 6.29 entnehmen können, wurde als E-Mail-Adresse des Maintainers einfach

root@<hostname> von checkinstall gewählt. Passen Sie diese an, und fahren Sie mit der Eingabe

von (Ð) fort.

Anschließend führt checkinstall die Paketierung aus.

====================== Installations-Ergebnisse ==========================make[1]: Entering directory '/home/daniel/hello-1.0'/bin/mkdir -p '/usr/local/bin'

/usr/bin/install -c helloworld '/usr/local/bin'make[1]: Nothing to be done for 'install-data-am'make[1]: Leaving directory '/home/daniel/hello-1.0'

====================== Installation erfolgreich ==========================

209

Page 24: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 210 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Copying documentation directory...././INSTALL./COPYING

Kopiere Dateien in das temporäre Verzeichnis...OK

Stripping ELF binaries and libraries...OK

Komprimiere man-Seiten...OK

Erzeuge Datei-Liste...OK

Erstelle Debian-Paket...OK

Installiere Debian-Paket...OK

Lösche temporäre Dateien...OK

Schreibe Sicherungs-Paket...OK

Lösche temporäres Verzeichnis...OK

**********************************************************************

Done. The new package has been installed and saved to

/home/daniel/hello-1.0/hello_1.0-1_amd64.deb

You can remove it from your system anytime using:

dpkg -r hello

**********************************************************************

Listing 6.30 Paketierung

Nun steht Ihnen das deb-Paket hello_1.0-1_amd64.deb zur Verfügung. Das Programm war so

freundlich und hat das erzeugte Paket direkt für Sie installiert. Falls Sie dies wieder entfernen

wollen, können Sie der Empfehlung aus Listing 6.30 folgen und einfach den Befehl dpkg -r

hello absetzen.

210

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 211 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

6.2.4 Patchen mit »patch« und »diff«

Das klassische Patchen von Software, das Sicherheitslücken oder Bugs behebt, findet heut-

zutage kaum noch Anwendung. In den meisten Fällen werden Updates binnen kürzester Zeit

als Paket angeboten und sogar in die Repositorys übernommen.

Dennoch gibt es Patches, die eventuelle Verbesserungen mit sich bringen oder sogar in Pa-

keten enthalten sind. Letzteres tritt oft ein, wenn der Maintainer nicht das ganze Paket neu

erstellt hat, sondern lediglich das Update in Form eines Patches hinzugefügt hat. Ein Patch

besteht aus einer diff-Datei. Das Programm diff erstellt eine Übersicht über die Unterschie-

de zweier Dateien. Diese wird in einer speziellen Syntax dargestellt, sodass hinzugefügte,

gelöschte oder veränderte Zeilen separat dargestellt werden.

Für ein einfaches Beispiel erstellen Sie zwei Textdateien, wie sie in Tabelle 6.3 gezeigt werden.

datei01.txt datei02.txt

Ein einfaches Beispiel,das die Funktionsweise von'diff' darstellen soll.

Ein einfaches BEISPIEl,das die Funktionsweisedes gut funktionierenden Programms'diff' darstellen soll.

Tabelle 6.3 Ausgangsdateien

Erstellen Sie einen diff der Dateien über den nachstehenden Befehl:

daniel@example:~# diff -Naur datei01.txt datei02.txt > datei01.patch

Listing 6.31 »diff«-Erzeugung

Die Schalter -Naur weisen diff an, die Unterschiede der datei01.txt zur datei02.txt vollständig

zu ermitteln und im C-Format darzustellen. Die Ausgabe wird in die Datei datei01.patch

geschrieben, die folgenden Inhalt hat:

daniel@example:~# cat datei01.patch--- datei01.txt 2014-07-11 12:22:56.019985049 +0100+++ datei02.txt 2014-07-11 12:27:22.643985051 +0100@@ -1,3 +1,4 @@-Ein einfaches Beispiel,-das die Funktionsweise von+Ein einfaches BEISPIEl,+das die Funktionsweise+des gut funktionierenden Programms'diff' darstellen soll.

Listing 6.32 »diff« der »datei01.txt« zu »datei02.txt«

211

Page 25: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 212 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

In den ersten beiden Zeilen werden die Ursprungsdateien definiert. Durch die doppelten

Plus- und Minuszeichen wird angegeben, von welcher zu welcher Datei der diff erstellt wur-

de. Die dritte Zeile, die von At-Zeichen (@) umgeben ist, zeigt an, wo sich der entsprechende

Block in beiden Dateien befindet und, durch ein Komma getrennt, wie lang er in der jewei-

ligen Datei ist. Anschließend folgen die Zeilen, die durch Symbole kategorisiert sind. Das

Programm diff kennt drei Kategorien:

E Hinzugefügte Zeilen

voranstehendes Pluszeichen (+)

E Gelöschte Zeilen

voranstehendes Minuszeichen (–)

E Nicht veränderte Zeilen

ohne voranstehendes Zeichen

In einer diff-Datei können auch mehrere Dateien und deren Veränderungen aufgelistet sein.

In ihr wird nie der gesamte Inhalt einer Datei aufgelistet, sondern lediglich die Veränderun-

gen und deren direkte Umgebung. Daher kann die dritte Zeile des Beispiels auch mehrfach

vorkommen und somit mehrere geänderte Blöcke einer Datei referenzieren. Diese Dateien

bilden die Grundlage eines Patches. Das Programm patch wird angewandt, um diese Verän-

derungen einzuspielen. Der Standardaufruf von patch lautet:

root@example:~# patch -Np0 -i datei01.patch

Listing 6.33 Patch einspielen

Das Programm spielt nun die Änderungen aus der Datei datei01.patch ein. Der Schalter -N

gibt dabei an, dass die Richtung aus der diff-Datei verwendet werden soll. Der Schalter p0

weist patch an, die Verzeichnisstruktur ab dem Level »0« anzuwenden, und der Schalter -i

verlangt die Patch-Datei.

Software-Patches werden meist mit einer Verzeichnisstruktur erzeugt. Erstellen Sie folgende

Verzeichnisstruktur:

build/|-- orig| `-- datei.txt`-- orig.patch

`-- datei.txt

Listing 6.34 Patch-Verzeichnisstruktur

Kopieren Sie anschließend die datei01.txt nach build/orig/datei.txt und die Datei datei02.txt

nach build/orig.patch/datei.txt, und stellen Sie deren ursprünglichen Inhalt wieder her.

Erstellen Sie nun den neuen diff mit folgendem Befehl:

212

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 213 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

daniel@example:~# diff -Naur build/orig/datei.txt \build/orig.patch/datei.txt > datei.patch

Listing 6.35 Neue Patch-Datei erstellen

Spielen Sie den angelegten Patch ein:

daniel@example:~# patch -Np0 -i datei.patchpatching file build/orig/datei.txt

Listing 6.36 Patch-Datei einspielen

Die Datei orig/datei.txt entspricht jetzt der Datei patch/datei.txt. Die Besonderheit des Para-

meters p0 wird im nächsten Beispiel deutlich. Hier wird der gleiche Patch erneut eingespielt,

diesmal aber von einer tieferen Verzeichnisebene aus:

daniel@example:~/build# patch -Np1 -i ../datei.patchpatching file orig/datei.txt

Listing 6.37 Patch-Datei aus tieferer Verzeichnisebene einspielen

Da sich die Verzeichnisstruktur fest in der Patch-Datei befindet, muss patch über den Para-

meter 1 angewiesen werden, den Pfad um den ersten Teil der Verzeichnisstruktur zu kürzen,

damit die Dateien auch gefunden werden. Anderenfalls würde patch mit einer Fehlermel-

dung abbrechen.

Länge der Pfade

Das Programm patch prüft vor jedem Durchlauf, ob bereits ein Patch eingespielt wurde. Dies

kann Ihnen zum Verhängnis werden. Das Programm setzt voraus, dass der Pfad zur »neuen«

Datei länger ist als der zur »alten«. Beachten Sie dies nicht, wird der erstellte diff nicht von

patch eingespielt.

6.2.5 Updates ohne Repository

Oft ist es sinnvoll, Software, die als Update nur im Quellcode vorliegt, aber noch nicht in

den Repositorys vorhanden ist, in ein Paket zu schnüren. Somit können Sie eine Update-

Sicherheit gewährleisten, diese Software auf mehreren Systemen der gleichen Architektur

verteilen oder Patches schnell auf allen Systemen Ihres Umfelds einspielen. Gerade in

LTS5-Distributionen sind oft veraltete Pakete enthalten.

Der einfachste Weg, solche Update-Pakete zu erstellen, besteht darin, die »alte« Paketversion

zu installieren und dem Paket quasi den neuen Quellcode unterzuschieben.

5 Long Time Support, engl. für Langzeitunterstützung.

213

Page 26: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 214 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Abhängigkeiten

Unter Umständen sind neue Softwareversionen nicht mehr mit vorhandenen Programm-

bibliotheken kompatibel. Dadurch kann es bei der Erstellung eines Update-Pakets zu Fehlern

kommen. In einigen Fällen reicht es, die Abhängigkeiten innerhalb des Pakets auf die »alten

Versionen« hin anzupassen.

Als Beispiel für das Erstellen eines Update-Pakets nehmen wir den Very Secure FTP Daemon

(vsftpd). Dieser wurde von den Entwicklern in der Version 3.0.3 im Juli 2015 als Quellcode zur

Verfügung gestellt. In Debian 8, CentOS 7 und openSUSE leap 42.1 ist der vsftpd lediglich in

der Version 3.0.2 enthalten, in Ubuntu 16.04 ist die aktuelle Version enthalten.

6.2.6 »rpm«-Update-Paket

Installieren Sie folgende Pakete, um rpm-Pakete erstellen zu können:

E gcc

E kernel-source

Für das vorliegende Beispiel vsftpd müssen zusätzlich folgende Pakete installiert werden:

E libopenssl-devel

E pam-devel

E libcap-devel

Vorbereitungen: CentOS

Erstellen Sie die benötigten Verzeichnisse und Dateien mit den Befehlen aus Listing 6.38. Da-

bei wird das Verzeichnis rpmbuild erzeugt und für das gleichnamige Programm vorbereitet.

[daniel@centos ~]$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}[daniel@centos ~]$ echo '%_topdir %(echo $HOME)/rpmbuild' > ~/.rpmmacros

Listing 6.38 Build-Umgebung erstellen

Damit Sie die Quellen eines Pakets herunterladen können, benötigen Sie das Programm

yumdownloader, das über das Paket yum-utils bereitgestellt wird. Installieren Sie dieses ent-

sprechend mit: yum install yum-utils. Nun können Sie die Paketquellen herunterladen und

in die Build-Umgebung installieren, wie in Listing 6.39 dargestellt:

[daniel@centos ~]$ yumdownloader --source vsftpd[…][daniel@centos ~]$ ls -l *.src.rpm-rw-rw-r--. 1 daniel daniel 251448 31. Mär 22:15 vsftpd-3.0.2-11.el7_2.src.rpm

214

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 215 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

[daniel@centos ~]$ cd rpmbuild[daniel@centos rpmbuild]$ rpm -ivh ../vsftpd-3.0.2-11.el7_2.src.rpm

Listing 6.39 Installation des Quellpakets

Vorbereitungen: openSUSE leap

Aktivieren Sie die Source-Quellen im YaST, oder legen Sie die Datei /etc/zypp/repos.d/repo-

source.repo mit dem Inhalt aus Listing 6.40 an:

[repo-source]name=openSUSE-Leap-42.1-Sourceenabled=1autorefresh=1baseurl=http://download.opensuse.org/source/distribution/leap/42.1/repo/oss/path=/type=yast2keeppackages=0

Listing 6.40 Aktivieren der Source-Quellen

Anschließend können Sie die Quellen mit dem Befehl aus Listing 6.41 herunterladen:

daniel@leap:~> sudo zypper source-install vsftpd

Listing 6.41 Installation des Quellpakets

Paketsuche

Falls Sie die Software nicht in den regulären Repositorys finden, dann sollten Sie einen kurzen

Blick auf http://software.opensuse.org werfen. Dort finden Sie viele Pakete, die in den regulä-

ren Repositorys nicht vorhanden sind.

Der Inhalt des Pakets wird in das Verzeichnis /usr/src/packages installiert. Dort finden Sie

den sogenannten build-tree, den wir bereits kennengelernt haben.

Allen rpm-Paketen, die erstellt werden, liegt diese Verzeichnisstruktur zugrunde. Das Pro-

gramm rpmbuild, das das eigentliche Erstellen übernimmt, verlangt, dass sich der Quellcode

und die zum Erstellen notwendige SPEC-Datei in dieser Verzeichnisstruktur befinden. Der

Quellcode befindet sich im Ordner SOURCE.

daniel@example:/usr/src/packages/SOURCE# lsREADME.SUSE vsftpd-3.0.2.tar.gz.ascvsftpd-2.0.4-dmapi.patch vsftpd-allow-dev-log-socket.patchvsftpd-2.0.4-enable-ssl.patch vsftpd-drop-newpid-from-clone.patchvsftpd-2.0.4-lib64.diff vsftpd-enable-dev-log-sendto.patch

215

Page 27: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 216 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

vsftpd-2.0.4-xinetd.diff vsftpd-enable-fcntl-f_setfl.patchvsftpd-2.0.5-enable-debuginfo.patch vsftpd-enable-gettimeofday-sec.patchvsftpd-2.0.5-utf8-log-names.patch vsftpd.firewallvsftpd-2.0.5-vuser.patch vsftpd.keyringvsftpd-2.1.0-filter.patch vsftpd.logrotatevsftpd-2.2.0-wildchar.patch vsftpd.pamvsftpd-2.3.4-sqb.patch vsftpd-path-normalize.patchvsftpd-2.3.5-conf.patch vsftpd-root-squashed-chroot.patchvsftpd-3.0.0_gnu_source_defines.patch vsftpd.servicevsftpd-3.0.0-optional-seccomp.patch [email protected] vsftpd.socketvsftpd-3.0.2.tar.gz vsftpd.xml

Listing 6.42 Dateiauflistung von »SOURCE«

Neben den Patch-Dateien mit der Endung patch und diff sowie den Kontroll-, Konfigurations-

und Dokumentationsdateien ist dort auch der eigentliche Quellcode des Pakets in der Datei

vsftpd-3.0.2.tar.gz abgelegt.

Da aus dem vorhandenen Paket ein Update-Paket erstellt wird, muss der Quellcode der Ver-

sion 3.0.2 entsprechend angepasst werden. Die SPEC-Datei, die die zentrale Konfigurations-

datei des Pakets darstellt, finden Sie unter /usr/src/packages/SPEC/vsftpd.spec.

Diese muss an die neue Version angepasst werden. Ändern Sie dafür die Versionsnummer

in den folgenden Zeilen auf »3.0.3«:

# spec file for package vsftpd (Version 3.0.2)[…]Version: 3.0.3[…]

Listing 6.43 Auszug »vsftpd.spec«

Erstellen Sie darüber hinaus einen Eintrag im ChangeLog (siehe Listing 6.44).

%changelog

* Sat May 21 2016 Daniel van Soest <[email protected]> - 3.0.3- Update to version 3.0.2[…]

Listing 6.44 Anpassung des »ChangeLog« in der »vsftpd.spec«

Anschließend wird das Update-Paket mittels rpmbuild erstellt.

daniel@example:~# rpmbuild -bb /usr/src/packages/SPECS/vsftpd.spec

Listing 6.45 Erstellen des neuen »rpm«-Pakets

216

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 217 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

Der Parameter -bbweist rpmbuild an, ein binäres Paket zu erzeugen. Dieses wird im build-tree

unter RPMS im Verzeichnis der entsprechenden Architektur abgelegt.

daniel@example:~# ls /usr/src/packages/RPMS/x86_64/vsftpd-3.0.3-15.1.x86_64.rpm

Listing 6.46 Erstelltes »rpm«-Paket

Installieren Sie das neu erstellte Paket wie gewohnt, um den vsftpd in der aktuellen Version

zu betreiben.

root@example:~# rpm -i /usr/src/packages/RPMS/x86_64/vsftpd-3.0.3-15.1.x86_64.rpm

Listing 6.47 Installation

Unter Umständen können vorhandene Patches nicht mehr auf die neuen Quellen ange-

wandt werden – dabei wird der Prozess mit einem Fehler beim Patch-Vorgang beendet. Die

fehlerhaften Patches können Sie in der Spec-Datei einfach auskommentieren. Beachten Sie,

dass gegebenfalls zwei Zeilen auskommentiert werden müssen: zum einen die Definition

(zum Beispiel #Patch12: vsftpd-allow-dev-log-socket.patch) und zum anderen der eigent-

liche Aufruf (zum Beispiel #%patch12 -p1).

Hinweis CentOS: »firewalld«

Da auf CentOS im Standard der Dienst firewalld aktiv ist, müssen Sie den Port 21 erlauben.

Führen Sie dafür die nachstehenden Befehle aus:

$ sudo firewall-cmd --permanent --add-port=21/tcp$ sudo firewall-cmd --reload

Anpassungen für openSUSE leap

Um das Paket unter openSUSE leap erstellen zu können, müssen Sie einen Patch von Hand

anpassen. Ersetzen Sie die Datei SOURCES/vsftpd-2.0.4-lib64.diff mit dem Inhalt aus Listing

6.48, da ansonsten die Erstellung fehlschlägt:

Index: vsf_findlibs.sh===================================================================--- vsf_findlibs.sh.orig 2012-04-10 16:09:50.571389404 +0200+++ vsf_findlibs.sh 2012-04-10 16:09:53.709496934 +0200@@ -13,7 +13,7 @@ fi# Look for PAM (done weirdly due to distribution bugs (e.g. Debian) or the# crypt library.if find_func pam_start sysdeputil.o; then

- locate_library /lib/libpam.so.0 && echo "/lib/libpam.so.0";+ locate_library /lib64/libpam.so.0 && echo "/lib64/libpam.so.0";

217

Page 28: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 218 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

locate_library /usr/lib/libpam.so && echo "-lpam";locate_library /usr/lib64/libpam.so && echo "-lpam";locate_library /lib/x86_64-linux-gnu/libpam.so.0 && echo "-lpam";

@@ -22,7 +22,7 @@ if find_func pam_start sysdeputil.o; the# AIX ends shared libraries with .alocate_library /usr/lib/libpam.a && echo "-lpam";

else- locate_library /lib/libcrypt.so && echo "-lcrypt";+ locate_library /lib64/libcrypt.so && echo "-lcrypt";

locate_library /usr/lib/libcrypt.so && echo "-lcrypt";locate_library /usr/lib64/libcrypt.so && echo "-lcrypt";locate_library /lib/x86_64-linux-gnu/libcrypt.so && echo "-lcrypt";

@@ -50,8 +50,8 @@ locate_library /usr/lib/libsec.sl && ech# Look for libcap (capabilities)if locate_library /lib/libcap.so.1; thenecho "/lib/libcap.so.1";

-elif locate_library /lib/libcap.so.2; then- echo "/lib/libcap.so.2";+elif locate_library /lib64/libcap.so.2; then+ echo "/lib64/libcap.so.2";elselocate_library /usr/lib/libcap.so && echo "-lcap";locate_library /lib/libcap.so && echo "-lcap";

Listing 6.48 Inhalt von »SOURCES/vsftpd-2.0.4-lib64.diff«

6.2.7 »deb«-Update-Pakete

Installieren Sie folgende Pakete, um deb-Pakete erzeugen zu können:

E devscripts

E build-essential

Laden Sie zunächst das Quellpaket des vsftpd herunter:

daniel@example:~/vsftpd# apt-get source vsftpd

Listing 6.49 Herunterladen des vorhandenen Quellcodes mittels »apt-get«

Dieses Paket dient als Basis, in die der aktuelle Quellcode eingespielt wird. Beachten Sie dabei,

dass Sie sich in einem leeren Verzeichnis befinden, da dort der Quellcode des Pakets instal-

liert wird. Im Beispiel haben wir den Quellcode in das Verzeichnis /home/<Benutzer>/vsftpd

installiert. Laden Sie nun den aktuellen Quellcode (https://security.appspot.com/vsftpd.html)

von der Projektseite, und speichern Sie diesen im Verzeichnis /home/<Benutzer>/vsftpd (sie-

he Listing 6.50).

218

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 219 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

daniel@example:~/vsftpd# ls -ldrwxr-xr-x 3 daniel daniel 4,0K Mai 21 12:16 .drwxr-xr-x 14 daniel daniel 4,0K Mai 21 12:16 ..drwxr-xr-x 10 daniel daniel 4,0K Mai 21 12:16 vsftpd-3.0.2-rw-r--r-- 1 daniel daniel 31K Feb 21 12:01 vsftpd_3.0.2-17+deb8u1.debian.tar.xz-rw-r--r-- 1 daniel daniel 2,0K Feb 21 12:01 vsftpd_3.0.2-17+deb8u1.dsc-rw-r--r-- 1 daniel daniel 150K Sep 21 2012 vsftpd_3.0.2.orig.tar.xz-rw-r--r-- 1 daniel daniel 193K Mai 21 12:26 vsftpd-3.0.3.tar.gz

Listing 6.50 Übersicht »vsftpd«

Nun können wir den »neuen« Quellcode dem »alten« Paket hinzufügen. Aktualisieren Sie

den Quellcode mittels uupdate, das Sie im Verzeichnis des alten Quellcodes (im Beispiel

/home/daniel/vsftpd/vsftpd-3.0.2) ausführen.

daniel@debian:~/vsftpd/vsftpd-3.0.2$ uupdate -u ../vsftpd-3.0.3.tar.gzNew Release will be 3.0.3-1.Symlinking to pristine source from vsftpd_3.0.3.orig.tar.gz...-- Untarring the new sourcecode archive ../vsftpd-3.0.3.tar.gzUnpacking the debian/ directory from version 3.0.2-17+deb8u1 worked fine.Remember: Your current directory is the OLD sourcearchive!Do a "cd ../vsftpd-3.0.3" to see the new package

Listing 6.51 Aktualisierung des Quellcodes

Nun wurde dem »alten« Paket der neue Quellcode untergeschoben. Modifizieren Sie nun

noch die Versionsnummer in der Datei /home/daniel/vsftpd/vsftpd-3.0.3/debian/control. Er-

höhen Sie den Wert von »Standards-Version: 3.9.6« um 1 auf »3.9.7«, da ansonsten das Erstel-

len des Pakets fehlschlägt.

Da einige Patches nicht mehr korrekt sind, müssen Sie diese korrigieren. Öffnen Sie zu-

nächst die Datei debian/patches/0035-address_space_limit.patch aus den »neuen« Quellen,

und passen Sie die fett gedruckten Zeichen aus Listing 6.52 an (im Standard: 100).

-#define VSFTP_AS_LIMIT 200UL * 1024 * 1024

Listing 6.52 Anpassungen in »0035-address_space_limit.patch«

Zusätzlich muss der Patch »0045« deaktiviert werden, da er mittlerweile Bestandteil der

Quellen ist. Öffnen Sie dafür die Datei debian/patches/series, und entfernen Sie dort die Zeile

0045-seccomp-gettimeofday.patch. Ebenso können Sie Patch-Datei selbst mittels rm debian/

patches/0045-seccomp-gettimeofday.patch löschen.

Erstellen Sie nun ein Binärpaket mittels debuild:

daniel@example:~/vsftpd/vsftpd-3.0.3# debuild -i -us -uc -b

Listing 6.53 Paket erstellen

219

Page 29: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 220 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Unter /home/<Benutzer>/vsftpd finden Sie das neu erstellte Paket vsftpd_3.0.3-1_ amd64.deb,

das Sie mit dpkg -i <PAKET> wie gewohnt installieren können.

6.2.8 Updatesicher konfigurieren

Zu den Nachteilen einer Paketverwaltung gehört, dass sie als root ausgeführt wird und somit

Vollzugriff auf alle Dateien haben kann. So kann es vorkommen, dass beim Aktualisieren von

Paketen vorhandene Konfigurationsdateien überschrieben werden.

Ein weiterer Nachteil besteht darin, dass Abhängigkeiten von den Paketverwaltungen nur so

weit verarbeitet werden können, wie diese von den Maintainern gepflegt wurden. Diese Um-

stände führen teilweise zu Störungen, deren Ursache nicht leicht auffindbar ist. In diesem

Abschnitt erfahren Sie, wie Sie den GAU vermeiden können.

Der »hold«-Status

Leider kommt es immer wieder vor, dass die Weiterentwicklung von Software länger dauert

als geplant. Dies kann zu Konflikten führen.

Die Entwicklung der Software Alpha steht still. Hingegen wird die Software Beta, von der

Alpha abhängt, stetig weiterentwickelt. Wenn nun »alte« Funktionen aus der Software Beta

nicht weiter in die »neuen« Versionen übernommen werden, kann die Software Alpha nicht

mehr ordnungsgemäß arbeiten. Ein weiteres Beispiel stellen Funktionen dar, die von älteren

Versionen unterstützt werden, aber in neuen Versionen fehlen.

Eine Paketverwaltung löst solche Probleme meist auf und unterbindet das weitere Einspie-

len von Updates für die entsprechende Software. Leider kommt es vor, dass Entwickler keine

Versionsangaben für abhängige Software einpflegen. Dann kommt es zum GAU. Um die-

sen zu verhindern, haben Sie die Möglichkeit, einzelne Pakete aus den Updates herauszu-

lösen, sodass die von Ihnen benötigte Software zwar im veralteten, aber dafür lauffähigen

Zustand bleibt. Hierfür wurde in den deb-Paketverwaltungen der hold-Status und unter der

rpm-Paketverwaltung der lock-Status implementiert.

Debian/Ubuntu

Unter deb-basierten Distributionen können Sie den Status von Paketen mittels dpkg und dem

Parameter --set-selections ändern. So setzen Sie das Paket vsftpd auf hold:

root@debian:~# echo "vsftpd hold" | dpkg --set-selections

Listing 6.54 »deb«-Paket auf »hold« setzen

openSUSE leap

Unter openSUSE leap können Sie den Status eines rpm-Pakets mittels zypper addlock <PA-

KET> sperren. Das Paket vsftpd sperren Sie mit folgendem Befehl:

220

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 221 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.2 Pakete im Eigenbau

daniel@leap:~> sudo zypper addlock vsftpdSpecified lock has been successfully added.

Listing 6.55 openSUSE leap: »rpm«-Paket auf »hold« setzen

CentOS

Unter CentOS müssen Sie zunächst das Paket yum-plugin-versionlock installieren. Anschlie-

ßend können Sie mit dem Befehl aus Listing 6.56 das Paket sperren.

[daniel@centos ~]$ sudo yum versionlock vsftpdGeladene Plugins: fastestmirror, versionlockAdding versionlock on: 0:vsftpd-3.0.2-11.el7_2versionlock added: 1

Listing 6.56 CentOS: Version von »rpm«-Paket sperren

Übersicht der gesperrten Pakete

Eine Übersicht der in deb-Systemen auf hold gesetzten Pakete erhalten Sie über den folgen-

den Befehl:

root@debian:~# dpkg --get-selections | grep holdvsftpd hold

Listing 6.57 Übersicht gesperrter »deb«-Pakete

Ebenso können Sie sich auf rpm-Systemen die als gesperrt markierten Pakete anzeigen las-

sen. Verwenden Sie dafür zypper auf openSUSE leap und yum auf CentOS:

### openSUSE leapdaniel@leap:~> zypper locks# | Name | Typ | Repository--+--------+---------+-----------1 | vsftpd | package | (beliebig)

### CentOS[daniel@centos ~]$ yum versionlockGeladene Plugins: fastestmirror, versionlock0:vsftpd-3.0.2-11.el7_2.*versionlock list done

Listing 6.58 Übersicht gesperrter »rpm«-Pakete

Konfigurationsdateien

Prüfen Sie die aktuellen Paketverwaltungen, ob Veränderungen an vorhandenen Konfigu-

rationsdateien vorgenommen wurden, und legen Sie entsprechend Sicherungskopien an,

sodass bei einem Update Ihre »alte« Konfiguration nicht blind überschrieben wird.

221

Page 30: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 222 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

»rpm«

Bei der Installation untersucht rpm, ob es Änderungen an der Konfigurationsdatei gibt. Je

nachdem, wie das Paket erstellt wurde, wird Ihre aktuelle Konfigurationsdatei ersetzt und

eine Sicherheitskopie erzeugt (Suffix: .rpmsave oder .rpmorig), oder Ihre Konfigurationsdatei

bleibt bestehen, und die »neue« Konfigurationsdatei wird mit dem Suffix .rpmnew angelegt.

».rpmsave«, ».rpmorig« und ».rpmnew«

Kontrollieren Sie nach »großen« Updates, ob diese Dateien existieren, und passen Sie gegebe-

nenfalls Ihre Konfiguration an!

»deb«

Bei »deb«-basierten Systemen wird ein anderer Ansatz verfolgt. Hier wird ebenfalls geprüft,

ob eine lokale Konfigurationsdatei existiert.

Wird mit dem »neuen« Paket eine Konfigurationsdatei ausgeliefert, wird Ihnen die Wahl

gelassen:

Abbildung 6.1 Auswahl zur Änderung der Konfigurationsdatei »samba«

Falls dies nicht im Paket konfiguriert wurde, wird Ihre bisherige Konfigurationsdatei beibe-

halten.

6.3 Updates nur einmal laden: »Cache«

Bandbreite ist Zeit, und Zeit ist kostbar. Es ist ärgerlich, wenn ein und dasselbe Update von

zehn (oder mehr) Ihrer Server Ihre Internetleitung minutenlang bis zum Anschlag füllt. Vor

allem dann, wenn es doch ausreichen würde, das Update einmal aus dem Internet herunter-

zuladen und in Ihrem Netzwerk zu verteilen!

222

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 223 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.3 Updates nur einmal laden: »Cache«

6.3.1 »deb«-basierte Distributionen: »apt-cacher-ng«

Der apt-cacher-ng stellt umfangreiche Funktionen zur Verfügung. Mit ihm können Sie einen

effizienten Cache betreiben, er lässt multiple Zugriffe zu und bietet Ihnen auch noch Aus-

wertungsmöglichkeiten.

6.3.2 Installation

Installieren Sie folgende Pakete aus den Paketquellen:

E apt-cacher-ng

Die benötigten Abhängigkeiten werden automatisch mit installiert.

6.3.3 Konfiguration

Nach der Installation des Pakets apt-cacher-ng finden Sie unter /etc/apt-cacher-ng die gut do-

kumentierte Konfigurationsdatei acng.conf des Dienstes. In der Standardkonfiguration sind

bereits einige Parameter gesetzt. Listing 6.59 zeigt den Inhalt der Datei ohne die beschrei-

benden Kommentarzeilen:

CacheDir: /var/cache/apt-cacher-ngLogDir: /var/log/apt-cacher-ngRemap-debrep: file:deb_mirror*.gz /debian ; file:backends_debian # Debian ArchivesRemap-uburep: file:ubuntu_mirrors /ubuntu ; file:backends_ubuntu # Ubuntu ArchivesRemap-cygwin: file:cygwin_mirrors /cygwin # ; file:backends_cygwin \# incomplete, please create this file or specify preferred mirrors here

Remap-sfnet: file:sfnet_mirrors # ; file:backends_sfnet \# incomplete, please create this file or specify preferred mirrors here

Remap-alxrep: file:archlx_mirrors /archlinux # ; file:backend_archlx # Arch LinuxRemap-fedora: file:fedora_mirrors # Fedora LinuxRemap-epel: file:epel_mirrors # Fedora EPELRemap-slrep: file:sl_mirrors # Scientific LinuxRemap-gentoo: file:gentoo_mirrors.gz /gentoo ; file:backends_gentoo \# Gentoo Archives

ReportPage: acng-report.htmlExTreshold: 4LocalDirs: acng-doc /usr/share/doc/apt-cacher-ng

Listing 6.59 Auszug der Standardwerte: »acng.conf«

Dabei sind folgende dienstspezifische Parameter konfiguriert:

E CacheDir

Verzeichnis, in dem der Cache abgelegt wird

223

Page 31: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 224 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

E LogDir

Verzeichnis, in dem die Log-Dateien abgelegt werden

E Port

Definition des TCP-Ports, auf dem der Dienst lauscht (Standard: 3142)

E ExTreshold

Angabe in Tagen, ab wann ein nicht referenziertes Paket als abgelaufen betrachtet wird

Zusätzlich können Sie auch nachstehende Parameter konfigurieren:

E VerboseLog, Debug, ForeGround

Parameter zur Fehleranalyse

E Offlinemode

steuert das Verhalten, wenn keine Internetverbindung existiert

E StupidFs

steuert zusätzliche Maßnahmen, wenn der Cache auf einem NTFS- oder FAT-Dateisystem

betrieben wird

E Proxy

Darüber kann ein übergeordneter Proxy-Server angegeben werden, falls Ihr Server nicht

direkt mit dem Internet kommunizieren kann.

Neben diesen dienstspezifischen Konfigurationen findet das Remapping über den Parameter

Remap- statt. In jeder Zeile wird definiert, für welche Anfragen eine entsprechende Datei

(Angabe nach dem Parameter file) geladen werden soll. In diesem Zusammenhang spricht

man auch von backends.

Wie Sie Listing 6.59 entnehmen können, sind neben den Ubuntu-Quellen auch direkt Debi-

an, cygwin, Arch-Linux, Fedora und weitere Quellen definiert. Zu der reinen Konfiguration

des Remappings gehört aber noch eine jeweilige Datei, in der das eigentliche Mapping statt-

findet. Im Standard finden Sie bereits für Debian und Ubuntu entsprechende backends unter

/etc/apt-cacher-ng.

Schauen wir uns diese für Ubuntu mal genauer an, wie in Listing 6.60 dargestellt:

http://de.archive.ubuntu.com/ubuntu/

Listing 6.60 Standardwerte: »backends_ubuntu«

Darüber wird definiert, wie die Anfragen der Clients übersetzt werden sollen. Die Standard-

konfiguration ist sofort einsetzbar und muss nicht angepasst werden. Falls Sie Verände-

rungen vorgenommen haben, müssen Sie diese dem apt-cacher-ng über ein Neuladen der

Konfiguration bekannt machen. Das Neuladen können Sie mittels systemctl reload apt-ca-

cher-ng durchführen.

224

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 225 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.3 Updates nur einmal laden: »Cache«

6.3.4 Clientkonfiguration

Die Clientkonfiguration geht schnell von der Hand, da nur eine Datei editiert werden muss.

Passen Sie bei den Clients die Konfigurationsdatei /etc/apt/apt.conf.d/01proxy an, ändern Sie

diese, oder erstellen Sie sie, wie in Listing 6.61 dargestellt:

Acquire::http::Proxy "http://<HOSTNAME oder IP des CACHE>:3142";

Listing 6.61 Clientkonfiguration: »01proxy«

Da kein Dienst im Hintergrund läuft, ist keine weitere Aktion notwendig. Alle zukünftigen

Downloads werden nun über den apt-cacher-ng geladen.

6.3.5 Fütterungszeit – bereits geladene Pakete dem Cache hinzufügen

Falls Sie den apt-cacher-ng auf einem System betreiben, das bereits Updates geladen hat,

können Sie diese Ihrem frischen Cache hinzufügen. So können Sie bereits die erste Band-

breitenersparnis generieren. Dafür müssen folgende Schritte durchlaufen werden:

1. Lokale Proxy-Konfiguration

Zunächst müssen Sie dem Server mitteilen, dass er ebenfalls über den apt-cacher-ng

Updates laden soll (siehe Abschnitt 6.3.4, »Clientkonfiguration«).

2. Paketlisten laden

Laden Sie nun die aktuellen Paketlisten herunter, darüber werden dem apt-cacher-ng die

bereits vorhandenen Pakete bekannt gemacht:

apt-cache update

3. Aufräumen der Pakete

Nun sollten Sie zunächst die benötigten Pakete von Ihrem Server entfernen. Nutzen Sie

dafür folgenden Befehl:

apt-get autoclean

4. Verzeichnis »_import« anlegen

Erstellen Sie das Verzeichnis _import mittels nachfolgenden Befehls:

mkdir -p /var/cache/apt-cacher-ng/_import

5. Rechte anpassen

Passen Sie die Rechte an dem soeben erstellten Verzeichnis an, damit der apt-cacher-ng

dies auch benutzen kann. Setzen Sie dafür den nachstehenden Befehl ab:

chown apt-cacher-ng /var/cache/apt-cacher-ng/_import

6. Kopieren der Pakete

Kopieren Sie nun die lokalen Pakete in das Importverzeichnis mit folgendem Befehl:

cp -al /var/cache/apt/archives/* /var/cache/apt-cacher-ng/_import/

225

Page 32: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 226 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

7. Importvorgang starten

Sie können den Importvorgang über den Button Start Import auf dem Webinterface

von apt-cacher-ng (http://localhost:3142/acng-report.html) starten (siehe Abbildung 6.2).

8. Aufräumen

Nach dem erfolgreichen Import wird das Verzeichnis _import nicht länger benötigt. Ent-

fernen Sie es mit nachfolgendem Befehl:

rm -rf /var/cache/apt-cacher-ng/_import

Abbildung 6.2 Import über das Webinterface

Herzlichen Glückwunsch, Sie haben soeben die erste Bandbreitenersparnis erzeugt! Diesen

Vorgang müssen Sie nur einmal umsetzen. Sobald Ihre Server den apt-cacher-ng verwenden,

füllt sich der Cache automatisch.

6.3.6 Aufräumen – Zweige aus dem Cache entfernen

Durch die Benutzung von apt-cacher-ng wird viel Plattenplatz benötigt. Falls dieser einmal

knapp wird, können Sie zum Beispiel veraltete Distributionen, die Sie im Haus gar nicht

mehr betreiben, aus Ihrem Cache entfernen. Hierfür wurde das Skript distkill.pl geschaffen.

Darüber können Sie gezielt Distributionen aus dem Cache entfernen. Listing 6.62 zeigt die

Übersicht nach dem Start:

daniel@example:~# sudo /usr/lib/apt-cacher-ng/distkill.pl

Scanning /var/cache/apt-cacher-ng, please wait...Found distributions:bla, taggedcount: 0

1. xenial-security (2 index files)2. xenial-updates (4 index files)3. jessie (31 index files)4. trusty-backports (54 index files)5. xenial (4 index files)6. jessie-updates (18 index files)

226

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 227 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.3 Updates nur einmal laden: »Cache«

7. xenial-backports (2 index files)8. trusty (64 index files)9. trusty-security (54 index files)10. trusty-updates (54 index files)

Found architectures:11. amd64 (41 index files)12. i386 (32 index files)

WARNING: The removal action may wipe out whole directories containingindex files. Select d to see detailed list.

(Number nn: tag distribution or architecture nn; 0: exit; d: show details; \r: remove tagged; q: quit):

Listing 6.62 Distributionen aus dem Cache entfernen: »distkill.pl«

In der letzten Zeile der Ausgabe aus Listing 6.62 sind Hinweise zum Umgang mit dem

Programm aufgelistet. Das Skript wird über Tasten gesteuert, diese haben nachstehende

Bedeutung:

E (1) – (9): Auswahl der Repositorys – die Nummerierung steht jeweils vor den Einträgen.

E (0): kehrt zur vorherigen Auswahl zurück

E (D): zeigt Details zu dem ausgewählten Repository an

E (R): entfernt das ausgewählte Repository

E (Q): beendet das Programm

6.3.7 Details: »Report-HTML«

Wenn der Dienst gestartet ist, können Sie über die URL http://<IP>:3142/acng-report.html

Statusinformationen abrufen, wie in Abbildung 6.3 dargestellt. Beachten Sie dabei, dass Sie

<IP> durch die IP-Adresse Ihres Servers ersetzen. Selbst kleine Konfigurationen können Sie

auf der Webseite vornehmen. Einen Blick ist sie allemal wert.

Abbildung 6.3 Report-HTML: »apt-cacher-ng«

227

Page 33: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 228 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

6.3.8 »rpm«-basierte Distributionen

Dieser Abschnitt fällt äußerst kurz aus. Leider gibt es für rpm-basierte Distributionen kei-

ne angepasste Software, die einen Repository-Cache bereitstellt. Selbstverständlich können

Sie einen Squid oder Nginx dafür missbrauchen. Diesen fehlen allerdings die notwendigen

Fähigkeiten, um mit Paketen anständig umzugehen. Daher empfehlen wir Ihnen, darauf zu

verzichten.

6.4 Alles meins: »Mirror«

Im Gegensatz zum Proxy oder Cache wird bei einem Mirror das gesamte Repository gespie-

gelt. Dadurch können Sie ein vollständiges System installieren, ohne auch nur ein Paket aus

dem Internet zu laden. Allerdings benötigt ein vollständiger Spiegel auch sehr viel Platten-

platz. Pro Sektion können schon mal 20 GB zusammenkommen. Achten Sie also darauf, dass

Ihr System genügend Platz zur Verfügung hat.

6.4.1 »deb«-basierte Distributionen: »debmirror«

Installieren Sie folgende Pakete:

E debmirror

E ubuntu-keyring (auf Ubuntu) oder debian-keyring (auf Debian)

E apache2

Die benötigten Abhängigkeiten werden automatisch mit installiert. Im Beispiel verwenden

wir ein Ubuntu-System, passen Sie daher gegebenenfalls die Befehle Ihrer Umgebung an.

6.4.2 Konfiguration

Da debmirror kein eigener Dienst ist, sondern nur ein Programm zur Verfügung stellt, müs-

sen Sie die Struktur selbst aufbauen. Dazu gehören folgende Arbeitsschritte:

1. Benutzer und Gruppe anlegen

2. Verzeichnisstruktur anlegen

3. Mirror-Skript erstellen (Ubuntu)

4. Cronjobs einrichten

5. Schlüssel importieren

6. Mirror erstellen

7. Mirror verfügbar machen – Webdienst konfigurieren

8. Clientkonfiguration

228

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 229 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.4 Alles meins: »Mirror«

6.4.3 Benutzer und Gruppe anlegen

Erstellen Sie zunächst einen eigenen Benutzer, der für den Spiegel zuständig ist. Das hat den

Vorteil, dass die Erzeugung des Spiegels nicht mit root-Rechten durchgeführt werden muss.

daniel@server:/# sudo groupadd mirrordaniel@server:/# sudo useradd -g mirror -d /var/www/mirror -s /bin/bash -m \-c "Ubuntu Mirror" mirror

Listing 6.63 Benutzer und Gruppe »mirror« anlegen

In Listing 6.63 wird zunächst die Gruppe mirror angelegt. Anschließend wird der Benutzer

mirror mit useradd erzeugt, die Parameter haben dabei nachstehende Bedeutung:

E -g = weist den Benutzer einer Gruppe zu, hier mirror.

E -d= Das Homeverzeichnis des Benutzers wird auf die nachstehende Pfadangabe geändert,

hier /var/www/mirror. Da der Benutzer nur als Dienstgeber fungiert, sollte der Spiegel

auch unter /var/ liegen und nicht unter /home/.

E -s = setzt die Shell des Benutzers auf die Bash.

E -m = Falls das angegebene Homeverzeichnis nicht existiert, wird es mit angelegt.

E -c = Der Benutzer wird mit einem Kommentar versehen, hier »Ubuntu Mirror«.

E mirror = gibt den Benutzernamen an, der erzeugt wird.

6.4.4 Verzeichnisstruktur anlegen

Nun können wir die Verzeichnisstruktur anlegen. Dazu wechseln wir mittels su zum neu

angelegten Benutzer und erstellen die benötigten Verzeichnisse unter seinem Namen, wie

es Listing 6.64 darstellt:

daniel@server:/# sudo su - mirrormirror@server:/# mkdir -p ~/bin ~/ubuntu ~/ubuntu-security ~/ubuntu-updates \~/ubuntu-backports

Listing 6.64 Verzeichnisse anlegen

Da die Verzeichnisse direkt als Benutzer mirror erzeugt wurden, sind die Rechte bereits kor-

rekt gesetzt.

6.4.5 Mirror-Skript erstellen (Ubuntu)

Damit der Spiegel erstellt und regelmäßig aktualisiert wird, empfiehlt sich der Einsatz eines

Skripts, das über den cron zyklisch gestartet wird. In unserem Beispiel erzeugen wir Skripte

für das Spiegeln von Ubuntu.

229

Page 34: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 230 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

Dazu erstellen wir ein zentrales Skript, das mit einem Parameter aufgerufen werden muss.

Der Parameter gibt das zu spiegelnde Repository an. Erstellen Sie also zunächst die Datei

/var/www/mirror/bin/mirror-ubuntu.sh mit dem Inhalt aus Listing 6.65, und geben Sie dem

Skript Ausführungsrechte mittels chmod +x mirror-ubuntu.sh:

1: #!/bin/bash2: #3: # Mirror Ubuntu-Repostiories4: #5: # VARS6: # $1 sets the repository name7:8: REPO=$19: if [ -z $REPO ] ; then10: logger -t mirror-$REPO[$$] ERROR no repository name given!11: exit 112: fi13:14: logger -t mirror-$REPO[$$] Updating $REPO15:16: debmirror \17: --passive \18: --progress \19: --nosource \20: --host=de.archive.ubuntu.com \21: -e http \22: --root=ubuntu \23: --dist=trusty,xenial \24: --section=multiverse,universe,restricted,main \25: --arch=i386,amd64 \26: --verbose \27: /var/www/mirror/$REPO28:29: logger -t mirror-$REPO[$$] Finished Updating Ubuntu

Listing 6.65 Skript zum Laden der Spiegel: »mirror-ubuntu.sh«

Da dieses Skript zugegebenermaßen doch etwas umfangreicher ist, schauen wir uns die

einzelnen Zeilen nun im Detail an:

E Zeile 1

Der shebang des Skripts gibt an, mit welcher Sprache es interpretiert werden soll.

E Zeile 2–7

Kommentare, die das Skript und dessen Variablen beschreiben

230

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 231 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6

6.4 Alles meins: »Mirror«

E Zeile 8

weist der Variablen REPO den ersten übergebenen Parameter ($1) zu.

E Zeile 9–12

prüft, ob ein Repository-Name übergeben wurde. Wenn nicht, wird mit einer Fehlermel-

dung abgebrochen.

E Zeile 14

protokolliert im syslog, dass das Update begonnen hat.

E Zeile 16–27

führt das Update aus (die Details erläutern wir im Anschluss).

E Zeile 29

protokolliert im syslog, dass das Update beendet wurde.

Der in Zeile 16–27 von Listing 6.65 dargestellte Aufruf von debmirror enthält viele Parameter,

die wir uns nun genauer ansehen:

E --passive

setzt den Download-Modus von FTP auf passiv.

E --progress

stellt einen Fortschrittsbalken beim Download dar. Dies ist nur relevant, wenn Sie das

Skript von Hand auf einer Konsole ausführen.

E --nosource

gibt an, dass keine Quellen geladen werden sollen, sondern nur Binärpakete.

E --host

gibt den Server an, von dem der Spiegel geladen werden soll. Wählen Sie stets einen

Server, der eine gute Verfügbarkeit hat und in Ihrer Nähe ist. Im Beispiel wurde

de.archive.ubuntu.com verwendet, was eine gute Wahl ist, da sich dahinter stets mehrere

verfügbare und vollständige Repositorys verbergen.

E -e

gibt das Übertragungsprotokoll an. Im Beispiel haben wir http verwendet.

E --root

setzt das Wurzelverzeichnis auf dem Quellserver, in dem die Ubuntu-Archive liegen.

Wenn nicht anders angegeben, wird im Standard stets ubuntu verwendet.

E --dist

spezifiziert durch Komma getrennt, welche Distributionen geladen werden sollen. Das

Beispielskript in Listing 6.65 lädt die LTS-Versionen Trusty und Xenial. Falls Sie aus-

schließlich die Version 16.04 im Einsatz haben, können Sie den Parameter entsprechend

anpassen.

E --section

gibt die Sektionen an, die geladen werden sollen.

231

Page 35: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 232 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: paketmanagement/paketmanagement , Aktueller Job: administration

6 Paketmanagement

E --arch

spezifiziert durch Komma getrennt die Architektur. Falls Sie nur 64-Bit-Systeme betrei-

ben, genügt es auch, nur diese Pakete zu spiegeln.

E --verbose

erweitert die Ausgabe.

E /var/www/mirror/$REPO

gibt den lokalen Speicherort des jeweiligen Spiegels an. Über den Parameter $REPO wird

also auch das Verzeichnis angegeben. Soll zum Beispiel das ubuntu-security-Repository

gespiegelt werden, dann finden Sie die Daten unter /var/www/mirror/ubuntu-security.

Bei wenig Plattenplatz: »precleanup«

Falls Ihr Spiegelsystem nicht genügend Plattenplatz hat, können Sie dem Programm debmir-ror den Parameter --precleanup hinzufügen. Dieser sorgt dafür, dass vor dem Download Ihr

lokaler Spiegel aufgeräumt wird. Die Entwickler warnen aber davor, dass dies zu einem inkon-

sistenten Spiegel führen kann. Setzen Sie diesen Parameter also nur im Notfall ein.

6.4.6 Cronjobs einrichten

Damit Sie nicht ständig alle Updates von Hand anstoßen müssen, können Sie mehrere Cron-

jobs einrichten, die das für Sie erledigen. Vorzugsweise sollte der Spiegel in der Nacht erzeugt

werden, da in der Regel dann niemand Ihre Internetleitung benötigt.

Erzeugen Sie also für den Benutzer mirror die notwendigen Cronjobs. Dazu benutzen wir das

Tool crontab wie in Listing 6.66 dargestellt:

daniel@server:/# sudo crontab -e -u mirror

Listing 6.66 Cronjobs des Benutzers »mirror« öffnen

Fügen Sie anschließend die Zeilen aus Listing 6.67 in den sich öffnenden Editor ein:

0 1 * * * bash -l -c "/var/www/mirror/bin/mirror-ubuntu.sh ubuntu"0 2 * * * bash -l -c "/var/www/mirror/bin/mirror-ubuntu.sh ubuntu-security"0 3 * * * bash -l -c "/var/www/mirror/bin/mirror-ubuntu.sh ubuntu-updates"0 4 * * * bash -l -c "/var/www/mirror/bin/mirror-ubuntu.sh ubuntu-backports"

Listing 6.67 Cronkonfiguration

Damit geben Sie an, dass jede Nacht ab 01:00 Uhr stündlich die Updates laufen sollen. Über

die Parameter nach dem Skript mirror-ubuntu.sh definieren Sie, welche Repositorys gela-

den werden sollen. Falls Sie also keine Pakete aus den Backports benötigen, können Sie die

entsprechende Zeile einfach entfernen.

232

Page 36: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Auf einen Blick

TEIL IGrundlagen .................................................................................................. 61

TEIL IIAufgaben ...................................................................................................... 193

TEIL IIIDienste .......................................................................................................... 291

TEIL IVInfrastruktur ................................................................................................ 735

TEIL VKommunikation .......................................................................................... 801

TEIL VIAutomatisierung ........................................................................................ 963

TEIL VIISicherheit, Verschlüsselung und Zertifikate ..................................... 1019

Auf einen Blick

Page 37: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 5 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

Inhalt

Vorwort ............................................................................................................................................ 29

Über dieses Buch ............................................................................................................................. 37

1 Der Administrator 41

1.1 Der Beruf des Systemadministrators ............................................................................ 41

1.1.1 Berufsbezeichnung und Aufgaben ............................................................... 41

1.1.2 Job-Definitionen ............................................................................................. 42

1.1.3 Definitionen der Management-Level ........................................................... 47

1.2 Nützliche Fähigkeiten und Fertigkeiten ....................................................................... 48

1.2.1 Soziale Fähigkeiten ......................................................................................... 49

1.2.2 Arbeitstechniken ........................................................................................... 49

1.3 Das Verhältnis vom Administrator zu Normalsterblichen ........................................ 51

1.3.1 Der Chef und andere Vorgesetzte ................................................................. 51

1.3.2 Benutzer .......................................................................................................... 52

1.3.3 Andere Administratoren ................................................................................ 52

1.4 Unterbrechungsgesteuertes Arbeiten .......................................................................... 53

1.5 Einordnung der Systemadministration ........................................................................ 54

1.5.1 Arbeitsgebiete ................................................................................................ 54

1.5.2 DevOps ........................................................................................................... 57

1.6 Ethischer Verhaltenskodex ............................................................................................. 58

1.7 Administration – eine Lebenseinstellung? .................................................................. 60

TEIL I Grundlagen

2 Bootvorgang 63

2.1 Einführung ......................................................................................................................... 63

2.2 Der Bootloader GRUB 2 .................................................................................................... 63

2.2.1 Funktionsweise ............................................................................................... 63

2.2.2 Installation ...................................................................................................... 64

2.2.3 Konfiguration .................................................................................................. 64

5

Page 38: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 6 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

2.3 Bootloader Recovery ........................................................................................................ 70

2.4 Der Kernel und die »initrd« ............................................................................................. 72

2.4.1 »initrd« erstellen und modifizieren .............................................................. 72

2.4.2 »initrd« manuell modifizieren ...................................................................... 76

2.5 »systemd« .......................................................................................................................... 77

2.5.1 Begrifflichkeiten ............................................................................................. 78

2.5.2 Kontrollieren von Diensten ........................................................................... 79

2.5.3 Aktivieren und Deaktivieren von Diensten ................................................. 81

2.5.4 Erstellen und Aktivieren eigener Service Units ........................................... 82

2.5.5 Target Units .................................................................................................... 84

2.5.6 »systemd«- und Servicekonfigurationen ..................................................... 85

2.5.7 Anzeige von Dienstabhängigkeiten .............................................................. 86

2.5.8 Logs mit »journald« ........................................................................................ 88

2.5.9 Abschlussbemerkung ..................................................................................... 89

3 Festplatten und andere Devices 91

3.1 RAID ..................................................................................................................................... 91

3.1.1 RAID-0 .............................................................................................................. 92

3.1.2 RAID-1 .............................................................................................................. 92

3.1.3 RAID-5 .............................................................................................................. 92

3.1.4 RAID-6 .............................................................................................................. 93

3.1.5 RAID-10 ............................................................................................................ 93

3.1.6 Zusammenfassung ........................................................................................ 94

3.1.7 Weich, aber gut: Software-RAID ................................................................... 95

3.1.8 Software-RAID unter Linux ............................................................................ 96

3.1.9 Abschlussbemerkung zu RAIDs ..................................................................... 103

3.2 Rein logisch: Logical Volume Manager »LVM« ............................................................ 104

3.2.1 Grundlagen und Begriffe ............................................................................... 106

3.2.2 Setup ................................................................................................................ 107

3.2.3 Aufbau einer Volume Group mit einem Volume ......................................... 108

3.2.4 Erweiterung eines Volumes ........................................................................... 111

3.2.5 Eine Volume Group erweitern ....................................................................... 111

3.2.6 Spiegelung zu einem Volume hinzufügen ................................................... 113

3.2.7 Eine defekte Festplatte ersetzen ................................................................... 114

3.2.8 Backups mit Snapshots ................................................................................. 115

3.2.9 Mirroring ausführlich .................................................................................... 119

6

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 7 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

3.2.10 Thin Provisioning ............................................................................................ 122

3.2.11 Kommandos .................................................................................................... 126

3.3 »udev« ................................................................................................................................ 127

3.3.1 »udev«-Regeln ................................................................................................ 127

3.3.2 Eigene Regeln schreiben ................................................................................ 129

3.4 Alles virtuell? »/proc« ..................................................................................................... 131

3.4.1 CPU .................................................................................................................. 131

3.4.2 RAM .................................................................................................................. 133

3.4.3 Kernelkonfiguration ....................................................................................... 134

3.4.4 Kernelparameter ............................................................................................. 134

3.4.5 Gemountete Dateisysteme ........................................................................... 135

3.4.6 Prozessinformationen .................................................................................... 135

3.4.7 Netzwerk ......................................................................................................... 137

3.4.8 Änderungen dauerhaft speichern ................................................................ 137

3.4.9 Abschlussbemerkung ..................................................................................... 138

4 Dateisysteme 139

4.1 Dateisysteme: von Bäumen, Journalen und einer Kuh ............................................. 139

4.1.1 Bäume ............................................................................................................. 140

4.1.2 Journale ........................................................................................................... 142

4.1.3 Und die Kühe? COW-fähige Dateisysteme .................................................. 143

4.2 Praxis ................................................................................................................................... 143

4.2.1 Ext2/3-FS aufgebohrt: mke2fs, tune2fs, dumpe2fs, e2label ...................... 143

4.2.2 ReiserFS und seine Tools ................................................................................ 146

4.2.3 XFS ................................................................................................................... 147

4.2.4 Das Dateisystem vergrößern oder verkleinern ............................................ 148

4.2.5 BtrFS ................................................................................................................. 150

4.3 Fazit ..................................................................................................................................... 156

5 Berechtigungen 157

5.1 User, Gruppen und Dateisystemstrukturen ................................................................ 157

5.2 Dateisystemberechtigungen .......................................................................................... 160

5.2.1 Spezialbits ....................................................................................................... 161

7

Page 39: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 8 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

5.3 Erweiterte Posix-ACLs ...................................................................................................... 164

5.3.1 Das Setzen und Anzeigen von einfachen ACLs ............................................ 165

5.3.2 Setzen von Default-ACLs ................................................................................ 167

5.3.3 Setzen von erweiterten ACLs ........................................................................ 169

5.3.4 Entfernen von ACLs ........................................................................................ 171

5.3.5 Sichern und Zurückspielen von ACLs ............................................................ 172

5.4 Erweiterte Dateisystemattribute .................................................................................. 173

5.4.1 Attribute, die jeder Benutzer ändern kann .................................................. 173

5.4.2 Attribute, die nur »root« ändern kann ......................................................... 174

5.4.3 Weitere Attribute ........................................................................................... 175

5.5 Quotas ................................................................................................................................. 175

5.5.1 Installation und Aktivierung der Quotas ..................................................... 176

5.5.2 Journaling-Quotas .......................................................................................... 177

5.5.3 Quota-Einträge verwalten ............................................................................. 178

5.6 Pluggable Authentication Modules (PAM) .................................................................. 182

5.6.1 Verschiedene PAM-Typen ............................................................................... 183

5.6.2 Die PAM-Kontrollflags .................................................................................... 184

5.6.3 Argumente zu den Modulen ......................................................................... 184

5.6.4 Modulpfade .................................................................................................... 185

5.6.5 Module und ihre Aufgaben ........................................................................... 185

5.6.6 Die neuere Syntax bei der PAM-Konfiguration ............................................ 186

5.7 Konfiguration von PAM ................................................................................................... 188

5.8 »ulimit« .............................................................................................................................. 190

5.8.1 Setzen der »ulimit«-Werte ............................................................................ 191

5.9 Abschlussbemerkung ....................................................................................................... 192

TEIL II Aufgaben

6 Paketmanagement 195

6.1 Paketverwaltung ............................................................................................................... 195

6.1.1 »rpm« oder »deb«? ......................................................................................... 196

6.1.2 »yum«, »yast«, »zypper« oder »apt«? ........................................................... 198

6.1.3 Außerirdische an Bord – »alien« ................................................................... 200

6.2 Pakete im Eigenbau .......................................................................................................... 201

6.2.1 Vorbereitungen ............................................................................................... 201

6.2.2 Am Anfang war das Makefile ........................................................................ 202

8

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 9 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

6.2.3 Vom Fellknäuel zum Paket ............................................................................. 205

6.2.4 Patchen mit »patch« und »diff« ................................................................... 211

6.2.5 Updates ohne Repository .............................................................................. 213

6.2.6 »rpm«-Update-Paket ...................................................................................... 214

6.2.7 »deb«-Update-Pakete .................................................................................... 218

6.2.8 Updatesicher konfigurieren .......................................................................... 220

6.3 Updates nur einmal laden: »Cache« ............................................................................. 222

6.3.1 »deb«-basierte Distributionen: »apt-cacher-ng« ........................................ 223

6.3.2 Installation ...................................................................................................... 223

6.3.3 Konfiguration .................................................................................................. 223

6.3.4 Clientkonfiguration ........................................................................................ 225

6.3.5 Fütterungszeit – bereits geladene Pakete dem Cache hinzufügen ........... 225

6.3.6 Aufräumen – Zweige aus dem Cache entfernen ........................................ 226

6.3.7 Details: »Report-HTML« ................................................................................. 227

6.3.8 »rpm«-basierte Distributionen ..................................................................... 228

6.4 Alles meins: »Mirror« ....................................................................................................... 228

6.4.1 »deb«-basierte Distributionen: »debmirror« .............................................. 228

6.4.2 Konfiguration .................................................................................................. 228

6.4.3 Benutzer und Gruppe anlegen ...................................................................... 229

6.4.4 Verzeichnisstruktur anlegen ......................................................................... 229

6.4.5 Mirror-Skript erstellen (Ubuntu) ................................................................... 229

6.4.6 Cronjobs einrichten ........................................................................................ 232

6.4.7 Schlüssel importieren .................................................................................... 233

6.4.8 Mirror erstellen ............................................................................................... 233

6.4.9 Mirror verfügbar machen – Webdienst konfigurieren ............................... 234

6.4.10 Clientkonfiguration ........................................................................................ 234

6.4.11 rpm-basierte Distributionen ......................................................................... 235

6.4.12 Benutzer und Gruppe anlegen ...................................................................... 235

6.4.13 Verzeichnisstruktur anlegen: »openSUSE leap« .......................................... 236

6.4.14 Verzeichnisstruktur anlegen: »CentOS« ...................................................... 236

6.4.15 Mirror-Skript erstellen .................................................................................... 236

6.4.16 Cronjobs einrichten ........................................................................................ 237

6.4.17 Mirror erstellen ............................................................................................... 238

6.4.18 Mirror verfügbar machen – Webdienst konfigurieren ............................... 239

6.4.19 Clientkonfiguration: »openSUSE leap« ........................................................ 240

6.4.20 Clientkonfiguration: »CentOS« ..................................................................... 240

9

Page 40: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 10 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

7 Backup und Recovery 243

7.1 Backup gleich Disaster Recovery? .................................................................................. 243

7.2 Backupstrategien .............................................................................................................. 244

7.3 Datensicherung mit »tar« ............................................................................................... 247

7.3.1 Weitere interessante Optionen für GNU-»tar« ........................................... 248

7.3.2 Sicherung über das Netzwerk mit »tar« und »ssh« .................................... 249

7.4 Datensynchronisation mit »rsync« ............................................................................... 250

7.4.1 Lokale Datensicherung mit »rsync« .............................................................. 250

7.4.2 Synchronisieren im Netzwerk mit »rsync« .................................................. 251

7.4.3 Wichtige Optionen für »rsync« ..................................................................... 251

7.4.4 Backupskript für die Sicherung auf einen Wechseldatenträger ................ 253

7.4.5 Backupskript für die Sicherung auf einen Backupserver ............................ 254

7.4.6 Verwendung von »ssh« für die Absicherung von »rsync« .......................... 256

7.5 Imagesicherung mit »dd« ............................................................................................... 257

7.5.1 Sichern des Master Boot Records (MBR) ...................................................... 257

7.5.2 Partitionstabelle mithilfe von »dd« zurückspielen ..................................... 258

7.5.3 Erstellen eines Images mit »dd« ................................................................... 258

7.5.4 Einzelne Dateien mit »dd« aus einem Image zurückspielen ..................... 259

7.5.5 Abschlussbemerkung zu »dd« ...................................................................... 261

7.6 Disaster Recovery mit ReaR ............................................................................................ 261

7.6.1 ReaR installieren ............................................................................................. 263

7.6.2 ReaR konfigurieren ......................................................................................... 263

7.6.3 Aufrufparameter von ReaR ............................................................................ 265

7.6.4 Der erste Testlauf ........................................................................................... 266

7.6.5 Der Recovery-Prozess ..................................................................................... 270

7.6.6 Die ReaR-Konfiguration im Detail ................................................................. 272

7.6.7 Migrationen mit ReaR .................................................................................... 273

7.7 Backup und Recovery mit Bacula/Bareos .................................................................... 274

7.7.1 Das erste Backup: Der Bareos-Server sichert sich selbst ............................ 277

7.7.2 Einrichtung eines zu sichernden externen Clients ...................................... 286

7.7.3 Sichern von MySQL und LDAP ....................................................................... 289

7.7.4 Bareos und ReaR als Dreamteam .................................................................. 289

7.7.5 Bacula/Bareos für Fortgeschrittene ............................................................. 290

10

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 11 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

TEIL III Dienste

8 Webserver 293

8.1 Apache ................................................................................................................................ 293

8.1.1 Installation ...................................................................................................... 293

8.1.2 Virtuelle Hosts einrichten .............................................................................. 294

8.1.3 Debian/Ubuntu: virtuelle Hosts aktivieren ................................................. 297

8.1.4 HTTPS konfigurieren ...................................................................................... 297

8.1.5 Benutzer-Authentisierung mit Kerberos ...................................................... 302

8.1.6 Apache-Server mit ModSecurity schützen ................................................... 304

8.1.7 Tuning und Monitoring .................................................................................. 308

8.2 LightHttpd .......................................................................................................................... 313

8.2.1 Installation ...................................................................................................... 313

8.2.2 Virtuelle Hosts mit »mod_simple_vhost« einrichten ................................ 313

8.2.3 Virtuelle Hosts ohne »mod_simple_vhost« einrichten .............................. 315

8.2.4 HTTPS konfigurieren ...................................................................................... 316

8.3 Nginx ................................................................................................................................... 317

8.3.1 Installation ...................................................................................................... 318

8.3.2 Grundlegende Konfiguration ........................................................................ 318

8.3.3 Virtuelle Hosts ................................................................................................ 319

8.3.4 HTTPS mit Nginx ............................................................................................. 321

8.4 Logfiles auswerten ........................................................................................................... 322

9 FTP-Server 325

9.1 Einstieg ............................................................................................................................... 325

9.1.1 Das File Transfer Protocol .............................................................................. 325

9.1.2 vsftpd ............................................................................................................... 326

9.2 Download-Server .............................................................................................................. 326

9.3 Zugriff von Usern auf ihre Homeverzeichnisse ........................................................... 328

9.4 FTP über SSL (FTPS) ........................................................................................................... 329

9.5 Anbindung an LDAP .......................................................................................................... 331

11

Page 41: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 12 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

10 Mailserver 333

10.1 Postfix ................................................................................................................................. 333

10.1.1 Grundlegende Konfiguration ........................................................................ 334

10.1.2 Postfix als Relay vor Exchange, Dovecot oder anderen Backends .............. 336

10.1.3 Die Postfix-Restrictions: der Schlüssel zu Postfix ....................................... 338

10.1.4 Weiterleitungen und Aliase für Mailadressen ............................................. 347

10.1.5 SASL/SMTP-Auth ............................................................................................. 348

10.1.6 SSL/TLS für Postfix einrichten ...................................................................... 350

10.2 Antivirus- und Spam-Filter mit Amavisd-new, ClamAV und SpamAssassin ......... 352

10.2.1 Installation ...................................................................................................... 354

10.2.2 ClamAV konfigurieren .................................................................................... 354

10.2.3 Updates für SpamAssassin konfigurieren .................................................... 355

10.2.4 Amavisd-new konfigurieren .......................................................................... 356

10.2.5 Eine Quarantäne mit Amavis betreiben ....................................................... 361

10.2.6 Postfix für die Verwendung mit Amavisd-new konfigurieren ................... 363

10.3 POP3/IMAP-Server mit Dovecot ..................................................................................... 364

10.3.1 Vorbereitungen im Linux-System ................................................................. 364

10.3.2 Log-Meldungen und Debugging ................................................................... 365

10.3.3 User-Authentifizierung .................................................................................. 366

10.3.4 Aktivierung des LMTP-Servers von Dovecot ................................................. 367

10.3.5 Einrichten von SSL/TLS-Verschlüsselung ...................................................... 369

10.4 Der Ernstfall: Der IMAP-Server erwacht zum Leben .................................................. 370

10.5 Dovecot im Replikations-Cluster ................................................................................... 372

10.5.1 Einrichtung der Replikation ........................................................................... 373

10.5.2 Hochverfügbare Service-IP ............................................................................ 376

10.6 Monitoring und Logfile-Auswertung ............................................................................ 377

10.6.1 Logfile-Auswertung mit »Pflogsumm« ........................................................ 378

11 Datenbank 381

11.1 MariaDB in der Praxis ....................................................................................................... 381

11.1.1 Installation und grundlegende Einrichtung ................................................ 381

11.1.2 Replikation ...................................................................................................... 383

11.1.3 Master-Master-Replikation ........................................................................... 391

12

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 13 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

11.2 Tuning ................................................................................................................................. 394

11.2.1 Tuning des Speichers ...................................................................................... 395

11.2.2 Tuning von Indizes .......................................................................................... 401

11.3 Backup und Point-In-Time-Recovery ............................................................................. 405

11.3.1 Restore zum letztmöglichen Zeitpunkt ........................................................ 405

11.3.2 Restore zu einem bestimmten Zeitpunkt .................................................... 406

12 Syslog 409

12.1 Aufbau von Syslog-Nachrichten .................................................................................... 409

12.2 Der Klassiker: »SyslogD« ................................................................................................. 411

12.3 Syslog-ng ............................................................................................................................ 413

12.3.1 Der »options«-Abschnitt ............................................................................... 413

12.3.2 Das »source«-Objekt ...................................................................................... 415

12.3.3 Das »destination«-Objekt .............................................................................. 415

12.3.4 Das »filter«-Objekt ......................................................................................... 417

12.3.5 Das »log«-Objekt ............................................................................................ 418

12.4 Rsyslog ................................................................................................................................ 419

12.4.1 Eigenschaftsbasierte Filter ............................................................................ 419

12.4.2 Ausdrucksbasierte Filter ................................................................................ 420

12.5 Loggen über das Netz ....................................................................................................... 421

12.5.1 SyslogD ............................................................................................................ 421

12.5.2 Syslog-ng ......................................................................................................... 422

12.5.3 Rsyslog ............................................................................................................. 422

12.6 Syslog in eine Datenbank schreiben ............................................................................. 423

12.6.1 Anlegen der Log-Datenbank .......................................................................... 423

12.6.2 In die Datenbank loggen ............................................................................... 424

12.7 »Systemd«mit »journalctl« ............................................................................................ 426

12.7.1 Erste Schritte mit dem »journalctl«-Kommando ........................................ 427

12.7.2 Filtern nach Zeit .............................................................................................. 429

12.7.3 Filtern nach Diensten ..................................................................................... 431

12.7.4 Kernelmeldungen ........................................................................................... 432

12.8 Fazit ..................................................................................................................................... 433

13

Page 42: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 14 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

13 Proxy-Server 435

13.1 Einführung des Stellvertreters ....................................................................................... 435

13.2 Proxys in Zeiten des Breitbandinternets ...................................................................... 436

13.3 Herangehensweisen und Vorüberlegungen ................................................................ 437

13.4 Grundkonfiguration ......................................................................................................... 437

13.4.1 Aufbau des Testumfelds ................................................................................ 438

13.4.2 Netzwerk ......................................................................................................... 438

13.4.3 Cache ............................................................................................................... 439

13.4.4 Logging ............................................................................................................ 440

13.4.5 Handhabung des Dienstes ............................................................................ 442

13.4.6 Objekte ............................................................................................................ 444

13.4.7 Objekttypen .................................................................................................... 445

13.4.8 Objektlisten in Dateien .................................................................................. 445

13.4.9 Regeln .............................................................................................................. 446

13.4.10 Überlagerung mit »first match« ................................................................... 448

13.4.11 Anwendung von Objekten und Regeln ........................................................ 449

13.5 Authentifizierung ............................................................................................................. 450

13.5.1 Benutzerbasiert .............................................................................................. 453

13.5.2 Gruppenbasiert .............................................................................................. 463

13.6 Helferlein ............................................................................................................................ 466

13.6.1 squidGuard ..................................................................................................... 467

13.6.2 Antiviren-Check: ClamAV mit »c-icap« und »squidclamav« ...................... 469

13.6.3 Content Filtering mit »e2Guardian« ............................................................. 479

13.7 Log-Auswertung: »Calamaris« und »Sarg« ................................................................. 484

13.7.1 Calamaris ........................................................................................................ 485

13.7.2 Sarg .................................................................................................................. 486

13.8 Unsichtbar: »transparent proxy« .................................................................................. 487

13.9 Ab in den Pool – Verzögerung mit »delay_pools« ..................................................... 488

13.9.1 Funktionsweise – alles im Eimer! ................................................................. 489

13.9.2 Details – Klassen, Eimer und ACLs richtig wählen ...................................... 489

13.10 Familienbetrieb: »Sibling, Parent und Co.« ................................................................. 492

13.10.1 Grundlagen ..................................................................................................... 492

13.10.2 Eltern definieren ............................................................................................. 493

13.10.3 Geschwister definieren .................................................................................. 493

14

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 15 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

13.10.4 Load Balancing ................................................................................................ 494

13.10.5 Inhalte eigenständig abrufen: »always_direct« ......................................... 495

13.11 Cache-Konfiguration ........................................................................................................ 495

13.11.1 Cache-Arten: »Hauptspeicher« und »Festplatten« ..................................... 495

13.11.2 Hauptspeicher-Cache ..................................................................................... 496

13.11.3 Festplatten-Cache .......................................................................................... 497

13.11.4 Tuning .............................................................................................................. 499

14 Kerberos 501

14.1 Begriffe im Zusammenhang mit Kerberos .................................................................. 502

14.2 Funktionsweise von Kerberos ........................................................................................ 503

14.3 Installation und Konfiguration des Kerberos-Servers ............................................... 504

14.3.1 Konfiguration der Datei »/etc/krb5.conf« .................................................... 505

14.3.2 Konfiguration der Datei »kdc.conf« .............................................................. 507

14.4 Initialisierung und Testen des Kerberos-Servers ......................................................... 509

14.4.1 Verwalten der Principals ................................................................................ 512

14.5 Kerberos und PAM ............................................................................................................ 515

14.5.1 Konfiguration der PAM-Dateien auf einem SUSE-System .......................... 516

14.5.2 Testen der Anmeldung ................................................................................... 516

14.6 Neue Benutzer mit Kerberos-Principal anlegen ......................................................... 517

14.7 Hosts und Dienste ............................................................................................................. 518

14.7.1 Entfernen von Einträgen ................................................................................ 520

14.8 Konfiguration des Kerberos-Clients .............................................................................. 521

14.8.1 PAM und Kerberos auf dem Client ................................................................ 522

14.9 Replikation des Kerberos-Servers .................................................................................. 523

14.9.1 Bekanntmachung aller KDCs im Netz .......................................................... 523

14.9.2 Konfiguration des KDC-Masters ................................................................... 526

14.9.3 Konfiguration des KDC-Slaves ....................................................................... 529

14.9.4 Replikation des KDC-Masters auf den KDC-Slave ....................................... 529

14.10 Kerberos Policies ............................................................................................................... 531

14.11 Kerberos im LDAP einbinden .......................................................................................... 534

14.11.1 Konfiguration des LDAP-Servers .................................................................... 534

14.11.2 Umstellung des Kerberos-Servers ................................................................. 537

14.11.3 Zurücksichern der alten Datenbank ............................................................. 541

15

Page 43: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 16 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

14.11.4 Erstellung der Servicekeys in der Standard-»keytab«-Datei ...................... 542

14.11.5 Erstellung der Service Keys in einer eigenen Datei ..................................... 543

14.11.6 Bestehende LDAP-Benutzer um Kerberos-Principal erweitern .................. 544

14.12 Neue Benutzer im LDAP ................................................................................................... 546

14.13 Authentifizierung am LDAP-Server über »GSSAPI« ................................................... 548

14.13.1 Einrichtung der Authentifizierung unter Debian und Ubuntu .................. 548

14.13.2 Einrichten der Authentifizierung unter SUSE und CentOS ........................ 553

14.13.3 Anbinden des zweiten KDCs an den LDAP ................................................... 557

14.14 Konfiguration des LAM-Pro ............................................................................................. 558

15 Samba 4 561

15.1 Vorüberlegungen .............................................................................................................. 561

15.1.1 Installation der Pakete unter Ubuntu .......................................................... 563

15.2 Konfiguration von Samba 4 als Domaincontroller ..................................................... 563

15.3 Testen des Domaincontrollers ........................................................................................ 567

15.3.1 Testen des DNS-Servers ................................................................................. 568

15.3.2 Test des Verbindungsaufbaus ....................................................................... 569

15.3.3 Test des Kerberos-Servers .............................................................................. 569

15.4 Benutzer- und Gruppenverwaltung .............................................................................. 570

15.5 Benutzer- und Gruppenverwaltung über die Kommandozeile ............................... 571

15.5.1 Verwaltung von Gruppen über die Kommandozeile .................................. 572

15.5.2 Verwaltung von Benutzern über die Kommandozeile ................................ 575

15.5.3 Setzen der Passwortrichtlinien ..................................................................... 579

15.6 Die »Remote Server Administration Tools«(RSAT) ..................................................... 581

15.6.1 Einrichtung der »RSAT« .................................................................................. 581

15.6.2 Beitritt eines Windows-Clients zur Domäne ............................................... 582

15.6.3 Benutzer- und Gruppenverwaltung mit den »RSAT« ................................. 584

15.7 Gruppenrichtlinien ........................................................................................................... 585

15.7.1 Verwaltung der GPOs mit den RSAT ............................................................. 585

15.7.2 Erste Schritte mit der Gruppenrichtlinienverwaltung ................................ 585

15.7.3 Erstellen einer Gruppenrichtlinie .................................................................. 587

15.7.4 Verknüpfung der Gruppenrichtlinie mit einer OU ...................................... 590

15.7.5 Verschieben der Benutzer und Gruppen ...................................................... 592

15.7.6 GPOs über die Kommandozeile .................................................................... 593

16

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 17 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

15.8 Linux-Client in der Domäne ............................................................................................ 595

15.8.1 Konfiguration der Authentifizierung ........................................................... 601

15.8.2 Mounten über »pam_mount« ...................................................................... 602

15.8.3 Vorbereitung auf SUSE ................................................................................... 602

15.8.4 Umstellen des grafischen Logins .................................................................. 605

15.9 Zusätzliche Server in der Domäne ................................................................................. 606

15.9.1 Einrichtung eines Fileservers ......................................................................... 606

15.9.2 Ein zusätzlicher Domaincontroller ............................................................... 609

15.9.3 Konfiguration des zweiten DC ...................................................................... 610

15.10 Was geht noch mit Samba 4? ......................................................................................... 618

16 NFS 619

16.1 Unterschiede zwischen »NFSv3«und »NFSv4« ........................................................... 619

16.2 Funktionsweise von »NFSv4« ......................................................................................... 620

16.3 Einrichten des »NFSv4«-Servers ..................................................................................... 621

16.3.1 Konfiguration des Pseudodateisystems ....................................................... 621

16.3.2 Anpassen der Datei »/etc/exports« .............................................................. 622

16.3.3 Tests für den NFS-Server ................................................................................ 624

16.4 Konfiguration des »NFSv4«-Clients .............................................................................. 626

16.5 Konfiguration des »idmapd« .......................................................................................... 627

16.6 Optimierung von »NFSv4« .............................................................................................. 629

16.6.1 Optimierung des »NFSv4«-Servers ............................................................... 629

16.6.2 Optimierung des »NFSv4«-Clients ................................................................ 630

16.7 »NFSv4« und Firewalls ..................................................................................................... 631

16.8 NFS und Kerberos .............................................................................................................. 632

16.8.1 Erstellung der Principals und der »keytab«-Dateien ................................... 633

16.8.2 Kerberos-Authentifizierung unter Debian und Ubuntu ............................. 635

16.8.3 Kerberos-Authentifizierung auf SUSE und CentOS ..................................... 636

16.8.4 Anpassen der Datei »/etc/exports« .............................................................. 636

16.8.5 NFS-Client für Kerberos unter Debian und Ubuntu konfigurieren ............ 636

16.8.6 NFS-Client für Kerberos auf SUSE und CentOS konfigurieren ................... 637

16.8.7 Testen der durch Kerberos abgesicherten NFS-Verbindung ....................... 637

16.8.8 Testen der Verbindung ................................................................................... 637

17

Page 44: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 18 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

17 LDAP 639

17.1 Einige Grundlagen zu LDAP ............................................................................................. 640

17.1.1 Was ist ein Verzeichnisdienst? ...................................................................... 640

17.1.2 Der Einsatz von LDAP im Netzwerk .............................................................. 641

17.1.3 Aufbau des LDAP-Datenmodells ................................................................... 641

17.1.4 Objekte ............................................................................................................ 642

17.1.5 Attribute .......................................................................................................... 643

17.1.6 Schema ............................................................................................................ 643

17.1.7 Das LDIF-Format ............................................................................................. 647

17.2 Unterschiede in den einzelnen Distributionen ........................................................... 648

17.2.1 Umstellung auf die statische Konfiguration unter SUSE ........................... 648

17.2.2 Umstellung auf die statische Konfiguration unter Ubuntu-Server und

Debian ............................................................................................................. 649

17.2.3 Pfade und Benutzer ........................................................................................ 649

17.2.4 Die Datenbank-Backends ............................................................................... 649

17.2.5 Grundkonfiguration des LDAP-Servers ......................................................... 650

17.3 Konfiguration des LDAP-Clients ..................................................................................... 652

17.3.1 Konfiguration des Clients auf SUSE .............................................................. 652

17.3.2 Konfiguration des Clients unter Debian »Jessie« ........................................ 653

17.3.3 Konfiguration des LDAP-Clients unter Ubuntu-Server ................................ 655

17.3.4 Erster Zugriff auf den LDAP-Server ............................................................... 655

17.4 Grafische Werkzeuge für die LDAP-Verwaltung ......................................................... 657

17.4.1 Konfiguration des »LAM« .............................................................................. 658

17.4.2 Konfiguration des Lamdaemons ................................................................... 659

17.5 Änderungen mit »ldapmodify« ..................................................................................... 662

17.5.1 Interaktive Änderung mit »ldapmodify« ...................................................... 662

17.5.2 Änderungen über eine »ldif«-Datei mit »ldapmodify« .............................. 663

17.6 Absichern der Verbindung zum LDAP-Server über TLS .............................................. 664

17.6.1 Erstellen der Zertifizierungsstelle ................................................................. 665

17.6.2 Erstellen des Serverzertifikats ....................................................................... 665

17.6.3 Signieren des Zertifikats ................................................................................ 665

17.6.4 Zertifikate in die »slapd.conf«eintragen ...................................................... 666

17.6.5 Konfiguration des LDAP-Clients .................................................................... 666

18

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 19 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

17.7 Absichern des LDAP-Baums mit ACLs ............................................................................ 667

17.7.1 Eine eigene Datei für die ACLs einbinden .................................................... 668

17.7.2 Erste ACLs zur Grundsicherung des DIT ....................................................... 669

17.7.3 ACLs mit regulären Ausdrücken .................................................................... 670

17.7.4 Testen von ACLs vor dem Einsatz .................................................................. 672

17.8 Filter zur Suche im LDAP-Baum ...................................................................................... 673

17.8.1 Testen der Fähigkeiten des LDAP-Servers ..................................................... 674

17.8.2 Einfache Filter ................................................................................................. 675

17.8.3 Filter mit logischen Verknüpfungen ............................................................. 676

17.8.4 Einschränkung der Suchtiefe ........................................................................ 676

17.9 Verwendung von Overlays .............................................................................................. 677

17.9.1 Overlays am Beispiel von »dynlist« .............................................................. 678

17.9.2 Weitere Overlays ............................................................................................ 679

17.10 Partitionierung des DIT .................................................................................................... 680

17.10.1 Einrichtung von »subordinate«-Datenbanken ............................................ 681

17.10.2 Verwaltung von »Referrals« .......................................................................... 683

17.10.3 Automatisierung des »chaining« .................................................................. 686

17.10.4 Administration der beiden Teilbäume ......................................................... 688

17.11 Replikation des DIT ........................................................................................................... 690

17.11.1 Konfiguration des Providers .......................................................................... 691

17.11.2 Konfiguration des Consumers ....................................................................... 693

17.12 Die dynamische Konfiguration ...................................................................................... 695

17.12.1 Umstellung auf die dynamische Konfiguration am Provider .................... 696

17.12.2 Umstellung auf die dynamische Konfiguration am Consumer ................. 700

17.13 Verwaltung von Weiterleitungen für den Mailserver Postfix .................................. 702

17.14 Benutzerauthentifizierung von Dovecot über LDAP .................................................. 705

17.15 Benutzerauthentifizierung am Proxy Squid über LDAP ............................................ 707

17.15.1 Aktivierung der Authentifizierung über LDAP ............................................. 708

17.15.2 Benutzerbezogene Authentifizierung .......................................................... 709

17.15.3 Gruppenbezogene Authentifizierung .......................................................... 709

17.16 Benutzerauthentifizierung am Webserver Apache über LDAP ................................ 711

17.16.1 Konfiguration der Cache-Parameter ............................................................. 711

17.16.2 Konfiguration der Zugriffsparameter ........................................................... 712

17.17 Und was geht sonst noch alles mit LDAP? ................................................................... 714

19

Page 45: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 20 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

18 Druckserver 715

18.1 Grundkonfiguration des Netzwerkzugriffs ................................................................. 716

18.2 Policies ................................................................................................................................ 719

18.2.1 Location policies ............................................................................................. 720

18.2.2 Operation policies .......................................................................................... 721

18.2.3 Weitere Konfigurationsmöglichkeiten ......................................................... 722

18.2.4 Browsing .......................................................................................................... 724

18.3 Drucker und Klassen einrichten und verwalten ......................................................... 725

18.3.1 Drucker einrichten .......................................................................................... 725

18.3.2 Klassen einrichten .......................................................................................... 726

18.4 Druckerquotas ................................................................................................................... 727

18.5 CUPS über die Kommandozeile ...................................................................................... 728

18.5.1 Einstellen eines Standarddruckers ............................................................... 728

18.5.2 Optionen für einen Drucker verwalten ........................................................ 729

18.6 PPD-Dateien ....................................................................................................................... 731

18.7 CUPS und Kerberos ........................................................................................................... 732

18.7.1 Erstellen des Kerberos-Principals und der »keytab«-Datei ......................... 732

18.7.2 Umstellung der Authentifizierung am CUPS-Server ................................... 733

18.8 Noch mehr Druck .............................................................................................................. 734

TEIL IV Infrastruktur

19 Hochverfügbarkeit 737

19.1 Das Beispiel-Setup ............................................................................................................ 737

19.2 Installation ......................................................................................................................... 738

19.2.1 Ubuntu 16.04 LTS ............................................................................................ 738

19.2.2 Debian 8 .......................................................................................................... 738

19.2.3 CentOS 7 .......................................................................................................... 738

19.2.4 openSUSE leap ................................................................................................ 739

19.3 Einfache Vorarbeiten ........................................................................................................ 739

19.4 Shared Storage mit DRBD ............................................................................................... 740

19.4.1 Grundlegende Konfiguration ........................................................................ 740

19.4.2 Die wichtigsten Konfigurationsoptionen .................................................... 741

19.4.3 Die DRBD-Ressource in Betrieb nehmen ...................................................... 742

20

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 21 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

19.5 Grundkonfiguration der Clusterkomponenten .......................................................... 745

19.5.1 Pacemaker und Corosync: das Benachrichtigungssystem ......................... 746

19.5.2 Pacemaker: der Ressourcen-Manager .......................................................... 748

19.5.3 Quorum deaktivieren ..................................................................................... 750

19.6 Dienste hochverfügbar machen .................................................................................... 752

19.6.1 Die erste Ressource: eine hochverfügbare IP-Adresse ................................ 753

19.6.2 Hochverfügbarkeit am Beispiel von Apache ................................................ 756

19.6.3 DRBD integrieren ............................................................................................ 760

19.6.4 Fencing ............................................................................................................ 764

20 Virtualisierung 767

20.1 Einleitung ........................................................................................................................... 767

20.2 Für den »Sysadmin« ......................................................................................................... 768

20.3 Servervirtualisierung ....................................................................................................... 772

20.3.1 KVM .................................................................................................................. 773

20.3.2 Xen ................................................................................................................... 775

20.4 Netzwerkgrundlagen ....................................................................................................... 776

20.5 Management und Installation ....................................................................................... 779

20.5.1 Einheitlich arbeiten: »libvirt« ........................................................................ 779

20.5.2 Konsolenbasiertes Management: »virsh« ................................................... 783

20.5.3 Virtuelle Maschinen installieren ................................................................... 787

20.5.4 »virt-install« .................................................................................................... 789

20.5.5 Alleskönner: »Virtual Machine Manager« ................................................... 791

20.5.6 Zusätzliche Konsolentools ............................................................................. 795

20.6 Umzugsunternehmen: Live Migration ......................................................................... 797

20.6.1 Vorbereitungen ............................................................................................... 798

20.6.2 Konfiguration im »Virtual Machine Manager« ........................................... 799

TEIL V Kommunikation

21 Netzwerk 803

21.1 Vorwort zu »Predictable Network Interface Names« ............................................... 803

21.2 Netzwerkkonfiguration mit »iproute2« ....................................................................... 804

21.2.1 Erste Schritte ................................................................................................... 804

21

Page 46: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 22 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

21.2.2 Syntax von »ip« ............................................................................................... 807

21.2.3 Links ansehen und manipulieren: »ip link« ................................................. 807

21.2.4 IP-Adressen ansehen und manipulieren: »ip address« ............................... 809

21.2.5 Manipulation von ARP-Einträgen: »ip neighbour« ..................................... 813

21.3 Routing mit »ip« ............................................................................................................... 815

21.3.1 Routing-Informationen anzeigen ................................................................. 815

21.3.2 Da geht noch mehr: »Advanced Routing« .................................................. 817

21.3.3 Die vorhandenen Regeln ansehen ................................................................ 818

21.3.4 Eine neue Routing-Tabelle anlegen .............................................................. 819

21.3.5 Ändern der »Policy Routing Database« ........................................................ 819

21.3.6 Routing über mehrere Uplinks ...................................................................... 821

21.3.7 Fazit bis hierher .............................................................................................. 826

21.4 Bonding ............................................................................................................................... 826

21.4.1 Bonding-Konfiguration .................................................................................. 827

21.4.2 Bonding bei Debian ........................................................................................ 830

21.4.3 Bonding bei Ubuntu ....................................................................................... 830

21.4.4 Bonding bei CentOS ....................................................................................... 831

21.4.5 Bonding bei openSUSE leap .......................................................................... 831

21.5 IPv6 ...................................................................................................................................... 832

21.5.1 Die Vorteile von IPv6 ...................................................................................... 834

21.5.2 Notation von IPv6-Adressen ......................................................................... 834

21.5.3 Die Netzmasken ............................................................................................. 835

21.5.4 Die verschiedenen IPv6-Adressarten ........................................................... 835

21.5.5 Es geht auch ohne »ARP« ............................................................................... 837

21.5.6 Feste Header-Länge ........................................................................................ 838

21.5.7 IPv6 in der Praxis ............................................................................................ 840

21.6 Firewalls mit »netfilter« und »iptables« ..................................................................... 841

21.6.1 Der Weg ist das Ziel – wie Pakete durch den Kernel laufen ....................... 842

21.6.2 Einführung in »iptables« ............................................................................... 843

21.6.3 Regeln definieren ........................................................................................... 845

21.6.4 Die klassischen Targets ................................................................................. 847

21.6.5 Ein erster Testlauf ........................................................................................... 847

21.6.6 Rein wie raus: »Stateful Packet Inspection« ................................................ 848

21.6.7 Das erste Firewallskript ................................................................................. 850

21.6.8 Externe Firewall .............................................................................................. 852

21.6.9 Logging ............................................................................................................ 858

21.6.10 Network Address Translation und Masquerading ...................................... 860

22

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 23 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

21.6.11 Weitere nützliche Module für »iptables« .................................................... 861

21.6.12 Abschlussbemerkung ..................................................................................... 864

21.7 DHCP .................................................................................................................................... 864

21.7.1 Funktionsweise ............................................................................................... 864

21.7.2 Konfiguration .................................................................................................. 865

21.8 DNS-Server ......................................................................................................................... 868

21.8.1 Funktionsweise ............................................................................................... 868

21.8.2 Unterschied: rekursiv und autoritativ .......................................................... 870

21.8.3 Einträge im DNS: »Resource Records« .......................................................... 870

21.8.4 Die Grundkonfiguration ................................................................................ 871

21.8.5 Zonendefinitionen ......................................................................................... 874

21.8.6 Die erste vollständige Zone ........................................................................... 878

21.8.7 Die »hint«-Zone .............................................................................................. 880

21.8.8 Reverse Lookup ............................................................................................... 882

21.8.9 Slave-Server .................................................................................................... 883

21.8.10 DNS-Server und IPv6 ...................................................................................... 885

21.9 Vertrauen schaffen mit »DNSSEC« ................................................................................ 887

21.9.1 Die Theorie: »Wie arbeitet DNSSEC?« .......................................................... 887

21.9.2 Anpassungen am Server ................................................................................ 889

21.9.3 Schlüssel erzeugen ......................................................................................... 890

21.9.4 Schlüssel der Zone hinzufügen und die Zone signieren ............................. 891

21.9.5 Signierte Zone aktivieren ............................................................................... 892

21.9.6 Signierung prüfen .......................................................................................... 893

21.9.7 Veröffentlichung der Signierung .................................................................. 895

21.9.8 Fazit .................................................................................................................. 896

21.10 Nachwort zum Thema Netzwerk ................................................................................... 896

22 OpenSSH 897

22.1 Die SSH-Familie ................................................................................................................. 897

22.1.1 Die Clients: »ssh«, »scp«, »sftp« ................................................................... 898

22.1.2 Der Server: »sshd« .......................................................................................... 900

22.2 Schlüssel statt Passwort .................................................................................................. 902

22.2.1 Schlüssel erzeugen ......................................................................................... 902

22.2.2 Passwortloses Login ....................................................................................... 903

22.2.3 Der SSH-Agent merkt sich Passphrasen ....................................................... 904

23

Page 47: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 24 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

22.3 X11-Forwarding .................................................................................................................. 905

22.4 Portweiterleitung und Tunneling .................................................................................. 905

22.4.1 SshFS: entfernte Verzeichnisse lokal einbinden .......................................... 906

23 Administrationstools 909

23.1 Was kann dies und jenes noch? ..................................................................................... 909

23.1.1 Der Rsync-Daemon ......................................................................................... 909

23.1.2 Wenn’s mal wieder später wird: »screen« ................................................... 911

23.1.3 Anklopfen mit »nmap« .................................................................................. 911

23.1.4 Netzwerkinspektion: »netstat« .................................................................... 915

23.1.5 Zugreifende Prozesse finden: »lsof« ............................................................. 917

23.1.6 Was macht mein System? »top«! ................................................................. 921

23.1.7 Wenn gar nichts mehr geht – Debugging mit »strace« ............................. 925

23.1.8 Prüfung der Erreichbarkeit mit »My traceroute« ........................................ 930

23.1.9 Subnetzberechnung mit »ipcalc« ................................................................. 931

23.2 Aus der Ferne – Remote-Administrationstools ........................................................... 932

23.2.1 PuTTY ............................................................................................................... 933

23.2.2 WinSCP ............................................................................................................ 936

23.2.3 Synergy ............................................................................................................ 937

23.2.4 Eine für immer: »mosh« ................................................................................ 939

24 Versionskontrolle 941

24.1 Philosophien ..................................................................................................................... 942

24.1.1 Lokal ................................................................................................................. 942

24.1.2 Zentral ............................................................................................................. 943

24.1.3 Dezentral ......................................................................................................... 944

24.2 Versionskontrollsysteme ................................................................................................. 945

24.2.1 CVS ................................................................................................................... 945

24.2.2 Apache Subversion ......................................................................................... 948

24.2.3 GNU Bazaar ..................................................................................................... 950

24.2.4 Mercurial ......................................................................................................... 952

24.2.5 Git .................................................................................................................... 954

24

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 25 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

24.3 Kommandos ....................................................................................................................... 957

24.4 Git-Server mit Gitolite .................................................................................................... 958

24.4.1 Installation Gitolite ........................................................................................ 958

24.4.2 Konfiguration Gitolite .................................................................................... 959

TEIL VI Automatisierung

25 Scripting 965

25.1 Aufgebohrte Muscheln .................................................................................................... 965

25.2 Vom Suchen und Finden: ein kurzer Überblick ........................................................... 966

25.2.1 Die Detektive: »grep«, »sed« und »AWK« .................................................... 966

25.2.2 Reguläre Ausdrücke verstehen und anwenden ........................................... 967

25.3 Fortgeschrittene Shell-Programmierung ..................................................................... 970

25.3.1 Expansionsschemata ..................................................................................... 970

25.3.2 Umgebungsvariablen ..................................................................................... 975

25.3.3 »Back to bash«: ein tieferer Blick in die Muschel ........................................ 976

25.3.4 Logging in Skripten ......................................................................................... 980

25.4 Tipps und Tricks aus der Praxis ....................................................................................... 983

25.4.1 Aufräumkommando ...................................................................................... 983

25.4.2 IFS ..................................................................................................................... 984

25.4.3 Datumsmagie ................................................................................................. 984

25.4.4 E-Mails aus einem Skript versenden ............................................................ 985

25.4.5 Interaktive Programme steuern .................................................................... 985

26 Monitoring – wissen, was läuft 987

26.1 Nagios ................................................................................................................................. 988

26.1.1 Installation ...................................................................................................... 989

26.1.2 Allgemeine Konfiguration ............................................................................. 992

26.1.3 Konfiguration der Objekte ............................................................................. 993

26.1.4 Eigene Hosts und Services konfigurieren ..................................................... 1002

26.1.5 Benachrichtigungen ....................................................................................... 1004

26.1.6 NRPE – Partitionsfüllstand und andere lokale Werte remote überprüfen 1007

26.1.7 PNP4Nagios – grafische Aufbereitung der Messwerte .............................. 1011

25

Page 48: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 26 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

26.2 Monitoring mit Munin ..................................................................................................... 1015

26.3 Fazit ..................................................................................................................................... 1017

TEIL VII Sicherheit, Verschlüsselung und Zertifikate

27 Sicherheit 1021

27.1 Weniger ist mehr .............................................................................................................. 1022

27.2 »chroot« ............................................................................................................................. 1023

27.2.1 Dienste ............................................................................................................ 1023

27.2.2 »jailkit« ............................................................................................................ 1025

27.3 Selbstabsicherung: »AppArmor« ................................................................................... 1029

27.3.1 Status und Betriebsarten .............................................................................. 1030

27.3.2 Eigene Profile erstellen .................................................................................. 1032

27.4 Gotcha! Intrusion-Detection-Systeme ......................................................................... 1036

27.4.1 »snort« und Co. ............................................................................................... 1036

27.5 Installation und Konfiguration ...................................................................................... 1038

27.5.1 Vorbereitungen ............................................................................................... 1038

27.5.2 Kompilieren und installieren ......................................................................... 1039

27.5.3 Basiskonfiguration ......................................................................................... 1041

27.5.4 Ein erster Test: »ICMP« ................................................................................... 1043

27.5.5 Start-Skript erstellen: »systemd« ................................................................. 1043

27.6 Performante Log-Speicherung mit »Barnyard2« und »MySQL« ............................. 1044

27.6.1 Vorbereitungen ............................................................................................... 1044

27.6.2 Kompilieren und installieren ......................................................................... 1045

27.6.3 Einbinden in Snort .......................................................................................... 1047

27.7 Das Neueste vom Neuen: »pulledpork« ...................................................................... 1050

27.8 Überblick behalten mit »Snorby« ................................................................................. 1052

27.8.1 Vorbereitungen ............................................................................................... 1052

27.8.2 Installation in Snorby ..................................................................................... 1053

27.8.3 Konfiguration .................................................................................................. 1054

27.8.4 Eigentliche Installation mit »rake« ............................................................... 1055

27.8.5 Ein Test zwischendurch .................................................................................. 1056

27.8.6 Snorby dauerhaft starten mit »passenger« ................................................. 1057

27.8.7 Webserver-Konfiguration für »snorby« ........................................................ 1061

27.8.8 Barnyard2 anpassen für Snorby .................................................................... 1062

27.8.9 Start-Skript für Snorby erstellen ................................................................... 1062

26

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 27 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

27.9 Klein, aber oho: »fail2ban« ............................................................................................. 1064

27.9.1 Konfiguration .................................................................................................. 1064

27.9.2 Aktive Sperrungen .......................................................................................... 1067

27.9.3 Reguläre Ausdrücke ........................................................................................ 1069

27.10 OpenVPN ............................................................................................................................ 1070

27.10.1 Serverinstallation – OpenVPN, PKI und Co. ................................................. 1071

27.10.2 Roadwarrior .................................................................................................... 1078

27.10.3 Start-Skript?! ................................................................................................... 1081

27.10.4 Site-to-site ....................................................................................................... 1084

27.10.5 Simple-HA ....................................................................................................... 1086

27.10.6 Tipps und Tricks .............................................................................................. 1087

28 Verschlüsselung und Zertifikate 1093

28.1 Definition und Historie .................................................................................................... 1093

28.2 Moderne Kryptologie ....................................................................................................... 1095

28.2.1 Symmetrische Verschlüsselung .................................................................... 1095

28.2.2 Asymmetrische Verschlüsselung .................................................................. 1096

28.3 Den Durchblick behalten ................................................................................................. 1097

28.3.1 Das Grundproblem ......................................................................................... 1097

28.3.2 Verwendungszwecke ..................................................................................... 1098

28.3.3 Umsetzung mithilfe einer PKI ....................................................................... 1098

28.3.4 X.509 ................................................................................................................ 1099

28.3.5 Ein anderer Ansatz: PGP (Web-of-Trust) ....................................................... 1101

28.4 Einmal mit allem und kostenlos bitte: »Let’s Encrypt« ............................................. 1102

28.4.1 Wie funktioniert das? .................................................................................... 1102

28.4.2 Einschränkungen ............................................................................................ 1103

28.4.3 Der Client »certbot« ....................................................................................... 1103

28.5 In der Praxis ....................................................................................................................... 1105

28.5.1 Einrichtung einer PKI mit Server- und E-Mail-Zertifikaten ......................... 1105

28.5.2 E-Mail-Verschlüsselung ................................................................................. 1116

28.6 Neben der Kommunikation – Dateiverschlüsselung ................................................. 1123

28.6.1 Dateien ............................................................................................................ 1123

28.6.2 Devices ............................................................................................................. 1124

28.6.3 Festplatten/System ........................................................................................ 1126

27

Page 49: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 28 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: ucsencs.def , Aktueller Job: administration

Inhalt

28.7 Rechtliches ......................................................................................................................... 1131

28.7.1 Fortgeschrittene elektronische Signatur ..................................................... 1131

28.7.2 Qualifiziertes Zertifikat .................................................................................. 1131

28.7.3 Qualifizierte elektronische Signatur ............................................................. 1132

28.7.4 Sichere Signaturerstellungseinheit (SSEE) ................................................... 1132

Die Autoren ..................................................................................................................................... 1135

Index ................................................................................................................................................ 1137

28

Page 50: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1137 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

Index

A

access-Maps 340

address_verify 346

Advanced Routing 817

alien 200

Amanda 246

Amavisd-new 352

mit Postfix 363

amavisd-release 362

Antivirus (Mail) 352

Apache 293

HTTPS anbieten 297

Kerberos 302

ModSecurity 304

Server Name Indication 302

Server-Status 310

Tuning 308

virtuelle Hosts 294

Apache Directory Studio 658

Apache Subversion 948

APIPA 810

AppArmor 1029

eigene Profile 1032

Statusabfrage 1031

apt-cacher-ng

Aufräumen 226

Cache bereinigen 226

Clientkonfiguration 225

Import 225

Konfiguration 223

Architektur 55

Archiv in einem anderen Verzeichnis

entpacken 248

arp 804, 806

AutoYaST 245

awk 966

B

B+-Baum 141

B-Baum 141

Backscatter 345, 360

Backup 243

Cold Backup 245

differenziell 245

Hot Backup 245

inkrementell 245

loop device 259

vollständig 245

Wechseldatenträger 253

Backupmethode 244

Backupstrategie 243, 244

Bacula 246, 274

Bareos 246, 274

Backupvolumen 277

bconsole 277

Client 286

Datenbanken 275

und Rear 289

bash 970

declare 978

Expansion 970

functions 978

local 977

Logging in Skripten 980

Operationen 972

Spezialparameter 976

test 979

Tipps und Tricks 983

Variablen 977

Bazaar GNU Bazaar

bconsole 277

Berechtigungsstruktur 160

Betrieb 56

Bind-Mount 71

bind9

>SALT< berechnen 892

Ablauf der Namensauflösung 869

autoritativ 868

DNSSEC 887

dnssec-enable 889

dnssec-keygen (KSK) 890

dnssec-keygen (ZSK) 890

dnssec-lookaside 889

dnssec-signzone 892

dnssec-signzone Syntax 891

dsset 895

iterativ 869

Key-Signing Key (KSK) 889

rekursiv 869

RRSIG 888

1137

Page 51: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1138 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

Zone-Signing Key (ZSK) 889

BIND9_DLZ 565

BIND9_FLATFILE 565

Blacklisten (Mail) 340

Blattobjekte 642

Blockgröße 143

bond0 828

Bonding 808, 826

Betriebsmodi 826

Bonding-Treiber 827

Bootloader 63

BOUNCE-Destiny 360

btree (Postfix) 338

BtrFS 150

Defragmentierung 153

ext-Dateisysteme konvertieren 151

mehrere Devices 154

Snapshots 153

Subvolumes 152

verbrauchter Speicherplatz 154

C

c-icap 469

CA.pl 665

CA.sh 665

Calamaris 484

Centreon 988

certbot 1103

certonly 1104

chain 680, 686

chaining 686

checkinstall 208

chroot 1023

FTP 1023

jailkit 1025

ClamAV 352, 354, 469

classes.conf 728

Cluster 737

Knoten 737

Cluster Resource Manager 748

cn=config 696

common name 642

Content Filtering (Proxy) 479

Corosync 746

Authkey 747

corosync-keygen 747

corosync.conf 746

pcs 746

corosync-keygen 747

COW (Copy on Write) 143

crm 748, 750

Colocation-Constraints 759

Constraints 759

move 755

online 749

Order-Constraints 760

rc_defaults 756

resource 754

standby 749

Cronjob 617

CUPS 715

Browsing 724

BrowseInterval 724

BrowseRelay 724

classes.conf 728

CUPS-Port 717

cupsd.conf 716

Druckaufträge formatieren 728

Drucker anlegen 725

Druckerquotas 727

Kerberos 732

DefaultAuthType 733

Kerberos-Principal 732

Klassen einrichten 726

Limits 722

MaxClients 722

MaxClientsPerHost 722

MaxCopies 723

MaxJobs 723

MaxJobsPerUser 723

PreserveJobFiles 723

PreserveJobHistory 723

TempDir 723

LOCAL 721

OWNER 722

Policies 719

location policies 719, 720

operation policies 719, 721

printer instances 729

printers.conf 728

SYSTEM 722

SystemGroup 722

Web-Frontend 717

cupsd.conf 716, 719

CVS 945

1138

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1139 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

D

DANE 334

DAP-Datenbank 640

Dateisystemattribut 173

chattr 173

fstab 173

NFS 173

Dateisysteme 139

BtrFS 150

Ext2/3 143

FAT 139

Journaling 142

ReiserFS 146

XFS 147

Dateisystemrecht 164

ACL 164

Default-ACL 167

getfacl 166

maske 169

setfacl 166

Attribute 173

fstab 165

Dateiverschlüsselung 1123

Datenbank 381

dd 250, 257

Master Boot Record 257

MBR sichern 257

Partitonstabelle sichern 258

dd_rescue 259

deb-mirror

Clientkonfiguration 234

deb-Paket 197

aus Repositorys 199

Lokal 199

debmirror 228

Konfiguration 228

demoCA 665

Desktop-Virtualisierung 768

DevOps 57

DHCP 864

Client 864

default-lease-time 866

DHCPACK 865

DHCPDISCOVER 865

DHCPOFFER 865

DHCPREQUEST 865

Leases 867

max-lease-time 866

Relay-Agent 865

statische Zuweisung 867

subnet 866

Diffie-Hellman 351

dig 879

Disaster Recovery 243

DISCARD-Destiny 360

DNS 868

>SALT< berechnen 892

A-Record 877

AAAA-Record 877

Ablauf der Namensauflösung 869

autoritativ 868

BIND 871

CNAME 878

DENIC 883

DNSSEC 887

dnssec-enable 889

dnssec-keygen (KSK) 890

dnssec-keygen (ZSK) 890

dnssec-lookaside 889

dnssec-signzone 892

dnssec-signzone Syntax 891

dsset 895

Expire 875

FQDN 874

Glue-Record 877

hint-Zone 880

in-addr.arpa 882

iterativ 869

Key-Signing Key (KSK) 889

listen-on 872

local resolver 868

minimum 875

MX-Record 877

named.conf 871

Kommentare 872

Zeilenabschluss 872

Nameserver 868

Negativ Cache TTL 875

Records 870

Refresh 875

rekursiv 869

Resource Records 870

Retry 875

Reverse Lookup 882

RR 870, 876

RRSIG 888

Serial 875, 885

Slave-Server 883

SOA 874

1139

Page 52: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1140 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

TTL 874

Zone-Signing Key (ZSK) 889

Zonentransfer 884

DNS-Server 563

DNSBL 342

DNSSEC 887

domain component (dc) 651

Domaincontroller 561

doveadm 367

Dovecot 364

auth-Socket 349

hochverfügbar 372

SASL 349

Dovecot Director 372

DRBD 740

drbdadm 743, 744

global_common.conf 740

im Cluster 760

mydrbd.res 740

drbdadm 743, 744

Drucker CUPS

dump 537

dumpe2fs 145

dynlist

dyngroup.schema 678

E

E-Mail-Verschlüsselung 1115

e2fsck 146

e2Guardian 479

edquota 180

Empfängervalidierung 345

Engineering 55

env 975

Environment 975

Etherchannel 826

Expansion 970

Ext2 143

Ext3 143

F

FAI 245

fail2ban 1064

fail2ban-regex 1069

iptables 1067

False Positive 353

FAT 139

Fencing 764

Festplattenverschlüsselung 1126

Festplattenzugriffe ermitteln 924

Filesystem-Check 259

freshclam 354, 473

fstab 165

FTP 325

aktives FTP 325

Anonymous 326

Download-Server 326

IPv6 327

LDAP-Anbindung 331

passives FTP 326

Protokoll 325

SSL-Verschlüsselung 329

vsftpd 326

Zugriff auf Homeverzeichnisse 328

FTP-Server FTP

G

Geräteverschlüsselung 1124

getent 574, 656

Git 954

Gitolite 958

Installation 958

Konfiguration 959

Gitserver 958

GNU Bazaar 950

GnuPG 1101

GOsa 657

GPO 585

grep 966

Greylisting 343

groupOfUniqueNames 670

GRUB

chroot 71

Recovery 70

GRUB 2 63

/etc/default/grub 69

grub.cfg 64

Gruppenrichtlinien 585

samba-tool gpo 585

Verknüpfung 590

Gruppenrichtlinienobjekt 585

Gruppenrichtlinienverwaltung 585, 587

Gruppenrichtlinienverwaltungs-Editor 587

1140

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1141 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

H

H-Baum 141

hash (Postfix) 338

Hochverfügbarkeit 737

Authkey (Corosync) 747

Colocation-Constraints 759

Constraints 759

Corosync 738, 746

corosync-keygen 747

corosync.conf 746

crm 748

move 755

rc_defaults 756

resource 754

CRM-Shell 750

crmsh 738

DRBD 738, 740

drbd-utils 738

drbdadm 743, 744

global_common.conf 740

hosts 739

mydrbd.res 740

Namensauflösung 739

NTP 739

OCF 752

online 749

Open Cluster Framework 752

Order-Constraints 760

Pacemaker 746, 748

pacemaker 738

pcs 738, 746, 748

move 755

rc_defaults 756

resource 754

quorum 750

standby 749

Zeitserver 739

I

IANA 832

ICAP (Internet Content Adaptation Protocol) 469

Icinga 987

ID-Mapping 574, 601

IDS/IPS 1036

ifconfig 804, 810

Image

erstellen 258

mounten 259

IMAP 364

inet_interfaces 334

initrd 72

erstellen 72

initramfs.conf 72

mkinitramfs 72

modifizieren 76

RAID 72

Internet Assigned Numbers Authority 832

iotop 924

ip 804, 811

neighbour add 814

address show 807

IP-Adresse hinzufügen 811

label 810

link 807

set 808

link show 806

neighbour 806, 813

route 805

routing 815, 818

add 816

delete 817

Priorität 820

show 815

ipcalc 931

IPP 715

iproute2 804

iptables 842

chains 842

connlimit 862

Default Policy 844, 851

DMZ 852

DNAT 860

DoS 860

Filter 845

FORWARD 843

ICMP 846, 857

INPUT 843

limit 859

limit-burst 859

lo 851

Logging 858

MASQUERADE 860, 861

Module 846

Multiport-Modul 851

NAT 860

OUTPUT 843

POSTROUTING 843

1141

Page 53: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1142 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

PREROUTING 842

recent 862

Regeln löschen 844

SNAT 860

SPI 848

TARGET 844, 847

IPv6 834

Adresse 834

Adressraum 834

anycast 836

DAD 838

Header-Aufbau 838

Header-Länge 838

Interface Identifier 835, 840

ipv6calc 887

link-lokal 838, 841

Multicast 836

Multihoming 840

NAT 834

Neighbor Cache 838

Neighbor Discovery 837

Network Prefix 835

Netzmaske 835

Notation 834

ping6 841

Privacy Extension 840

ssh 840

unicast 835

J

join 598

journalctl 409, 426, 427

journald.conf 428

auto 428

persistent 428

Storage 428

volatile 428

PID 431

since 429

until 429

journald 88, 426

Journaling 142

Ext3 144

Jxplorer 657, 698

K

KDC-Master 523

kdm 605

keepalived 376

Kerberos 501

ACL 510

addprinc 512

Authentication Service 502

delprinc 520

kadmin 512, 526

kadmin.local 512

kdb5_util 510

kdb5_util dump 530

KDC-Slave 523

kdc.conf 505, 507

kdestroy 523

Key Distribution Center 503

keytab 518

kinit 514

klist 514

kpropd 530

kpropd.acl 529

krb5.conf 505

ktadd 527

ktrem 520

ktutil 519

listprincs 513

PAM 515, 516, 522

pam-config 516

Policies 531

Principal 502

randkey 513

Realm 502

Replikation 523

SRV-Einträge 524

Ticket 502

Ticket Granting Server 503

Ticket Granting Ticket 502

Kerberos-Server 569

Key Version Numbers 519

Kickstart 245

kinit 569

klist 569, 601

kpartx 260

KVM 773

libvirt 779

Live Migration 797

Netzwerk 775

virsh 783

1142

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1143 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

virt-clone 796

virt-install 789

virt-top 795

virt-viewer 796

virtio 774

Virtual Machine Manager 791

VM-Installation 787

KVNO 519

L

LAM 650, 657

Lamdaemon 659

ACL 661

visudo 661

LDAP 639

ACL 667

Aufbau 667

Passwörter 669

slapd.conf 668

subschema 669

Apache 711

Cache-Parameter 711

Module 711

Zugriffsparameter 712

apparmor 667

Attribute 643

authz-regexp 551, 555

bdb 649

Datenmodell 641

Distinguished Name 641

DIT 641

dynamische Konfiguration 648

Filter 675

Verknüpfung 676

GSSAPI 548, 553

Debian/Ubuntu 548

hdb 649

Kerberos

CentOS 553

PAM 553

SUSE 553

ldapwhoami 551

LDIF 647

Objekte 641, 642

ODI 674

OID 643

registrieren 643

ou 641

Overlay 677, 679

dds 679

dynlist 678

refint 679

slapd.conf 677

valsort 679

pre-Authentication 549

Replikation 690

Schema 643

Squid 707

squid.conf 708

statische Konfiguration 648

supportedControl 674

supportedExtension 674

Syntaxbeschreibung 647

TLS

Verbindungsaufbau 666

UTF-8 641

LDAP Account Manager 558, 571

LDAP-Client 652

ldap.conf 654

ldapadd 651, 656

ldapmodify 662

ldapsearch 655, 663, 698

LDIF 656

Lebenseinstellung 60

letsencrypt 1102

certbot 1103

certonly 1104

Einschränkungen 1103

Funktionsweise 1102

libnss-ldap 653

libpam-ldap 653

libvirt 779

XML-Format 781

LightHttpd 313

HTTPS anbieten 316

virtuelle Hosts 313

limits.conf 191

Link Aggregation 826

Linux-Client 595

winbind 596

LIR 832

LMTP 337, 367

Load Balancing (squid) 494

Log-Auswertung (Webserver) 322

Logical Volume Manager LVM

loop device 259

lpd 715

lpoptions 728

lpstat 728

1143

Page 54: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1144 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

lsof 917

Dateizugriffe 918

Netzwerkressourcen 918

LVM 104

Aufbau einer Volume Group 108

Begriffe 106

Eine defekte Festplatte ersetzen 114

Erweiterung einer Volume Group 111

Erweiterung eines Volumes 111

Grundlagen 106

Installation 107

Kommandos 126

logical extent 106

logical volume 106

lvconvert 113

lvcreate 109

lvdisplay 109

lvextend 111

Mirroring 119

physical extent 106

physical volume 106

pvdisplay 108

pvmove 114

pvreate 108

Spiegelung 119

Spiegelung hinzufügen 113

Thin Provisioning 122

vgcreate 109

vgdisplay 109

vgextend 112

vgreduce 114

volume group 106

LVM-Snapshot 245

M

Maildir 366

Makefile 202

autotools 202

MariaDB 381

Benutzerkonto anlegen 382

Indextuning 401

Installation 381

Point-In-Time-Recovery 405

Replikation 383

Root-Kennwort 382

Speichertuning 395

Master Boot Record 63

mdadm 96

Mercurial 952

Migrationen 273

Mirror 228

Clientkonfiguration 234

mke2fs 143

mkfs.btrfs 150

mkfs.reiserfs 147

mkfs.xfs 147

mkinitramfs 72

mkinitrd 74

Mobile SSH 938

ModSecurity 304

mosh 938

Mount Count (Ext) 144

mtr 930

Munin 1015

Nodes 1015

My traceroute 930

myhostname 335

mynetworks 335

MySQL 381

N

Naemon 987

Nagios 987

NRPE 1007

Performanceüberwachung 1011

Plugins 988

PNP4Nagios 1011

named.conf 871

directory 872

forwarders 873

Port 873

zone 873

Namensstandard 157

Nameserver 567

>SALT< berechnen 892

Ablauf der Namensauflösung 869

autoritativ 868

DNSSEC 887

dnssec-enable 889

dnssec-keygen (KSK) 890

dnssec-keygen (ZSK) 890

dnssec-lookaside 889

dnssec-signzone 892

dnssec-signzone Syntax 891

dsset 895

iterativ 869

Key-Signing Key (KSK) 889

rekursiv 869

1144

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1145 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

RRSIG 888

Zone-Signing Key (ZSK) 889

NDS

filelocking 619

NetBIOS-Domainname 563

netlogon 569

NetSaint 987

netstat 615, 915

networkd 803

Netzwerke

Predictable Network Interface Names 803

Netzwerkkarte 807

Flag 807

Interfacename 809

MAC 808

MTU 808

Netzwerkpräfix 812

primäre IP-Adresse 812

Netzwerkmaskenberechnung 931

NFS 619

async 623

bind-Mountpoint 621

exportfs 625

exports 636

fsid 624

fstab 627

gss/krb5 636

gss/krb5i 636

idmapd 627

lockd 620

mountd 620

Portmapper 620

Pseudodateisystem 621

root_squash 623

rpcinfo 624

rsize 630

secure 623

statd 620, 621

subtree-checking 624

sync 623

UTF-8 620

wdelay 626

wsize 630

Nginx 317

NIC Teaming 826

nis.schema 650

nmap 911

NRPE 1007

nscd 599

nsswitch.conf 653, 654

NT-Style-Domain 561

ntlm 604

NTP-Server 739

NUD 813

O

OCF 752

op5 Monitor 987

Open Cluster Framework 752

OpenLDAP 639

OpenSSH 897

passwortloser Login 903

Port-Forwarding 905

Protokoll 901

Schlüssel 902

X11-Forwarding 905

OpenSSL 1105

openssl.cnf 664

openVPN 1070

Debug 1091

easy-rsa 1071

CA 1074

Clientzertifikat 1077

Serverzertifikat 1075

TLS-Auth 1076

explicit-exit-notify 1088

Modemverbindungen (DSL-Mo-

dem/UMTS) 1090

Rechteanpassungen auf Windows-Clients 1090

register-dns 1087

Roadwarrior 1078

Client 1081

Server 1078

Simple-HA 1086

Site-to-site 1084

Tipps und Tricks 1087

Debug 1091

explicit-exit-notify 1088

Rechteanpassungen auf Windows-

Clients 1090

register-dns 1087

Windows-Installationspfad 1088

Windows-Routing/-Netzwerk 1088

Windows-Schnittstellenreihenfolge 1088

tun/tap 1071

Zertifikatsverteilung 1077

Operation 56

others 159

Overlay 677

1145

Page 55: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1146 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

P

Pacemaker 746, 748

Colocation-Constraints 759

Constraints 759

crm 748

move 755

rc_defaults 756

resource 754

CRM-Shell 750

OCF 752

online 749

Order-Constraints 760

pcs 748

move 755

rc_defaults 756

resource 754

quorum 750

Ressource 752

standby 749

Paketverwaltung 195

deb 197

Pakete erzeugen 205

rpm 196

Update-Pakete 213

Update-Sicherheit 220

PAM 182, 515, 601

/etc/pam.d 188

Konfiguration 188

Kontrollflags 184

Modulargumente 184

Modulaufgaben 185

Modulpfade 185

pam-config 516

PAM-Module 595

pam_mount.conf.xml 603

Pamifizieren 182

parent (squid) 493

Partitionierung 159

Passwort 576

Passwortrichtlinien 579

Patchen 211

diff 211

patch 213

pcs 746, 748

Colocation-Constraints 759

Constraints 759

move 755

Order-Constraints 760

rc_defaults 756

resource 754

standby 749

unstandby 749

pdbedit 571

Perfect Forward Secrecy 351

Performanceüberwachung 1011

Pflogsumm 344

PGP 1101

phpldapadmin 657

PNP4Nagios 1011

Point-In-Time-Recovery 405

Policy Routing 817

PRDB 817

Priorität 820

POP3 364

Port-Scans 911

Postfix 333

als Relay 336

Grundkonfiguration 334

main.cf 334

master.cf 334

Postgrey 344

postmap 338

PostScript 715

PPD 731

Predictable Network Interface Names 803

printers.conf 728

proc 131

config.gz 134

CPU 131

net 137

RAM 133

sysctl.conf 137

Proxy, Squid 435

Public Key Infrastructure 1098

einrichten 1105

PuTTY 933

Pyzor 354

Q

Quarantäne (E-Mail) 352, 361

quorum (HA) 750

Quota-System 175

aqouta.group 177

aquota.user 177

edquota 179

fstab 176

grpquota 176

Hardlimit 179

1146

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1147 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

Journaling-Quotas 177

quotacheck 176

quotaon 178

repquota 181

Softlimit 179

usrquota 176

R

RAID 91

Level 0 92

Level 1 92

Level 10 93

Level 5 92

Level 6 93

mdadm 96

softraid 95

Razor 354

RBL 342

RBL/DNSBL 353

Realm 563

ReaR 261

default.conf 272

EXTERNAL 264

Installation 263

Konfiguration 263

local.conf 263

Migrationen 273

NETFS 264

P2P 273

P2V 273

Recovery-Prozess 270

REQUESTRESTORE 264

Rescue-Image 263

und Bareos 289

V2P 273

V2V 273

Referral 680, 683

Regedit 609

Regex 967

Syntax 968

Reguläre Ausdrücke 967

Syntax 968

ReiserFS 146

reiserfstune 147

Relax and Recover 261

relay_domains 336, 347

Remote Server Administration Tools 581

Replikation 372, 383

Master-Master 391

Master-Slave 383

Repository-Mirror 228

repquota 180

Rescue-Image (ReaR) 262

resolv.conf 567, 868

Resolver 568

Restrictions 338

rfc2307bis.schema 650

RID 600

RIR 832

root-Exploit 334

root-Shell 38

route 804, 805, 815

rpm-Paket 196

aus Repositorys 199

Lokal 199

RRDTool 1011

RSAT 581

rsync 250, 612, 613

dry-run 616

komprimiertes Backup 255

Sichern über das Netz 251

spiegeln 250

ssh 256

Rsync-Daemon 909

rsync-Server 613

rsyncd 615, 909

rsyncd.conf 613

Rsyslog 419

Filter, ausdrucksbasiert 420

Filter, eigenschaftsbasiert 419

S

sa-update 355

samba-regedit 609

samba-tool 564, 565, 571

group add 573

group addmembers 574

group list 572

group listmembers 572

user 575

samba.schema 650

Sarg 486

SASL 348

scp 899

screen 911

Scripting 965

sddm 605

sed 966

1147

Page 56: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1148 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

sfdisk 258

sftp 900

SGID 162

Shell-Expansion 970

Shinken 988

sibling (squid) 494

Signaturgesetz 1131

simple bind 652

simpleSecurityObject 692

Single Sign-on 639

slap.access 667

slapacl 672, 673

slapd.conf 649, 650, 690

slapd.d 697

slappasswd 651

slaptest 697

slurpd 691

smb.conf 565

smbclient 569

SMTP-Auth 348

smtpd_recipient_restrictions 339

snort 1036

snort.conf 1038

Spam-Score 357

Spam-Tagging 358

spamd/spamc 355

Spamfilter 352

Spamhaus 342

Spezialbits 161

SGID 162

Sticky-Bit 163

SUID 162

Squid 435

acl-Objekte 443

basic_ldap_auth 462

basic_ncsa_auth 453

c-icap 469

Cache 439

Calamaris 484

ClamAV 469

delay_access 491

delay_class 490

delay_parameters 490

delay_pool 488

delay_pools N 490

e2Guardian 479

ext_ldap_group_acl 465

ext_wbinfo_group_acl 464

freshclam 473

http_access-Regeln 446

intercept 487

IP-Authentifizierung 448

Logging 440

negotiate_kerberos_auth 458

Netzwerk 438

ntlm_auth 455

Sarg 486

squidclamav 469, 474

squidGuard 466

Testumfeld 438

transparent 487

Verzögerung des Datenverkehrs

(delay_pools) 488

Verzeichnisdienste 454

squid

always_direct 495

Beziehungen 492

Cache 495

Cache anlegen 499

cache_dir 497

cache_mem 496

cache_peer 493

Festplatten-Cache 497

Festplatten-Cache-Berechnung 498

Hauptspeicher-Cache 496

inodes 498

Load Balancing 494

parent 493

sibling 494

squidclamav 469, 474

squidGuard 466

SSH 897

SshFS 906

ssh (Client) 898

SSH-Agent 904

SSHd (Server) 900

SshFS 906

SSL-Zertifikat

für Apache 297

für Dovecot 369

für LightHttpd 316

für Postfix 350

Standarddrucker 728

standby-Master 700

Sticky-Bit 163

STONITH (HA) 764

strace 925

strong bind 652

Subnetzberechnung 931

subordinate 680

1148

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1149 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

subordinate Referral 684

Subversion Apache Subversion

SUID 162

supportedFeatures 674

SVN Apache Subversion

syncprov 691

syncrepl 690

Consumer 690

delta-syncrepl 691

entryCSN 690

entryUUID 690

Provider 690

refreshAndPersist 690

refreshOnly 690

Sessioncookie 690

Sessionlog 692

Synergy 937

Syslog 409

Datenbank 423

Facility 410

Log-Level 410

Priority 410

Remote-Logging 421

Severity 410

Syslog-ng 412

destination 413

Destination-Objekt 415

filter 413

Filter-Objekt 417

log 413

Log-Objekt 418

options 413

source 413

Source-Objekt 415

template 413

SyslogD 411

Systemadministrator 41

Arbeitstechniken 49

Aufgaben 41

Chief Information Officer 48

DevOps 57

Einordnung 54

Fähigkeiten und Fertigkeiten 48

Intermediate/Advanced System

Administrator 45

IT Director 48

Job-Definitionen 42

Junior System Administrator 44

Management-Level 47

Novice System Administrator 43

Senior System Administrator 46

Softskills 49

System Administration Manager 47

Technical Lead 47

Unternehmensgröße 43

Verhältnis zu anderen Administratoren 52

Verhältnis zu Benutzern 52

Verhältnis zu Chef/Vorgesetzten 51

Verhaltenskodex 58

systemd 77, 409, 426

Abhängigkeiten 86

Begriffe 78

list-unit-files 85

list-units 85

Service Units

aktivieren und deaktivieren 81

erstellen 82

Konfiguration anzeigen 82

kontrollieren 79

Target Units 84

SysVinit 77

sysvol 569

T

tar 247

Archiv erstellen 247

Archiv im aktuellen Verzeichnis entpacken 247

Archiv komprimieren 248

Archiv prüfen 248

Exkludieren von Dateien 248

ssh 249

umask 249

tc 804

tdbdump 600

Terminal-Multiplexer 911

Thrunk 987

Ticket 502

Ticket-Cache 503

TLS 640, 664

ldap.conf 666

ldapsearch 666

slapd.conf 666

top 921

transport_maps 337

tree 159, 161

Trunking 826

tune2fs 144

1149

Page 57: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5

Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 10. Oktober 2016, 13:37 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1150 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%

Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

U

udev 127

ulimit 190

Hardlimit 191

limits.conf 191

Softlimit 191

umask 163

Umgebungsvariablen 975

update-initramfs 72

V

VCS Versionskontrollsysteme

Venema, Wietse 333

Verbindungsaufbau 569

Verschlüsselung 1093

asymmetrisches Verfahren 1096

Dateien 1123

E-Mails 1115

GnuPG 1116

S/MIME 1123

Festplatten 1126

Geräte 1124

Historie 1093

Kerckhoffs Grundsätze 1095

Public Key Infrastructure 1098

einrichten 1105

Rechtliches 1131

symmetrisches Verfahren 1095

Web-of-Trust (PGP) 1101

X.509-Zertifikate 1099

Versionskontrolle 941

dezentral 944

lokal 942

Philosophien 942

verteilte Systeme 944

zentral 943

Versionskontrollsysteme 941

Überblick 945

Apache Subversion 948

CVS 945

Git 954

GNU Bazaar 950

Mercurial 952

Verzeichnisdienst 639

Verzeichnisstruktur 161

virsh 783

virt-clone 796

virt-install 789

virt-top 795

virt-viewer 796

Virtual Machine Manager (VMM) 791

Live Migration 797

virtual-Maps 347

VirtualBox 768

Import/Export 772

Installationsmedium anlegen 769

Netzwerkkonfiguration 770

Virtualisierung 767

Desktop-Virtualisierung 768

Grundlagen 767

KVM 773

libvirt 779

Netzwerk 775

virsh 783

virt-install 789

virtio 774

Live Migration 797

Server-Virtualisierung 772

virt-clone 796

virt-top 795

virt-viewer 796

Virtual Machine Manager (VMM) 791

Xen 774

vmail (Userkennung) 364

VRRP 376

vsftpd 1023

W

wbinfo -g 599

wbinfo -u 599

Web-of-Trust 1101

Webalizer 322

Webserver 293

Apache 293

LightHttpd 313

Nginx 317

Whitelist (Mail) 340

winbind 574, 595, 599

Windows Remote Server Administration Tools

(RSAT) 571, 581

WinSCP 936

1150

Deimeke/Heinlein/Kania/Seitz/van Soest – Das Linux-Administrationshandbuch – Vierte Auflage – Herbst 2016 Rheinwerk Verlag, ISBN: 978-3-8362-4274-5Layout: gp.cls, Version 3.5.024 (22th June, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 6. Oktober 2016, 11:47 Uhr Umlaut-Check: äöüÄÖÜ. Ligaturen: fl fi

S. 1151 Einstellungen: ohne Marginalien – ohne Seitenrand – mit Taben – mit Kapitel-Intro – extra breit – Zoom auf 100.0%Aktuelle Quelldatei: administration.ind , Aktueller Job: administration

Index

X

X.500 640X.509-Zertifikate 1099 Xen 774XFS 147xinetd 613, 615xinetd.d 613

Z

Zeitserver 739Zertifikate 1099Zugriffsrechte 157

1151

Page 58: Linux-Server – Das umfassende Handbuchs3-eu-west-1.amazonaws.com/gxmedia.galileo-press.de/leseproben/... · gcry_camellia.mod ntldr.mod video.lst gcry_cast5.mod odc.mod video.mod

Wissen, wie’s geht.

Wir hoffen sehr, dass Ihnen diese Leseprobe gefallen hat. Sie dürfen sie gerne empfehlen und weitergeben, allerdings nur vollständig mit allen Seiten. Bitte beachten Sie, dass der Funktionsumfang dieser Leseprobe sowie ihre Darstel-lung von der E-Book-Fassung des vorgestellten Buches abweichen können. Diese Leseprobe ist in all ihren Teilen urheberrechtlich geschützt. Alle Nut-zungs- und Verwertungsrechte liegen beim Autor und beim Verlag.

Teilen Sie Ihre Leseerfahrung mit uns!

Dirk Deimeke, Stefan Kania, Daniel van Soest, Peer Heinlein

Linux-Server – Das umfassende Handbuch1.151 Seiten, gebunden, 4. Auflage 2016 49,90 Euro, ISBN 978-3-8362-4274-5

www.rheinwerk-verlag.de/4203

Dirk Deimeke, Jahrgang 1968, beschäftigt sich seit 1996 aktiv mit Linux.

Stefan Kania, Jahrgang 1961 ist ausgebildeter Informatiker und seit 1997 frei- beruflich als Consultant und Trainer tätig.

Daniel van Soest, Jahrgang 1981, veröffentlichte bereits einige Fachartikel zu IT-Themen. Während seiner Ausbildung zum Informatikkaufmann kam er zu Be-ginn des neuen Jahrtausends erstmals mit dem Betriebssystem Linux in Kontakt.

Peer Heinlein ist E-Mail-Spezialist, Gründer des sicheren E-Mail-Dienstes mail-box.org und Autor zahlreicher Fachbücher zum Thema »sicherer Server-Betrieb«.

Wissen, wie’s geht.Wissen, wie’s geht.