Sie sind auf Seite 1von 219

Arch Linux auf einen Lenovo B550 Laptop

Version: 0.00.020 alpha


Datum: 06. Januar 2014

Inhaltsverzeichnis
Vorwort................................................................................................................6
Lizenz..................................................................................................................6
FAQ......................................................................................................................7
Warum Arch Linux?.........................................................................................7
Ich mchte mich einbringen, was kann ich tun?.............................................7
Gibt es so was hnliches nicht schon?............................................................7
Machst du dich mit einem Skript deiner Konfiguration nicht angreifbar?.....7
Wie kann man dich erreichen?........................................................................7
Hardware............................................................................................................8
Installation von Arch Linux.................................................................................9
Vorbereitung....................................................................................................9
Abbild herunterladen...................................................................................9
Abbild auf einen USB-Massenspeicher schreiben.....................................10
Windows.................................................................................................10
Linux......................................................................................................10
Mac-OS..................................................................................................10
Startreihenfolge im BIOS ndern..............................................................10
Basissystem vom Medium installieren..........................................................10
System - Grundlagen.........................................................................................16
Manpages..................................................................................................16
Systemd.....................................................................................................17
Pacman......................................................................................................18
die Shell.....................................................................................................18
System konfigurieren........................................................................................19
Netzwerk.......................................................................................................19
Cronjobs........................................................................................................19
automatische Zeitsynchronisation................................................................19
Wake on LAN.................................................................................................20
Grafische Oberflche........................................................................................22
X-Server.........................................................................................................22
mehrere Bildschirme.................................................................................23
Deutsche Tastaturbelegung einstellen......................................................24
.xinitrc erstellen........................................................................................24
Touchpad...................................................................................................25
LXDE.............................................................................................................26
Gnome...........................................................................................................27
Tastaturfeatures........................................................................................28
Gnome anpassen........................................................................................29
1

gsettings................................................................................................29
GNOME tweak tool................................................................................30
Thema ndern........................................................................................30
Icons ndern..........................................................................................30
Displaymanager.....................................................................................31
Startprogrammeinstellungen.................................................................31
XFCE.............................................................................................................35
Pakete installieren............................................................................................42
Amateurfunk..................................................................................................42
HamRadioTrainer......................................................................................42
4nec2.........................................................................................................43
Gpredict.....................................................................................................43
Bro...............................................................................................................46
LibreOffice.................................................................................................46
Rechtschreibprfung.............................................................................46
Tomboy......................................................................................................47
Internet.........................................................................................................48
Firefox.......................................................................................................48
Thunderbird...............................................................................................50
Transmission..............................................................................................51
Google Earth..............................................................................................51
Tor - The Onion Router..............................................................................52
Multimedia....................................................................................................55
VLC............................................................................................................55
Brasero......................................................................................................55
Transkritionsprogramme...........................................................................55
Transcribe..............................................................................................55
Gimp..........................................................................................................56
Sonstiges.......................................................................................................56
Galculator:.................................................................................................56
Gnome-Calculator......................................................................................57
Genius........................................................................................................57
Spiele.............................................................................................................57
TORCS The Open Racing Car Simulator................................................57
Systemprogramme........................................................................................58
Yaourt........................................................................................................58
DHCP.........................................................................................................59
Java............................................................................................................59
Zsh mit grml-Konfiguration.......................................................................60
zmap..........................................................................................................61
guake.........................................................................................................61
Gvim...........................................................................................................62
Screenreader.............................................................................................62
Orca.......................................................................................................62
espeak....................................................................................................62
Wireshark..................................................................................................63
Nmap.........................................................................................................63
SSH............................................................................................................64
Filezilla......................................................................................................64
Gnome Archive Manager - File-Roller.......................................................64
2

Raspberry Pi Emulation mit Arch Linux ARM auf Arch Linux..................64


Qemu......................................................................................................64
Wine...........................................................................................................66
Iris Erkennung...........................................................................................68
Hardware konfigurieren...................................................................................70
CPU-Frequenz...............................................................................................70
Soundkarte....................................................................................................71
Internen PC-Speaker deaktivieren................................................................71
WLAN............................................................................................................71
Optisches Laufwerk.......................................................................................75
Kamera..........................................................................................................75
Optimierungen..............................................................................................77
acpi............................................................................................................77
Standby......................................................................................................79
Ruhezustand..............................................................................................79
Fehler beheben.................................................................................................80
Fast TSC calibration failed............................................................................80
Swap..............................................................................................................81
Grub-Fehler beheben....................................................................................82
CHROOT ber das Live-Medium...............................................................82
Sicherheitsrisiken minimieren..........................................................................83
AUR ArchLinux User-Community Repository.............................................83
Offene Ports...................................................................................................83
iptables..........................................................................................................83
Halb kaputte Dinge sollte man nicht mehr benutzen...................................88
Passwrter.....................................................................................................88
Schwache Passwrter................................................................................88
NetworkManager......................................................................................89
Virenscanner.................................................................................................89
UPnP..............................................................................................................89
Root-Benutzerkonto deaktivieren.................................................................90
Angriff ist die beste Verteidigung.....................................................................91
Black Arch.....................................................................................................92
Schwachstellen finden..................................................................................92
OpenVAS....................................................................................................94
Metasploit................................................................................................102
Eigenes Repositorium erstellen..................................................................110
Lokal........................................................................................................110
Server......................................................................................................111
Sshfs........................................................................................................111
Eigene Pakete signieren..........................................................................112
Steganographie...........................................................................................116
Bordmittel................................................................................................117
Steghide...................................................................................................118
Outgess....................................................................................................122
Steganalyse.............................................................................................123
Kryptographie.............................................................................................134
Das gesamte System verschlsseln.........................................................134
Truecrypt.................................................................................................134
Spionageabwehr & Zensurgegenmanahmen................................................134
3

DNS.............................................................................................................135
Pdnsd.......................................................................................................138
Pacman........................................................................................................147
Mirrorlist und pacman.conf.....................................................................147
Pacman durch das Tor-Netzwerk.............................................................148
Firefox.........................................................................................................148
Suchmaschinen...........................................................................................148
Tipps & Tricks.................................................................................................149
Zip-Dateien entpacken................................................................................149
Dateien mit wget von Sourceforge herunterladen......................................149
Rechner zeitgesteuert herunterfahren.......................................................149
Startreihenfolge im Grub2 ndern..............................................................149
Zeilennummer im nano anzeigen................................................................149
Prfsumme von Strings ausgeben...............................................................150
Automatisches einloggen............................................................................150
Startgeschwindigkeit optimieren................................................................151
Desktopbenachrichtigungen ber die Shell............................................161
Exif-Eintrge bearbeiten oder entfernen................................................162
Gimp.....................................................................................................162
ExifTool................................................................................................162
Eigenen Kernel bauen.....................................................................................163
Probleme ohne Lsungsansatz.......................................................................165
Tonstudio.........................................................................................................166
Jack2............................................................................................................166
Software......................................................................................................169
Open-Source-Software............................................................................169
Bristol..................................................................................................169
Qsynth..................................................................................................169
Ardour3................................................................................................169
Linux Multi Media Studio....................................................................170
Rosegarden..........................................................................................170
Hydrogen.............................................................................................170
Non-DAW.............................................................................................170
TerminatorX.........................................................................................171
Timidity................................................................................................171
Mixxx....................................................................................................171
Notam Radium.....................................................................................171
Linuxsampler.......................................................................................171
Kommerzielle Software...........................................................................174
Renoise................................................................................................174
Bitwig Studio.......................................................................................174
Ableton Live.........................................................................................175
Harrison Mixbus..................................................................................175
Hardware....................................................................................................176
Tascam US-800........................................................................................176
Novation Launchpad................................................................................178
Akai APC40..............................................................................................179
Hercules DJ Control Mp3 e2...................................................................179
Echtzeitkernel:............................................................................................180
Performance-Messungen.............................................................................183
4

Externe Hardware...........................................................................................184
Brother MFC-7360N...................................................................................184
PS3 Controller.............................................................................................186
Bluetooth USB-Sticks..................................................................................187
Entwicklungsumgebungen..............................................................................189
Android........................................................................................................189
Android-SDK installieren.........................................................................189
Android-Studio.........................................................................................190
Hallo Welt............................................................................................192
Eclipse.....................................................................................................193
Hallo Welt............................................................................................193
Emulator..............................................................................................194
Spielend programmieren lernen.....................................................................195
Robocode.....................................................................................................195
Hamster.......................................................................................................200
AntMe!.........................................................................................................200
Scratch........................................................................................................201
Ein eigenes Live-Medium erstellen.................................................................201
Archiso........................................................................................................201
Arch Linux forken...........................................................................................204
FAQ..............................................................................................................204
Warum denn noch eine neue Linux-Distribution?...................................204
Ja, aber warum ?..................................................................................204
Vorbereitung................................................................................................204
ToDo................................................................................................................205
weiterfhrende Informationen........................................................................206
Arch BSD.........................................................................................................208
Arch BSD vs. Arch Linux.............................................................................208
ArchBSD herunterladen..............................................................................208
Vorbeitung...................................................................................................209
System installieren......................................................................................209
ZFS mit MBR-Systemen..........................................................................209
System konfigurieren..................................................................................213
Wo kann ich mich informieren?...............................................................213
Tastaturbelgung ndern..........................................................................213
IP-Adresse beim Systemstart...................................................................214
Soundkarte einrichten.............................................................................215
Kamera....................................................................................................215
grml-zsh...................................................................................................215
Standby....................................................................................................216
USB-Massenspeicher einbinden..............................................................216
Fehler beheben............................................................................................216
Dateien wurden nicht heruntergeladen..................................................216
Unterschrift nicht gueltig........................................................................216
Firefox - LXDE.........................................................................................217
Software......................................................................................................217
Bro.........................................................................................................217
Abiword................................................................................................217
Internet....................................................................................................218
Firefox..................................................................................................218
5

Multimedia...............................................................................................218
VLC......................................................................................................218
Eigene Pakete packen.................................................................................218
Arch BSD forken..........................................................................................219

Vorwort
Hier handelt es sich nicht um eine Installationsanleitung, sondern um Notizen,
die ich mir bei der Installation gemacht habe, die ich anschlieend sortiert
habe. Es dient mir in erster Linie als Installationsbersicht, damit ich auch in
zwei Wochen noch wei, was ich da verbrochen habe. Deshalb ist es auch
ziemlich wortkarg. Wenn ich dir trotzdem damit helfen konnte, freut mich
das, aber das ist halt nicht das Primrziel, es wurde in erster Linie fr mich
geschrieben. Ich werde das Dokument noch weiter ausbauen, aber es wird
wahrscheinlich nie vollstndig sein. Das wre einfach zu viel Arbeit, schon
allein deswegen, weil Arch Linux sehr schnelllebig ist. Alles was ich heute
schreibe, kann schon morgen berholt sein. Wer Methoden aus diesem
Dokument anwendet, dem sei gesagt, dass alles auf eigene Gefahr hin
geschieht. Wenn was kaputt geht, bist nur du dafr verantwortlich zu machen.

Lizenz
Eigentlich muss man das nicht erwhnen, da es automatisch so ist, wenn
keine andere Lizenz definiert ist. Alle Rechte liegen ausdrcklich bei mir. Ich
mache das nur, damit ich spter eine geeignete freie Lizenz whlen kann.
Unter Umstnden mchte ich das Dokument oder Teile davon in das Arch
Linux Projekt zurckflieen lassen. Wenn ich jetzt voreilig eine freie Lizenz
whle, knnte es sein, dass diese Lizenzen inkompatibel zueinander sind.
Letztendlich kann man hiermit machen, was man will, ich werde mir nicht die
Mhe machen, Verste zu ahnden.
Intel, Lenovo, Nvidia und Segate sind eingetragene Markenzeichen, an denen
ich keine Rechte besitze. Alle Rechte liegen bei den jeweiligen Inhabern. Sie
werden hier nur erwhnt, weil sich dieses Dokument auf die Installation von
Arch Linux auf explizit diesen Laptop bezieht und stellt keine Werbung,
Empfehlung, Kritik oder Wertung dar.

FAQ
Warum Arch Linux?
Das ist mehr oder weniger eine philosophische Frage. Beherrschen wir
Menschen die Technik oder beherrscht die Technik uns? Fr mich ist ein
Computer ein Werkzeug, dem ich sage, was er zu tun hat und wie er es zu tun
hat. Arch Linux bietet die Mglichkeit ein Linux von Grund auf aufbauen zu
knnen, ohne dass ich mir eine eigene Distribution von ganz unten bauen
muss. Nebenbei kann ich so meine Computerkenntnisse erweitern.

Ich mchte mich einbringen, was kann ich tun?


Es gbe genug zu tun. Korrekturlesen, Dokumentationen heraussuchen und
durchforsten, mit einem anderen Laptop gleicher Bauart testen, ob Fehler
reproduzierbar sind und so weiter und so fort. Alles, was bei so einem Projekt
halt anfllt, aber zum jetzigen Zeitpunkt ist noch keine Mitarbeit mglich.
Sptestens wenn eine geeignete freie Lizenz gefunden wurde, wird es auch
eine Mglichkeit geben, den Text kollaborativ zu bearbeiten.

Gibt es so was hnliches nicht schon?


Ja ja, mag sein. Ich habe auch schon ein paar Quellen durchgelesen. Aber
manchmal denke ich, ich htte verstanden. Und wenn ich dann versuche es in
Worte zu fassen, fllt mir auf, dass ich eigentlich gar nichts verstanden habe.
Wenn man selbst einen Ausdruck fr einen Sachverhalt findet, werden die
Dinge oft klarer.

Machst du dich mit einem Skript deiner Konfiguration nicht


angreifbar?
Mglich. Ich versuche wichtige Dinge zu anonymisieren, aber natrlich mache
ich auch Fehler und zeige hier unter Umstnden auch Einfallstore. Ich habe
da jetzt aber auch nicht so ein ungutes Gefhl, ich beschftige mich auch
damit alle sicherheitsfragwrdigen Einstellungen nach und nach abzusichern.
[Aber falls dir etwas auffllt, kannst du dich gerne bei mir melden.]

Wie kann man dich erreichen?


Noch gar nicht.
7

Hardware
Modell:

0880 (M41EDGE)
Lenovo B550
NITU1

Bios:

Lenovo 18CN45WW (V2.54) 05/05/2010

CPU:

Intel Core 2 Duo T4500 / 2.3 GHz Dual-Core

Cache

1024 kB

Datenbus:

800 MHz

Chipsatz:

Mobile Intel GL40 Express

RAM:

4 GB DDR3 SDRAM / max. 8 GB

Geschwindigkeit:

1066 MHz / PC3-8500

HDD:

Segate Momentus 320 GB HDD / 5400 rpm Serial ATA-150


ich habe hier eine andere Festplatte verwendet

Grafikkarte:

Nvidia G210M 512 MB

Monitor:

39,6 cm (15,6) TFT mit LED-Hintergrundbeleuchtung

max. Auflsung:

1366x768 (HD) (WXGA)

VGA:

HD D-Sub (HD-15)

Soundkarte:

HDA Intel Conexant CX20561 (Hermosa)


Intel 82801I (ICH9 Family) HD Audio Controller
NVIDIA High Definition Audio Controller

LAN:

Broadcom NetLink BCM5906M Fast Ethernet PCI Express

WLAN:

Broadcom BCM4312 Revision 15

Kamera:
8

USB:
Touchpad:
DVD-Laufwerk:
Mainboard:

Installation von Arch Linux


Hier am Beispiel von Version 2013.11.01

Vorbereitung
Abbild herunterladen
Auf der englischsprachigen Projektseite findet man eine gute bersicht zu
den Bezugsmglichkeiten inklusive einer bersicht der Spiegelserver.
https://www.archlinux.org/download/

Nach dem herunterladen sollte man immer die MD5- oder besser die SHA1Prfsumme kontrollieren. Zum einen, um auszuschlieen, dass die Datei
manipuliert wurde oder um einfach zu sehen, ob die Datei fehlerfrei
heruntergeladen wurde. Mir ist es erst ein mal bei einer anderen Distribution
passiert, dass die Prfsumme nicht bereinstimmte. Falls die Prfsumme nicht
bereinstimmt, sollte man die Datei nicht benutzen.
Das Abbild kann man dann auf eine CD kcheln, in ein virtuelles Laufwerk
einbinden oder direkt auf einen USB-Massenspeicher schreiben.

Abbild auf einen USB-Massenspeicher schreiben


Windows

Hier habe ich den WIN32 Disk Imager heruntergeladen.


http://sourceforge.net/projects/win32diskimager/

Um das Abbild auf das USB-Gert schreiben zu knnen, muss man das Abbild
von .iso in .img mittels eines Rechtsklick umbennen. Danach startet man das
Programm und schreibt es mittels write auf das USB-Gert.

Linux

Mac-OS

Startreihenfolge im BIOS ndern


Beim Start mit F2 in das BIOS wechseln und dort unter dem Reiter BOOT
mittel F5 und F6 die Startreihenfolge festlegen. Danach auf den Reiter ?EXIT?
wechseln, wo man Exit Saving Changes whlt.

Basissystem vom Medium installieren


Wenn die Startreihenfolge richtig eingestellt wurde, bekommt man jetzt einen
Auswahlbildschirm zu sehen. Hier wird nur erklrt, wie man ein 64-bit-System
aufsetzt. Dafr X86_64 auswhlen.
Es gibt keine grafische Arbeitsumgebung zur Installation. Bis man selbst eine
grafische Oberflche installiert hat, muss man alles ber die Befehlszeile
konfigurieren.
Deutsche Tastaturbelegung laden
loadkeys de-latin1

vorhandene Festplattenpartitionen lschen (mit fdisk, cfdisk oder gdisk)


Festplatte mit Rauschen fllen, um persnliche Daten einer alten Installation
10

zu vernichten. Dafr wird die Festplatte drei mal mit zuflligen Nullen und
Einsen berschrieben. Das dauert.
shred -v /dev/sda

Festplattenpartitionen erstellen
gdisk /dev/sda

Partition

Label

Dateisystem

Gre

Typ

sda1

arch

ext4

20GB

8300

sda2

swap

9GB

8200

sda3

boot

ext2

600 MB

8300

sda4

home

ext4

Rest

8300

3 MB

ef02

sda128

Ich habe eine GUID-Partitionstabelle (GPT) eingesetzt, obwohl das eigentlich


in meinem Fall gar nicht ntig wre. Da es sich aber auch fr herkmmliche
Platten eignet, die Sektoren in 512 MB verwalten, habe ich es hier einfach mal
ausprobiert. Hier wird nicht zwischen primren und sekundren Partitionen
unterschieden und es knnen bis zu 128 Partitionen hinzugefgt werden.
GUID-Partionen sind eigentlich fr UEFI-Systeme gedacht und knnen nur
unter Einschrnkungen mit BIOS-Systemen arbeiten.

sda1 ist die Rootpartition mit einem ext4-Dateisystem. Sie beinhaltet spter
das gesamte System inklusive aller installierten Programme. Hier sollten 20
GB eigentlich ausreichen, hoffe ich zumindest.
sda2 ist die Swap-Partion. Diese Partition ist optional, man bentigt sie nicht,
damit das System luft. Hierbei handelt es sich um eine Mglichkeit den
Arbeitsspeicher auszulagern. Die Gre ist mit 9 GB sehr grozgig
bemessen. 6 GB htten bestimmt vollkommen ausgereicht. Als Richtwert kann
man 1,3 bis 2 mal die Gre des Arbeitsspeichers nehmen. Bei den modernen
Rechner reicht im Normalfall eine Gre von 1-2 GB, wenn man nicht gerade
Echtzeitaudio-/Videobearbeitung nutzt. Aber da ich spter den Ruhezustand Hibernation Suspend to Disk (S4?) nutzen mchte, brauche ich mindestens
die Gre des Arbeitsspeichers plus Reserve, um das komplette System in die
Auslagerungspartion zu verschieben.
sda3 enthlt spter den Linux-Kern und ein Teil des Bootloaders grub2. Die
Partition ist bestimmt auch etwas zu gro dimensioniert. Ich habe mich hier
fr ein ext2-Dateisystem entschieden, welches kein Journaling untersttzt.
11

sda4 enthlt spter die Benutzer-Verzeichnisse, wo alle privaten Daten


gespeichert werde. Die Gre entspricht dem, was brig geblieben ist.
sda128 ist eine Partition, die man bentigt, wenn man ein BIOS benutzt. Dort
wird Speicher fr den Bootloader grub2 reserviert. Die Partition bleibt
unberhrt, grub2 kmmert sich selbst um die Einrichtung.
Das ist Patentrezept, man kann es natrlich nach belieben ndern. Man
knnte ext2, ext3, ext4, zfs, Reiser, vielleicht sogar FAT und hast du nicht
gesehen als Dateisystem nutzen. Die Auswahl ist riesig mit allen Vor- und
Nachteilen.

Dateisystem & Swap erstellen


mkfs.ext4 -L arch /dev/sda1
mkswap -L swap /dev/sda2
mkfs.ext2 -L boot /dev/sda3
mkfs.ext4 -L home /dev/sda4

Einbinden der Partitionen


mount /dev/sda1 /mnt
mkdir /mnt/boot
mkdir /mnt/home
mount /dev/sda3 /mnt/boot
mount /dev/sda4 /mnt/home

Swap aktivieren
swapon /dev/sda2

Netzwerk testen
ip addr

12

dhcpcd enp7s0
ping -c3 google.de

Spiegelserver konfigurieren
Zuerst ein Backup erstellen
cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

Vier oder fnf Spiegelserver aus Deutschland auswhlen


Je niedriger der Score, desto aktueller ist der Spiegelserver.
Benutze STRG-k um berflssige Zeilen zu lschen
nano /etc/pacman.d/mirrorlist

Basissystem installieren
pacstrap /mnt base base-devel

fstab erzeugen
genfstab -p /mnt > /mnt/etc/fstab

Kontrollieren!
nano /mnt/etc/fstab

Mirrorlist in das neu installierte System kopieren


cp /etc/pacman.d/mirrorlist /mnt/etc/pacman.d/mirrorlist

chroot in das neue System


arch-chroot /mnt/

Rechnername festlegen
echo Rechnername > /etc/hostname

Spracheinstellungen
13

echo LANG=de_DE.UTF-8 > /etc/locale.conf


echo LC_COLLATE=C >> /etc/locale.conf

Tastaturbelegung festlegen
echo KEYMAP=de-latin1 > /etc/vconsole.conf

Symbolischen Link fr die Zeitzone anlegen


timedatectl set-timezone Europe/Berlin

Das geht bei der Installation noch nicht...


ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Rechnername in Hosts (hinter localhost) eintragen


nano /etc/hosts

Systemsprache generieren
nano /etc/locale.gen

dort folgendes Auskommentieren (# entfernen)


de_DE.UTF-8 UTF-8
de_DE ISO-8859-1
de_DE@euro ISO-8859-15

abspeichern und Locale generieren


locale-gen

Eigene Kernelmodule laden (nur erzeugen, es wird noch nichts geladen)


nano /etc/modules-load.d/meinemodule.conf

14

folgendes eingeben und speichern


# nur ein Modul pro Zeile

(pacman.conf bersprungen)

Linuxkernel erzeugen
mkinitcpio -p linux

Rootpasswort setzen
passwd

Grub2 installieren, konfigurieren und auf die Platte schreiben


pacman -S grub
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda

Da gibt es einen Bug in Grub, der folgende Fehlermeldung erzeugt:


error: out of memory.
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 164

nano /etc/default/grub

Dort folgende Zeile hinzufgen:


# Grub Fix, um grub.cfg zu erzeugen
GRUB_DISABLE_SUBMENU=y
grub-mkconfig -o /boot/grub/grub.cfg
grub-install /dev/sda

15

chroot-Umgebung sauber verlassen und neu starten


STRG+D oder exit
umount /mnt/boot
umount /mnt/home
umount /mnt
systemctl reboot

Herzlichen Glckwunsch und Willkommen zu Deinem Arch Linux-Basissystem.

Wenn das hier kein Testbetriebssystem wre, wrde ich hier das erste Backup
machen, was ich einfach zurck spiele, wenn was schief geht.
Als root mit dem neuen Passwort anmelden.

System - Grundlagen
Bevor man mit der Konfiguration des Systems beginnt, sollte man sich mit ein
paar grundlegenden Arbeitsweisen von Arch Linux vertraut machen.

Manpages
Manpages sind Dokumentationsseiten zu einem bestimmten Befehl. Sie sind
meisten gut ausgearbeitet. Wenn mal mal nicht wei, wie der Syntax eines
Befehls lautet, wird man hier fndig. Mit q wird die Ausgabe beendet.
Ein Beispiel fr systemctl.
man systemctl

Um die Manpages auf deutsch lesen zu knnen, muss man diese zuerst
installieren.
pacman -S man-pages-de

16

Es wurden noch lange nicht alle bersetzt, aber es sind schon einige. Aber das
ist nur ein Tropfen auf den heien Stein.
https://www.archlinux.org/packages/community/any/man-pages-de/files/

Systemd
Systemd ist ein Manager, der das System und die dazugehrigen Dienste
verwaltet. Wenn ich das richtig verstanden habe, ist das der Prozess, der als
erstes startet. Da Prozesse hufig voneinander abhngig sind, wird durch
Parallelisierung fr eine bessere Auslastung schon beim Systemstart gesorgt,
und somit weniger Verzgerung verursacht. Systemd benutzt D-Bus um
Dienste zu starten.
Der Befehl, um systemd zu konfigurieren lautet systemctl. Hier ein paar
Grundlagen.
Alle gestarteten Dienste anzeigen.
systemctl

Einen Dienst dauerhaft beim Systemstart laden.


systemctl enable Dienst

Diesen Dienst nicht mehr beim Systemstart laden.


systemctl disable Dienst

Der korrekte Befehl lautet eigentlich systemctl enable Dienst.service, aber


wenn das Suffix weggelassen wird, geht systemctl davon aus, dass der
Benutzer genau dies meinte und whlt es automatisch aus.
Weitere hufiger genutzte Befehle wren:
systemctl reboot

System neustarten

systemctl poweroff

System ausschalten

systemctl suspend

Suspend-to-RAM

systemctl hibernate

Supend-to-Disc

Fortsetzung folgt

17

Pacman
Pacman ist der Paketmanager unter Arch Linux. Wenn man als Umsteiger von
der Windowswelt in die Linuxwelt wechselt, ist das wahrscheinlich das
Feature, was man am ehesten zu schtzen lernt. Whrend man bei Windows
alle Programme einzeln im Internet suchen, herunterladen, installieren und
aktualisieren muss, gibt es unter Linux blicherweise eine zentrale Instanz,
den Distributor, der sich darum kmmert, dass eine groe Vielzahl von
Software zur Verfgung steht und gepflegt wird. Programme, Bibliotheken,
etc. stehen dafr in Form von Paketen zur Verfgung. Zum installieren muss
man nur den Namen des Paketes kennen. Mit dem Paketmanager werden
dann alle installierten Pakete auf einmal aktualisiert.
Nach installierbaren Paketen suchen. In dem Beispiel wird nach alle Paketen
gesucht, die gnome im Namen haben.
pacman -Ss gnome

Pakete installieren
pacman -S Paket

Das komplette System aktualisieren


pacman -Syu

Nachschauen, welche Pakete man vom Source installiert hat


pacman -Qm

Fr Gnome3 gibt es auch eine grafische Integration von Pacman. Dazu spter
mehr unter Gnome.

die Shell
Wenn man Befehle in die Befehlszeile eingibt, mssen diese an das
Betriebssystem bergeben werden. Dafr bentigt man einen Interpreter, den
man Shell nennt. Unter Arch Linux ist das standardmig die bash. Dazu gibt
es natrlich auch Alternativen. Ich habe vor Jahren mal Zsh mit grml
ausprobiert und erinnere mich, dass ich sehr zufrieden war . Dazu spter
mehr, jetzt erst mal ein paar Grundlagen zur bash.

18

System konfigurieren
Netzwerk
IP-Adresse ber DHCP beim Systemstart beziehen
systemctl enable dhcpcd@enp7s0

neuen Benutzer hinzufgen & mit root-Rechten ausstatten


useradd -m -g users -s /bin/bash neuerBenutzer
passwd neuerBenutzer
pacman -S sudo
Editor=nano visudo (dort wheel All=(ALL) ALL auskommentieren)
gpasswd -a neuerBenutzer wheel

Cronjobs
Cronie wurde automatisch installiert und muss noch dauerhaft aktiviert
werden.
systemctl enable cronie

automatische Zeitsynchronisation
pacman -S ntp
nano /etc/ntp.conf

Dort die Server nach de umstellen


Server 0.de.pool.ntp.org
Server 1.de.pool.ntp.org
Server 2.de.pool.ntp.org
Server 3.de.pool.ntp.org

19

spter zur PTB ndern


Zugriffskontrolle
nomodify hinzufgen
restricted default noquery nopeer nomodify

systemctl enable ntpd


systemctl start ntpd

Neustarten. Nach ein paar Minuten sollte synchronisiert werden. Das sollte
man kontrollieren, ich hatte da irgendwie einen Fehler gemacht und musste
das korrigieren.
Mit date kann man sich die Uhrzeit anzeigen lassen. Die Zeit sollte mit CET
(Central Europe Time) oder CEST (Central Europe Summer Time) versehen
sein.
date

Falls nicht die richtige Zeit angezeigt wird, mit journalctl kontrollieren, ob die
Zeit gendert wurde. Falls das noch nicht geschehen ist, ein bisschen warten
bis da Zeit gendert steht und danach noch mal mit date berprfen.
journalctl -f

Wake on LAN
(nicht getestet)
muss im BIOS aktiviert werden. Nicht alle Motherboards untersttzen das.
Bei manche Karten ist das als Standard deaktiviert, dann muss man das mit
ethtool eingeschaltet werden.
Auf dem Rechner, der gestartet werden soll:
sudo pacman -S ethtool

20

berprfen, ob es eingeschaltet ist:


sudo ethtool eth0 | grep Wake-on
Supports Wake-on: pg
Wake-on: d

Man braucht aber den Modus g:


sudo ethtool -s net0 wol g

Die nderung wird erst nach einem Neustart aktiviert.

Ich fge eine Regel zur udev hinzu:


sudo /etc/udev/rules.d/50-wol.rules
ACTION=="add", SUBSYSTEM=="net", KERNEL=="eth0", RUN+="/usr/bin/ethtool -s %k
wol g"

Auf dem Rechner, von dem der entfernte Rechner gestartet werden soll:
sudo pacman -S wol

Das Magic-Paket sendet man mit:


wol MACADDRESS

Das funktioniert aber nur, wenn man nicht an einem Router angeschlossen ist.
Auf dem Router muss Port-Forwarding aktiviert werden.

21

Grafische Oberflche
Hier gibt es so viele Mglichkeiten, ich habe jetzt erst mal LXDE mit dem
Nvidia Open-Source-Treiber nouveau verwendet.

X-Server
Xorg mit Grafikkartentreiber installieren (lib32-nouveau weggelassen)
pacman -S xorg-server xorg-xinit xorg-utils xorg-server-utils

Fr Nvidia
xf86-video-nouveau

Kernel Mode Setting (KMS)


nano /etc/mkinitcpio.conf

Dort folgendes eintragen


Modules=nouveau

Anschlieend den Treiber einbauen.


mkinitcpio -g /boot/initramfs-linux.img

Fr ATI
Ich versuchen hier erst mal den OpenSource-Treiber:
sudo pacman -S xf86-video-ati

Damit man die 3D-Untersttzung benutzen kann, muss der Benutzer Mitglied
in der Gruppe video sein.
sudo gpasswd -a benutzer video

Das sollte direkt funktionieren. Neustarten und als Benutzer anmelden.


Weiter mit .xinirtrc und danach mit der Desktopinstallation.
Man hat keine deutsche Tastaturbelegung. Siehe unten.
22

mehrere Bildschirme
Damit die Bildschirme bereits beim laden des X Servers die korrekte
Auflsung haben, muss die Datei /etc/X11/xorg.conf.d/20-nouveau.conf erstellt
und konfiguriert werden. Um mgliche Auflsungen sowie genutzte
Anschlussnamen anzuzeigen folgenden Befehl nutzen.
xrandr

Typische Anschlussnamen sind LVDS-1 (Laptop Bildschirm), VGA-1, DVI-1


oder HDMI-1. Mgliche Auflsungen werden unter dem Anschlussnamen
ausgegeben. Beispielhafte Konfiguration:
Section "Monitor" #Laptop Bildschirm
Identifier "Laptop"
Option
"Primary"
"True" # Auf dem primren Display wird bspw. der
Login-Manager angezeigt
Option
"PreferredMode" "1366x768" # korrekte Auflsung eintragen
EndSection
Section "Monitor" #externer Bildschirm
Identifier "Extern"
Option
"RightOf"
"Laptop" # Auch "LeftOf" mglich
Option
"Primary"
"False"
Option
"PreferredMode" "1280x1024" # korrekte Auflsung eintragen
EndSection
Section "Device"
Identifier "Card0"
Driver
"nouveau"
Option
"Monitor-LVDS-1" "Laptop" # Schema "Monitor-ANSCHLUSSNAME"
Option
"Monitor-VGA-1" "Extern"
EndSection
Section "Screen"
Identifier
"Screen0"
Device
"Card0"
DefaultDepth 24
SubSection
"Display"
Depth
24
Virtual
2560 1024 # Hhe und Breite des erzeugten "Screens" (1280 + 1280
= 2560)
EndSubSection
EndSection
Section
Identifier
Screen
EndSection

"ServerLayout"
"Layout0"
"Screen0"

(Benutzer wurde nicht zur Gruppe video hinzugefgt. Das habe ich
nachgeholt, Siehe Kamera.)

23

Deutsche Tastaturbelegung einstellen


Die Datei /etc/X11/xorg.conf.d/20-keyboard.conf erzeugen und folgendes
hinzufgen:
Section "InputClass"
Identifier "keyboard"
MatchIsKeyboard "yes"
Option "XkbLayout" "de"
Option "XkbVariant" "nodeadkeys"
EndSection

Man knnte eine bessere Schrift installieren.


pacman -S ttf-dejavu

.xinitrc erstellen
Ich hatte Probleme mit der Kopie aus /etc/skel/.xinitrc, obwohl ich sie als
normaler Nutzer kopiert hatte. War bestimmt nur irgendein Rechte-foobar. Ich
habe nicht lange herumprobiert und habe sie einfach noch mal neu erstellt.
Darauf achten, dass immer nur eine exec-Zeile auskommentiert ist. Am
Anfang reicht eine Minimalkonfiguration. Spter, als die GUI lief, habe ich den
Text aus /etc/skel/.xinitrc kopiert.
nano ~/.xinirc

Minimalkonfiguration
#!/bin/sh
exec startlxde

Spter sollte das dann so aussehen.


#!/bin/sh
#
# ~/.xinitrc
#
# Executed by startx (run your window manager from here)

24

if [ -d /etc/X11/xinit/xinitrc.d ]; then
for f in /etc/X11/xinit/xinitrc.d/*; do
[ -x "$f" ] && . "$f"
done
unset f
fi
# exec gnome-session
# exec startkde
# exec startxfce4
# ...or the Window Manager of your choice
exec startlxde

Touchpad
Installation
pacman -S xf86-input-synaptics

Konfiguration
nano /etc/X11/xorg.conf.d/50-synaptics.conf

hinzufgen (Original mit # kommentieren)


Section "InputClass"
Identifier "touchpad"
Driver "synaptics"
MatchIsTouchpad "on"
Option "TapButton1" "1"
Option "TapButton2" "2"
Option "TapButton3" "3"
Option "VertEdgeScroll" "on"
Option "VertTwoFingerScroll" "on"
Option "HorizEdgeScroll" "on"
Option "HorizTwoFingerScroll" "on"
Option "CircularScrolling" "on"

25

Option
Option
Option
Option
EndSection

"CircScrollTrigger" "2"
"EmulateTwoFingerMinZ" "40"
"EmulateTwoFingerMinW" "8"
"CoastingSpeed" "0"

Es gibt noch mehr Optionen. Alle verfgbaren Optionen und deren aktuellen
Werte kann man sich mit synclient anzeigen lassen.
synclient -l

Unter Gnome3 konnte ich kein TapButton mehr benutzen. Um das zu beheben,
geht man in die Einstellungen Maus und Touchpad und whlt dann seine
Einstellungen neu.

LXDE
Webprsenz: http://lxde.org/

Installieren
pacman -S lxde

Openbox-Datein als einfacher Nutzer kopieren


mkdir -p ~/.config/openbox
cp /etc/xdg/openbox/menu.xml /etc/xdg/openbox/rc.xml /etc/xdg/openbox/autostart
~/.config/openbox

Den Login-Manager beim Start aktivieren


systemctl enable lxdm

Nach einem Neustart bekommt man die lxdm-Login-Maske.


Wer mit mehreren Desktop-Umgebungen und Login-Managern experimentiert,
sollte den Symlink wieder entfernen.
systemctl disable lxdm

26

Probleme:
* Die Taskbar ist auf dem externen Monitor.
* Die Taskbar ist zu gro. Man muss sie in den Einstellungen nach Rechts
verschieben und dann verkleinern.
weiteres folgt

Gnome
Webprsenz: http://www.gnome.org/

Ich habe mich berwunden jetzt auch mal eine schwergewichtige DesktopUmgebungen zu installieren, obwohl ich dieses Testsystem eigentlich so klein
wie mglich halten wollte, um Fehler einfacher finden zu knnen.
Gnome wird in zwei Paketen bereitgestellt. Das Paket gnome beinhaltet die
Kerndesktopumgebung und gnome-extra beinhaltet verschiedene
Zusatzprogramme. Ich installiere erst mal nur die notwendigen Pakete mittels
pacman -S gnome

und werde erst mal probieren, ob ich damit zufrieden bin. Spter werde ich
dann nur die Pakete hinzufgen, die ich brauche.
Da ich keinen Login-Manager benutze, muss ich die ./xinitrc bearbeiten
nano ~/.xinitrc

und dort
exec gnome-session

hinzufgen. Die anderen exec-Zeilen mssen kommentiert werden.

27

Es gibt noch die Mglichkeit eine klassische Ansicht zu starten.


exec gnome-session session=gnome-classic

Funktioniert soweit ganz gut, aber der Start dauert recht lange und der Lfter
springt auch hufiger mal an. Den habe ich jetzt die Tage mit LXDE nicht ein
mal wahrgenommen. Fairerweise muss man sagen, dass ich noch keine
Manahmen zur Optimierung durchgefhrt habe.
Pakete, die ich momentan nicht brauche (mit allen Abhngigkeiten gelscht):
Cheese

Wer ist auf die Idee gekommen, das in das


Kernpaket zu packen? Kein Editor drin, aber ein
Prg fr die Kamera.

Totem

Ich habe den VNC.

Empathy
gnome-terminal

durch guake ersetzt

epiphany

der Webbrowser, ich habe den Firefox

Tastaturfeatures
Das ist nur eine kleine, ntzliche Auswahl.
Virtuellen Desktop wechseln
STRG ALT - Pfeil hoch/Pfeil runter

Aktives Fenster auf einen anderen virtuellen Desktop verschieben:


STRG ALT Umschalttaste -Pfeil hoch/Pfeil runter

Zwischen den Programmen wechseln


ALT TAB

Eine komplette Liste findet man unter Anwendungen Systemwerkzeuge


Einstellungen Tastatur Tastaturkrzel.

28

Gnome anpassen
Beim ersten Start kommt Gnome3 etwas nackt daher. Es gibt eine Vielzahl von
Einstellungsmglichkeiten. Hier gibt es kein Patentrezept, sondern es muss,
oder besser kann, jeder den Desktop nach seinen Bedrfnissen anpassen. Ich
kann hier nur ein paar Mglichkeiten aufzeigen, wie man dies bewerkstelligt.
gsettings

Mit gsettings steht ein mchtiges Werkzeug fr die Befehlszeile zur


Verfgung, um Gnome an seine Bedrfnisse anzupassen. Es wurde
automatisch mit dem Paket gnome installiert.
Die Ausgabe von gsettings sieht folgendermaen aus:
$ gsettings
Aufruf:
gsettings [--schemadir SCHEMADIR] BEFEHL [ARGUMENTE...]
Befehle:
help

Diese Information anzeigen

list-schemas

Installierte Schemata auflisten

list-relocatable-schemas

Verschiebbare Schemata auflisten

list-keys

Schlssel in einem Schema auflisten

list-children

Unterlemente eines Schemas auflisten

list-recursively

Schlssel und Werte rekursiv auflisten

range

Bereich eines Schlssels abfragen

get

Wert eines Schlssels ermitteln

set

Wert eines Schlssels setzen

reset

Wert eines Schlssels zurcksetzen

reset-recursively

Werte aller Schlssel eines gegebenen


Schemas zurcksetzen

writable

Prfen, ob Schlssel schreibgeschtzt ist

monitor

Auf nderungen berwachen

Rufen Sie gsettings help BEFEHL auf, um eine detaillierte Hilfe zu erhalten.

Mit list-schemas kann man alle Schemata auflisten.


$ gsettings list-schemas
org.gnome.nautilus.desktop
org.gnome.settings-daemon.peripherals.touchscreen
[...]

29

org.gnome.shell.calendar
[...]
org.gnome.desktop.a11y.keyboard
org.gnome.desktop.thumbnailers
...

GNOME tweak tool

Dafr installiert man das Paket gnome-tweak-tool mittels Pacman und kann es
danach mit ALT-F2 starten. Im Men heit es Optimierungswerkzeug. Hier
gibts eine Menge Einstellmglichkeiten, das zu erklren wrde den Rahmen
sprengen.
pacman -S gnome-tweak-tool

Thema ndern

Das voreingestellte Thema nennt sich Adwaita und ist Teil von gnome-themesstandard. In diesem Paket ist zustzlich noch das Thema HighContrast
enthalten. Weitere Themen kann man hier z.B.herunterladen.
http://www.deviantart.com/customization/skins/linuxutil/desktopenv/gnome/gtk3/
http://gnome-look.org/

oder aus AUR


https://aur.archlinux.org/packages/?
O=0&C=7&SeB=nd&K=theme&SB=v&SO=d&PP=50&do_Search=Los

Ich habe mir als erstes eine Thema aus AUR installiert.
yaourt -S delorean-dark-3.10

Danach kann man das Thema ber das Paket gnome-tweak-tool aktivieren.
Das war jetzt nicht so mein Fall, deswegen werde ich es spter wieder
deinstallieren. Aber es gibt wirklich ausreichend Modifikationen.
yaourt -Rss delorean-dark-3.10

Icons ndern

30

Displaymanager
sudo systemctl enable gdm

Startprogrammeinstellungen

Welche Programme beim Start von Gnome gestartet werden sollen, kann man
natrlich auch einstellen. Bitte nur deaktivieren, nicht lschen. Das erschwert
eine Fehlersuche, wenn es mal nicht so klappt, wie es soll.
ALT+F2

und gnome-session-properties eingeben.

Um das nervige Blub-Gerusch im zu entfernen, muss man unter den


Audioeinstellungen die Klangeffekte ausschalten. Da bleibt mir fast das Herz
stehen, wenn ich vorher Musik gehrt habe und das Mischpult aufgedreht
ist.
Pacman Integration fr Gnome:
pacman -S gnome-packagekit

Damit das Packagekit automatisch nach Aktualisierungen sucht, muss noch


das Paket gnome-settings-daemon-updates installiert werden. Zustzlich bentigt
man noch das Paket polkit-gnome, wenn man Gnome nicht als Administrator
benutzt. Das habe ich jetzt nicht installiert, ich mache das weiterhin ber die
Konsole. Ich wollte nur mal gucken, wie das aussieht.
Ich habe immer gerne einen Systemmonitor zur bersicht im Panel laufen.
yaourt -S gnome-shell-system-monitor-applet-git

Danch muss man die Gnome-Shell neu starten:


ALT+F2

und r eingeben und danach ber gnome-tweak-tool auswhlen.

Probleme:
Das kann die Lfterdrehzahl nicht anzeigen. Dafr lm_sensors installieren.
pacman -S lm_sensors

Danach als root starten:


sensors-detect

Ausgabe:
Intel digital thermal sensor...

Success!

(driver `coretemp')

31

Wenn man auf die Frage, ob man /etc/conf.d/lm_sensors erstellen mchte,


wird es automatisch gestartet, ansonsten muss man das nachholen.
systemctl enable lm_sensors

Funktioniert trotzdem nicht, obwohl lm_sensors gestartet und das Modul


coretemp geladen ist. Aber ich kann in dem Apllet nicht lm-sensors
auswhlen.
Beispiel Drehzahl an einem anderen Rechner
sudo modprobe w83627hf
Device or resource busy

folgendes hinzufgen:
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=acpi_enforce_resources=lax
sudo grub-mkconfig -o /boot/grub/grub.cfg

wieder modprobe
Wenn es klappt, will man es automatisch laden:
sudo nano /etc/modules-load.d/meinemodule.conf
# w83627hf Chipsatz Grund: Lftersteuerung
w83627hf

Da fehlt noch Lfter1, aber Lfter2 luft mit 5100 Umdrehungen.


sudo pwmconfig

Dadurch wird die Datei /etc/fancontrol angelegt, die man nach belieben
bearbeiten kann. Mit
sudo /usr/bin/fancontrol

kann man man das Programm starten. Wenn alles zur Zufriedenheit luft,
kann man es beim Systemstart mitstarten.
sudo systemctl enable fancontrol
sudo systemctl start fancontrol

32

Probleme:
*Manche installierte Programme werden nicht direkt oder gar nicht zu der
Programmliste hinzugefgt. Manche sind erst nach einem Neustart von
Gnome verfgbar.
*Im Panel wird kein Benutzer angezeigt.

*Man kann ber Nautilus keine neue Dokumente erstellen. Die Funktion
wurde rausgeschmissen. Ja nee - is klar, braucht man ja auch nicht. Man kann
auf der Konsole eine leere Datei im Verzeichnis Vorlagen anlegen.
cd Vorlagen
touch neue_Textdatei.txt

Danach abmelden und neu anmelden, oder ALT+F2 drcken und r eingeben.
Jetzt steht Rechtsklick Neues Dokument neue_Textdatei zur Verfgung.
Aber da ich das komplett boykottiere, wrde ich Nautilus den Rcken und
einen anderen Dateimanager benutzen. Ich habe noch die Dateien von LXDE
installiert und versuche mal den PCManFM.
Mit ALT+F2 gnome-session-properties starten und dann auf das Hckchen bei
Files entfernen. Dann mit Hinzufgen einen neuen Eintrag erstellen.
Name:

PCManFM Dateimanager

Befehl:

pcmanfm -n

Kommentar:

Als Ersatz fr Nautilus

Danach abmelden und neu anmelden.


Der ist aber auch nicht wirklich schn, aber man kann ja auch andere
Dateimanager installieren.

*Man kann nur Abmelden, Herunterfahren oder Neustart whlen. Wo sind die
anderen Auswahlmglichkeiten?
So wie ich das verstehe, ist das kein Fehler. Das ist so von den Entwicklern
gewollt.
Fehlerbehebung:
Den Benutzer zur Gruppe power hinzugefgt.
gpasswd -a benutzer power

Das gnome-shell-plugin Alternative Status Menu knnte Abhilfe schaffen, aber


33

es lsst sich nicht installieren. Siehe weiter unten.


https://extensions.gnome.org/extension/5/alternative-status-menu/

Standby lsst sich mit ALT drcken bewerkstelligen, aber fr den


Ruhezustand gibt es nur die Mglichkeit ber die Konsole. Also keine Ahnung,
was sich die Entwickler dabei gedacht haben.
*Entweder war die Rechtschreibprfung nicht installiert oder ich habe sie aus
Versehen deinstalliert. Dafr aspell-de oder besser hunspell-de installieren, das
funktioniert mit mehr Programmen.

*Manchmal sind Dateien in dem Verzeichnis Desktop, aber sie werden nicht
auf dem Desktop angezeigt. Sind sind da, wenn ich mit den Pfeiltasten
durchgehe, kann ich sie ffnen, aber ich sehe sie nicht. Sie sind unterhalb des
Bildschirms und ich kann sie auch nicht mit der Maus erreichen, um sie nach
oben zu schieben. Der Fehler tritt nur im Dual-View-Modus auf. Wenn man den
externen Monitor abklemmt, funktioniert es bestens.

*Man kann keine Gnome-Shell-Extensions von https://extensions.gnome.org


installieren. Weder im Firefox noch im Epiphany. In beiden war das gnomeshell-integration-plugin aktiv. Und die Erweiterung, die ich brauche, finde ich
nicht im AUR. Aber es kommt eigentlich NICHT in Frage Erweiterungen von
der Webseite zu installieren. Wenn ich die aktuell halten will, msste ich die
Webseite besuchen. Ich mchte aber das komplette System ber Pacman
aktualisieren. Also einen anderen Weg suchen, nachher muss ich wie bei
Windows erst mal 10 Webseiten ansurfen, um Updates zu machen. Nee,
danke...

* Nachdem ich mit den gnome-shell-extensions herumgespielt habe, stehen


gar keine Erweiterungen zur Verfgung und die gnome-shell macht beim
starten Probleme. Beim Start fehlt das Hintergrundbild auf dem primren
Monitor und man muss die gnome-shell mit ALT+F2 r neuladen. Weder die
Neuinstallation von gnome-tweak-tool noch von gnome-shell beheben das
Problem. Aber eine Neuinstallation von dem Metapaket gnome behebt das
Problem. Im Nachhinein ist mir aufgefallen, dass es gereicht htte, wenn ich
das Paket gnome-shell-extensions neu installiert htte.

34

* Unter Einstellungen Netzwerk erscheint eine Fehlermeldung: Die


Netzwerkdienste des Systems sind mit dieser Version nicht kompatibel.

Benutze den NetworkManager auf keinen Fall!!! Er speichert das


WLan-Passwort im Klartext Siehe: NetworkManager
Ein sudo NetworkManager behebt das Problem kurzfristig.
WLAN funktioniert. Um es dauerhaft beim Systemstart zu aktivieren:
systemctl enable NetworkManager

Allerdings glaube ich, dass ich noch keinen Schlsselbund habe, also
bezweifle ich, dass das Passwort ordentlich gespeichert wurde.

* Das ist kein Fehler, aber ich wrde mir wnschen, wenn man mit ALT+F2
etwas ffnen mchte, dass es automatisch vervollstndigt wird.
* Das Touchpad funktioniert nicht so wie es sollte. Siehe Touchpad

XFCE
Ich kenne mich mit XFCE kaum aus, deswegen installiere ich mal, anders als
bei Gnome, das Grundpaket mit den Erweiterungen, das ist dann aber auch
nicht mehr wirklich ein Leichtgewicht.
pacman -S xfce4
pacman -S xfce4-goodies
pacman -S human-icon-theme
nano .xinitrc
exec startxfce4

Als Ersatz fr guake (siehe Software) kann man hier unter Einstellungen
Einstellungen Tastatur Tastaturkrzel folgendes eingeben:
xfce4-terminal -drop-down

Jetzt muss man sich nur noch eine Taste aussuchen.


35

Eye Candy:
Docky
Mal ein bisschen Zucker fr die Augen. Docky als Startpanel.
sudo pacman -S docky

Compiz
Ich bin gerade zu faul alle Pakete einzeln zu bauen und ins Repositorium zu
verschieben...
yaourt compiz-xfce
:: compiz-xfce und compiz-core stehen miteinander in Konflikt. compiz-core entfernen?
[j/N] j
:: compiz-xfce und compiz-bcop stehen miteinander in Konflikt. compiz-bcop entfernen?
[j/N] j
:: compiz-xfce und libcompizconfig stehen miteinander in Konflikt. libcompizconfig
entfernen? [j/N] j

If you ever want to uninstall Compiz, first delete:


~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-session.xml

**

XFCE USERS

**

** Log out and back in, then Compiz should then be running. **
** If not, log out and back in a second time.

**

** If it still doesn't auto-start properly, reboot.

**

Optionale Abhngigkeiten fr compiz-xfce


gconf-editor: Adjust window decorator settings (/apps/metacity/general/)
==> Packages no longer required by any installed package:
intltool pyrex

Selbstverstndlich startet es nicht automatisch. Man muss den laufenden


Fensterdekorator ersetzen.
compiz --replace &

Wer mal vergessen hat die Hkchen fr das Speichern der Session zu
entfernen, dann klappt es auch mit dem Compiz-Autostart.
rm -r ~/.cache/sessions

36

Der aktivierte Wrfel hat nur 2 Seiten :-/


Allgemein Allgemeine Optionen Tab Desktop Gre auf 4:1:1 stellen

CD/DVD automatisch mit VLC ffnen


Einstellungen Einstellungen Wechseltrger und Medieneinstellungen
Reiter Datentrger = alle Checkboxen markiert (man kann natrlich auch eine
Auswahl treffen)
Reiter Unterhaltungsmedien
Audio CDs: /usr/bin/vlc cdda:///dev/sr0
Video CDs/DVDs: /usr/bin/vlc dvd:///dev/sr0
Das funktioniert nicht beim Einlegen der DVD, aber von der Konsole aus
funktioniert es...
Auf einem anderen Rechner hat es einmal funktioniert als ich gvfs installiert
hatte. Nach einem Neustart ging es nicht mehr.
Wenn Automount gar nicht funktioniert, muss man gvfs nachinstallieren.
Keine Ahnung, warum das nicht in dem xfce4-Paket enthalten ist.
pacman -S gvfs

Fensterdekoration ndern
Als Standard wird compiz-xfce4-greybird verwendet. Um eine andere
Fensterdekoration zu verwenden, ldt man sich den gconf-editor herunter:
sudo pacman -S gconf-editor

und dort stellt man unter apps metacity gerneral das Thema ein, z.B.:
cairo-sphinx
cairo-trace

Ausloggen & Einloggen!

37

Mit Alt+Tab kann man nur Fenster aufrufen, die auf der jeweiligen
Arbeitsflche liegen.
Man knnte alle Arbeitsflchen mit STRG-ALT+TAB nutzen, aber da
verkrampfen mir die Finger.
Normalerweise stellt man das in der Fensterverwaltung ein, aber mit Compiz
lsst sich die nicht ffnen.
Ich habe das jetzt im Compiz-Einstellungs-Manager eingestellt. Plug-in Shift
Switcher aktivieren und dort das Tastaturkrzel fr alle Arbeitsflchen auf
Super+Tab gendert. Sieht auch noch schner aus.
Lsung:
Compiz ausschalten und nderungen vornehmen.
ALT+F2 xfce4-sessions-settings
Danach ein Terminal ffnen und dort
xfwm4 --replace &

eingeben. Man muss noch die virtuellen Desktops wieder auf mehr als 1
stellen. Im Settingsmanager den Reiter Sitzung whlen und unten Links auf
Sitzung speichern drcken. Ausloggen & Einloggen!
Um die nderungen wieder zurckzunehmen, einfach wieder:
compiz --replace

Compiz-Bug mit maximierten Fenstern.


Hin und wieder kommt es vor, dass Fenster, die maximiert sind nicht mehr
ansprechbar sind. Nichts funktioniert mehr, weder scrollen noch klicken etc.
Oben in die Fensterzeile klicken oder ALT+F5, um das Vollbild zu verlassen
und dann wieder maximieren hilft erst mal. Das ist ein Bug: siehe:
https://bugs.launchpad.net/compiz/+bug/1158267

Ich habe irgendwas verndert, wei aber nicht was, jetzt ist das Problem weg.

38

Desktop-Suchmaschine
Ich habe mir abgewhnt meine Dateien zu sortieren. Bei mehreren Terabyte
ist das schlichtweg zu viel Arbeit. Deswegen nutze ich gerne
Desktopsuchmaschinen. Unter XFCE mchte ich mal catfish ausprobieren.
sudo pacman -S catfish mlocate

Danach bearbeitet man noch die Datei:


sudo nano /usr/share/applications/catfish.desktop

Dort ersetzt man die Exec-Zeile


Exec=catfish --fileman=thunar --path=/ --hidden
--method=locate funktioniert nicht, aber das sollte eigentlich schon der
Standard sein.

Die Datenbank wird ein mal am Tag aktualisiert, wenn das nicht reicht, kann
man sie auch stndlich aktualisieren. Das sollte ausreichen.
sudo cp /etc/cron.daily/updatedb /etc/cron.hourly/

Mir persnlich ist das nicht schnell genug.

ToDo:
* Integration in Thunar kontrollieren
* Anzahl der Suchergebnisse erweitern

Xfburn kann keine MP3s auf eine CD brennen. Man kann sie noch nicht mal
der Liste hinzufgen. Da fehlt wohl ein Plugin, lame habe ich installiert.
Brasero macht das ohne zu mucken.

39

Dual Monitor mit XFCE


Zuerst ber Einstellungen Einstellungen Anzeige den externen Monitor,
Fernseher, Beamer etc. aktivieren.
Danach auf die Konsole wechseln und dort
eingeben.
xrandr -q

eingeben.
So sieht eine Beispielausgabe aus:
Screen 0: minimum 320 x 200, current 1366 x 1024, maximum 8192 x 8192
LVDS-1 connected 1366x768+0+0 (normal left inverted right x axis y axis) 344mm
x 193mm
1366x768

60.0*+

1024x768

59.9

800x600

59.9

640x480

59.4

720x400

59.6

640x400

60.0

640x350

59.8

VGA-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm
x 301mm
1280x1024

60.0*+

75.0

1152x864

75.0

1024x768

75.1

832x624

74.6

800x600

75.0

60.3

640x480

75.0

60.0

720x400

70.1

75.0

60.0

Jetzt testet man die Einstellungen:


xrandr --output VGA-1 --right-of LVDS-1

Die Adapterbezeichnungen knnen ggf. abweichen, die muss aus der oben
gezeigten Ausgabe bernehmen und man kann right-of natrlich auch auch in
left-of umbenennen, je nachdem ob man den Monitor rechts oder links vom
Laptop stehen hat.
Diese Einstellung geht aber nach einem Neustart verloren, deswegen muss
40

man sie mit XFCE automatisch starten.


Gehe zu Einstellungen Einstellungen Sitzungen und Startverhalten und whle
den Reiter Automatisch gestartete Anwendungen. Dort geht man Hinzufgen, gibt
die oben genannte Zeile ein und setzt das Hkchen zum Autostart.

41

Pakete installieren
Amateurfunk
ist grundstzlich ein Hobby, das sich mit drahtloser Kommunikation
beschftigt. Ein Funkamateur ist jemand, der sich aus purer Neigung mit dem
Thema beschftigt, ohne kommerzielle Interessen zu verfolgen. Man wird
Funkamateur, in dem man eine staatliche Prfung ablegt. Nur wer eine
Zulassung beantragt, darf auch senden. Aber der Empfang von
Amateurfunkaussendungen ist jedermann gestattet. Das Internet ist auch bei
den Funkamateuren nicht mehr wegzudenken, obwohl sich manche alte Hasen
sehr dagegen struben. Meiner Meinung nach ist Funkamateur heutzutage
eine Bezeichnung, womit man sich selbst nur einschrnkt. Ich wrde es
besser Nachrichten- und Kommunikationsamateur nennen. Wer mal reinhren
will, sich aber kein Funkgert kaufen mchte, kann das z.B. ber
http://websdr.org/ tun. Dort findet man Stationen, die die Signale mittels eines
digitalen Empfngers direkt live ber das Internet streamen. Eine gute
bersicht ber Linuxsoftware zum Amateurfunk findet man hier.
http://radio.linux.org.au/

HamRadioTrainer
Webprsenz: http://www.oliver-saal.de/software/afutrainer/

Da ich unbedingt noch mal was fr die Amateurfunkprfung lernen muss,


habe ich den HamRadioTrainer installiert. Das AUR enthlt das Paket
afutrainer und kann mit yaourt installiert werden. Es wird die Qt-Bibliothek
Version 4.2.2 oder hher bentigt. Das AUR-Paket wurde mit qt4-4.8.5-6 und
nicht mit qt5 installiert.
yaourt -S afutrainer

Dann muss man noch die Fragenkataloge herunterladen.


http://www.oliver-saal.de/software/afutrainer/download.php

Dann kann man mit ALT+F2 eine Befehlszeile ffnen und afutrainer eingeben.
Irgendwie lassen sich nicht mehrere Fragenkataloge gleichzeitig ffnnen.
Schade, dass fand ich unter Windows immer ganz angenehm Cross-Site zu
lernen.
42

4nec2
Webprsenz: http://www.qsl.net/4nec2/

... ist ein 2D/3D Antennensimulator, um Antennen gestalten und optimieren zu


knnen. Ich meine, dass es Open-Source wre, finde aber nur ein
Windowsdateien. Zur Not muss man versuchen es unter Wine zu installieren.
Eine Altenative wre xnec2, die aber auf den ersten Blick keineswegs mit
4nec2 vergleichbar ist.
yaourt -S xnec2c

Xnec2c User Manual


http://web.archive.org/web/20110724185152/http://5b4az.chronos.org.uk/pkg/nec2/x
nec2c/doc/xnec2c.html

Gpredict
ist ein Echtzeit-Satelliten-Tracker. Die Pakete aus AUR scheinen aber laut
den Kommentaren nicht zu funktionieren.
Ich habe es auch probiert und es schlgt fehl.
Das ist doch ein guter Moment, zu versuchen es selbst zu kompilieren.
Ich muss dazu sagen, dass ich nicht wei, wie man unter Arch Linux Pakete
erstellt, aber ich kann ja schon mal gucken, ob ich es kompiliert bekomme.
(Ich habe weiter unten noch einen anderen Weg beschrieben, besser den
nehmen.)
WARNUNG: Das ist nur ein Versuch, so macht man das auf einem
Produktivsystem auf keinen Fall.
1)
Zuerst einen neuen Ordner fr selbstgebaute Pakete erstellen.
mkdir gpredict
cd gpredigt

43

Jetzt ldt man den Sourcecode von SourceForge herunter.


http://sourceforge.net/projects/gpredict/files/latest/download?source=files

Dann entpackt das Archiv.


tar -xvzf gpredict-1.3
cd gpredict-1.3

RTFM!
nano README

Dann sieht man, dass man noch ein bisschen mehr bentigt.
- Gtk+ 2.12 or later
- GLib 2.16 or later
- Libcurl 7.16.0 or later
- GooCanvas 0.9 or later
- Hamlib (runtime only, not required for build)
Die ersten drei waren schon installiert. Das kann man mit pacman -Ss
kontrollieren. Und GooCanvas muss ich noch installieren. Es ist wichtig, dass
man die Version 1 installiert, sonst luft es nicht fehlerfrei durch.
pacman -S goocanvas1

Jetzt habe ich es in das Home-Verzeichnis installiert.


./configure --prefix=/home/benutzer/gpredict/gpredict-1.3
make
make install

Wenn alles geklappt hat einen Verzeichniswechsel und ausfhren:


cd bin
./gpredict

Man hat jetzt wohl noch keine Hamlib, deswegen kann man weder den Rotor
nachfhren, noch das Funkgert ansteuern, um den Dopplereffekt
auszugleichen.
http://hamlib.sourceforge.net/NEWS
http://sourceforge.net/apps/mediawiki/hamlib/index.php?title=Download
https://aur.archlinux.org/packages.php?ID=22311

44

2)
Um doch das AUR-Paket doch nutzen zu knnen, versuche ich es zu
bearbeiten. Der Fehler war, dass grig nicht kompilierte, das ist ein grafisches
Programm, um das Funkgert zu steuern. Das brauche ich erst mal nicht
grafisch.
http://groundstation.sourceforge.net/grig/

Wer die hamlib braucht, damit der Rotor automatisch nachfhrt und das
Funkgert automatisch den Dopplereffekt ausgleicht, kann sie aus dem AUR
installieren. Die ist zwar als veraltet markiert, aber das drfte eigentlich die
aktuelle Version sein. Amateurfunk ist halt nur ein Hobby, da dauern die
Releases auch schon mal was lnger.
yaourt -S hamlib

Danach ein Verzeichnis erstellen:


mkdir gpredict
cd gpredict

Tar-Archiv herunterladen und entpacken


wget https://aur.archlinux.org/packages/gp/gpredict/gpredict.tar.gz
tar -xvzf gpredict.tar.gz
cd gpredict

Jetzt das PKGBUILD bearbeiten:


nano PKGBUILD

Dort folgendes ndern


von
depends=('curl' 'grig' 'gtk2' 'goocanvas')

in
depends=('curl' 'gtk2' 'goocanvas1')

Speichern und das Paket bauen und installieren.


makepkg -si

So, jetzt luft es durch.

45

Bro
LibreOffice
Webprsenz: http://de.libreoffice.org/

Ich brauche nicht das ganze Libreoffice-Paket, deshalb habe ich nur eine
Auswahl installiert.
pacman -S libreoffice-common libreoffice-de libreoffice-calc
libreoffice-impress libreoffice-writer ttf-liberation

Da sich Libreoffice nicht in das voreinstellte Theme integriert, habe ich das
Paket libreoffice-gtk-only-ultralight aus AUR installiert. Es sorgt dafr, dass
LibreOffice lediglich die GTK-Theme benutzt wird, ohne die ganzen GnomeAbhngigkeiten zu bentigen.
yaourt -S libreoffice-gtk-only-ultralite

Da ich spter Gnome installiert habe, wurde es ersetzt.


pacman -Rss libreoffice-gtk-only-ultralite
pacman -S libreoffice-gnome

Rechtschreibprfung

Wrterbuch von hier herunterladen


http://extensions.libreoffice.org/extension-center?getCategories=Dictionary
Ich habe das German(de-DE-1901)old spelling 2012.09.29 heruntergeladen,
obwohl es die alte Rechtschreibung bercksichtigt. Habe aber auf die schnelle
kein anderes gefunden.
Das Wrterbuch unter Extras Optionen Spracheinstellungen im
Unterpunkt Linguistik hinzufgen.
Probleme:
* Ich hatte, nachdem ich etwas mit dem Erscheinungsbild herumgespielt habe,
Probleme mit den Icons gehabt. Um das zu beheben, whlt man ber Extras
Optionen im Untermen Ansicht einen anderen Symbolstil aus.
* Ich benutze jetzt hunspell-de zur Rechtschreibprfung, jetzt finde ich das
Wrterbuch nicht mehr, was ich heruntergeladen habe, aber scheint noch
aktiv zu sein.
46

Tomboy
Webprsenz: https://projects.gnome.org/tomboy/

Tomboy ist eine Notizzettelanwendung mit vielen Funktionen, wie


Rechtschreibprfung, Notizen untereinander verlinken, Listendarstellung, als
HTML exportieren, Druckfunktion, Hyperlinks im Dateisystem und Internet
anlegen, synchronisieren, durch Plugins erweiterbar und noch einiges mehr.
pacman -S tomboy

Hier gibts weitere Plugins:


https://wiki.gnome.org/Apps/Tomboy

47

Internet
Firefox
Webprsenz: http://www.mozilla.org/de/firefox/new/

Firefox mit deutscher Sprachdatei und Flash-Plugin installieren


pacman -S firefox firefox-i18n-de flashplugin

Um die Rechtschreibprfung zu aktivieren, installiere hunspell


pacman -S hunspell-de

Um Java im Firefox nutzen zu knnen, Siehe Java

Firefox im Sandkasten
Um Firefox in einem isolierten Bereich, der keinen oder nur eingeschrnkten
Zugriff auf das Dateisystem hat, bentigt man ???
z.B. http://igurublog.wordpress.com/downloads/script-sandfox/
Ich benutze den Firefox momentan auch um PDFs zu lesen.
No-Script add-On installiert

RC4 abschalten:
ffnen, dort nach rc4 suchen und alle 6 Einstellungen auf false
stellen. Jetzt werden alle Seiten, die mit RC4 verschlsseln wollen mit einer
anderen Methode verschlsselt. Falls eine Seite keine andere Methode
untersttzt, kann die Seite nicht geffnet werden. Dann sollte man die Seite
aber nicht benutzen.
about:config

AES 128 abschalten: Das macht Probleme!!


Weil ich gerade meinen Paranoiden habe, habe ich AES mit 128 Bit
Schlssellnge verboten. Also jede Seite muss mit 256 Bit Schlssellnge
verschlsseln. Auch wieder about:config und dort nach aes suchen und alle
Eintrge mit 128 Bit auf false stellen. Ich wei nicht wieso, aber Firefox
scheint immer die weniger starke Verschlsselung zu bevorzugen.

48

Probleme:
Bei Youtube und weiteren wird das Bild auf beiden Monitoren nicht als
Vollbild angezeigt. Der Bildschirm geht zwar in den Vollbildmodus und man
kann auch das Bild sehen, aber das Bild geht nicht ber den ganzen
Bildschirm. Das ist nicht nur ein Gnome-, sondern auch ein LXDE-Problem. Ich
bin mir eigentlich sicher, dass ich das bei der Installation berprft habe. Das
Problem tritt auch wieder nur im Dual-View auf. Ohne externen Monitor
funktioniert es ohne Probleme, was auch erklrt, warum es mir bei der
Installation nicht aufgefallen ist.
Das Problem mit zwei Monitoren scheint sich durch das ganze System zu
ziehen. Solange ich nur den Laptopmonitor benutze, funktioniert alles
einwandfrei. Da sollte ich besser eine globale Lsung suchen, bevor ich mich
jetzt mit einem Closes-Source-Flash-Plugin herumschlage. Zumindest fr
Youtube kann man die Videos in Vollbild ber HTML5 gucken.
http://www.youtube.com/html5

Das wird allerdings ber Cookies gesteuert, wenn man diese lscht, muss man
das wiederholen, aber es gibt Add-Ons, die HTML5 permanent aktivieren.
Die Nachricht, dass Youtube jetzt im Vollbildmodus dargestellt wird, nervt
mich schon. Das sehe ich auch. Um das abzuschalten, geht man in die
Adresszeile und gibt about:config ein und stellt full-screen-api.approvalrequired auf false.
Man kann diese HTML5-Viedeo auch ganz leicht herunterladen. Einfach einen
Rechtsklick an einer leeren Stelle und auf Seiteninformationen anzeigen.
Dann auf den Reiter Medien und dort sieht man eine Liste von eigebunden
Medien, also auch das Video. Markieren und Speichern unter. Das kann dann
mit dem VLC-Player wiedergegeben werden.

Https Everywhere
Webprsenz: https://www.eff.org/https-everywhere

ist ein Add-On, dass berprft, ob die angewhlte Seite in der Positivliste
steht und diese dann automatisch per https ansteuert anstatt die
unverschlttelte Version http zu benutzen. Zustzlcih gibt es das ??
Observium??, dass die Zertifikate berprft.
49

Das ist mir persnlich nicht genug. Ich habe keine Lust, jede einzelne Seite zu
berprfen, ob sie https untersttzt und dann per Hand eine eigene Regel zu
schreiben. Das ist doch Quatsch, was die sich da ausgedacht haben.
Deswegen benutze ich auch noch das Add-On Https-Finder. Das berprft
automatisch, ob es auch eine https-Version dieser Seite gibt und fgt diese
automatisch zu einer Liste hinzu.
Es wird allerdings, wie auch Https-Everywhere nicht offiziell auf der Mozilla
Seite angeboten. Bei Https-Everywhere ist das so, weil die Electronic Frontier
Fondation (EFF), die das Add-On entwicket haben, nicht mit den Lizenzen
einverstanden ist. Aber das Https-Finder Add-On wurde frher auf der Mozilla
Add-On Seite angeboten. Warum das jetzt nicht mehr so ist, kann ich nicht
sagen.
Man muss es hier herunterladen und von Hand installieren.
https://code.google.com/p/https-finder/

Der Firefox hat so einige Einstellungen, die mir nicht gefallen:


* Zum Beispiel sendet der Firefox jede Seite, die ich besuche mit Google ab.
Ich verstehe das nicht. Das will ich nicht. Ich wei auch nicht, was sich die
Entwickler dabei. Klar, ist es schon sicherer, denn jede Besuchte Seite wird so
auf Betrugsversuche gegen geprft. Ich halte trotzdem nichts davon.

Thunderbird
Webprsenz: http://www.mozilla.org/de/thunderbird/
Thunderbird Email-Client mit deutscher Sprachdatei installieren:
pacman -S thunderbird thunderbird-i18n-de

50

Transmission
Webprsenz: http://www.transmissionbt.com/

Transmission ist ein Bittorrent-Client. Er ist sehr klein und einfach gehalten,
hat aber trotzdem viele Funktionen. Ich habe recht gute Erfahrungen mit ihm
gemacht, deswegen nutze ich ihn auch hier.
Es gibt mehrere grafische Versionen. Ich nutze die GTK.
Installation:
pacman -S transmission-gtk

Google Earth
Webprsenz: http://earth.google.de

ist ein virtueller Globus. Ach, was erzhl ich, kennt doch bestimmt jeder.
yaourt -S google-earth

Falls das mit deinem Rechner nicht funktioniert, probiere google-earth6.


Yaourt will das Paket nicht bauen, da es "lib32-glibc" nicht auflsen (eine
Abhngigkeit von "ld-lsb") kann. Warum auch, ich habe ein 64-bit-System..
Man kann das Multilib-Repositorium in der pacman.conf freischalten, dann
klapp es.
nano /etc/pacman.conf

da multilib auskommentieren, speichern und Pacman aktualisieren.


pacman -Syu

51

Tor - The Onion Router


Webprsenz. https://www.torproject.org/

ist ein Netzwerk zur Anonymisierung...


Da alle Pakete bei Arch Linux veraltet sind, empfehle ich diese nicht zu
installieren. Im Moment wrde ich das Tor-Browser-Bundle von der Webseite
herunterladen. Dieses muss nicht installiert werden.
Lade das Browserbundle und die dazugehrige Signatur von der Webseite
herunter:
https://www.torproject.org/projects/torbrowser.html.en
In meinem Fall war das die deutsche 64-bit Version.
Wichtig wre zu berprfen, ob das Paket nicht manipuliert wurde. Ich gebe
zu, dass das etwas umstndlich ist. Die Entwicklerschlssel kann man hier
sehen.
https://www.torproject.org/docs/signing-keys.html.en

Um zu berprfen, ob die Signatur bereinstimmt, gehe in das Verzeichnis


und:
gpg --verify tor-browser-linux64-3.5_de.tar.xz{.asc,}
gpg: Signatur vom Di 17 Dez 2013 21:41:12 CET mittels RSA-Schlssel ID 63FEE659
gpg: Signatur kann nicht geprft werden: Kein ffentlicher Schlssel

Jetzt sagt das noch nicht so viel, aber dieses Tor-Bundle-Paket wurde von
Erinn Clark signiert und man ldt jetzt ihren ffentlichen Schlssel herunter.
gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x416F061063FEE659
gpg: fordere Schlssel 63FEE659 von hkp-Server pool.sks-keyservers.net an
gpg: Schlssel 63FEE659: ffentlicher Schlssel "Erinn Clark
<erinn@torproject.org>" importiert
gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell
gpg: Tiefe: 0

gltig:

signiert:

Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u

gpg: nchste "Trust-DB"-Pflichtberprfung am 2014-12-12


gpg: Anzahl insgesamt bearbeiteter Schlssel: 1
gpg:

importiert: 1

(RSA: 1)

52

Um jetzt den Fingerabdruck zu berprfen:


gpg --fingerprint 0x416F061063FEE659
pub

2048R/63FEE659 2003-10-16

Schl.-Fingerabdruck = 8738 A680 B84B 3031 A630

F2DB 416F 0610 63FE E659

uid

Erinn Clark <erinn@torproject.org>

uid

Erinn Clark <erinn@debian.org>

uid

Erinn Clark <erinn@double-helix.org>

sub

2048R/EB399FD7 2003-10-16

Und jetzt noch mal die Datei berprfen:


gpg --verify tor-browser-linux64-3.5_de.tar.xz{.asc,}

gpg: Signatur vom Di 17 Dez 2013 21:41:12 CET mittels RSA-Schlssel ID 63FEE659
gpg: Korrekte Signatur von "Erinn Clark <erinn@torproject.org>"
gpg:

alias "Erinn Clark <erinn@debian.org>"

gpg:

alias "Erinn Clark <erinn@double-helix.org>"

gpg: WARNUNG: Dieser Schlssel trgt keine vertrauenswrdige Signatur!


gpg:
Es gibt keinen Hinweis, da die Signatur wirklich dem
vorgeblichen Besitzer gehrt.
Haupt-Fingerabdruck

= 8738 A680 B84B 3031 A630

F2DB 416F 0610 63FE E659

Jeder erkennt das Problem, ich kann zwar jetzt sagen, dass das Paket von
Erinn Clark unterschrieben wurde und nach einiger Recherche im Internet
glaube ich, dass alles seine Richtigkeit hat, aber ich vertraue ihr halt trotzdem
nicht. Ich kenne sie nicht und ich kenne auch niemanden, der sie kennt und
ihr vertraut. Und deswegen ist sie letztendlich doch nicht vertrauenswrdig.
Um die Anonymitt zu erhhen reicht Tor alleine nicht aus, sondern man muss
auch seine Gewohnheiten ndern.
* Melde dich nie auf Seiten an, die deine Identitt trotzdem freigeben. Es
bringt zum Beispiel nichts, wenn man sich bei Facebook o.. mit seinem realen
Namen anmeldet. Dann ist logischerweise die Anonymitt dahin.
* Benutze kein Bittorrent ber Tor! Auch wenn alles ber Tor geroutet wird,
verraten Torrents deine echte IP-Adresse in der GET-Anfrage. So funktioniert
Bittorrent.
53

* Benutze immer https anstelle von http. Die Verbindungen innerhalb des TorNetzwerkes sind verschlsselt, aber von dem Ausgangspunkt des TorNetzwerkes bis zu der Seite, die man anfordert ist die Verbindung so wie man
sie anfordert und im Falle von http unverschlsselt.
* ffne keine Dateien, die du durch Tor heruntergeladen hast, solange du
online bist. Es kann vorkommen, besonders bei .doc oder .pdf Dateien, dass
die verwendeten Programme automatisch etwas nachladen, wenn man die
Dateien ffnet. Das geschieht dann aber nicht mehr durch Tor, wenn man das
nicht ausdrcklich so eingestellt hat. Das wrde deine IP-Adresse verraten
und du bist enttarnt. Es macht daher Sinn diese Dateien nur zu ffnen, wenn
man nicht mit dem Internet verbunden ist. Alternativ knnte man sich eine
virtuelle Umgebung schaffen, die keinen Zugang zum Internet hat.
* Benutze keine Plugins wie Flash, Java, (JavaScript,) Quicktime usw. und
installiere keine zustzlichen Add-Ons. Diese knnen deine Anonymitt
untergraben. Das bedeutet natrlich auch, dass Seiten, die Flash benutzen
nicht funktionieren. Im Falle von Youtube knnte man HTML5 benutzen, was
allerdings etwas nervig ist, weil Youtube das mit Cookies bewerkstelligt.
Auerdem stellt Youtube nicht alle Videos fr die Nutzung mit HTML5 bereit.
Besonders neu hinzugefgte Videos knnen nicht abgespielt werden.
Im Tor-Browser-Bundle wurde No-Script so konfiguriert, dass JavaScript
erlaubt ist. Das ist ein zweischneidiges Schwert. Auf der einen Seite sollte
JavaScript aktiviert sein, weil sonst viele Seiten nicht funktionieren und auf
der anderen Seite sollte man es deaktivieren, um Einfallstore im Browser
schwieriger ausnutzen zu knnen.
* Speicher keine Cookies! Diese Verraten deine Identitt auch wenn sich die
IP-Adresse ndert.

weitere Applikationen durch das Tor Browser Bundle laufen lassen:


Normalerweise stellt Tor einen Socks-Proxy auf Port 9050 bereit. Beim Bundle
hrt dieser auf Port 9150, um Konflikte mit einer installierten Tor-Version zu
vermeiden.

54

Multimedia

VLC
Webprsenz: http://www.videolan.org/vlc/
Paket installieren
pacman -S vlc

Um CDs/DVDs mit dem VLC abspielen zu knnen, mssen zustzliche


Bibliotheken installiert werden. Siehe Optisches Laufwerk
Probleme:
Die DVD startet nicht automatisch auf Deutsch.

Brasero
Webprsenz: https://projects.gnome.org/brasero/

Brasero ist ein grafisches Werkzeug, um CDs/DVDs brennen zu knnen.


Installation:
pacman -S brasero

Es startet, aber ich habe es jetzt nicht weiter ausprobiert.

Transkritionsprogramme
Transcribe
Webprsenz: https://launchpad.net/transcribe

55

Gimp
Webprsenz: http://www.gimp.org/

Das GNU Image Manipulation Program ist ein Bildbearbeitungsprogramm,


dessen Schwerpunkt auf die Bearbeitung von Einzelbildern liegt und viele
Erweiterungen untersttzt. Ich muss ehrlich zugeben, ich persnlich komme
nicht damit klar. Die Bedienung erschliet mir einfach nicht, aber das liegt
wahrscheinlich daran, dass ich mit Bildbearbeitung nicht berhaupt nicht
auskenne.
sudo pacman -S gimp

Hier gibt es die offizielle Dokumentation:


http://docs.gimp.org/

Hier gibt es weitere Tutorien:


http://www.gimpusers.de/tutorials

Sonstiges
Taschenrechner:

Galculator:
Webprsenz: http://galculator.sourceforge.net/

ist ein ein auf GTK 2/3 basierender Taschenrechner.


sudo pacman -S galculator

Der ist nicht gut. Ich habe mich direkt bei der ersten Rechnung verrechnet,
weil ich nicht hingeguckt habe. Der hat so ein schnes breites Display, kann
aber man kann nur 12 Zahlen eingeben. Da habe ich mich bei der Rechnung
mal schnell ber 8000 Jahre vertan.
56

Gnome-Calculator
pacman -S gnome-calculator

Sieht nicht ganz so nett aus, funktioniert aber im Gegensatz zum Galculator.

Genius
pacman -S genius

Spiele
Ich bin kein groer Gamer, aber manchmal mchte man auch ein bisschen
daddeln.

TORCS The Open Racing Car Simulator


Webprsenz: http://torcs.sourceforge.net/

ist eine 3D-Autorennsimulation.


pacman -S torcs

F2 wechselt die Perspektive, F1 zeigt eine bersicht.


Leider gibts ein Problem mit dem zweiten Monitor, wenn man das Spiel im
Vollbildmodus spielt. Wenn man es startet, wird der externe Monitor
abgeschaltet, aber wenn man das Spiel beendet, wird er nicht wieder
eingeschaltet. Da gibts aber doch bestimmt einen Workaround.
Keine Probleme mehr mit Vollbild unter XFCE.
57

Systemprogramme

Yaourt
Es gibt zwei Mglichkeiten Yaourt zu installieren. Entweder baut man sich die
Pakete selbst oder man installiert sie ber Pacman.
1. Paket selbst bauen
Yaourt braucht wget diffutils und base-devel. Base-devel wurde schon
installiert. Danach muss man das Paket herunterladen, selbst bauen und
installieren, dafr kann man aber alle weiteren Pakete mit yaourt
herunterladen, bauen und installieren.
pacman -S wget diffutils

Ab hier habe ich mich als normaler Benutzer angemeldet, weil ich die Pakete
nicht als root bauen wollte.
Neues Verzeichnis fr AUR anlegen und hineinwechseln
mkdir AUR
cd AUR

package-query installieren
wget https://aur.archlinux.org/packages/pa/package-query/package-query.tar.gz
tar -xvzf package-query.tar.gz
cd package-query
makepkg -si

ins nchst hhere Verzeichnis wechseln und yaourt installieren


cd ..
wget https://aur.archlinux.org/packages/ya/yaourt/yaourt.tar.gz
tar -xvzf yaourt.tar.gz
cd yaourt
makepkg -si

58

2. Installation ber Pacman


pacman.conf bearbeiten
sudo nano /etc/pacman.conf

folgendes am Ende hinzufgen


[archlinuxfr]
SigLevel = PackageRequired

falls das nicht klappt, Optional TrustAll

Server = http://repo.archlinux.fr/$arch

Jetzt yaourt ber pacman installieren


sudo pacman -Syu yaourt

DHCP
Da ich manchmal Pakete brachial entferne, ohne auf Abhngigkeiten zu
achten, habe ich keinen DHCP-Client mehr. Jetzt wei ich nicht ganz genau,
ob ich dhcpcd oder dhclient nutzen sollte. Der eine sagt so, der andere sagt so
- ich sage dhcpcd, aber auch eigentlich nur, weil innerhalb von 2 Minuten
nicht gefunden habe, wie ich den dhclient mit systemd beim Hochfahren
starte.
sudo systemctl enable dhcpcd@enp7s0

Java
Installation:
pacman -S jre7-openjdk

Es gibt noch eine Reihe von optionalen Abhngigkeiten. Die meisten waren
bei mir schon installiert.
Um Java im Webbrowser nutzen zu knnen, muss man noch folgendes
installieren:
pacman -S icedtea-web-java7

59

Zsh mit grml-Konfiguration


Bevor man startet, berprft man erst mal, welche Shell momentan benutzt
wird.
echo $SHELL

Jetzt wird das Paket zsh installiert:


pacman -S zsh

Um das Rad nicht neu zu erfinden, greife ich auf eine fertige
Standardkonfiguration zurck, die von dem Debian Derivat grml zur Verfgung
gestellt wird. Damit sind schon eine Menge an Funktionen standardmig
aktiviert.
pacman -S grml-zsh-config

Nach einem Neustart oder wenn man ein neues Terminal ffnet, bekommt
man einen Auswahlbildschirm. Dort whlt man die 0.
(0)

Exit, creating the file ~/.zshrc containing just a comment.


That will prevent this function being run again.

Das kann man auch spter manuell starten.


zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f

Jetzt testet man erst mal als normaler Benutzer, ob sich zsh als Standardshell
fr den Benutzer aktivieren lsst.
chsh -s /bin/zsh

Ich habe die .zhrc mal in mein Homeverzeichnis gepackt, das muss man aber
nicht.
cp /etc/zsh/zshrc ~/.zshrc

Wenn man eigene Anpassungen vornehmen mchte, benutzt man .zshrc.local


oder .zshrc.pre
Wenn man diese Konfiguration nutzen mchte muss man wahrscheinlich
chsh -s /usr/bin/zsh

benutzen, habe ich aber noch nicht ausprobiert.

60

zmap
Webprsenz: https://zmap.io/

Wie man merkt, mag ich die Programme, die mit z anfangen. Das hat damit zu
tun, dass es der letzte Buchstabe im Alphabet ist. Das bedeutet nicht selten,
dass sich die Entwickler sehr viel Mhe geben etwas zu schaffen, nachdem
nichts mehr kommt. Das ist natrlich nicht wirklich mglich, es wird in
Zukunft immer etwas besseres geben, aber sie strengen sich im Normalfall
schon an, etwas zu schaffen, was mehrere Jahre den anderen Programmen
berlegen ist. Ausnahmen besttigen sie Regel.
Die Version ist (wie eigentlich fast immer) veraltet.
https://aur.archlinux.org/packages/zmap/?setlang=de

guake
Guake ist ein Terminal-Emulator, der sich wunderbar mit Transparenz in
Gnome einfgt. Mit F12 ffnet er sich, F11 ist Vollbild.
pacman -S guake

und danach ber gome-tweak-tool zum Autostart hinzugefgt. Wer das nicht
benutzt, kann auch folgendes nutzen.
cp /usr/share/application/guake.desktop /etc/xdg/autostart

Probleme:
Wenn man ein neues Tab ffnet, hat das neue Tab keine Transparenz.
Um das zu beheben, ffnet man einfach mit STRG-Shift-T ein neues Tab und
geht dann erneut in die Einstellungen. Dort einfach noch mal den Regler fr
Transparenz verndern und danach werden alle weiteren Tabs mit
Transparenz dargestellt.

61

Gvim
Auf Dauer braucht man doch mal einen grafischen Editor. Ich habe mal Gvim
ausprobiert. Mit vim habe ich schon mal gearbeitet, aber mit Gvim habe ich
noch nie gearbeitet, deshalb kann ich es jetzt auch nicht empfehlen. Unter
Gnome ist der Standardeditor gedit.
pacman -S gvim

Screenreader
Da bin ich echt froh, dass ich nicht blind bin. Im Jahr 2013 sollte man
eigentlich davon ausgehen, dass Barrierefreiheit auf dem Computer eine
Selbstverstndlichkeit ist, aber das funktioniert ja echt besch...eiden.

Orca
Webprsenz: https://wiki.gnome.org/Projects/Orca

sudo pacman -S orca

espeak
Webprsenz: http://espeak.sourceforge.net/

In der Reihenfolge:
sudo pacman -S alsa-lib alsa-oss alsa-utils alsa-plugins pulseaudio pulseaudioalsa
alsamixer
alsactl store
pacman -S espeak
yaourt -S espeak-gui

62

Wireshark
Webprsenz: http://www.wireshark.org/

Installation (Damit wird auch wireshark-cli installiert):


sudo pacman -S wireshark-gtk

Damit man Pakete mitschneiden kann, bentigt man Administrationsrechte.


Das macht einen aber unntig angreifbar, da man ja manipulierte Pakete
empfangen knnte, die das System kompromittieren.
Mit der Installation ist auch das Programm dumpcap vorhanden und man sorgt
dafr, dass dumpcap der einzige Prozess ist, der berechtigt ist, Pakete
mitzuschneiden.
getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip

Somit hat /usr/bin/dumpcat die Privilegien Pakete mitzuschneiden und kann von
Mitgliedern der Gruppe Wireshark gestartet werden. Dazu fgt man den
Benutzer der Gruppe Wireshark zu und kann dann als normaler Benutzer
Pakete mitschneiden.
sudo gpasswd -a Benutzer wireshark

Bei mir funktionierte das erst nach einem Neustart, bzw. aus- & einloggen, da
sonst die ntigen Rechte fehlten.
So geht man auch bei tcpdump vor.

Nmap
Webprsenz: http://nmap.org/

ist ein Portscanner.


sudo pacman -S nmap

Zenmap wurde mitinstalliert.

63

SSH
sudo pacman -S openssh

Filezilla
sudo pacman -S filezilla

Gnome Archive Manager - File-Roller


Webprsenz: http://fileroller.sourceforge.net/
sudo pacman -S file-roller

Raspberry Pi Emulation mit Arch Linux ARM auf Arch Linux


Qemu

Um den Raspberry Pi zu emulieren bentigt man Qemu.


sudo pacman -S qemu

Leider untersttzt die CPU keine direkte Virtualisierung, daher kann man
KVM nicht nutzen.
lscpu

oder
64

grep -E "(vmx|svm)" --color=always /proc/cpuinfo

Einen neuen Ordner erstellen


mkdir raspberrypi
cd raspberrypi

Das Arch Linux Abbild fr den Raspberry Pi heruntergeladen:


wget http://downloads.raspberrypi.org/arch_latest

Sha1-Prfsumme berprfen
(Muss man auf der Seite nachschlagen. Es gibt bestimmt auch eine andere
Mglichkeit, kenne ich aber nicht. http://downloads.raspberrypi.org/ )
sha1sum arch_latest

Datei entpacken
unzip arch_latest

Zip lschen
rm arch_latest

Linux Kernel fr Qemu herunterladen


wget http://xecdesign.com/downloads/linux-qemu/kernel-qemu

Dann das erste mal starten, dort muss noch was gendert werden, bevor es
luft.
qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -noreboot -serial stdio -append "root=/dev/sda5 panic=1 rootfstype=ext4 rw
init=/bin/bash" -hda archlinux-hf-2013-07-22.img

In der Rasp-Konsole die Tasturbelegung ndern


loadkeys de-latin1

bzw.
loadkezs delatin1

nano /etc/udev/rules.d/90-qemu.rules
KERNEL=="sda", SYMLINK+="mmcblk0"
KERNEL=="sda?", SYMLINK+="mmcblk0p%n",

65

Noch mal starten, ohne init=/bin/bash


qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -noreboot -serial stdio -append "root=/dev/sda5 panic=1 rootfstype=ext4 rw" -hda
archlinux-hf-2013-07-22.img

Fehlermeldung:
* Failed to start Kernel Modules
* A start job is running for dev-mmcblk0p1.device
* Timed out for device dev-mmcblk0p1.device
* Dependency failed for /boot
* Dependency failed for Local File System
User:

root

Passwort:

root

Wine
ist ein rekursive Akronym fr Wine is not an Emulator und stellt eine
Windows-Laufzeitumgebung dar, so dass man Windows-Programme unter
Linux laufen lassen kann.
Wenn man ein x86_64-System benutzt, muss das Multilib-Repositorium in
der /etc/pacman.conf aktiviert sein.
sudo pacman -S wine

Es standen bei mir mehrere lib32-libgl zur Verfgung, ich habe die
voreingestellte lib32-mesa-libgl genommen.
Die Konfiguration von Wine kann man mit
winecfg

starten.
Da wurden mir zwei Fehler angezeigt, und zwar wurde Mono und Gecko nicht
gefunden.
66

Jetzt knnte die Pakete einzeln nachinstallieren


sudo pacman -S wine_gecko wine-mono

oder ich gleaube es reicht auch, wenn man winetricks installiert, welches
verschiedene Bibliotheken nachinstalliert. Unter Windows enden diese
Bibliotheken immer .dll.
sudo pacman -S winetricks

Auf einem 64-Bit System wird Wine auch mit 64-Bit ausgefhrt. Wenn man
jetzt 32-Bit-Programme laufen lassen mchte, muss man vorher
WINEARCH=win32 WINEPREFIX=/home/user/32bit-wine winecfg

ausfhren. Das hat bei mir jede Menge Fehler hervorgerufen.


wine: created the configuration directory '/home/benutzer/32bit-wine'
err:module:load_builtin_dll failed to load .so lib for builtin L"winemp3.acm":
libmpg123.so.0: Kann die Shared-Object-Datei nicht ffnen: Datei oder Verzeichnis nicht
gefunden
fixme:storage:create_storagefile Storage share mode not implemented.
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
err:mscoree:LoadLibraryShim error reading registry key for installroot
fixme:storage:create_storagefile Storage share mode not implemented.
err:winediag:SECUR32_initNTLMSP ntlm_auth was not found or is outdated. Make sure that
ntlm_auth >= 3.0.25 is in your path. Usually, you can find it in the winbind package of
your distribution.
fixme:iphlpapi:NotifyAddrChange (Handle 0xece8a0, overlapped 0xece8ac): stub
wine: configuration in '/home/benutzer/32bit-wine' has been updated.
err:module:load_builtin_dll failed to load .so lib for builtin L"winemp3.acm":
libmpg123.so.0: Kann die Shared-Object-Datei nicht ffnen: Datei oder Verzeichnis nicht
gefunden
^Cfixme:console:CONSOLE_DefaultHandler Terminating process 8 on event 0

Ich benutze Wine nicht so gerne, weil man sich die ganzen WindowsProblematik auf sein System holt. Nur fr das eine benutzt, wofr ich es
brauchte und wieder deinstalliert.

67

Iris Erkennung
Webprsenz: http://projectiris.co.uk/

Die Tatsache, dass biometrische Daten sich nicht unbedingt zur


Zugangssicherung eignen, sollte eigentlich bekannt sein. Sie sind nicht so
flschungssicher, wie uns dass die Firmen gerne verkaufen. Das grte
Problem, was die momentan blichen Systeme aufweisen, ist, dass sie nicht
verifizieren, ob es sich um lebendes Gewebe handelt. Man kann also leicht 3DModelle aus geeigneten Materialien herstellen, um die Zugangssperre zu
umgehen. Der zweite Grund, warum man keine wichtigen Dinge mit
biometrischen Daten sichern will, ist die Tatsache, dass man Krperteile
durchaus abschneiden kann, whrend man ein Passwort nicht aus dem Kopf
schneiden kann. Nichts desto trotz, kann es im Zusammenspiel mit
traditionellen Methoden den Zugang erschweren. Auerdem will ich mich ja
hier mit Technik beschftigen.

Das Programm wurde wohl bei einem Projekt entwickelt und ist leider nicht
ber Versionsnummer 0.1 hinausgekommen und wurde seit 2010 nicht mehr
weiterentwickelt.
Dazu hngt das Paket im AUR von kdelibs ab, was absolut unntig ist. Das
Programm bentigt Qt.
cd AUR
mkdir iris
cd iris
wget https://aur.archlinux.org/packages/ir/iris/iris.tar.gz
tar -xvzf iris.tar.gz
cd iris
nano PKGBUILD

Dort die Abhngigkeit kommentieren


## depends=('kdelibs') - ich denke, das braucht man nicht. Es sollte mit Qt
funktionieren.

Auerdem hat der Verantwortliche 100%ig nicht getestet, ob das Paket


kompiliert. Da muss anstatt
install=('iris.install')

nmlich
install=iris.install

stehen. Das muss ein String sein und kein Array. Und anstatt qmake muss da
68

qmake-qt4

stehen.

Das PKGBUILD sollte also ungefhr so aussehen:


pkgname=iris
pkgver=0.1
pkgrel=1
pkgdesc="A simple and intuitive interface for reading in images of eyes,
comparing them, and verifying their identity."
url="http://projectiris.co.uk/"
license=('GPL')
arch=('i686' 'x86_64')
## depends=('kdelibs') Warum? Es basiert auf Qt.
depends=('qt4')
source=(http://projectiris.co.uk/releases/source/${pkgname}-${pkgver}.tar.gz)
md5sums=(21ca4355c657f9a794217d79115e40cd)
install=iris.install
build() {
cd ${srcdir}/${pkgname}-${pkgver}
qmake-qt4
make || return 1
msg "Make successful, installing..."
mkdir -p $pkgdir/usr/bin
mkdir -p $pkgdir/usr/share/iris
cp $srcdir/${pkgname}-${pkgver}/iris

$pkgdir/usr/bin/iris

cp $srcdir/${pkgname}-${pkgver}/014_1_*.bmp

$pkgdir/usr/share/iris/

Zum kompilieren wieder:


makepkg -s

Wie bei einer Version 0.1 zu erwarten war, ist das Programm fr nichts
produktives zu gebrauchen, sondern eher fr Forschung und Lehre gedacht.
Ein vergleichbares Projekt, zumindest ausgehend von den Screenshots, wre
JIRMM, ein Open Source Iris-Scanner in Java geschrieben. Allerdings ist der
noch lter, nmlich von 2006.
http://sourceforge.net/projects/jirrm/

Ich habe es mir nicht angeguckt. Es muss doch irgendwo was anstndiges
geben. Siehe auch:
69

https://github.com/bernii/IrisRecognition

weitere:
http://www.grusoft.com/girist.htm

Hardware konfigurieren

CPU-Frequenz
Um zu berprfen, mit welcher Frequenz die CPUs laufen:
grep MHz /proc/cpuinfo

Die Ausgabe war:


CPU MHZ:

1200

CPU MHZ:

2300

Eigentlich sollten beide einen Wert von 2300 aufweisen, aber ich habe es nur
zur Kenntnis genommen und werde das spter auflsen. Das ist okay, hier ist
das CPU-Frequency-Scaling aktiviert.

70

Soundkarte
Alsa installieren und den Benutzer, der erstellt wurde, zur Gruppe audio
hinzufgen.
sudo pacman -S alsa-utils
sudo gpasswd -a benutzer audio

Mit alsamixer die Lautstrke einstellen:


alsamixer

Danach als normaler Nutzer testen (ggf. ausloggen & wieder einloggen), ob
die Soundkarte funktioniert.
aplay /usr/share/sounds/alsa/Noise.wav

Bei mir funktionierte die Karte erst nach einem Neustart. Ausloggen alleine
hat nicht funktioniert.

Internen PC-Speaker deaktivieren


Zur Blacklist hinzufgen
nano /etc/modprobe.d/blacklist.conf

Die Zeile hinzufgen


blacklist pcspkr

WLAN
Ich wei den genauen Wortlaut gerade nicht aus dem Kopf. Ungefhr so:
WLAN-Firmware nicht gefunden
b43-phy0
b43/ucode15.fw
b43-open/ucode15.fw
Besuchen Sie die Seite http://xxxxxxx fr weiter Informationen

71

ip addr besttigt, dass kein WLAN-Adapter erkannt wurde.


ip addr

Um das WLAN zum laufen zu bekommen, habe ich die Firmware aus dem AUR
heruntergeladen.
yaourt -S b43-firmware

Wenn man mehrere Treiber installiert hat, sollte man die anderen auf die
Blacklist setzten, damit keine unerwnschten Wechselwirkungen auftreten.
sudo nano /etc/modprobe.d/blacklist.conf

Dort z.B. folgendes hinzufgen. (Immer nur ein Modul pro Zeile)
blacklist b43legacy

Danach neu starten und gucken, ob der WLAN-Adapter wlan0 verfgbar ist.
Ip addr

Viele Wege fhren nach Rom und so ist das auch hier. Es gibt viele
Mglichkeiten wie man das WLAN zum Laufen bekommt, aber erst mal geht
der Weg ber die Konsole, da ich mein neues System ja kennenlernen mchte.
iw installieren
pacman -S iw

Jetzt kann man das WLAN konfigurieren. Um sich mit Acces-Points verbinden
zu knnen, die WPA/WPA2 nutzen, muss man noch den wpa_supplicant
installieren.
pacman -S wpa_supplicant

WLAN-Karte aktivieren.
ip link set wlan0 up

Bei mir funktionierte das nur, wenn das WLAN mittels des Schiebereglers,
links neben den Soundkarten-Anschlssen, vom Systemstart an aktiviert war.
Wenn man das nachtrglich macht, wurde immer noch RF-Kill angezeigt. Um
72

das Problem zu beheben, kann man das Paket rfkill installieren.


pacman -S rfkill

Danach kann man auch den Schieberegler benutzen.


Falls das nicht funktioniert, schaut man, ob der Treiber den Status von RF-Kill
abfragt.
watch -n1 rfkill list all

falls es immer noch blockiert, versucht man folgendes. (wobei X die Ausgabe
von dem oberen Befehl ist.)
rfkill event unblock X

Nach Access-Points suchen.


iw dev wlan0 scan

Das musste ich ein paar mal ausfhren, bis es geklappt hat.

Konfigurationsdatei fr den wpa_supplicant generieren. Die Essid und das


Passwort mssen natrlich an die Gegebenheiten angepasst werden.
wpa_passphrase essid passwort

Diese Daten in eine Datei schreiben


nano /etc/wpa_supplicant/wpatest.conf

Das sollte dann so aussehen:


network={
ssid="essid"
#psk="passwort"
psk=0897f67a8db79ebadf8b1931d853373ef8b1ec7e80d69f4ecafba220f4d21541
}

Die Zeile #psk=passwort sollte man entfernen.


Verbinden (Kableverbindung zum testen ziehen)
wpa_supplicant -B -i wlan0 -c wpatest.conf

neues Terminal ffnen und dort die Verbindung prfen.


iw dev wlan0 link

73

Jetzt noch eine IP-Adresse beziehen und danach kontrollieren.


dhcpcd wlan0
ip addr
ping -c3 google.de

Probleme:
Nach einem Neustart ist WLAN wieder down. Ich lasse das aber erst mal so,
weil ich so besser herumprobieren kann und sowieso ber Kabel gehe.
WLAN-Karte in den Monitor-Modus schalten
Manchmal mchte man seine Karte im monitor-mode betreiben, um sich alle
Pakete anzeigen zu lassen, die durch Luft fliegen. Dafr muss man die Karte
zuerst deaktivieren, dann den Modus einstellen und danach wieder aktivieren.
ip link set wlan0 down
iw dev wlan0 set type monitor
ip link set wlan0 up

Zum Kontrollieren
iw dev

Um sich die Pakete anzeigen zu lassen, kann man z.B. Wireshark benutzen.
Siehe Wireshark
WLAN-Karte in den Ad-hoc-Modus schalten. Dasselbe in grn.
ip link set wlan0 down
iw dev wlan0 set type ibss
ip link set wlan0 up

Man kann auch weitere Modi verwenden. Um sich all untersttze Modi
anzeigen lassen, benutzt man
iw list

weiteres folgt.
Benutze den NetworkManager auf keinen Fall!!! Er speichert das
Wlan-Passwort im Klartext siehe: Sicherheitsrisiken minimieren
Siehe NetworkManager
74

Optisches Laufwerk
Um CDs/DVDs abspielen zu knnen, mssen zustzliche Bibliotheken
installiert werden. Siehe Optisches Laufwerk.
Audio CDs funktionieren ohne weitere Bibliotheken, bzw. wurden sie schon
installiert. Falls das nicht funktionieren sollte, installiert man die Bibliothek.
pacman -S libcddb

Um DVDs abspielen zu knnen, muss der Benutzer Mitglied in der Gruppe


optical sein.
gpasswd -a Benutzer optical

Sollte das nicht funktionieren, muss man noch die Bibliotheken libdvdread,
libdvdcss, libdvdnav installieren.
pacman -S libdvdread libdvdcss libdvdnav

Um CDs/DVDs zu brennen, kann man viele Terminal- oder GUI-Programme


nutzen. Ich nutze das grafische Brennprogramm Brasero. Siehe Brasero

Kamera
dmesg zeigt:
uvcvideo: Found UVC 1.00 device Lenovo EasyCamera (064e:f207)
input: Lenovo EasyCamera as /devices/pci0000:00/0000:00:1d.7/usb8/8-3/83:1.0/input/input11

Eine berprfung, ob der Treiber linux-uvc die Kamera untersttzt, ergibt


keine bekannte bereinstimmung. Trotzdem werde ich es probieren.
http://www.ideasonboard.org/uvc/

Der Treiber linux-uvc ist Teil des Kernels. Man muss nur sicherstellen, dass er
beim Start geladen wird. Dafr das Modul in meinemodule laden.
nano /etc/modules-load.d/meinemodule.conf

75

Dort folgendes eintragen:


#Kamera
uvcvideo

Um die Kamera nutzen zu knnen, muss der Benutzer ein Mitglied der Gruppe
video sein. Das wurde noch nicht gemacht, deshalb muss man das nachholen.
Um zu kontrollieren, welchen Gruppen man angehrt einfach als normaler
Benutzer groups eingeben.
groups

Als Root den normalen Benutzer zu Gruppe video hinzufgen.


gpasswd -a Benutzer video

Da der VLC schon installiert ist, benutze ich den zum testen. Unter Medien
Aufnahmegert muss man Video- und Audiogert auswhlen. Dann kann man
mehrere Optionen auswhlen.
Anhngen:

???

Wiedergabe:

ist selbsterklrend

Stream:

ber das Netzwerk streamen

Konvertieren:

In ein bestimmtes Format umwandeln und auf die Festplatte


schreiben.

So, funktioniert. Ton an, Spot an, Kamera luft ACTION...

76

Optimierungen
acpi
Bevor ich irgendwelche nderungen mache, sammle ich erst mal ein paar
Informationen.
Um eine komplette Liste des laufenden Kernels anzuzeigen:
ls -l /lib/modules/$(uname -r)/kernel/drivers/acpi

Ausgabe:
insgesamt 100
-rw-r--r-- 1 root root

2620 29. Nov 21:15 ac.ko.gz

-rw-r--r-- 1 root root

3376 29. Nov 21:15 acpi_ipmi.ko.gz

-rw-r--r-- 1 root root

5203 29. Nov 21:15 acpi_pad.ko.gz

drwxr-xr-x 2 root root

4096 29. Nov 21:15 apei

-rw-r--r-- 1 root root

5770 29. Nov 21:15 battery.ko.gz

-rw-r--r-- 1 root root

4288 29. Nov 21:15 button.ko.gz

-rw-r--r-- 1 root root

1706 29. Nov 21:15 custom_method.ko.gz

-rw-r--r-- 1 root root

2289 29. Nov 21:15 ec_sys.ko.gz

-rw-r--r-- 1 root root

2425 29. Nov 21:15 fan.ko.gz

-rw-r--r-- 1 root root 18890 29. Nov 21:15 processor.ko.gz


-rw-r--r-- 1 root root

5170 29. Nov 21:15 sbs.ko.gz

-rw-r--r-- 1 root root

3549 29. Nov 21:15 sbshc.ko.gz

-rw-r--r-- 1 root root

6903 29. Nov 21:15 thermal.ko.gz

-rw-r--r-- 1 root root 10090 29. Nov 21:15 video.ko.gz

Leider handhaben nicht alle Computer die ACPI-Ereignisse gleich. Deshalb


sollte man erst mal ein paar Informationen sammeln.
journalctl -f

Danach probiert man erst mal die Fn-Tasten-Kombinationen aus, danach den
Powerknopf und dann alle anderen Knpfe, die ein Ereignis auslsen knnten.
Jetzt versucht man mit dmesg weitere Informationen zu sammeln.
dmesg | grep acpi
[
0.000000] Command line: BOOT_IMAGE=/vmlinuz-linux root=UUID=8f1f81be-2b004979-9e83-63eef8546351 rw clocksource=acpi_pm
[

0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)

77

0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)

0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])

0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])

[
0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-linux
root=UUID=8f1f81be-2b00-4979-9e83-63eef8546351 rw clocksource=acpi_pm
[

0.101339] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5

[
0.236171] acpi PNP0A08:00: ACPI _OSC support notification failed, disabling
PCIe ASPM
[
0.236173] acpi PNP0A08:00: Unable to request _OSC control (_OSC support
mask: 0x08)
[

0.248239] acpiphp: Slot [1] registered

0.267636] Found 1 acpi root devices

0.314182] Switched to clocksource acpi_pm

0.625464] acpi device:03: registered as cooling_device0

8.728506] ACPI: Requesting acpi_cpufreq

8.732982] ACPI: acpi_idle registered with cpuidle

Jetzt muss man alle Module einzeln ausprobieren.


modprobe Modul

und danach erneut prfen


dmesg

das Modul sollte eigentlich am Ende hinzugefgt werden

dmesg | grep acpi

Da hat irgendwie nur acpi_ipmi funktioniert. Erst mal neugestartet, BIOS


berprft, noch mal getestet und dann acpid installiert und noch mal
neugestartet.
pacman -S acpid
systemctl enable acpid
systemctl reboot

dann noch mal probiert. Keine Vernderung. Ich bin ratlos.


Das kann doch eigentlich nicht sein. Zumindest das Modul fr den Lfter
sollte funktionieren. Spter noch mal probieren. Aber da ja ein Modul
funktioniert, sollte man zumindest dieses beim Start laden.
nano /etc/modules-load.d/meinemodule.conf
#acpi-Module
acpi_ipmi

78

Standby
Dafr muss man nichts einstellen. Das sollte sofort einsatzbereit sein.
systemctl suspend

Ruhezustand
Damit der Rechner wieder aus dem Ruhezustand erwacht, muss man ein paar
Einstellungen vornehmen.
Grub2:
hier muss man man den Kernel-Parameter resume=swap zur
GRUB_CMDLINE_LINUX_DEFAULT hinzufgen.
sudo nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT=clocksource=acpi_pm resume=/dev/sda2

Danach Grub2 aktualisieren:


sudo grub-mkconfig -o /boot/grub/grub.cfg

Initframe-fs Image bearbeiten und neu erstellen:


sudo nano /etc/mkinitcpio.conf

Dort im Abschnitt HOOKS resume hinzufgen.


HOOKS="base udev autodetect modconf block resume filesystems keyboard fsck"

und danach neu erstellen


sudo mkinitcpio -p linux

Ach so, ich glaube, ich habe vorher noch mal neugestartet. Bin mir aber nicht
ganz sicher. Einfach mal probieren:
systemctl hibernate

Funktioniert.

acpid, laptop-mode-tools, cpupower

79

Fehler beheben
Mit dmesg kann man sich Kernel-Meldungen anzeigen lassen. Ich schreibe die
immer in eine Textdatei.
dmesg > dmesg.txt
nano dmesg.txt

(FYI: mit Strg-w kann man im Dokument suchen)


Wenn man die Datei nicht mehr braucht, sollte man sie lschen.
rm dmesg.txt

Dort sind mir folgende Fehlermeldungen aufgefallen (nicht komplett).

Fast TSC calibration failed


Das ist allerdings kein schwerwiegender Fehler, er informiert nur darber,
dass der erste Versuch eine Methode zu finden fehlgeschlagen ist und nach
anderen Methoden gesucht wird.
Abhilfe
nano /etc/default/grub

Dort folgendes in die Zeile GRUB_CMDLINE_LINUX_DEFAULT an den


Anfang hinzufgen.
GRUB_CMDLINE_LINUX_DEFAULT=clocksource=acpi_pm

Dann grub aktualisieren


grub-mkconfig -o /boot/grub/grub.cfg

Falls das nicht funktioniert, kann man sich die verfgbaren Optionen anzeigen
lassen und muss dann ausprobieren.
cat /sys/devices/system/clocksource/clocksource0/available_clocksource

clocksource=_acpi funktioniert meistens, wenn ich es ganz an den Anfang


schreibe, aber trotzdem wird der Fehler ab und zu noch mal angezeigt.
80

Swap
Sytemctl zeigt einen Fehler mit der Swap.
systemctl --state=failed

UNIT

LOAD

ACTIVE SUB

DESCRIPTION

dev-disk-by\x2dlabel-swap.swap loaded failed failed /dev/disk/by-label/swap


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.

Ich denke, dass kommt daher, weil ich bei der Installation die fstab nicht mit
ihren Gertenamen, sondern mit ihrer Labelbezeichnung erzeugt habe.

swapon -s
Filename

Type

Size

Used

Priority

/dev/sda2

partition

9437180

-1

zeigt aber, dass die die Swap-Partition aktiviert ist. Trotzdem mchte ich den
Fehler beseitigen.
Um das Problem zu fixen, habe ich versucht die /etc/fstab zu ndern.
nano /etc/fstab

Die Zeile von


# /dev/sda2 UUID=fe0acaa0-b345-4866-b2ce-a31f10f7ac03
LABEL=swap

none

swap

defaults

0 0

in
# /dev/sda2 UUID=fe0acaa0-b345-4866-b2ce-a31f10f7ac03
dev/sda2

none

swap

defaults

0 0

gendert. Jetzt ist die Fehlermeldung verschwunden. Das ist sicher nicht die
eleganteste Lsung, hat aber funktioniert. Besser die fstab bei der Installation
mit den Gertenamen und nicht mit den Labelbezeichnungen generieren.
Gendert.

81

Grub-Fehler beheben
CHROOT ber das Live-Medium
1. Startreihenfolge im BIOS ndern. Siehe oben.
2. Von dem Live-Medium die gleiche Prozessorarchitektur starten (x86_64).
3. Die Root-Partition einhngen
mount /dev/sda1 /mnt

4. Die Boot-Partition einbinden


mount /dev/sda3 /mnt/boot

5. Vorbereitung und Wechsel in die CHROOT-Umgebung


mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys
mount -t proc /proc /mnt/proc
cp /proc/mounts /mnt/etc/mtab
chroot /mnt /bin/bash

6. Grub2 installieren
grub-install /dev/sda

7. Grub Konfiguration neu erstellen


grub-mkconfig -o /boot/grub/grub.cfg

8. Mit STRG+D die CHROOT-Umgebung verlassen.


9. sauber verlassen
umount /dev/sda3
umount /dev/sda1

10. Neustarten
systemctl reboot

82

Sicherheitsrisiken minimieren
AUR ArchLinux User-Community Repository
Wer wirklich ein sicheres System braucht, sollte keine Pakete aus AUR
installieren. AUR-Pakete kommen aus der Community, wo jeder nach einer
Registrierung Pakete verffentlichen kann.

Offene Ports
Da noch keine Firewall oder Paketfilter installiert wurde, sollte man auf die
Suche nach offenen Ports gehen. Mit lsof kann man offene Ports anzeigen.
lsof -i | grep -e LISTEN

Bei mir war kein offener Port


DAMN! - da wurde doch schon iptables als Abhngigkeit installiert. Wer war
das?
pacman -Qi iptables

Installationsgrund : Installiert als Abhngigkeit fr ein anderes Paket


Na toll. Super Datenbank :-/ Dann sollte man sich mal um iptables kmmern.

iptables
Die aktuellen Filterregeln ansehen
iptables -nvL --line-numbers

Chain INPUT (policy ACCEPT 0 packets, 0 bytes)


pkts bytes target
prot opt in
out
source

destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)


pkts bytes target
prot opt in
out
source

destination

Chain OUTPUT (policy ACCEPT 0K packets, 0 bytes)

83

pkts bytes target

prot opt in

out

source

destination

Wenn die Ausgabe so aussieht, dann wurden keine Regeln definiert. Es wird
nichts geblockt.
Um neue Regeln zu erstellen, lscht man normalerweise erst mal alle
vorhandenen Regel. In dem Beispiel wurden noch keine Regeln festgelegt.
iptables -F

Regeln erstellen
Alle Pakete, die weitergeleitet werden sollen, verwerfen
sudo iptables -P FORWARD DROP

Erstmal alle ausgehende Pakete durchlassen


sudo iptables -P OUTPUT ACCEPT

Alle eingehende Paket verwerfen


sudo iptables -P INPUT DROP

Damit nicht eingehende Pakete verworfen werden, die angefragt wurden und
auf dessen Antwort wir warten, winken man diese anhand ihres Status durch.
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Alle Pakete fr die Loopback Schnittstelle erlauben


sudo iptables -A INPUT -i lo -j ACCEPT

Wenn Verbindungen von auen gewnscht sind, muss man die Ports einzeln
freigeben. Hier am Beispiel von SSH.
sudo iptables -A INPUT -p

tcp --dport 22 -j ACCEPT

Speichern und beim Start ausfhren


sudo iptables-save > /etc/iptables/iptables.rules
Wenn das nicht funktioniert:
sudo zsh -c "iptables-save > /etc/iptables/iptables.rules"

84

sudo systemctl reload iptables

So sieht die Datei aus:


# Generated by iptables-save v1.4.20 on ...
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [5:284]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
COMMIT
# Completed on ...

Ich mchte jetzt auch alle ausgehenden Verbindung generell verbieten, und
halt nur die Ports erlauben, sie ich wirklich brauche. Das sieht nicht soviel
anders aus, also zuerst mal die vorhanden Regeln lschen.
sudo iptable -F
sudo iptables -P INPUT DROP
sudo iptables -P OUTPUT DROP
sudo iptables -P FORWARD DROP

Um Ports zu ffnen, muss man fr jeden Port zwei Regeln erstellen. Erstens
muss man erlauben, dass man auf dem Port Raustelefonieren darf und dass
die Gegenstelle mir antworten darf, wenn ich der Anrufer bin.
Im Falle von SSH she das so aus:
sudo iptables -A OUTPUT -o enp7s0 -p tcp --dport 22 -m state --state
NEW,ESTABLISHED -j ACCEPT

* -A Output: erstellt eine neue Regel fr die ausgehende Verbindung


* -o enp7s0: bezeichnet den Namen des Netzwerkadapters, der sich nach drauen
verbinden darf.
* -p tcp: Definiert das Protokoll, das benutzt werden soll [udp/tcp]

85

* --dport 22: Definiert den Port, der fr das Ziel benutzt werden soll
[destination port]
* -m state: bezeichnet, das die nachfolge Definition des Status benutzt werden
soll
* --state NEW, ESTABLISHED: bedeutet, dass neue Verbindungen und bestehende
Verbindungen die Firewall nach drauen passieren drfen

Jetzt muss man noch erlauben, dass mein Rechner die Antwort auf die Anfrage
durchlsst.
sudo iptables -A INPUT -i enp7s0 -p tcp --sport 22 -m state --state ESTABLISHED
-j ACCEPT
* -A Output: erstellt eine neue Regel fr die eingehende Verbindung
* -i enp7s0: bezeichnet den Namen des Netzwerkadapters, der die Antwort entgegen
nehmen darf
* -p tcp: Definiert das Protokoll, das benutzt werden soll [udp/tcp]
* --sport 22: Definiert den Port, der auf dem eigenen Rechner benutzt werden
soll [source port]
* -m state: bezeichnet, das die nachfolge Definition des Status benutzt werden
soll
* --state NEW: bedeutet, dass nur bestehende Verbindungen die Firewall nach
innen passieren drfen, also die Verbindungen, auf die mein Computer initiiert
hat.

Und das selbe in Grn fr Http-Anfragen:


sudo iptables -A OUTPUT -o enp7s0 -p tcp --dport 80 -m state --state
NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i enp7s0 -p tcp --sport 80 -m state --state ESTABLISHED
-j ACCEPT

und fr Https-Anfragen:
sudo iptables -A OUTPUT -o enp7s0 -p tcp --dport 443 -m state --state
NEW,ESTABLISHED -j ACCEPT

86

sudo iptables -A INPUT -i enp7s0 -p tcp --sport 443 -m state --state ESTABLISHED
-j ACCEPT

und noch fr FTP-Anfragen:


sudo iptables -A OUTPUT -o enp7s0 -p tcp --dport 21 -m state --state
NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i enp7s0 -p tcp --sport 21 -m state --state ESTABLISHED
-j ACCEPT

und auch fr DNS:


sudo iptables -A OUTPUT -o enp7s0 -p udp --dport 53 -m state --state
NEW,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i enp7s0 -p udp --sport 53 -m state --state ESTABLISHED
-j ACCEPT

Speichern und neu laden:


Ich kann mir nicht erklren wieso, aber sudo hat nicht genug Rechte (oder
verliert diese zwischendurch) um das zu speichern. Man msste das als root,
dann funktioniert es, aber so hat es auch geklappt:
sudo zsh -c "iptables-save > /etc/iptables/iptables.rules"
systemctl reload iptables

Ich habe die Loopback Schnittstelle nicht erlaubt. Das kann sein, dass es da
zu Problemen kommt, weil manche Programme diese brauchen. Das bietet
natrlich die Mglichkeit zu Man-in-the Middle-Attacken, wenn mein
Computer nicht sicher ist. Solange es so funktioniert, ist es gut, wenn nicht:
sudo iptables -A INPUT -i lo -j ACCEPT

Ich wrde ja gerne zur einfacheren Bedienung eine GUI benutzen, aber ich
finde nichts anstndiges. Nicht, dass es nichts anstndiges gbe, aber ich
nicht in den offiziellen Quellen. Ich mchte einfach so weit wie mglich etwas
haben, was auch von anderen geupdatet wird.

87

Halb kaputte Dinge sollte man nicht mehr benutzen


Es hat schon Grnde, warum Experten seit Jahren warnen, dass man
bestimmte Verschlsselungen und Hashfunktionen nicht mehr nutzen sollte.
Die sind dann zwar noch nicht gebrochen, aber knnen jederzeit in sich
zusammenfallen, trotzdem werden sie als Standard implementiert.
RC4:
Es wird vermutet, dass z.B. die fhrenden Geheimdienste RC4 in Echtzeit
entschlsseln knnen. Es ist also nur eine Frage der Zeit, bis auch die kleinen
Brder Methoden dazu entwickeln.
Firefox: siehe Firefox / aus paranoiden Grnden habe ich auch AES mit 128
Bit Schlssellnge verboten. Ich wei nicht wieso, aber firefox scheint immer
die einfachste Verschlsselung zu nehmen, zeigt aber hochgradige
Verschlsselung an.

MD4-5:
Benutze kein MD4 oder MD5!!!!!! Das ist seit Jahren kaputt.
SHA:
Benutze kein SHA1!!! Benutze stattdessen SHA2 mit 256 oder besser 512 byte
Schlssellnge (sha256 oder sha512)

Passwrter

Schwache Passwrter
untergraben die strksten Sicherheitsmanahmen. Auch wenn das ein alter
Hut ist und auch jeder (also ich meine JEDER) die Problematik inzwischen
erkannt hat, werden aus Bequemlichkeit trotzdem zu einfache Passwrter
benutzt. Ich erkenne das auch immer an mir selbst, es ist einfach umstndlich
sichere Passwrter zu verwenden.

88

NetworkManager
legt ein Profil an, in dem die Passwrter im Klartext gespeichert werden.
Auch wenn man root-Rechte haben muss, um die Datei einzusehen, ist das
schlichtweg nicht akzeptabel. Die Datei fr die Profile liegen in
/etc/NetworkManager/system-connections und ich empfehle den
NetworkManager nicht zu benutzen.

Virenscanner
knnen natrlich keinen Schutz garantieren. Ich benutze eigentlich keinen
Virenscanner auf meinem System, das wrde das System nur unntig langsam
machen. Zum Glck ist man unter Linux auf Grund des geringen Marktanteils
nicht sooo gefhrdet. Ein Angreifer, der sich ja auch viel Mhe macht, wird im
Normalfall etwas schreiben, dass mehr Rechner infiziert. Nichts desto trotz
gibt es natrlich auch fr Linux Viren. Also wenn es jemand auf dich
abgesehen hat, kann auch ein Linux-System infiziert werden. Deswegen lasse
ich von Zeit zu Zeit einen Virenscanner von einem Live-Medium laufen.
Gut finde ich D'esinfect von der heise-ct-Zeitschrift, aber die habe ich gerade
nicht. Deswegen probiere ich mal die Antivirus Live CD.
http://sourceforge.net/projects/antiviruslivecd/

UPnP
sollte man nicht benutzen. Es ist dafr gedacht, dass Gerte ber das IPProtokoll automatisch Ports in der Firewall/Router ffnen kann. Ich wei, das
ist bequem, aber untergrbt halt jede Sicherheitsmanahme. Auerdem kann
man oft genug lesen, dass viele UpnP-Implementationen auch von auen, also
vom Internet aus, Ports ffnen knnen. Das will man natrlich nicht, also
lieber alle Ports per Hand ffnen.

89

Root-Benutzerkonto deaktivieren
Da ich das Root-Benutzerkonto gar nicht benutze, brauch es auch nicht aktiv
zu sein. So mssen Angreifer zumindest etwas mehr Arbeiten, um seine
Rechte zu erweitern.
Achtung: Arch Linux ist nicht unbedingt dafr ausgelegt ohne RootBenutzerkonto zu laufen. Das kann zu Problemen fhren.
Um das Root-Benutzerkonto zu sperren, als root anmelden und:
passwd -l root

danach ausloggen und die /etc/shadow ndern und das Passwort durch ein !
ersetzten:
sudo nano /etc/shadow
root:!:12345::::::

Um das Konto wieder zu aktivieren:


sudo passwd -u root

Dann neues Passwort vergeben:


sudo passwd root

So zum Spa kann man auch einstellen, dass man beleidigt wird, wenn man
das Passwort fr sudo falsch eingibt, leider sind die nur auf Englisch. Dafr
muss man folgende Zeile hinzufgen:
sudo nano /etc/sudoers
Defaults insults

90

Angriff ist die beste Verteidigung


Warnung:
Ich bin kein Jurist, aber nach meiner Interpretation stellt der deutsche Staat
es unter Strafe seine eigenen Systeme auf Sicherheit zu berprfen, da zum
berprfen und Einbrechen natrlich die gleichen Werkzeuge benutzt
werden.
202c Vorbereiten des Aussphens und Abfangens von Daten
(1) Wer eine Straftat nach 202a oder 202b vorbereitet, indem er
1. Passwrter oder sonstige Sicherungscodes, die den Zugang zu Daten (
202a Abs. 2) ermglichen, oder
2. Computerprogramme, deren Zweck die Begehung einer solchen Tat ist,
herstellt, sich oder einem anderen verschafft, verkauft, einem anderen
berlsst, verbreitet oder sonst zugnglich macht, wird mit
Freiheitsstrafe bis zu einem Jahr oder mit Geldstrafe bestraft.
(2) 149 Abs. 2 und 3 gilt entsprechend.

Also alleine schon der Besitz solcher Programme wird mit bis zu einem Jahr
Freiheitsstrafe geahndet. Da knnen natrlich bei den ganzen aktuellen
Nachrichtendienst-Skandalen viele Verschwrungstheorien entstehen, ich
denke aber, dass es sich einfach nur um Unwissenheit handelt. Na ja, auf
jeden Fall wurde auch schon das Bundesamt fr Sicherheit in der
Informationstechnik vors Gericht gezerrt, da das natrlich auch die oben
genannten Programme programmiert und verbreitet. Die Anklage wurde aber
fallen gelassen.
Da hilft es nichts, dass die Staatsanwaltschaft bis jetzt alle Anzeigen fallen
gelassen hat, da sie ja nur zu gutartigen Verwendung beschafft und
verwendet wurden. Das Gesetzt ist da und meiner Meinung nach steht da
nichts von gutartiger und bsartiger Nutzung. Ganz im Gegenteil da
steht doch ausdrcklich, dass der Besitz verboten ist. Anscheinend kann die
Staatsanwaltschaft das auslegen, wie sie es mchte und man ist deren Willkr
ausgesetzt.
Ich fr meinen Teil werde das Risiko eingehen, mir diese Programme
besorgen und in meinen Computersystemen auch benutzen. Da wrde ich es
auf einen Prozess ankommen lassen und ggf. auch die Konsequenzen tragen.
Das ist aber auch nicht jedem anzuraten.

Wenn man in Computersysteme einbrechen mchte, wird man naturgem


versuchen, das so leise wie mglich zu machen, damit man nicht auffllt.
Solange man keine extra Manahmen getroffen hat und diese ausdrcklich
testen mchte, muss man sich im eigenen Netzwerk darum keine Sorgen
91

machen. Da kann man rumpoltern, wie man mchte, es ist ja sogar interessant
zu berprfen, ob man einen Logbucheintrag findet.

Black Arch
Webprsenz: http://www.blackarch.org

ist eine inoffizielle Version, die Sicherheitswerkzeuge bereitstellt. Es ist


mglich das Repositorium zu erweitern, um die Werkzeuge auch unter einem
installierten Arch Linux zu nutzen.
sudo nano /etc/pacman.conf
[blackarch]
Server = http://blackarch.org/blackarch/$repo/os/$arch

Damit die Pakete signiert werden knnen, muss man den Schlssel
importieren und beglaubigen.
sudo pacman-key -r 4345771566D76038C7FEB43863EC0ADBEA87E4E3
sudo pacman-key --lsign-key 4345771566D76038C7FEB43863EC0ADBEA87E4E3

Dann Pacman aktualisieren:


sudo pacman -Syyu

Um sich alle Pakete von Black Arch anzuschauen:


pacman -Sl blackarch

Schwachstellen finden
Schriftsteller kennen das Problem, dass sie nur bis einem gewissen Grad in
der Lage sind, ihre Werke Korrektur lesen. Man kann grobe Fehler beseitigen,
aber man bentigt immer eine unabhngige Prfung. Das gilt genauso fr
Systemadministratoren und Programmierer. Sie sind nicht in Lage ihre
92

Systeme oder Programme selbst zu testen. Um annhernd als sicher zu


gelten, muss ein System einer unabhngigen Prfung unterzogen werden.
Dazu ldt man sich entweder ein professionelles Team ein, dass unter vorher
festgelegten Bedingungen versucht in das System einzubrechen oder man
benutzt automatische Schwachstellen-Scanner. Als Firma wird man sicher
eine Kombination aus beidem nutzen. Als Privatperson, die ihr lokales
Netzwerk absichern mchte, wird man sich wohl im seltensten Fall ein Team
einladen.
Jedem sollte klar sein, dass automatische Werkzeuge keine
Wunderwaffenwaffen sind und letztendlich immer noch ausgewertet werden
mssen. Auch hier gilt, dass Wissen und Erfahrung durch nichts ersetzt
werden kann, da werden Schwachstellen erkannt, die man vielleicht extra
genauso konfiguriert hat, weil man so haben mchte und die Risiken
ordentlich abgeschtzt hat oder der Scanner zeigt eine Schwachstelle an, die
einfach irrelevant ist.
Am Ende geht es ja nicht nur darum einen 400 Seiten Bericht in der Hand zu
halten, sondern eine Risikoabschtzung zu machen und die vorhandenen
Lcken zu schlieen. Das kann aber immer nur eine Momentaufnahme sein,
denn Sicherheit ist kein Zustand, sondern ein Prozess, den man stndig
kontrollieren muss.

Man kann sich aber besser schtzen, indem man sich einiger Regeln bewusst
ist. Scott Culp, ?ehemaliger? Security Response Center Manager von
Microsoft, hat die zehn unabnderlichen Gesetze der Sicherheit aufgestellt.
http://technet.microsoft.com/en-us/library/hh278941.aspx

* Gesetz Nummer 1:
Wenn ein bser Bube Sie dazu berreden kann, sein Programm auf ihrem
Computer auszufhren, ist es nicht mehr Ihr Computer.
* Gesetz Nummer 2:
Wenn ein bser Bube das Betriebssystem an Ihrem Computer ndern kann, ist
es nicht mehr Ihr Computer.
* Gesetz Nummer 3:
Wenn ein bser Bube den uneingeschrnkten physischen Zugang auf ihren
Computer hat, ist es nicht mehr Ihr Computer.
* Gesetz Nummer 4:
93

Wenn Sie einem bsen Buben erlauben, Programme auf Ihre Webseite
hochzuladen, ist es nicht mehr Ihre Webseite.
* Gesetz Nummer 5:
Schwache Passwrter unterminieren die strksten Sicherheitsmanahmen.
* Gesetz Nummer 6:
Ein Computer ist nur so sicher, wie der Administrator vertrauenswrdig ist.
* Gesetz Nummer 7:
Verschlsselte Dateien sind nur so sicher, wie der Schlssel fr die
Entschlsselung.
* Gesetz Nummer 8:
Ein veralteter Virenscanner ist nur wenig besser als gar kein Virenscanner.
* Gesetz Nummer 9:
Die absolute Anonymitt ist weder in der echten Welt noch im Internet
praktizierbar.
* Gesetz Nummer 10:
Technologie ist kein Allheilmittel.

OpenVAS
ist ein Open-Source-Programm, dass aus dem Schwachstellen-Scanner
Nessus hervorgeht. Nessus wurde bis 2005 unter der GPL entwickelt, wurde
aber seit dann unter einer proprietren Lizenz weiterentwickelt. Es wird auch
vom Bundesamts fr Sicherheit in der Informationstechnik vorrangig
empfohlen.
Das Programm ist im AUR verfgbar. Ich bin gerade wieder zu faul, es fr das
Repositorium zu erstellen.
yaourt -S openvas-scanner

94

yaourt -S openvas-client-freedesktop

Zuerst muss man einen Benutzer anlegen:


sudo openvas-adduser

Mit den Regel wei ich nicht genau, ich lasse es einfach mal leer. Kann man ja
spter immer noch ndern.
Um den Benutzer wieder zu lschen:
sudo openvas-rmuser

Vor jedem Test sollte man die Datenbank aktualisieren:


sudo openvas-nvt-sync

Das Programm arbeitet als Server-Client. Zuerst muss man den Server
starten:
sudo openvassd

Das mit den Plugins laden dauert.


Ich habe mir das openvas-check-setup heruntergeladen:
http://www.openvas.org/setup-and-start.html

Das ergab einige Fehler:


sudo ./openvas-check-setup

Und ich sollte den Manager installieren.


yaourt -S openvas-manager

ERROR: No client certificate file of OpenVAS Manager found.


FIX: Run 'openvas-mkcert-client -n om -i'
sudo openvas-mkcert-client -n om -i

ERROR: No OpenVAS Manager database found. (Tried: /var/lib/openvas/mgr/tasks.db)


FIX: Run 'openvasmd --rebuild' while OpenVAS Scanner is running.
sudo openvasmd --rebuild

95

ERROR: No OpenVAS SCAP database found. (Tried: /var/lib/openvas/scapdata/scap.db)


FIX: Run a SCAP synchronization script like openvas-scapdata-sync or
greenbone-scapdata-sync.
sudo openvas-scapdata-sync

ERROR: No OpenVAS CERT database found. (Tried: /var/lib/openvas/certdata/cert.db)


FIX: Run a CERT synchronization script like openvas-certdata-sync or
greenbone-certdata-sync.
sudo openvas-certdata-sync

ERROR: No OpenVAS Administrator (openvasad) found.


FIX: Please install OpenVAS Administrator.
yaourt -S openvas-administrator

ERROR: No admin user found. You need to create at least one admin user to log
in.
FIX: Create a user using 'openvasad -c 'add_user' -n <name> -r Admin'

sudo openvasad -c 'add_user' -n admin -r Admin

WARNING: Your password policy is empty.


SUGGEST: Edit the /etc/openvas/pwpolicy.conf file to set a password
policy.
Step 4: Checking Greenbone Security Assistant (GSA) ...
ERROR: No Greenbone Security Assistant (gsad) found.
FIX: Please install Greenbone Security Assistant.

Das ist wohl ein Witz, nur kann ich nicht darber lachen. Das Paket im AUR ist
veraltet.
https://aur.archlinux.org/packages/gsa/
Also bearbeiten:
cd AUR
mkdir gsa
cd gsa
wget https://aur.archlinux.org/packages/gs/gsa/gsa.tar.gz
tar -xvzf gsa.tar.gz

96

cd gsa
nano PKGBUILD

Das sollte ungefhr so aussehen


pkgname=gsa
pkgver=4.0.2
pkgrel=1
pkgdesc="Greenbone Security Assistant (gsa) - OpenVAS web frontend"
url="http://www.openvas.org/"
license=GPL
depends=('glibc' 'libmicrohttpd' 'libxml2' 'glib2' 'libxslt' 'gnutls' 'openvaslibraries')
makedepends=('gcc' 'automake' 'cmake' 'doxygen')
conflicts=()
replaces=()
backup=(etc/openvas/gsad_log.conf)
options=('!buildflags')
install=
source=(http://wald.intevation.org/frs/download.php/1158/greenbone-securityassistant-$pkgver.tar.gz)
md5sums=('634729feb32c1d9601543ad713e9ab9f')
arch=('i686' 'x86_64')
build() {
cd $startdir/src/greenbone-security-assistant-$pkgver/
####patch -p1 < $startdir/src/gsa-no-werror-remove.patch
cmake -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONFDIR=/etc -DLOCALSTATEDIR=/var .
make
make DESTDIR="$pkgdir/" install
}

makepkg -s
Ich sehe nicht warum, aber der legt ein Verzeichnis mit Version 3.0.3 an,
deswegen benenne ich den Pfad mal um. Das ist alles nur
zusammengefrickelt.
cd $startdir/src/greenbone-security-assistant-3.0.3/
cc1: Alle Warnungen werden als Fehler behandelt
src/CMakeFiles/gsad.dir/build.make:57: recipe for target
'src/CMakeFiles/gsad.dir/gsad.c.o' failed
make[2]: *** [src/CMakeFiles/gsad.dir/gsad.c.o] Error 1
CMakeFiles/Makefile2:264: recipe for target 'src/CMakeFiles/gsad.dir/all' failed
make[1]: *** [src/CMakeFiles/gsad.dir/all] Error 2
Makefile:136: recipe for target 'all' failed
make: *** [all] Error 2

SO, ICH BRECH JETZT HIER AB. DAS BRINGT


JA NIX. Alles wieder deinstalliert.
sudo pacman -Rss libmicrohttpd

97

sudo
sudo
sudo
sudo

pacman
pacman
pacman
pacman

-Rss
-Rss
-Rss
-Rss

openvas-scanner
openvas-client-freedesktop
openvas-administrator
openvas-manager

Wenn ich ber den Client anmelden mchte, kann ich im Terminal folgende
Fehlermeldung sehen.
socket : Die Adressfamilie wird von der Protokollfamilie nicht untersttzt

Jetzt halte dich fest. Dieser Fehler beruht darauf, dass IPv6 nicht aktiviert ist.
Das habe ich abgeschaltet siehe Abnehmen. Nach dem ich den
Kernelparameter wieder herausgenommen habe, tritt der Fehler nicht mehr
auf. Trotzdem kann ich mich immer noch nicht anmelden.
Unglaublich. Also Benutzerfreundlichkeit ist was anderes.
Dann einen neuen Tab ffnen und den Client starten:
OpenVAS-Client &

So, ich versuche es noch mal mit den Black Arch Paketen zu installieren:
sudo pacman -S openvas-scanner
sudo pacman -S openvas-cli openvas-client openvas-manager openvas-administrator

sudo openvas-mkcert

da ich schon eine Vorinstallation hatte mit -f

Ich habe da ein Rechteproblem, das war wahrscheinlich auch das Problem mit
der vorherigen Installation.
98

Warnung: Verzeichnis-Berechtigungen unterscheiden sich fr /var/lib/openvas/


Dateisystem: 700 Paket: 755

sudo chmod 755 /usr/lib/openvas

Das muss man dann aber wahrscheinlich nach jedem Update machen.
Ich kann den Server nicht ffnen:
openvassd: error while loading shared libraries: libssh.so.4: cannot open shared
object file: No such file or directory

Das kann man bestimmt beheben, indem man die libssh installiert. Ich
benutze aber die libssh2. Ich bin mir auch nicht sicher, ob man die libssh
berhaupt benutzen sollte, soweit ich wei hat die ein Designfehler. Das Paket
aus dem AUR hat sich mit der libssh2 zufriedengegeben.
sudo pacman -S libssh

Danach ldt es auch.


Jetzt kann man sich ber den Browser anmelden.
https://127.0.0.1:9391/
Die Verbindung zum Server wurde zurckgesetzt, whrend die Seite geladen wurde.

Ach so, ich muss noch den gsa installieren:


sudo pacman -S gsa

Da sind noch ein paar Fehler:


sudo pacman -S gsd

Nachdem man alle Fehler behoben und Dienste gestartet hat, die das
berprfungsskript so nennt, kann man sich ber den Webbrowser anmelden:
https://127.0.0.1
Okay, es scheint so, als htte ich vergessen ein Passwort zu vergeben.
sudo openvas-adduser

Ich kann mich nicht anmelden. Immer Login failed...

99

Nchster Versuch nach einem Neustart:


sudo openvas-mkcert-client -n om -i

sudo openvasmd --rebuild


sudo openvassd

sudo openvasmd --rebuild


sudo openvasmd --backup
sudo openvasad -c 'add_user' -n openvasadmin -r Admin
ad
main:MESSAGE:797:2013-12-26 06h54.01 CET: No rules file provided, the new
user will have no restrictions.
ad

admin:WARNING:797:2013-12-26 06h54.01 CET: User openvasadmin already exists!

ad
main:WARNING:797:2013-12-26 06h54.01 CET: Failed to create user
openvasadmin!

sudo openvasmd -p 9390 -a 127.0.0.1


sudo openvasad -a 127.0.0.1 -p 9393
sudo gsad --http-only --listen=127.0.0.1 -p 9392

Jetzt versuchen per Browser einzuloggen:


http://127.0.0.1:9392/
Das gibt schon mal einen ersten berblick, wie das System eingeschtzt wird.
Auf meinem Rechner wurden die gefundenen Schwachstellen mit Low
eingestuft. Es handelte sich meistens um unntige Informationen, die man
einem Angreifer zur Verfgung stellt. Auf einem Router wurde festgestellt,
dass Denial of Service-Attacken mglich sind und noch ein paar weitere
Schwachstellen. Wenn man sich den Report anguckt, vermisst OpenVAS noch
ein paar Programme, die noch installiert werden mssen. Sie werden alle im
Black Arch Repositorium als Pakete bereitgestellt.

* DIRB
Webprsenz: http://sourceforge.net/projects/dirb/

DIRB - URL Bruteforcer: DIRB is a Web Content Scanner. It looks for hidden
Web Objects. It basically works by launching a dictionary based attack against
a web server and analizing the response. DIRB main purpose is to help in web
100

application auditing.
* Arachni
Webprsenz: http://www.arachni-scanner.com/

Arachni is an Open Source, feature-full, modular, high-performance Ruby


framework aimed towards helping penetration testers and administrators
evaluate the security of web applications.
* Nikto
Webprsenz: http://www.cirt.net/nikto2
Nikto is an Open Source (GPL) web server scanner which performs
comprehensive tests against web servers for multiple items, including over
6500 potentially dangerous files/CGIs, checks for outdated versions of over
1250 servers, and version specific problems on over 270 servers. It also
checks for server configuration items such as the presence of multiple index
files, HTTP server options, and will attempt to identify installed web servers
and software. Scan items and plugins are frequently updated and can be
automatically updated.

* wapiti
Webprsenz: http://wapiti.sourceforge.net/

Wapiti allows you to audit the security of your web applications.


It performs "black-box" scans, i.e. it does not study the source code of the
application but will scans the webpages of the deployed webapp, looking for
scripts and forms where it can inject data.
Once it gets this list, Wapiti acts like a fuzzer, injecting payloads to see if a
script is vulnerable.
Um die optionalen Pakete zu installieren, benutze ich die Pakete, die das Black
Arch Repositorium bereithlt.
sudo pacman -S dirb arachni nikto wapiti

Der nchste Scan hat schon wieder Fehlermeldungen produziert. Das scheint
eine unendliche Geschichte zu werden. :-/
"wapiti report filename is empty. that
wrong version of wapiti is used or tmp
Make sure to have wapiti 2.x as wapiti
In short: check installation of wapiti

could mean that


dir is not accessible.
1.x is not supported.
and OpenVAS"

101

Arachni could not be found in your system path.


OpenVAS was unable to execute Arachni and to perform the scan you
requested.
Please make sure that Arachni is installed and that arachni is
available in the PATH variable defined for your environment.

Habe ich wieder deinstalliert, muss ich nchstes mal schauen, woran es liegt.

Zustzlich habe ich noch eine zu aktuelle Nmap-Version installiert. Ich


benutze 6.40 und OpenVAS mchte 5.?.?...

Metasploit
ist ...
Es natrlich schon ein bisschen bertrieben, sein kleines, lokales Netzwerk
mit Metasploit zu penetrieren, aber das macht nichts, ich will ja hier auch den
Spieltrieb mit technischen Dingen frdern.
Installiert habe ich wieder die Black Arch Pakete:
sudo pacman -S metasploit armitage

Ja, ich wei nicht, man soll ein bundle installieren, aber das klappt bei mir
nicht. Dann installiere ich halt alles einzeln.
sudo gem-1.9 install bundler
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo

gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9

install
install
install
install
install
install
install
install
install

rake --version "10.1.0"


i18n --version "0.6.5"
multi_json --version "1.0.4"
activesupport --version "3.2.14"
builder --version "3.0.4"
activemodel --version "3.2.14"
arel --version "3.0.2"
tzinfo --version "0.3.37"
activerecord --version "3.2.14"

102

sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo
sudo

gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9
gem-1.9

install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install

database_cleaner --version "1.1.1"


diff-lcs --version "1.2.4"
factory_girl --version "4.2.0"
fivemat --version "1.2.1"
json --version "1.8.0"
pg --version "0.16.0"
metasploit_data_models --version "0.16.6"
mini_portile --version "0.5.1"
msgpack --version "0.5.5"
network_interface --version "0.0.1"
nokogiri --version "1.6.0"
packetfu --version "1.1.9"
pcaprub --version "0.11.3"
redcarpet --version "3.0.0"
robots --version "0.10.1"
rspec-core --version "2.14.5"
rspec-expectations --version "2.14.2"
rspec --version "2.14.1"
shoulda-matchers --version "2.3.0"
simplecov --version "0.5.4"
timecop --version "0.6.3"
yard --version "0.8.7"

Um Armitage starten zu knnen, braucht man noch eine Datenbank:

sudo pacman -S postgresql


sudo systemd-tmpfiles --create postgresql.conf
sudo su - postgres -c "initdb --locale en_US.UTF-8 -E UTF8 -D
'/var/lib/postgres/data'"
sudo systemctl start postgresql
(sudo systemctl enable postgresql)

wenn man es beim Systemstart haben mchte

createuser -s -U postgres --interactive


Geben Sie den Namen der neuen Rolle ein:
(ich setze da meinen Benutzernamen ein)
createdb msf

sudo nano /etc/metasploit/database.yml

Das sollte ungefhr so aussehen:


development:
adapter: "postgresql"
database: "msf3"

103

username: "posgresqluser"
password: "password"
port: 5432
host: "localhost"
pool: 256
timeout: 5
production:
adapter: "postgresql"
database: "msf3"
username: "postgresqluser"
password: "password"
port: 5432
host: "localhost"
pool: 256
timeout: 5

nano /etc/profile.d/metasploit.sh
export PATH=$PATH:/etc/metasploit
export MSF_DATABASE_CONFIG=/etc/metasploit/database.yml

Jetzt ein mal Neustarten und dann Armitage starten. Funktioniert endlich.

---------------------------------------------------------------------------------------------------------------Ich kann aber kein msfupdate starten, da bekomme ich eine Fehlermeldung.
sudo msfupdate
[*]
[*] Attempting to update the Metasploit Framework...
[*]

/usr/share/metasploit/msfupdate:143:in `block in run!': Cannot determine checkout type:


`/usr/share/metasploit' (RuntimeError)
from /usr/share/metasploit/msfupdate:135:in `chdir'
from /usr/share/metasploit/msfupdate:135:in `run!'
from /usr/share/metasploit/msfupdate:292:in `<main>'

Auch nach intensiver Recherche konnte ich den Fehler nicht beheben. Ich
habe mich jetzt entschlossen das git-Paket vom AUR zu nehmen.
sudo pacman -Rss armitage

Damit wird metasploit, ruby-1.9 und armitage entfernt


104

yaourt -S metasploit-git
gem install bundler && bundle install

Das mit dem Bundle funktioniert wieder nicht, erscheint die Fehlermeldung:
zsh: command not found: bundle

Auf der Konsole lsst sich der Befehl aber vervollstndigen, also bin ich mir
sicher, dass bundle existiert.
Da ich keine Lust habe wieder alle gems einzeln zu installieren, mchte ich
versuchen das zu beheben.
Zuerst mal die Umgebung anschauen:
gem env

RubyGems Environment:
- RUBYGEMS VERSION: 2.2.0
- RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/2.0.0
- RUBY EXECUTABLE: /usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /home/benutzer/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /usr/lib/ruby/gems/2.0.0
- /home/benutzer/.gem/ruby/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "gem" => "--user-install"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/bin
- /opt/android-sdk/build-tools/19/

105

- /opt/android-sdk/platform-tools
- /opt/android-sdk/tools
- /opt/java/bin
- /opt/java/db/bin
- /opt/java/jre/bin
- /etc/metasploit
- /usr/bin/vendor_perl
- /usr/bin/core_perl

Jetzt die Pfad hinzufgen:


export PATH=$PATH:/home/benutzer/.gem/ruby/2.0.0/bin
Dann kommt zumindest schon mal ein anderer Fehler (es ist zum heulen):
Bundler::GemfileNotFound

Dann versuche ich mal:


bundle init
Writing new Gemfile to /home/benutzer/Gemfile

Dann wieder :
bundle install
The Gemfile specifies no dependencies
Resolving dependencies...
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.

Natrlich klappt das nicht, man muss immer noch alle einzeln installieren.
gem install bundler
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem

install
install
install
install
install
install
install
install
install
install
install

rake --version "10.1.0"


i18n --version "0.6.5"
multi_json --version "1.0.4"
activesupport --version "3.2.14"
builder --version "3.0.4"
activemodel --version "3.2.14"
arel --version "3.0.2"
tzinfo --version "0.3.37"
activerecord --version "3.2.14"
database_cleaner --version "1.1.1"
diff-lcs --version "1.2.4"

106

gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem

install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install
install

factory_girl --version "4.2.0"


fivemat --version "1.2.1"
json --version "1.8.0"
pg --version "0.16.0"
mini_portile --version "0.5.1"
msgpack --version "0.5.5"
network_interface --version "0.0.1"
nokogiri --version "1.6.0"
packetfu --version "1.1.9"
pcaprub --version "0.11.3"
redcarpet --version "3.0.0"
robots --version "0.10.1"
rspec-core --version "2.14.5"
rspec-expectations --version "2.14.2"
rspec --version "2.14.1"
shoulda-matchers --version "2.3.0"
simplecov --version "0.5.4"
timecop --version "0.6.3"
yard --version "0.8.7"
bcrypt-ruby --version "3.1.2"

gem install metasploit_data_models --version "0.16.9"


gem install rspec-mocks --version "2.14.3"

Jetzt funktioniert es gar nicht mehr.


mfsconsole

/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant


OpenSSL::VERSION
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::OPENSSL_VERSION
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::OPENSSL_VERSION_NUMBER
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::OPENSSL_FIPS
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::Config::DEFAULT_CONFIG_FILE
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::Signer
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::TEXT
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOCERTS
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOSIGS
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOCHAIN
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOINTERN
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOVERIFY
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::DETACHED

107

/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant


OpenSSL::PKCS7::BINARY
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOATTR
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant
OpenSSL::PKCS7::NOSMIMECAP

[...]

'
Ich denke, dass Metasploit nicht mit ruby-2.0.0 funktioniert
Vielleicht hilft ein Downgrade
sudo pacman -Rdd ruby

mkdir ruby1.9
cd ruby1.9
wget https://aur.archlinux.org/packages/ru/ruby1.9/ruby1.9.tar.gz
tar -xfzv ruby1.9
cd ruby1.9
makepkg -s
sudo pacman -U ruby1.9-1.9.3_p484-1-x86_64.pkg.tar.xz

Jetzt funktioniert Ruby gar nicht mehr, obwohl es da ist.


ruby --version
ruby will not execute and completion _ruby exists.

opt/ruby1.9/bin/ruby --version
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]

Also wieder den Pfad anpassen, dann funktioniert Ruby auch:


export PATH=$PATH:/opt/ruby1.9/bin/

Jetzt will ich nur noch hoffen, dass Metasploit funktioniert:


msfconsole

Ohh nein, jetzt muss man schon wieder das bundle istallieren. AHHHH
gem install bundler
ERROR:

While executing gem ... (Gem::FilePermissionError)

108

You don't have write permissions for the /opt/ruby1.9/lib/ruby/gems/1.9.1 directory.

Der mchte das wieder mit sudo haben. Ungern, aber wenn es sein muss.
Dafr sollte ich aber auch noch einen Weg finden.

Also wieder wie oben, nur mit sudo.


sudo gem-1.9 install rake --version "10.1.0"
rake's executable "rake" conflicts with /opt/ruby1.9/bin/rake
Overwrite the executable? [yN] y

Htte ich mal vorher gesehen, dass derjenige, der das PKGBUILD erstellt hat,
das msfupdate entfernt hat. Nene, beim AUR muss man die Augen berall
haben.
Um das beheben, muss man das wieder neu kompilieren und die Zeilen
rm -R usr/src/$pkgname/.git
rm usr/src/$pkgname/msfupdate

vom PKGBUILD entfernen.


Also das Paket wieder entfernen.
sudo pacman -Rdd metasploit-git

und dann neu bauen und nicht vergessen ruby1.9 als Abhngigkeit
einzutragen, sonst hat man wieder den gleichen Driss.
Dann wieder den Pfad anpassen:
export PATH=$PATH:/opt/ruby1.9/bin/

Jetzt funktioniert es auch mit msfupdate.


Ach so, Armitage habe ich wieder von Black Arch genommen, weil ich jetzt
nicht die SVN-Version aus dem AUR nehmen wollte. Genug gekmpft.

Das ist auf jeden Fall alles andere als Benutzerfreundlich. Ich wei, dass es
bei anderen Distributionen einfach ein Installationsskript gibt, da muss man
fast gar nichts machen.

109

Eigenes Repositorium erstellen


Die Idee kam auf, als ich den Echtzeitkernel kompiliert habe. Da das ber
zwei Stunden gedauert hat, habe ich mir berlegt, die Pakete, die ich selbst
gebaut habe, in ein eigenes Repositorium zu hinterlegen. So kann ich dann
einfach schnell die Binrdateien installieren.

Lokal
In meinem Beispiel soll das Repositorium mor (My Own Repository) heien.
Ein Verzeichnis im Home-Verzeichnis erstellen
mkdir /home/benutzer/mor

Dort kopiert man eine pkg.tar.gz Datei hinein. Ich habe noch eine von
gpredict.
cp ~/gpredict/gpredict/gpredict-1.3-1-x86_64.pkg.tar.xz ~/mor

Danach in das Verzeichnis mor wechseln und die Datenbank erstellen.


cd mor
repo-add mor.db.tar.gz *.pkg.tar.xz

Dann bearbeitet man die pacman.conf


nano /etc/pacman.conf

Dort fgt man sein Repositorium hinzu.


# eigenes Repositorium mor
[mor]
SigLevel = Optional TrustAll
Server = file:///home/benutzer/mor

Datenbank aktualisieren:
pacman -Sy

110

Server
Ich habe so einen Plasterouter, auf dem ich ein OpenWRT installiert habe und
der einen USB-Anschluss besitzt. Da liegt es natrlich nah, dass ich mein
Repositorium auf diesen Router verschiebe. Dort habe ich einen schlanken
FTP-Server, den vsftpd, installiert.
Einfach die pacman.conf abndern:
nano /etc/pacman.conf

Dort fgt man sein Repositorium hinzu.


# eigenes Repositorium mor auf Router
[mor]
SigLevel = Optional TrustAll
Server = ftp://IP-Adresse/mor

Und dann verschiebe ich die Daten mit scp. Das Problem ist nur, dass ich
keine Ahnung habe, wie ich das mit der Datenbank handhaben soll. Es wre ja
schn, wenn ich die Datenbank auf OpenWRT pflegen knnte.

Sshfs
benutze ich jetzt zum Administrieren der Datenbank.
Client auf Arch Linux:
pacman -S sshfs

Fuse war wahrscheinlich schon installiert, sonst pacman -S fuse


nachschauen, ob fuse geladen ist
lsmod | grep fuse

wenn nicht, dann


modprobe fuse

Nachschauen, ob fuse gestartet ist


systemctl list-units --all|grep fuse

Server auf OpenWRT:


opkg update
opkg install openssh-sftp-server

111

Danach auf Arch Linux die Festplatte einbinden:


mkdir ~/routerfs
sshfs user@host:/mnt/dir /routerfs

Zum aushngen:
fusermount -u ~/routerfs

Eigene Pakete signieren


Da ich fr dieses Testrepositorium nicht plane, es anderen im Internet zur
Verfgung zu stellen, benutze ich keinen Schlsselserver, sondern erstelle
eine ASCII-Datei, die ich auf einem USB-Stick verteilen kann.
Ein Schlsselpaar erstellen
gpg --gen-key

Es werden einige Fragen gestellt:


Ich whle den voreingestellten Wert
Ich whle eine Schlssellnge von 4096 Bit
Da ich meine Schlssel regelmig verliere, lasse ich ihn nach einem Jahr
ablaufen. - 1y
Das Passwort sollte natrlich annhernd zufllig gewhlt werden. Ich nehme
mir immer ein Buch und suche mir einen Satz heraus. Zum Beispiel aus dem
Anhalter:
Aus:Sein Mund fing an zu sprechen, aber sein Gehirn war der Meinung, der
Mund habe noch nichts zu sagen, und schlo ihn wieder.
wird: SmfazsasGwdMdMhnnzsusiw
Besser wre natrlich noch Zahlen und Sonderzeichen einzufgen, aber ich
bernehme die Zeile immer so, wie sie dort steht. So kann ich das Passwort
einfach nachschlagen, wenn ich es vergessen habe.

Das Schlsselpaar wird erstellt:


Jetzt den Schlssel auflisten (wobei Benutzer, die Daten sind, die man
eingeben hat):
112

gpg --list-keys
/home/benutzer/.gnupg/pubring.gpg
------------------------------pub

4096R/ABCD1234 2013-12-12 [verfllt: 2014-12-12]

uid

Benutzer <benutzer@lassmichinruhe.de>

sub

4096R/EFGH5678 2013-12-12 [verfllt: 2014-12-12]

Die Schlsseldatei erzeugen:


gpg --armor --output benutzer.asc --export "Benutzer"

Den Schlssel Pacman bergeben:


sudo pacman-key -a benutzer.asc

Schauen, ob alles geklappt hat:


pacman-key --list-sigs "Benutzer"
gpg: Notiz: Die "trustdb" ist nicht schreibbar
pub

4096R/ABCD1234 2013-12-12 [verfllt: 2014-12-12]

uid

Benutzer <benutzer@lassmichinruhe.de>

sig 3
sub

ABCD1234 2013-12-12

Benutzer <benutzer@lassmichinruhe.de>

4096R/EFGH5678 2013-12-12 [verfllt: 2014-12-12]

sig

ABCD1234 2013-12-12

Benutzer <benutzer@lassmichinruhe.de>

sudo pacman-key --edit-key 0xABCD1234


ub

4096R/ABCD1234

erzeugt: 2013-12-12

verfllt: 2014-12-12

Vertrauen: unbekannt
sub
[

4096R/EFGH5678

erzeugt: 2013-12-12

Aufruf: SC

Gltigkeit: unbekannt
verfllt: 2014-12-12

Aufruf: E

unbek.] (1). Benutzer <benutzer@lassmichinruhe.de>

Den eigenen Schlssel mit dem Generalschlssel beglaubigen:


gpg> lsign
pub

4096R/ABCD1234

erzeugt: 2013-12-12

verfllt: 2014-12-12

Vertrauen: unbekannt
Haupt-Fingerabdruck

Aufruf: SC

Gltigkeit: unbekannt

= 72DD 8327 43E1 32D3 5598

0719 B5D0 7254 45B5 52HE

Benutzer <benutzer@lassmichinruhe.de>

113

Dieser Schlssel wird 2014-12-12 verfallen.


Sind Sie wirklich sicher, da Sie vorstehenden Schlssel mit Ihrem
Schlssel "Pacman Keyring Master Key <pacman@localhost>" (30F47BAY) beglaubigen wollen

Die Signatur wird als nicht-exportfhig markiert werden.

Wirklich signieren? (j/N) j

Dem eigenen Schlssel vertrauen:


gpg> trust
pub

4096R/ABCD1234

erzeugt: 2013-12-12

verfllt: 2014-12-12

Vertrauen: unbekannt
sub
[

4096R/EFGH5678

erzeugt: 2013-12-12

Aufruf: SC

Gltigkeit: unbekannt
verfllt: 2014-12-12

Aufruf: E

unbek.] (1). Benutzer <benutzer@lassmichinruhe.de>

Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,


Schlssel anderer User korrekt zu prfen (durch Vergleich
mit Lichtbildausweisen, Vergleich der Fingerabdrcke aus
unterschiedlichen Quellen ...)?

1 = Wei nicht so recht


2 = Nein, ihm traue ich NICHT
3 = Ich vertraue ihm marginal
4 = Ich vertraue ihm vollstndig
5 = Ich vertraue ihm absolut
m = Zurck zum Men

Ihre Auswahl? 4

pub

es muss mindestens 3 eingestellt werden!!

4096R/ABCD1234

erzeugt: 2013-12-12

verfllt: 2014-12-12

Vertrauen: vollstndig
sub
[

4096R/EFGH5678

erzeugt: 2013-12-12

Aufruf: SC

Gltigkeit: unbekannt

verfllt: 2014-12-12

Aufruf: E

unbek.] (1). Benutzer <benutzer@lassmichinruhe.de>

Bitte beachten Sie, da ohne einen Programmneustart die angezeigte


Schlsselgltigkeit nicht notwendigerweise korrekt ist.

114

Speichern:
gpg> save
==> Aktualisiere Trust-Datenbank ...
gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell
gpg: Tiefe: 0

gltig:

signiert:

Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u

gpg: Tiefe: 1

gltig:

signiert:

63

Vertrauen: 0-, 0q, 0n, 5m, 1f, 0u

gpg: Tiefe: 2

gltig:

59

signiert:

Vertrauen: 59-, 0q, 0n, 0m, 0f, 0u

gpg: nchste "Trust-DB"-Pflichtberprfung am 2014-01-22

Um makepkg zu erklren, dass er ab jetzt alle Pakete, die man baut, signieren
soll, bearbeitet man die makepkg.conf. Das kann man Global in der
/etc/makepkg.conf machen, aber es macht mehr Sinn eine lokale
Konfiguration zu erstellen.
nano ~/.makepkg.conf

Dort schreibt man folgendes hinein


#
# lokale makepkg.conf, um Pakete zu signieren
#
BUILDENV=(fakeroot !distcc color !ccache check sign)
PACKAGER="Benutzer <benutzer@lassmichinruhe.de>"
GPGKEY="ABCD1234"

Da es auf Dauer sehr nervig ist, stndig sein Passwort einzugeben, nutzt man
den GPG-Agenten.
[...]
Da ich jetzt gerade aber zu faul bin alle Pakete in meinem Repositorium zu
signieren, erstelle ich ein neues Repositorium. (My Own Signed Repository)
und ndere danach die Pacman-Konfigurationsdatei ab.
sudo nano /etc/pacman.conf
# eigenes Repositorium mosr auf Router Signierte Pakete
[mosr]
SigLevel = PackageRequired
Server = ftp://IP-Adresse/mosr

Am Ende speichert man die Schlsseldatei benutzer.asc noch irgendwo sicher


ab.

115

Steganographie
kennt eigentlich jeder aus den Agentenfilmen, wo eine geheime Nachricht
z.B. in einem anderen Text oder einem Bild versteckt wird. Da wird z.B in
einem scheinbar irrelevanten Text eine geheime Nachricht in einem der
dutzenden i-Punkte versteckt und ist nur mit einem sehr starken Mikroskop zu
sehen. Idealerweise ist diese geheime Nachricht dann noch verschlsselt,
damit sie zumindest geheim bleibt, wenn sie entdeckt wird. Ich gehe jede
Wette ein, dass die einfachste Form schon jeder als Kind mal ausprobiert hat
unsichtbare Tinte. Das Ziel der Steganographie ist also eine Information so zu
verbergen, dass Auenstehende ihre Existenz nicht wahrnehmen.
Wenn ich hier von Informationen rede, kann das natrlich alles sein, Texte,
Bilder, Videos, Audiodateien, Ordner, Archive, Programme, egal was. Es stellt
sich nur die Frage, welche Information mchte ich vor wem in welchem
Medium verstecken. Da gibt es natrlich viele Mglichkeiten, wovon sich je
nach Kombination einige Methoden halt besser eignen als andere. Wenn man
ein 30 Sekunden Video in einem Bild verstecken mchte, ist klar, dass das
nicht gerade unauffllig ist. Und eine wichtige Frage ist, vor wem mchte ich
es verbergen. Wenn man etwas vor seiner Familie oder Freundin verstecken
mchte, dann wird man hchstwahrscheinlich schon mit geringem Aufwand
Erfolge erzielen. Mchte man aber brisante Informationen aus einem
Schurkenstaat schmuggeln, wird man sich die grte Mhe geben nicht
enttarnt zu werden.
Digitale Wasserzeichen sind brigens nichts groartig anderes. So kann man
verifizieren, ob eine Datei, die ich zum Beispiel pltzlich irgendwo im Internet
finde, von einem selbst stammt.
Anfangen mchte ich mal mit den Bordmitteln, die schon zur Verfgung
stehen und ich mchte auch direkt zeigen, warum die auf einen ersten Blick
zwar funktionieren, aber schon einer berprfung mit einfachsten Mitteln
nicht standhalten. Danach gehe ich dann auf fortgeschrittene Techniken ein.
Allgemein kann es nicht schaden, wenn man sich ein paar Werkzeuge
installiert. Die brauche ich immer wieder mal, also nicht nur fr diesen Fall.
sudo pacman -S ...
ghex
vbindiff

Hier gibt es ein groes Portal mit viel Lesestoff:


http://www.forensics.nl/steganograph

116

Bordmittel
Dieses Beispiel arbeitet mit Injektion, was nicht besonders unauffllig ist, weil
das Steganogramm, die Datei mit dem versteckten Inhalt, danach eine fr die
Dateiart untypische Gre aufweist.
Zuerst habe ich mir mal ein Bild besorgt. Das ist jetzt nicht unbedingt das
geeignetste Bild. Man sollte je nach Methode darauf achten, dass es viele
Farben und Details enthlt.
https://de.wikipedia.org/wiki/Datei:FuBK-Testbild.png

und ich mchte eine Kopie dieses Textes in dem Bild verstecken. Die Datei ist
eine .odt Datei, was an sich schon ein Archiv ist. Um das besser zeigen zu
knnen, habe ich die Datei nicht verschlsselt. Das ist natrlich auch ein
NoGo, das sollte man schon vorher machen.
Wenn man sich diese .odt Datei in einem Hexeditor anschaut, findet man
einige so einige Punkte, die man mit auch spter in dem Steganogramm
findet.

Jetzt werden die beiden Dateien mittels cat zu einer neuen Datei:
cat FuBK-Testbild.png Arch_Linux_2013_12_29.odt > Testbild.png

Das neue Bild fllt alleine schon wegen der Dateigre auf. Das ursprngliche
Bild war 15,2 kB und das neue Bild hat eine Gre von 684,8 kB.
Und siehe da, das neue Bild enthlt, wie zu erwarten war, ebenfalls diese oben
genannte Stelle.
117

cat -n 1 Testbild.png
ls -la

Um die versteckte Datei wieder zu extrahieren:


dd if=Testbild.png of=Arch_Linux_2013_12_29.odt bs=1 skip=15241

Dabei muss man die Stelle kennen, wo die zu extrahierende Datei anfngt.
Hier sind die ersten 15241 bytes die Gre des originalen FuBK-Testbild.png.

Um jetzt mal auf die Programme zu kommen, die sich in ihrem Umfang und
untersttzten Formaten sehr unterscheiden. Der Nachteil Dateien mit
Programmen zu verstecken, ist dass man auch dieses Programm wieder
braucht, um die versteckten Dateien wieder zu extrahieren und unter
Umstnden sind verschiedene Versionen untereinander inkompatibel. Der
Vorteil ist natrlich, dass man nur wenig Ahnung von der ganzen Materie
haben muss, um in den Genuss zu kommen, Inhalte zu verstecken.

Steghide
Webprsenz: http://steghide.sourceforge.net/

ist in dem Community Repositorium enthalten.


sudo pacman -S steghide

Die Trgerdatei untersttzt dabei die Formate .bmp, .jpg, .wav und .au.
Ich habe mich fr diese Datei entschieden:
https://upload.wikimedia.org/wikipedia/commons/f/f4/MGM_Grand%2C_Macao%2C_201308-08%2C_DD_14.jpg

118

und berprfe, wieviele Daten sich in dieser Datei verbergen lassen:


steghide info MGM_Grand,_Macao,_2013-08-08,_DD_14.jpg
"MGM_Grand,_Macao,_2013-08-08,_DD_14.jpg":
Format: jpeg
Kapazitt: 372,2 KB
Soll versucht werden, Information ber eingebettete Daten anzuzeigen ? (j/n) n

Es lassen sich also 372,2 kB verstecken, damit ist die Kopie dieses
Dokumentes zu gro. Die Datei ist wahrscheinlich nicht so geeignet, denn sie
ist um die 7 MB gro. Da sollte doch eigentlich etwas mehr drin sein.
Die Datei, die ich verstecken mchte ist die grml-zsh-refcard:
http://grml.org/zsh/grml-zsh-refcard.pdf

Das ganze luft so ab:


Es wird nach einem Passwort gefragt, danach wird die Datei komprimiert,
verschlsselt und anschlieend in einer Trgerdatei versteckt. Standardmig
wird rijndael-128 (AES) im cbc-Modus zur Verschlsselung genutzt. Man kann
aber auch andere Verschlsselungsmethoden und Kombinationen whlen.
Hiermit kann man sich anzeigen lassen, welche Optionen man hat:
steghide encinfo

Ich wrde gerne rijndael-256 (AES) im cbc-Modus benutzen. Es ist nie


verkehrt noch was Luft zu lassen.

Um die Datei zu verstecken, gibt nutzt man


steghide embed -cf MGM_Grand,_Macao,_2013-08-08,_DD_14.jpg -ef grml-zshrefcard.pdf -sf Versteck.jpg -e rijndael-256 cbc

* -cf: Die Trgerdatei,


* -ef: Die Datei, die versteckt werden soll
* -sf: Das neu erstellte Steganogramm, welches beide Dateien enthlt
* -e: Der gewhlte Algorithmus und der gewhlte Modus

Was leider auffllt, ist dass die Datei kleiner geworden ist. Sie hat zwar eine
realistische Gre, aber besser wre es, wenn sie gleich gro geblieben wre.
119

Original: 6,9 MB (6.853.914 Bytes)


Steganogramm: 6,8 MB (6.839.903 Bytes)
Jetzt kann man noch kontrollieren, ob alles geklappt hat:
steghide info Versteck.jpg
"Versteck.jpg":
Format: jpeg
Kapazitt: 372,2 KB
Soll versucht werden, Information ber eingebettete Daten anzuzeigen ? (j/n) j
Passwort eingeben:
Eingebettete Datei "grml-zsh-refcard.pdf":
Gre: 97,1 KB
verschlsselt: rijndael-256, cbc
komprimiert: ja

Um die versteckte Datei wieder zu extrahieren:


steghide extract -sf Versteck.jpg -xf extract-grml-zsh-refcard.pdf

* -sf: Das Steganogramm, welches entschlsselt werden soll


* -xf: Unter welchem Namen die versteckte Datei gespeichert werden soll.
Wenn man das weglsst, wird sie unter dem originalen Namen gespeichert.

Fazit:
Lsst sich schn benutzen, aber leider konnte es einer berprfung nicht
standhalten. Erstens die Dateigre. Gut, die ist realistisch und wenn ich das
original nicht kennen wrde, wre es mir nicht aufgefallen. Aber es fllt sofort
auf, dass etwas mit dem Bild nicht stimmt, wenn man sich die Datei im HexEditor anguckt. Und zwar wurde das Bild von einer Kamera aufgenommen
und deshalb enthlt es Metadaten, sogenannte Exif-Eintrge.
Siehe: https://de.wikipedia.org/wiki/Exchangeable_Image_File_Format

Leider wurden diese Exif-Eintrge mit verschlsselt, was natrlich nicht so


schlau ist, weil es mich direkt stutzig macht, wenn ich so etwas sehe. Man
kann diese zwar auch entfernen, aber die meisten Leute machen das nicht.
Und ich bin mir noch nicht mal sicher, ob nicht doch ein paar Metadaten, wie
Bildgre und Farbraum, brig bleiben. Wenn man sich die Ausgabe von
vbindiff anschaut, sieht man sofort was ich meine.

120

vbindiff MGM_Grand,_Macao,_2013-08-08,_DD_14.jpg Versteck.jpg

Also Fakt ist, dass Steghide die Trgerdaten nicht ausreichend prft, was
eigentlich schon seltsam ist fr ein Programm, was nur zwei Bildformate
untersttzt. Schner wre es, wenn man die Verschleierung granularer
bearbeiten knnte. Aber vielleicht kann man das ja auch, ich habe mich jetzt
noch nicht ausgiebig damit beschftigt. Man ist zwar jetzt noch nicht in der
Lage die Datei zu extrahieren, aber man erkennt auf Anhieb, dass sie
manipuliert wurde.

121

Outgess
Webprsenz: http://www.outguess.org/

Letzte Version wurde im Jahr 2001 verffentlicht und auerdem ist es


gebrochen. Wre aber vielleicht mal interessant einen Blick drauf zu werfen,
um zu verstehen, wie man das attackiert.

OpenPuff
Webprsenz: http://embeddedsw.net/OpenPuff_Steganography_Home.html

Jaja, ich musste zuerst schmunzeln :-)... Ist leider nur fr Windows, oder?
Sieht aber recht professionell aus.

Jphide
Webprsenz: http://linux01.gwdg.de/~alatham/stego.html

SilentEye
Webprsenz: http://www.silenteye.org/

122

Steganalyse
Das Ziel der Steganalyse ist es ein Medium auf die mgliche Existenz von
unsichtbaren Informationen zu berprfen, ggf. zu extrahieren und
einzusehen.
Welche forensische Methoden kann man anwenden?
Steganographie-Werkzeuge:
Wenn man irgendwo ein Steganographie-Programm finde, muss man davon
ausgehen, dass auch Steganogramme vorhanden sind. Also wenn man
Programme nutzt, sollte man die nach dem erfolgreichen Umwandeln auch
wieder deinstallieren, inklusive aller Abhngigkeiten und darauf achten, dass
auch alle Programmordner und Konfigurationsdateien entfernt wurden.

Hex-Editoren:
Wie in den Beispielen schon gezeigt, kann man mit einem Hex-Editor schon
viele Informationen gewinnen. Das gilt aber nicht nur fr Steganographie,
immer wenn man sich eine Datei mal genauer anschauen mchte, ist das ein
Werkzeug der ersten Wahl.

Diff-Werkzeuge:
zeigen die Unterschiede zwischen zwei Versionen an. Das ist gut, um z.B.
Updates zu vergleichen. Aber um ein realistisches Vorgehen zu simulieren
geht man ja davon aus, dass man das Original nicht kennt, deswegen sollten
sie fairerweise hier auch nicht zum Einsatz kommen. Ich benutze sie nur, um
besser zeigen zu knnen, wo sie Unterschiede sind.

Anomalien suchen:
Wenn man eine Audiodatei vor sich hat, ffnet man diese in einem Audioeditor
und schaut sich z.B. die Hllkurve an. Wenn man ein Bild vor sich hat, nimmt
einen Bildeditor und versucht verschiedene Filter anzuwenden.

Nach Signaturen suchen:


Manche Programme knnten eine Sequenz von Zeichen generieren, welche
Rckschlsse auf das verwendete Programm geben.

123

Was kann man jetzt tun, wenn man sich sicher ist, dass man ein
Steganogramm vor sich hat?

Verschlsselung:
Viele Steganogramme enthalten Verschlsselung, die man angreifen knnte.
Leider ist die meist sehr stark. Also wie im Beispiel von Steghide eine AES
Verschlsselung mit 256 Bit Schlssellnge wird das nicht ganz so einfach.
Nachrichtendienste arbeiten an so was oder knnen es vielleicht auch schon,
aber ich kann das nicht. Wenn berhaupt wrde ich versuchen, die
Implementierung anzugreifen.

Passwort:
Die meisten Programme setzen auf ein Passwort als Schlssel und das kann
man ja immer versuchen anzugreifen. Wie man ja wei: Schwache Passwrter
untergraben die strksten Sicherheitsmanahmen.

Unerwartete Benutzung:
Hier greift die Regel, dass Programmierer ihre Programme nicht selbst testen
knnen. Sie programmieren das Programm aus einer anderen Sicht und zwar
wie man das Programm benutzen soll. Was ist denn jetzt, wenn ich das
Programm aber ganz anders benutze als die Programmierer das vorgesehen
haben. Hier ist der Kreativitt keine Grenzen gesetzt, aber ich will mal ein
paar Beispiele zeigen.

Was passiert, wenn


man das Steganogramm einfach mal in einem Texteditor ffnet?
man einfach mal ein 500 Zeichen langes Passwort eingibt?
steghide extract -sf Versteck.jpg -p
"sdhsjfhdashfjhdfjhdfhjdhfjdshfjhdkfhkdhfjkdhfhdskhfjkdhfhdsfhjkdhfhdjfhdshfjkds
hdsfbjkbncjbjkdhfdsnic[...]nciocifids ci actztrztgre
erter
tecewtceueiodfio[...]thrzjurkthrsgarrrrezjthgrtwzhtgrtzwuejhgfgrthzjeurk
jhgfbv{{"
steghide: Mit diesem Passwort konnten keine Daten extrahiert werden!

124

man einfach mal ein 60 Millionen Zeichen langes Passwort eingibt?


man einfach mal ASCII-Zeichen, wie z.B. einen Notenschlssel eingibt?
man einfach Shell-Befehle in der Passworteingabe eingibt?

automatische Steganalyse:
stegdetect:
ist im AUR verfgbar
wget https://aur.archlinux.org/packages/st/stegdetect/stegdetect.tar.gz

den Rest kennt man ja inzwischen...

Bei Stegdetect kann man sie Sensitivitt einstellen. Der Standard ist 1. Die
Werte knnen zwischen 0.01 und 9.99 liegen, es wird aber kein Fehler
angezeigt, wenn man ber diesen Wert geht. Mit -s ndert man diesen Wert.
Je hher die Sensitivitt eingestellt wird, desto hher ist auch die Mglichkeit
von False-Positives, also eine positive Erkennung, obwohl da keine geheime
Information enthalten ist.
Ich will es mal gegen das vorhanden Steganogramm von Steghide einsetzen.
stegdetect -s 1 Versteck.jpg
Versteck.jpg : negative

stegdetect -s 5 Versteck.jpg
Versteck.jpg : jphide(*)

stegdetect -s 9 Versteck.jpg
Versteck.jpg : jphide(***)

Stegdetect zeigt also an, dass mit unterschiedlicher Wahrscheinlichkeit ein


unsichtbares Geheimnis in dieser Datei existiert. Allerdings stimmt die
Ausgabe nicht ganz. Ich wei ja, dass es mit steghide und nicht mit jphide
erstellt wurde, aber vielleicht sind sich diese zwei Programme gar nicht so
unhnlich.

125

Jetzt will ich mal einen Angriff auf das Passwort realisieren. Zuerst mit einem
Wrterbuch. Leider wei ich schon jetzt, dass das bei mir nicht klappt, weil
ich kein Wort als Passwort habe. Es ist zwar jetzt auch nicht besonders sicher,
aber im Wrterbuch wird es nicht stehen. Ich glaube allerdings, dass es durch
einen Bruteforce-Angriff schon geknackt werden knnte. Es hat neun 9
Zeichen, die aus Gro- und Kleinbuchstaben bestehen. Das sind nur
2779905883635712 mgliche Kombinationen. Das zeigt, dass es sich schon
lohnt Zahlen einzubauen. Das wrde die mglichen Kombinationen bei 9
Zeichen auf 13537086546263552 erhhen.

stegbreak Versteck.jpg
stegbreak: fopen: /usr/share/stegbreak/rules.ini: No such file or directory

Man kann die Datei hier herunterladen und dann in das Verzeichnis
/usr/share/stegbreak/ kopieren.
https://launchpadlibrarian.net/16697277/rules.ini

Falls der Link auch down sein sollte, kann man das folgendes in eine Textdatei
schreiben und diese Datei rules.ini nennen:
# This file is part of John the Ripper password cracker,
# Copyright (c) 1996-98 by Solar Designer
#
# Wordlist mode rules
[List.Rules:Wordlist]
# Try words as they are
:
# Lowercase every pure alphanumeric word
-c >3!?XlQ
# Capitalize every pure alphanumeric word
-c >2(?a!?XcQ
# Lowercase and pluralize pure alphabetic words
<*>2!?Alp
# Lowercase pure alphabetic words and append '1'
<*>2!?Al$1
# Capitalize pure alphabetic words and append '1'
-c <*>2!?Ac$1
# Duplicate reasonably short pure alphabetic words (fred -> fredfred)
<7>1!?Ald
# Lowercase and reverse pure alphabetic words
>3!?AlMrQ
# Prefix pure alphabetic words with '1'

126

>2!?Al^1
# Uppercase pure alphanumeric words
-c >2!?XuQ
# Lowercase pure alphabetic words and append a digit or simple punctuation
<*>2!?Al$[2!37954860.?]
# Words containing punctuation, which is then squeezed out, lowercase
/?p@?p>3l
# Words with vowels removed, lowercase
/?v@?v>3l
# Words containing whitespace, which is then squeezed out, lowercase
/?w@?w>3l
# Capitalize and duplicate short pure alphabetic words (fred -> FredFred)
-c <7>1!?Acd
# Capitalize and reverse pure alphabetic words (fred -> derF)
-c <+>2!?Acr
# Reverse and capitalize pure alphabetic words (fred -> Derf)
-c >2!?AMrQc
# Lowercase and reflect pure alphabetic words (fred -> fredderf)
<7>1!?AlMrQrf
# Uppercase the last letter of pure alphabetic words (fred -> freD)
-c <+>2!?AMrQcr
# Prefix pure alphabetic words with '2' or '4'
>2!?Al^[24]
# Capitalize pure alphabetic words and append a digit or simple punctuation
-c <*>2!?Ac$[2!3957468.?0]
# Prefix pure alphabetic words with digits
>2!?Al^[379568]
# Capitalize and pluralize pure alphabetic words of reasonable length
-c <*>2!?Acp
# Lowercase/capitalize pure alphabetic words of reasonable length and convert:
# crack -> cracked, crack -> cracking
<*>2!?Al[PI]
-c <*>2!?Ac[PI]
# Try the second half of split passwords
-s x**
-s-c x**MlQ

cd /usr/share
sudo mkdir stegbreak
sudo cp ~/Dateipfad/zur/rules.ini /usr/share/stegbreak/

127

Jetzt msste man noch die Rechte ndern oder man benutzt stegbreak mit
sudo.
Leider funktioniert das noch nicht ganz. Er macht irgendwas und bricht dann
mit Fehler 139 ab. Ich glaube, das bedeutet Segmentation Fault. Bis jetzt habe
ich noch keine Lsung gefunden. Das ist doch dann ein Programmfehler,
irgendwo wird eine Zugriffsverletzung im Speicher ausgelst, weil z.B. ein
Pointer auf 0 zeigt. Da msste man sich mal den Source-Code angucken.

Stegdetect mit Wine:


https://bugs.launchpad.net/ubuntu/+source/stegdetect/+bug/245063

Stegdetetect 0.4 als Windowsbinary herunterladen und ins Heimverzeichnis


entpacken (/home/benutzer/stegdetect-win):
Sicherstellen, dass Wine installiert ist. Siehe: 66
cd stegdetect-win

In diesem Beispiel habe ich die cracklib-small in das stegdetect-win


Verzeichnis kopiert.
In das Verzeichnis mit dem Steganogramm wechseln und starten
wine ~/stegdetect-win/stegbreak.exe -r ~/stegdetect-win/rules.ini -f
~/stegdetect-win/cracklib-small -t p Versteck.jpg
Corrupt JPEG data: bad Huffman code
Loaded 1 files...Versteck.jpg :
negative Processed 1 files, found 0 embeddings.
Time: 249 seconds: Cracks: 2431831,

9766.4 c/s

Es schafft ungefhr 10000 Kombinationen pro Sekunde, was eigentlich gar


nichts ist. Das wrde bei einem Bruteforce-Angriff mit den
2779905883635712 mglichen Kombinationen ja 8937 Jahre dauern alle
durchzuprobieren. Ich denke, da knnte man auch mehr rausholen. Das
bedeutet aber nicht, dass man das Passwort nicht schon nach einer halben
Stunden haben knnte. Man wrde versuchen, die mglichen Kombinationen
einzuengen und mit jedem Fehlversuch steigt auch die Wahrscheinlichkeit,
dass der nchste Versuch ein Treffer ist.
Aber:
Stegbreak kann das Steganogramm von Steghide nicht brechen, selbst
wenn das Passwort in einer Wrterliste stehen wrde. Gerade getestet.
Zumindest in der Version 0.4.

128

Perl Skript:
Vorsicht: Das Skript hat meine Temperatur so dermaen ansteigen
lassen, dass ich Angst hatte, dass mir der Prozessor verreckt. Da muss
man ggf. was mit den Einstellungen rumspielen, aber mein Laptop hat
sowieso eine schlechte Khlung.
Ich habe ein kleines Perlskript gefunden, was Wrterbuch-Attacken auf
Steghide-Steganogramme durchfhren kann.
Ich habe irgendwie mehrere Dutzend Gigabyte Wrterbcher hier rumfliegen,
aber immer wenn ich die mal brauche, finde ich die nicht. Ich habe mir jetzt
mal das Wrterbuch aus Stegdetect genommen.
Zuerst mal einen neuen Ordner erstellen und das Stenganogramm da rein
kopieren, dann das Wrterbuch in das Verzeichnis kopieren
mdir crack-steghide
cp /usr/share/dict/cracklib-small ~/crack-steghide

und das folgende Skript in eine Textdatei Namens crack-steghide.pl schreiben.


#!/usr/bin/perl
#Steghide must be installed for this script to work.
#In Ubuntu etc just do a 'sudo apt-get install steghide'
#If you're seeing a bunch of '0's being tried, your step is probably too large.
#To do:
#

+Finish commenting

+Print run time in human readable format

#
+Create new thread imediatley after one finishes instead of waiting for all
$parallelism
#

+Create Expect.pm thread for a nicer look

+General code clean up

use threads;
use threads::shared;
use Time::Local;
use Getopt::Long;
use Term::ANSIColor;

my $step = 100;
my $parallelism = 10;
my $found : shared = 0;

129

my $tested : shared = 0;
my $count = 1 ;
my $verbose;
my $help;

$SIG{'INT'} = 'INT_handler'; #Call our handler to close files before exiting when ctrl^c
is pressed

$arguments = GetOptions ("wordlist=s" => \$file,


"image=s" => \$image,
"parallelism=i" => \$parallelism,
"step=i" => \$step,
"verbose" => \$verbose,
"help" => \$help);

#If stegfile and/or wordlist weren't given, print help and exit.
if(!$image || !$file || $help){
rtfm();
}

print color 'bold red';


print "\n!WARNING!\n";
print color 'reset';
print "Files with the same name as the hidden file will be automatically
overwritten.\nYou should probably run this in an empty directory.\n\nPress Enter to
continue...";
$wait

= <>;

#Open the wordlist and wordlist index


open(FILE, "< $file")

or die "Can't open $file for reading: $!\n";

open(INDEX, "+>$file.idx")

or die "Can't open $file.idx for read/write: $!\n";

build_index(*FILE, *INDEX); #Build our wordlist index for easy line seeking

@timeData = localtime(time);
$time1 = join(' ',@timeData);

print "\nStarting!\n\n";

#Main loop runs until the end of the wordlist or the passphrase is found
while(defined(line_with_index(*FILE, *INDEX, $count)) && !$found){

#Create our worker threads

130

for($i = 1; $i <= $parallelism; $i++){


@thr[$i] = threads->create('do_crack', $i);
}

#Join all our threads. Oddly this didn't work when it was in the same loop as
create
for($i = 1; $i <= $parallelism; $i++){
@thr[$i]->join();
}

#Incremenr our counter.


$count = $count + $parallelism * $step;

print $tested . "\n" . $count . "\n";


}

if(!$found){
print "Passphrase was not found :(\n";
}

sub do_crack{

$nThread = @_[0];

$offset = $step * ($nThread - 1) + $count;


$finish = + $offset + $step;

if($found){
threads->exit() if threads->can('exit');
exit();
}

while($offset < $finish && !$found){


if($line = line_with_index(*FILE, *INDEX, $offset)){
$line =~ s/\s+$//;

if($verbose){
print $nThread . ":[$offset]Trying: " . $line . "\n";}

$result = `steghide extract -sf $image -p "$line" -f 2>&1`;

131

if($result =~ m/extracted/ || $result =~ m/already/){


print "Got it! The passphrase is: $line\n";
print $result;
$found = 1;

@timeData = localtime(time);
$time2 = join(' ',@timeData);
print $time1 . "\n" . $time2 . "\n";
}
}else{
die "Offset out of range\n";
}
$offset++;
lock($tested);
$tested++;
}}

sub rtfm {
print "Just a simple multi-threaded script to bruteforce Steghide passphrases.\n";
print "Good luck! -Nevermore\n\n";
print "Options:\n";
print "
(required)\n";

--image, -i

The stegfile you want to bruteforce

print "

--wordlist, -w

print "

--parallelism, -p

Number of concurrent threads (default 10)\n";

print "
100)\n";

--step, -s

Number of words for each thead to test (default

print "
number info\n";

--verbose, -v

Prints every tested word with thread and try

--help, -h

What do you think you are looking at?\n\n";

print "

Path to your wordlist (required)\n";

print "Example usage: perl brute.pl -i steg.jpg -w words.txt -p 15 -s 75\n";


exit(0);
}

sub build_index {
my $data_file

= shift;

my $index_file = shift;
my $offset

= 0;

print "\nBuilding index. This could take a while for large wordlists.\n";

132

while (<$data_file>) {
print $index_file pack("N", $offset);
$offset = tell($data_file);
}
}

sub line_with_index {
my $data_file

= shift;

my $index_file

= shift;

my $line_number = shift;
my $size;

# size of an index entry

my $i_offset;

# offset into the index of the entry

my $entry;

# index entry

my $d_offset;

# offset into the data file

$size = length(pack("N", 0));


$i_offset = $size * ($line_number-1);
seek($index_file, $i_offset, 0) or return;
read($index_file, $entry, $size);
$d_offset = unpack("N", $entry);
seek($data_file, $d_offset, 0);
return scalar(<$data_file>);
}

#Interrupt handler: closes our wordlist before exiting


sub INT_handler {
print "\nDying...\n";
$found++;
sleep(1);
close(FILE);
print "Goodbye!\n";
exit(0);
}

So startet man den Angriff:


perl

crack-steghide.pl -i Versteck.jpg -w cracklib-small -v

Prinzipiell funktioniert das Skript, aber es beendet sich nicht, wenn die
geheime Information extrahiert wurde.

133

Kryptographie
Das gesamte System verschlsseln

Truecrypt

Spionageabwehr & Zensurgegenmanahmen


Die aktuelle Debatte ber die Enthllungen von Snowden, was
Nachrichtendienste denn nun wirklich leisten knnen, verursachen bei vielen
Menschen ein Gefhl von Ohnmacht, denn sie sagen zwar, dass sie das nicht
gut finden, sehen sich aber nicht in der Lage technische Gegenmanahmen
einzuleiten. Dabei ist die Debatte auch schon viele Jahrzehnte alt, weil es ist ja
nicht so, dass man nicht wusste, was technisch mglich ist. Der einzige
Unterschied ist, dass man jetzt keine Vermutungen mehr uern muss,
sondern einen guten berblick von Fakten zugespielt bekommen hat. Man
muss es aber auch mal so sehen, dass es die einzige Aufgabe von
Nachrichtendiensten ist, alle Kommunikation abzuschnorcheln und
auszuwerten (selbst wenn sie heute noch nicht ausgewertet werden knnen).
Ich mchte hier mal ein paar Hinweise geben, was man gegen die groen und
besonders auch gegen die kleinen Brder, die ich persnlich viel gefhrlicher
finde, tun kann.
Auch diese Liste wird wahrscheinlich nie vollstndig werden, weil sich die
Autoritten, Firmen und bse Buben auch stndig neue Methoden einfallen
lassen, um ihr Ziel zu erreichen. Aber es gibt halt zwei Arten von Verhalten
man kann es denen auf einem silbernen Tablett servieren oder man kann
versuchen es ihnen so schwer wie mglich zu machen und fr mich ist die
Sache klar. Wenn jemand an meine sensiblen Daten ran mchte, soll er sich
geflligst was anstrengen.
134

Es gibt verschiedene Informationen, die fr die Brder interessant sind. Mit


wem habe ich kommuniziert, was habe ich kommuniziert und allgemein wie
meine Gewohnheiten sind, um ein Profil von mir und meiner Denkweise zu
erstellen.

DNS
Das Domain Service System wandelt Namen in IP-Adressen um. Das Internet
funktioniert nicht mit Namen, sondern basiert auf dem IP-Protokoll. Das ist
vergleichbar mit Telefonnummern und DNS wre dann das quivalent
Telefonbuch. Man braucht keinen Namen, um z.B. eine Webseite anzuwhlen,
man knnte auch einfach die Telefonnummer eingeben. Man kann sich
vorstellen, dass es sehr unbequem wre, die ganzen Nummern auswendig zu
lernen, oder immer per Hand im Telefonbuch nachzuschlagen. Deswegen
hlt der eigene Internet Service Provider (ISP) stndig eine mehr oder
weniger aktuelle Liste vor, die bei jeder Namensanwahl in eine IP-Adresse
umgewandelt wird.
Damit hat der DNS-Server, den man abfragt, die Kontrolle auf welche Seiten
man verwiesen wird. Er entscheidet, welche Seite man letztendlich ansteuert.
Das fllt besonders dann auf, wenn man in der Adresszeile einen falschen
Namen eingibt. Dann wird man entweder automatisch auf die Google-Seite
weitergeleitet, oder man wird auf eine Suchseite des ISPs verwiesen. Und
selbst wenn ich den Inhalt verschlssele, wei der DNS-Server immer mit
wem ich kommunizieren mchte.
Das stellt eine hohe Vertrauensbasis dar, denn da kann man natrlich gut bei
der berwachung und Zensur ansetzen. Wenn der DNS-Server nicht mchte,
dass man eine bestimmte Seite aufruft, wird er die IP-Adresse einfach nicht
auflsen.
Um einen anderen DNS-Server unter Arch Linux einzustellen, konfiguriert
man die /etc/resolvconf.conf man kann auch die /etc/resolv.conf direkt
bearbeiten, aber ich habe da schlechte Erfahrungen gemacht, weil die
berschrieben wird, wenn man DHCP benutzt und dann ist die Einstellungen
weg. Das muss man aber an anderer Stelle ndern.
Siehe: ??? irgendwo bei Pdnsd
sudo nano /etc/resolvconf.conf

135

Das sieht dann ungefhr so aus:


# Configuration for resolvconf(8)
# See resolvconf.conf(5) for details
resolv_conf=/etc/resolv.conf
# If you run a local name server, you should uncomment the below line and
# configure your subscribers configuration files below.
#name_servers=127.0.0.1
#Router
#name_servers=192.168.x.x
#Google
#name_servers=8.8.8.8
#name_servers=8.8.4.4
#CCC
#dnscache.berlin.ccc.de
name_servers=213.73.91.35
#dnscache.ulm.ccc.de

Danch muss man die resolv.conf generieren.


sudo resolvconf -u

Andere DNS-Server benutzen:


Das Problem ist auch hier die Vertrauensstellung, man legt die komplette
Internetnutzung in dessen Hnde. Wenn der DNS-Server mir eine geflschte
Seite unterjubeln will (Stichwort: Phishing), kann ich wenig dagegen machen.
Chaos Computer Club:
IPv4:
213.73.91.35 (dnscache.berlin.ccc.de)
(dnscache.ulm.ccc.de)
[212.12.48.1 (dnscache.hamburg???)]

136

Meine persnliche Meinung: Ich benutze den zwar im Moment und ich
persnlich traue dem CCC auch, aber man sollte sich im Klaren sein, dass es
sich hier um Computerexperten handelt, die einen hohen Spielspa am Gert
haben. Man kann sich also nicht sein, ob man nicht auch mal fr Experimente
herhalten muss.

FoeBuD (funktioniert nicht?)


IPv4:
85.214.73.63

OpenNIC:
Webprsenz: http://www.opennicproject.org/

Geh' auf die Seite, dort findet man die Server.

OpenDNS:
IPv4:
208.67.222.222 (resolver1.opendns.com)
208.67.220.220 (resolver2.opendns.com)

IPv6:
2620:0:ccc::2
2620:0:ccd::2

Webprsenz: http://www.opendns.com/
Kritik: schaltet Werbung bei Falscheingabe / es gibt noch nicht mal eine httpsWebseite / ist eine amerikanische Firma / es gibt drei Versionen von
Funktionen Basic (kostenlos), Deluxe und Enterprise / entgegen des Namens
ist da gar nichts Open weder ist der Server OpenSource noch ist einzusehen,
welche Seiten blockiert werden / die machen irgendwelche komischen Sachen
mit Google /

137

Einen eigenen DNS-Cache betreiben:


was natrlich das Problem mit der Vertraulichkeit fr mich lst. Ich traue
mir zwar manchmal selbst nicht, aber immer noch mehr als den Anderen.
Ich probiere mal Pdnsd aus, weil es sehr schlank sein soll. Es soll unter 1 MB
Arbeitsspeicher belegen.

Pdnsd
Webprsenz: http://members.home.nl/p.a.rombouts/pdnsd/

sudo pacman -S pdnsd

Jetzt nehme ich mir die Beispielkonfiguration und kopiere sie ins gleiche
Verzeichnis.
sudo cp /etc/pdnsd.conf.sample /etc/pdnsd.conf

und die wird dann bearbeitet:


sudo nano /etc/pdnsd.conf

Kurz was zur Syntax:


* Einzelne Zeilen kommentiert man mit # und einen Bereich startet mit /* und
endet mit */
* Eine Sektion wird mit { eingeleitet und endet mit } und alle Konfigurationen
innerhalb einer Sektion mssen mit einem Semikolon (;) enden
Ich habe mich jetzt zuerst mal fr ein Setup mit OpenDNS und dnscrypt-proxy
entschieden, obwohl ich OpenDNS eigentlich nicht nutzen wollte. Vielleicht
kann ich ja spter auf OpenNIC umstellen, aber da muss ich noch nach ein
paar Informationen suchen.

* In der ersten Sektion unter global ist es bestimmt nicht so eine gute Idee
den Dienst als nobody laufen zu lassen, da Pdnsd Schreibrechte bentigt.
Wenn nun jemand eine Schwachstelle in einem anderen Programm ausnutzen
kann und Prozesse als nobody starten kann, knnte der Angreifer in der
Lage sein, falsche DNS-Eintrge einzuschleusen und mich auf seine Server
umzuleiten, um weitere Angriffe zu starten. Deswegen werde ich einen extra
Benutzer anlegen, der Pdnsd benutzen darf.
sudo groupadd pdnsd
sudo useradd -r -d /var/cache/pdnsd -g pdnsd -s /bin/false pdnsd

138

Jetzt ndert man die Zeile run_as="nobody"; in


run_as="pdnsd";

Allerding hat der Benutzer nicht genug Rechte nach /var zu schreiben, weil
man dazu root-Rechte braucht. Ich ndere jetzt erst mal die Rechte fr
die Ordner, allerdings halte ich das nicht fr die beste Idee. Vielleicht
sollte ich mir berlegen, ob ich nicht einen anderen Ort suche, wohin
er schreiben darf. Diese nderungen der Rechte muss man bei jedem
Update wiederholen.
sudo chown -R pdnsd:pdnsd /var/cache/pdnsd
sudo chmod 700 /var/cache/pdnsd
sudo chmod 600 /var/cache/pdnsd/pdnsd.cache

Dann noch die Sektion fr OpenDNS auskommentieren und die zweite Sektion
kommentieren.

Jetzt muss man noch die resolv.conf ndern, denn man mchte ja den lokalen
Cache benutzen.
sudo nano /etc/resolvconf.conf

Dort alles mit # kommentieren


name_servers=127.0.0.1
pdnsd_resolv=/etc/pdnsd-resolv.conf

und danach aktualisieren:


sudo /usr/bin/resolvconf -u

Dann muss man noch den Service starten.


sudo systemctl enable pdnsd
sudo systemctl start pdnsd

Jetzt kann man mal eine Seite aufrufen.


Das hat dann nicht funktioniert. Ich habe mich zu der Gruppe hinzugefgt und
musste noch loopback in iptables erlauben und ich habe noch Port 53 TCP
139

hinzugefgt. Ich wrde lieber nur die Ports fr loopback freigeben, die
ich auch wirklich brauche.
sudo nano /etc/iptables/iptables.rules

Die sieht inzwischen so aus:


# Generated by iptables-save v1.4.20 on .
*filter
:INPUT DROP [10:814]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i enp7s0 -p tcp -m tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i enp7s0 -p tcp -m tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i enp7s0 -p tcp -m tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i enp7s0 -p tcp -m tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i enp7s0 -p udp -m udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i enp7s0 -p tcp -m tcp --sport 53 -m state --state ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -o enp7s0 -p tcp -m tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o enp7s0 -p tcp -m tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o enp7s0 -p tcp -m tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o enp7s0 -p tcp -m tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o enp7s0 -p udp -m udp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o enp7s0 -p tcp -m tcp --dport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT

Ich hatte Probleme mit den Firewall-Einstellungen, deswegen habe ich erst
mal wieder die alten genommen, wo ausgehende Pakete nicht geblockt
werden.
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
COMMIT

Jetzt funktioniert das auch. Bevor ich das gemacht habe, hatte ich auch immer
das Problem, dass Pdnsd nicht direkt funktionierte. Man muss den Dienst
nach jedem Neustart immer neustarten.
sudo systemctl restart pdnsd.service

140

Um pdnsd-ctl nutzen zu knnen, muss man in der pdnsd.conf unter global


status_clt = on; aktiviert haben.
Um sich den Status von Pdnsd anzeigen zu lassen:
sudo pdnsd-ctl status

Um sich die eingetragenen Server anzuschauen:


sudo pdnsd-ctl dump

Um den Cache zu lschen:


sudo pdnsd-ctl empty-cache

Jetzt noch den dnscrypt-proxy installieren und konfigurieren:


sudo pacman -S dnscrypt-proxy

Da ich ja den dnscrypt-proxy im Zusammenspiel mit Pdnsd nutzen mchte,


muss man den dnscrypt-proxy noch als Forwarder einstellen:
sudo nano /etc/conf.d/dnscrypt-proxy

Das sieht dann so aus:


DNSCRYPT_LOCALIP=127.0.0.2
DNSCRYPT_LOCALPORT=53
DNSCRYPT_USER=nobody
DNSCRYPT_PROVIDER_NAME=2.dnscrypt-cert.opendns.com
DNSCRYPT_PROVIDER_KEY=B7257:3218:306A:425C:1C8F:E236:A4AF:962B:D4F8:6BA8:A241:7FFA:F204:
ABCD:DD31:AAH5
DNSCRYPT_RESOLVERIP=208.67.220.220
DNSCRYPT_RESOLVERPORT=443

Die Frage ist, ob man hier nobody als Nutzer stehen lassen kann.
Immerhin braucht er ja nicht auf die Festplatte zu schreiben.

Und dann muss man noch die nderungen in der pdnsd.conf vornehmen:
sudo nano /etc/pdnsd.conf

141

Die sieht momentan so aus:


// Sample pdnsd configuration file. Must be customized to obtain a working pdnsd setup!
// Read the pdnsd.conf(5) manpage for an explanation of the options.
// Add or remove '#' in front of options you want to disable or enable, respectively.
// Remove '/*' and '*/' to enable complete sections.

global {
perm_cache=2048;
cache_dir="/var/cache/pdnsd";
#

pid_file = /var/run/pdnsd.pid;
run_as="pdnsd";
strict_setuid = on;
server_ip = 127.0.0.1;

# Use eth0 here if you want to allow other

# machines on your network to query pdnsd.


server_port = 53;
#

outgoing_ip = 127.0.0.1;

status_ctl = on;
paranoid=on;

# This option reduces the chance of cache poisoning


# but may make pdnsd less efficient, unfortunately.

ignore_cd= ;

#
daemon = off;
des Neustarts behebt

# Das sollte schon Standard sein, ich hoffe, dass es den Fehler

query_method=udp_tcp;
run_ipv4 = on;
min_ttl=2h;

# IPv6 deaktivieren
# Retain cached entries at least 15 minutes.

max_ttl=1w;

# One week.

timeout=10;

# Global timeout option (10 seconds).

neg_domain_pol=on;
#

neg_rss_pol=on;
udpbufsize=1024;

par_queries=1;

# Upper limit on the size of UDP messages.

# The following section is most appropriate if you have a fixed connection to


# the Internet and an ISP which provides good DNS servers.
server {
label= "dnscrypt-proxy";
ip = 127.0.0.2;
proxy_only=on;

# Put your ISP's DNS-server address(es) here.


# Do not query any name servers beside your ISP's.

142

# This may be necessary if you are behind some


# kind of firewall and cannot receive replies
# from outside name servers.
port=53;

timeout=15;

# Server timeout; this may be much shorter


# that the global timeout option.

uptest=none;
interface=lo;

# Test if the network interface is active.


# The name of the interface to check.

interval=10m;

# Check every 10 minutes.

purge_cache=off;

# Keep stale cache entries in case the ISP's


# DNS servers go offline.

caching=on;

edns_query=on;

# Use EDNS for outgoing queries to allow UDP messages


# larger than 512 bytes. May cause trouble with some
# legacy systems.

exclude=.thepiratebay.org,

# If your ISP censors certain names, you may

.thepiratebay.se,

# want to exclude them here, and provide an

.piratebay.org,

# alternative server section below that will

.piratebay.se;

# successfully resolve the names.

/*
# The following section is more appropriate for dial-up connections.
# Read about how to use pdnsd-ctl for dynamic configuration in the documentation.
server {
label= "dialup";
file = "/etc/ppp/resolv.conf";

# Preferably do not use /etc/resolv.conf

proxy_only=on;
timeout=4;
uptest=if;
interface = ppp0;
interval=10;

# Check the interface every 10 seconds.

purge_cache=off;
preset=off;
}
*/

/*
# The servers provided by OpenDNS are fast, but they do not reply with

143

# NXDOMAIN for non-existant domains, instead they supply you with an


# address of one of their search engines. They also lie about the addresses of
# of the search engines of google, microsoft and yahoo.
# If you do not like this behaviour the "reject" option may be useful.
server {
label = "opendns";
ip = 208.67.222.222, 208.67.220.220;
reject = 208.69.32.0/24,

# You may need to add additional address ranges

208.69.34.0/24,

# here if the addresses of their search engines

208.67.219.0/24; # change.
reject_policy = fail;

# If you do not provide any alternative server


# sections, like the following root-server
# example, "negate" may be more appropriate here.

timeout = 4;
uptest = ping;

# Test availability using ICMP echo requests.

ping_timeout = 100;

# ping test will time out after 10 seconds.

interval = 15m;

# Test every 15 minutes.

preset = off;
}
*/

/*
# This section is meant for resolving from root servers.
server {
label = "root-servers";
root_server = discover; # Query the name servers listed below
# to obtain a full list of root servers.
randomize_servers = on; # Give every root server an equal chance
# of being queried.
ip =

198.41.0.4,

# This list will be expanded to the full

192.228.79.201; # list on start up.


timeout = 5;

uptest = query;

# Test availability using empty DNS queries.

query_test_name = .;

# To be used if remote servers ignore empty queries.

interval = 30m;

# Test every half hour.

ping_timeout = 300;

# Test should time out after 30 seconds.

purge_cache = off;
#

edns_query = yes;

# Use EDNS for outgoing queries to allow UDP messages


# larger than 512 bytes. May cause trouble with some
# legacy systems.

exclude = .localdomain;
policy = included;

144

preset = off;
}
*/

source {
owner=localhost;
#

serve_aliases=on;
file="/etc/hosts";

/*
include {file="/etc/pdnsd.include";}
/etc/pdnsd.include.

# Read additional definitions from

*/

rr {
name=localhost;
reverse=on;
a=127.0.0.1;
owner=localhost;
soa=localhost,root.localhost,42,86400,900,86400,86400;
}

/*
neg {
name=doubleclick.net;
types=domain;

# This will also block xxx.doubleclick.net, etc.

}
*/

/*
neg {
name=bad.server.com;

# Badly behaved server you don't want to connect to.

types=A,AAAA;
}
*/

Um den Dienst beim Systemstart auszufhren:


sudo systemctl enable dnscrypt-proxy.service

Ich starte danach immer neu. Das muss man nicht unbedingt, aber das zeigt
mir, ob wirklich alles so funktioniert, wie es soll.
145

Irgendwie habe ich keine eingebaute Methode gefunden, wie man testen
kann, ob das denn jetzt auch funktioniert. Aber zum Glck habe ich ja schon
einen Sniffer installiert, also Wireshark starten und auf allen Interfaces
kontrollieren.
Schn, dass funktioniert schon mal, allerdings bin ich immer noch nicht recht
zufrieden. Das schtzt mich jetzt vor Man-In-The-Middle-Attacken, aber es
schtzt mich immer noch vor DNS-Poising, also dass mir jemand geflschte
DNS-Eintrge unterjubelt. Dafr bentige ich so etwas wie DNSSEC oder eine
andere Methode, die DNS-bertragungen signiert, denn nur so kann ich
ausschlieen, dass sich jemand fr meinen DNS-Server ausgibt. Ich wei
auch gar nicht, warum eine Firma, die mit Sicherheit im Internet ihr Geld
verdient, keine Manahmen dagegen untersttzt. Ich kann es mir nicht
erklren, aber ich mchte auch keine Verschwrungstheorien spinnen. Fakt
ist, das hier ist nur eine vorlufige Konfiguration. Ich traue OpenDNS auch
nicht mehr ber den Weg als meinem ISP.

Ich werde das jetzt mal einige Zeit testen und wenn ich mit dem Setup
zufrieden bin, ziehe ich mit dem DNS-Cache auf meinen OpenWRT-Router um,
damit alle Rechner in meinem Netzwerk verschlsselte DNS-Anfragen stellen.

Ich sollte wieder auf DHCP umsteigen und testen, damit die Einstellungen
auch in fremden Netzen funktionieren.
Damit die resolv.conf nicht beim beziehen der Netztwerkadresse
berschrieben wird, muss man der Konfiguration etwas hinzufgen:
sudo nano /etc/conf.d/dhcpcd
DHCPCD_ARGS="-C resolv.conf"

Fazit:
So, dass luft zwar jetzt, aber ich sollte ich unbedingt noch mal
kontrollieren und ggf. nachbessern. Was mir gar nicht gefllt, ist dass
ich nach jedem Update des Pdnsd die Ordnerberechtigungen neu von
Hand setzen muss. Das ist doch vollkommener Quatsch, das will man
doch haben. Zweitens zweifel ich die Sicherheit von dnscrypt an, weil
die Verschlsselung ber elliptische Kurven realisiert wird und das
braucht gute Zufallsgeneratoren mit viel Entropie. Das mag auf dem
Laptop vielleicht noch funktionieren, aber ich bezweifle, dass der
OpenWRT-Router dafr geeignet ist, wenn ich damit umziehen mchte.
146

FEHLER:
Es werden immer noch einige Dienste unverschlsselt mit dem Standard-DNS
bertragen. Beobachten!!!
NTP:

Pacman
Mirrorlist und pacman.conf
Ich wei nicht, warum fast alle Mirrors kein https anbieten. Das ist nicht
akzeptabel. Auch wenn die Pakete signiert sind, muss die Verbindung nicht
unverschlsselt stattfinden. Deswegen suche ich mir ein paar Server heraus
und benutze lieber diese. Leider gibt es da noch nicht so viele.
sudo nano /etc/pacman.d/mirrorlist

#### https Spiegeglserver


## Score: 1.1, Germany
Server = https://archlinux.limun.org/$repo/os/$arch
## Score: 1.4, Sweden
Server = https://ftp.lysator.liu.se/pub/archlinux/$repo/os/$arch
## Score: 1.5, Netherlands
Server = https://kluisip.nl/public/archlinux/$repo/os/$arch

Leider untersttzt Black Arch kein https aber ich stelle trotzdem weiter die
Anfrage ber https, vielleicht merken die das ja von alleine, wenn sie ihre
Logbcher durchgucken und stellen eine https-Verbindung zur Verfgung.
Ansonsten werde ich mal bei denen nachfragen, ob das nicht mglich wre.

147

Pacman durch das Tor-Netzwerk

Firefox

Suchmaschinen
Es muss nicht immer Google als Suchmaschine genutzt werden, es gibt auch
Alternativen. Eine der bekanntesten ist bestimmt https://duckduckgo.com, die
eine anonyme Suche erlaubt. Allerdings muss ich gestehen, dass Google nicht
ohne Grund ein Quasimonopol bei den Suchmaschinen hat. Die wissen einfach
auch was ich wirklich suche. Das kann man von DuckDuckGo nicht unbedingt
behaupten.
Weiteres folgt.

148

Tipps & Tricks

Zip-Dateien entpacken
Um sich die Installation von unzip zu sparen, kann man bsdtar benutzen. Das
sollte mit den meisten Archiven funktionieren. Wenn man Gnome installiert
hat, wird unzip mitinstalliert.
bsdtar -xvf Datei.zip

Dateien mit wget von Sourceforge herunterladen


wget -O Dateiname http-Link

Rechner zeitgesteuert herunterfahren


Ein Befehl, den ich sehr oft benutze, wenn ich z.B. noch einen Podcast zum
Einschlafen hre. In diesem Beispiel fhrt der Rechner in 60 Minuten
herunter.
sudo shutdown -h 60

Startreihenfolge im Grub2 ndern


Der Echtzeitkernel wird immer als erstes angezeigt, egal was ich mache. Man
kann nur einstellen, welcher als erstes gestartet werden soll. Das fngt von
Null an, also der dritte Eintrag ist die Nummer 2.
sudo nano /etc/default/grub
GRUB_DEFAULT=2

Zeilennummer im nano anzeigen


Mit ALT+C kann man sich die derzeitige Zeilennummer anzeigen lassen.

149

Prfsumme von Strings ausgeben


echo -n 'Das ist die Prfsumme' | sha512sum
75717595ec341cf6117aa758b6c23e5944682c9920916ff2acdae824ee5794fd7c8c1d712ac0f10b9661fa86
a647ef090ba9f657f2b01ad5814fc149a8dca84e -

Da kann man ruhig mal einen ganzen Abschnitt ber Prfsummen schreiben.

Automatisches einloggen
Sicherheitstechnisch ist das bestimmt nicht die beste Idee, aber ich mag es
halt auch bequem.
Ich mchte ohne Login-Manager direkt bis zum grafischen Desktop starten.
Das bedeutet, es muss zuerst auf eine virtuelle Konsole eingeloggt werden
und danach geht es weiter zur grafischen Oberflche.
auf virtuelle Konsole einloggen:
cd /etc/systemd/system
sudo mkdir getty@tty1.service.d
cd getty@tty1.service.d
sudo nano autologin.conf

Dort folgendes eingeben:


[Service]
ExecStart=
ExecStart=-/usr/bin/agetty --autologin benutzer --noclear %I 38400 linux
Type=simple

Aktivieren
sudo systemctl disable getty@.service
sudo systemctl enable getty@tty1.service

auf X einloggen:
Sicherstellen, dass der eventuell vorhandene Display-Manager nicht mehr
geladen wird, z.B.
150

sudo systemctl disable gdm.service

Ich benutze Zsh, deswegen fge ich es zur zprofile. Benutzer der Bash fgen
es der bash_profile hinzu.
nano ~/.zprofile
[[ -z $DISPLAY && $XDG_VTNR -eq 1 ]] && exec startx

Und testen... Sehr angenehm...


Falls mal etwas nicht funktionieren sollte, kann man sich immer noch mit
STRG+Alt+F2 auf einer weiteren Konsole anmelden.

Startgeschwindigkeit optimieren
Da ich auch alles ausprobiert habe, was ich in diesem Skript steht, habe ich
aus einem sehr schlanken System ein bergewichtiges System, dass sich
kaum noch bewegen kann, geschaffen. Das Hochfahren dauert sehr lange und
das will jetzt mal optimieren.
Bootchart aktivieren
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="clocksource=acpi_pm resume=/dev/sda2 initcall_debug
printk.time=y init=/usr/lib/systemd/systemd-bootchart"
sudo grub-mkconfig -o /boot/grub/grub.cfg

Nach einem Neustart kann man sich das SVG in /run/log/ anschauen.

Jetzt will ich noch ein bisschen mit der Konfiguration herumspielen:
sudo nano /etc/systemd/bootchart.conf

151

Samples=950
Frequency=50
#Relative=yes
Filter=yes
#Output=<folder name, defaults to /run/log>
#Init=/path/to/init-binary
PlotMemoryUsage=yes
#PlotEntropyGraph=no
#ScaleX=100
#ScaleY=20

Leider ist das nicht so einfach einzustellen, ich kann irgendwie nicht mehr als
33 Sekunden abbilden. Deswegen mache ich es auf die klassische Art, mit
einer Stoppuhr. Das ist natrlich nicht ganz so genau.
Ich stoppe, wie lange es dauert von dem Moment, wo ich den Startknopf
drcke bis Gnome inklusive guake und firefox mit leerer Seite gestartet ist.
Das dauert momentan ungefhr 1:27 Minuten. Allerdings muss man dazu
sagen, dass mein Laptop schon fast 10 Sekunden braucht, bevor er berhaupt
etwas mit der Festplatte macht. Es zeigt einen Bildschirm mit
Herstellerangabe und Auswahlmglichkeiten. Das kann ich so erst mal nicht
ndern.

Mir sind zwei Methoden bekannt, wie man den Startvorgang beschleunigen
kann. Wenn man, so wie ich zur Zeit, Ext4 benutzt, knnte man e4rat
benutzen. Aber zuerst werde ich die integrierte Methode von systemd nutzen,
da ich vielleicht spter auf ein anderes Dateisystem umsteigen mchte.
Um es zu aktivieren. Danach sollte man mehrere Male neu starten.
sudo systemctl enable systemd-readahead-collect systemd-readahead-replay

1. Versuch: 2:03 Minuten


2. Versuch: 1:23 Minute
3. Versuch: 1:11 Minute
4. Versuch: 1:12 Minute
Also 15 Sekunden Ersparnis sind ja schon gar nicht so schlecht, dafr dass ich
nur eine Funktion, die standardmig integriert, aber nicht eingeschaltet ist,
aktiviert habe.
152

5. Versuch: 1:15 Minute

nichts verndert.

Der Grub-Timeout steht bei mir auf 3 Sekunden. Den stelle ich mal auf 1, das
reicht um eine Auswahl zu treffen. Zustzlich stelle ich die Ausgabe wieder
auf quiet, das hatte ich gendert.
6. Versuch: 1:10 Minute

Vor dem 7. Versuch habe ich in der Gnome-Shell die Plugins ausgeschaltet und
die Dateien werden nicht mehr auf dem Dekstop angezeigt.
Und ich habe mal angefangen Programme und deren Abhngigkeiten zu
deinstallieren, die ich momentan nicht brauche.
* xnec2c
* robocode
* gparted
* filezilla
* gpredict
* jack-rack jackeq
* rosegarden
* torcs
* gvim
* espeak orca
* mixxx da ich Controller noch nicht am laufen habe
* unetbootin tuxboot
* totem
* cheese gnome-contacs empathy
* epiphany
* non-daw-git

eigentlich ganz gut

* lxde
* gnome-terminal
den Pacman-Speicher lschen
sudo pacman -Scc

Das journal-Logbuch auf 10 MB begrenzen. Im Moment habe ich um die 90


153

MB. Standardmig sind 10% der Root-Partition eingestellt, das wren bei mir
ja 2GB. Ich brauche auf einem Desktopsystem keine 2GB Logbcher.
nano /etc/systemd/journald.conf
SystemMaxUse=10M

7. Versuch: 0:56 Sekunden


Vor dem 8. Versuch stelle ich den Bezug der Ip-Adresse per DHCP auf eine
statische Adresse ein.
Zuerst den dhcp-Eintrag lschen
sudo systemctl disable dhcpcd@enp7s0

Ich habe das zuerst in den Gnome-Netwerkeinstellungen einstellen wollen,


aber das ist ja Quatsch. Die Gnome-Desktopumgebung ist ja hier der
Flaschenhals. Es gilt den von unntigen Belast zu befreien. Was ich ja
eigentlich mchte, ist so viele Dienste wie mglich am Anfang des
Startprozesses parallel starten, um die bestmglichste Auslastung zu
erreichen und das macht man ber die Systemd.
sudo nano /etc/conf.d/network@enp7s0
address=192.168.1.187
netmask=24
broadcast=192.168.1.255
gateway=192.168.1.1

sudo nano /etc/systemd/system/network@.service


[Unit]
Description=Network connectivity (%i)
Wants=network.target
Before=network.target
BindsTo=sys-subsystem-net-devices-%i.device
After=sys-subsystem-net-devices-%i.device
[Service]
Type=oneshot
RemainAfterExit=yes
EnvironmentFile=/etc/conf.d/network@%i
ExecStart=/usr/bin/ip link set dev %i up
ExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev
%i
ExecStart=/usr/bin/ip route add default via ${gateway}

154

ExecStop=/usr/bin/ip addr flush dev %i


ExecStop=/usr/bin/ip link set dev %i down
[Install]
WantedBy=multi-user.target

Sicherstellen, dass alle anderen Konfigurationen nicht aktiv sind.


sudo systemctl enable network@enp7s0.service
sudo systemctl start network@enp7s0.service

Nicht vergessen, einen Nameserver in der /etc/resolveconf.conf einzutragen,


sonst hat man kein DNS.

Staggered spin-up abschalten


dmesg | grep SSS

zeigt, dass es bei mir angeschaltet ist. Das ist eigentlich nur dafr gedacht,
wenn man mehrere Festplatten in einem Rechner betreibt. Damit beim
Kaltstart nicht alle eingebauten Festplatten gleichzeitig auf volle Drehzahl
beschleunigen und damit das Netzteil berlasten, werden die Platten mit einer
Verzgerung auf volle Drehzahl gebracht. Da meine Festplatte sowieso schon
langsam genug ist und ich externe Festplatten eh nur mit Netzteil betreibe,
brauche ich das nicht.
Um das zu berspringen, muss man die Kernel-Parameter ndern.
sudo nano /etc/default/grub

Das sieht zur Zeit bei mir so aus, alle in einer Zeile:
GRUB_CMDLINE_LINUX_DEFAULT="clocksource=acpi_pm resume=/dev/sda2
libahci.ignore_sss=1 quiet"

Danach nicht vergessen, grub zu aktualisieren:


sudo grub-mkconfig -o /boot/grub/grub.cfg

Ich brauche kein IPv6, also zum testen mal deaktivieren. Wieder einen KernelParameter ndern. Vorsicht, das kann zu Problemen fhren. Nur weil man es
persnlich nicht braucht, kann es trotzdem sein, dass irgendwelche
Programme seltsame Fehlermeldungen ausspucken und ggf. nicht
funktionieren.
155

sudo nano /etc/default/grub

Das sieht zur Zeit bei mir so aus, alle in einer Zeile:
GRUB_CMDLINE_LINUX_DEFAULT="clocksource=acpi_pm resume=/dev/sda2
libahci.ignore_sss=1 ipv6.disable=1 quiet"

Danach nicht vergessen, grub zu aktualisieren:


sudo grub-mkconfig -o /boot/grub/grub.cfg

Jetzt noch im Firefox IPv6 abschalten:


about:config
network.dns.disableIPv6

true

8. Versuch: 0:55 Sekunden

9. Versuch 0:52 Sekunden


aber ich habe kein DNS nameserver in /etc/resolveconf.conf eintragen. Das
ist kein typo :-)
10. Versuch 0:54 Sekunden

echter Kaltstart

Gnome Startprogrammeinstellungen ndern.


gnome-session-properties

* Caribou eine Bildschirmtastatur


* Freigabe der Arbeitsflche
* Login Sound
* Persnliche Dateifreigabe

Swapiness einstellen, obwohl ich glaube, dass das bei mir nichts bringt. Ich
habe noch nie mitbekommen, dass irgendwas in die Swap geschrieben wurde.
sudo sysctl -a | grep "vm.swappiness"
vm.swappiness = 60

156

sudo nano /etc/sysctl.d/99-sysctl.conf


vm.swappiness=1
vm.vfs_cache_pressure=20

Da Ext4 keine Komprimierung untersttzt, versuche ich mich mal an


Laufzeitpackern. Das kann Vorteile bringen, muss aber nicht. Zuerst probiere
mal den bekanntesten aus dieser Familie UPX.
Das habe ich spter wieder zurckgenommen. Das empfand ich dann doch als
einen zu groen Eingriff ins System.
pacman -S upx
Anfangen werde ich mit dem Firefox.
Zuerst mal ein Backup erstellen:
sudo cp /usr/lib/firefox/firefox /usr/lib/firefox/firefox.backup

Dann UPX anwenden:


sudo upx --best /usr/lib/firefox/firefox
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2013
UPX 3.09

Markus Oberhumer, Laszlo Molnar & John Reiser

File size

Ratio

--------------------

------

-----------

50.67%

linux/ElfAMD

122048 ->

61844

Format

Feb 18th 2013

Name
----------firefox

11. Versuch 0:53 Sekunden


Ich schalte mal den ntpd ab, dann muss ich mir etwas anderes berlegen.
sudo systemctl disable ntpd

157

Und ich habe mal RF-Kill fr den WLAN-Adapter eingeschaltet, vielleicht


verschwindet die Fehlermeldung beim Start. (N)
Zugriffzeiten fr ext4 abschalten. Ich denke nicht, dass ich das brauche.
Ohh, ist schon abgeschaltet...
Ich habe gesehen, dass e4defrag schon installiert ist, dann sollte man das
auch mal nutzen. Um anzuzeigen, ob eine Defragmentierung ntig ist, benutzt
man -c. Swap-Partitionen werdem nicht untersttzt.
sudo e4defrag -c /dev/sda1

Ist aber nicht ntig


UPX gnome-session
sudo cp /usr/bin/gnome-session /usr/bin/gnome-session.bak
sudo upx best /usr/bin/gnome/session

12. Versuch 0:54 Sekunden

echter Kaltstart

Ich nehme die UPX-nderungen zurck, um die Festplatte zu klonen.


sudo cp /usr/bin/gnome-session /usr/bin/gnome-session.bak.upx
sudo rm /usr/bin/gnome-session
sudo mv /usr/bin/gnome-session.bak /usr/bin/gnome-session
sudo cp /usr/lib/firefox/firefox /usr/lib/firefox/firefox.bak.upx
sudo rm /usr/lib/firefox/firefox
sudo mv /usr/lib/firefox/firefox.bak /usr/lib/firefox/firefox
sudo pacman -Rss upx

Ich versuche mal den proprietren Nvidia-Treiber.


sudo pacman -S nvidia
Nouveau wird automatisch auf eine Blacklist gesetzt, weshalb man auf jeden
Fall neu starten muss. Ich hoffe, dass nouveau wieder funktioniert, wenn man
158

nvidia deinstalliert.
Alles andere sollte automatisch gehen, ich bezweifle das ja.
:: nvidia-libgl und mesa-libgl stehen miteinander in Konflikt (libgl). mesalibgl entfernen? [j/N]j
Fehler: Konnte den Vorgang nicht vorbereiten (Kann Abhngigkeiten nicht
erfllen)
:: nouveau-dri: bentigt mesa-libgl

Soviel dazu....
sudo pacman -Rss xf86-video-nouveau
Prfe Abhngigkeiten...
:: google-earth bentigt optional nouveau-dri: For the open source Nouveau
driver
Pakete (2): nouveau-dri-10.0.1-1

xf86-video-nouveau-1.0.10-1

Gesamtgre der entfernten Pakete: 16,90 MiB


:: Mchten Sie diese Pakete entfernen? [J/n] j

pacman -Rss google-earth

Ohh, glu brauche ich wohl fr andere Programme


sudo pacman -S glu

Ich bezweifle ja, dass es funktioniert, aber ich starte einfach mal neu. Ja, das
hat nicht so toll funktioniert, wieder zurck zu nouveau. Der reicht im
Moment.

13. Versuch 0:53 Sekunden


Man knnte ja jetzt schon fast zufrieden sein, immerhin habe ich schon um die
35 Sekunden einsparen knnen. Ich mein, wann startet man schon mal neu?
Normalerweise benutze ich Standby oder Ruhezustand. Aus dem Standby ist
er ca. 3-5 Sekunden und aus dem Ruhezustand braucht er zwischen 30-35
Sekunden. Das kommt halt darauf an, wieviel geffnet ist.
Aber ich mchte natrlich auch etwas herumexperimentieren. Gnome ist hier
ausschlaggebend langsam. Das ist ja ein Schwergewicht, ich probiere mal
159

XFCE und deinstalliere Gnome. Siehe Grafische Oberflche - XFCE

14. Versuch 0:48 Sekunden

ToDo:
Grub2-Welcome-Message brauche ich nicht. Das ist wieder mehr als eine
Sekunde, die man sparen knnte. Leider halten die Entwickler nicht davon
und es gibt keine direkte Funktion, das abzuschalten. Man muss also den
Source-Code verndern und selbst bauen oder man versucht es mit grubshusher. Oder vielleicht den Bootlader wechseln, Grub nervt mich sowieso.
Eigenen Kernel kompilieren. Im Moment dauert es 5,227 Sekunden, bis der
Kernel geladen ist. Ich bin mir sicher, dass man mit einem schlanken,
angepassten Kernel auf unter eine Sekunde drcken kann.
Kompression anschalten?
NTP? - Muss wirklich bei jedem Systemstart ein NTP-Server gestartet werden.
Reicht es nicht, wenn den dynamisch ein mal am Tag startet und dann wieder
abschaltet.
Programme wie Firefox schon whrend des Startes in den Arbeitsspeicher
schreiben. Ist das mglich?
Der Hersteller gibt kein BIOS-Update heraus, aber vielleicht ist es mglich
OpenBIOS o.. zu benutzen.
Die seriellen? Konsolen von 6 auf 2 ndern.

160

Desktopbenachrichtigungen ber die Shell


Wenn man eine Benachrichtigung an den Desktop mittels eines Shell-Skript
schicken mchte, kann man notify-send benutzen.
notify-send --help
Usage:
notify-send [OPTION...] <SUMMARY> [BODY] - create a notification

Help Options:
-?, --help

Show help options

Application Options:
-u, --urgency=LEVEL
-t, --expire-time=TIME
expire the notification.

Specifies the urgency level (low, normal, critical).


Specifies the timeout in milliseconds at which to

-a, --app-name=APP_NAME

Specifies the app name for the icon

-i, --icon=ICON[,ICON...]

Specifies an icon filename or stock icon to display.

-c, --category=TYPE[,TYPE...]

Specifies the notification category.

-h, --hint=TYPE:NAME:VALUE
int, double, string and byte.
-v, --version

Specifies basic extra data to pass. Valid types are


Version of the package.

z.B.
notify-send -u critical -t 3000 "Akku leer" "Bitte schlieen sie ihr Laptop an
die Stromversorgung an"

161

Exif-Eintrge bearbeiten oder entfernen


Gimp

Um ein einzelnes Bild von Exif-Eintrgen zu befreien knnte man Gimp


nehmen.
Einfach das Bild ffnen und dann wieder Exportieren. Im Exportieren-Dialog
auf Erweiterte Optionen gehen und das Hkchen bei EXIF-Daten speichern
entfernen.
Man kann auch einige Details unter Bildinformationen bearbeiten.
Das ist bei vielen Bildern aber sehr umstndlich.

ExifTool
Webprsenz: http://owl.phy.queensu.ca/~phil/exiftool/

ist ein plattformunabhngiges Programm, welches Metadaten in Audio-,


Video- und Bilddateien lesen, schreiben und bearbeiten kann.
sudo pacman -S perl-image-exiftool

funktioniert erst nach einem Neustarten


Der Funktionsumfang erschlgt mich erst mal, aber hier mal ein paar
Beispiele:
Metadaten anzeigen:
exiftool Dateiname

Metadaten aus einer JPG-Datei entfernen:


exiftool -all= Dateiname.jpg

Es gibt auch eine GUI, aber ich habe sie jetzt weder im offiziellen
Repositorium noch im AUR gefunden. Msste man sich halt selbst ein
PKGBUILD erstellen.
http://hvdwolf.github.io/pyExifToolGUI/

162

Man muss das unbedingt installieren, aber man bentigt trotzdem ein paar
Abhngigkeiten, die ich noch nicht gefunden habe.

Bemerkung: Bei allen Methoden wurden immer unterschiedliche Exif-Eintrge


entfernt, aber nie alle. Im Hex-Editor konnte ich immer irgendwo das Wort
Adobe lesen, mit der das benutzte Bild mit dem ich das getestet habe
bearbeitet wurde. Die scheinen da sehr hartnckig zu sein.

* exiv2
War irgendwie schon installiert
exiv2 Bild.jpg
Ist nicht so ausfhrlich wie exiftool

* jhead
*

Eigenen Kernel bauen


Hardware- und Systeminformationen sammeln.
Inxi ist in im Community Repositorium:
pacman -S inxi

In meiner Methode bentigt man abs und base-devel. Die habe ich schon
installiert, nun werde ich nur noch einmal den abs-Baum aktualisieren.

163

sudo abs

Jetzt ein Verzeichnis im Home anlegen:


cd
mkdir b550-kernel

Als erstes besorgt man sich einen Kernel:


ABSROOT=. abs core/linux
cd core
cd linux

nano PKGBUILD
#pkgbase=linux

# Build stock -ARCH kernel

pkgbase=linux-b550-rc

# Build kernel with a different name

pkgrel=1

# Versionsnummer ggf. ndern

# get kernel version


make prepare
make localmodconfig

So werden nur sie Module integriert, die man aktuell geladen hat

# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config

Um den Kernel schneller bauen zu knnen, gibt man sich mit nproc die Anzahl
der Verfgbaren Prozesse aus. In meinem Fall ist nproc=2. Das fge ich der
makepg.conf hinzu.
nproc
nano /etc/makepkg.conf
MAKEFLAGS="-j2" auskommentieren

164

Probleme ohne Lsungsansatz


* Pakete inklusive Konfigurationsdateien lschen
Pacman entfernt die Konfigurationsdateien beim Deinstallieren nicht. Ich bin
es langsam echt leid, die stndig per Hand zu lschen. Andere Paketmanager
knnen das doch auch.

165

Tonstudio
Meiner Meinung nach ist Audiobearbeitung unter Linux nichts weiter als ein
Krampf. Meine bisherigen Erfahrungen sind einfach niederschmetternd. Das
ganze Linux-Audio-System knnte mal eine Finanzspritze brauchen und
jemanden, der die Sache in die Hand nimmt und mal was anstndiges
entwickelt. Trotzdem ist es eine Mglichkeit sehr kostengnstig Musik zu
machen.
Bei alldem nicht vergessen, dass der Benutzer Mitglied in der Gruppe audio
sein muss.
Wenn man vor hat, sich etwas semiprofessionell aufzubauen, wrde man
natrlich einen dedizierten Computer verwenden, der nur das notwendigste
enthlt, um sein Studio aufzubauen. Das steht mir in meinem Fall jetzt nicht
zur Verfgung.

Jack2
Jack, ein rekursives Akronym fr Jack Audio Connection Kit, verbindet die
Audioanschlsse der Software mit der vorhandenen Hardware, und man kann
einstellen, wohin was geroutet werden soll.
Zur Installation benutze ich Jack2 mit D-Bus und ich mchte auch eine GUI
haben.
pacman -S jack2-dbus pulseaudio pulseaudio-alsa qjackctl

Da ich Jack schon installiert hatte und es einen Konflikt mit jack2-dbus
verursacht, entferne ich Jack.
Jetzt macht man ein Backup von der asound.conf und bearbeitet diese.
cp /etc/asound.conf /etc/asound.conf.bak
nano /etc/asound.conf

und ndert sie so ab:


# Use PulseAudio mit Jack
pcm.pulse {
type pulse
}
ctl.pulse {

166

type pulse
}
pcm.!default {
type pulse
}
ctl.!default {
type pulse
}
# vim:set ft=alsaconf:

Dann muss man in den Einstellungen was ndern.


* Verschiedenes D-Bus-Schnittstelle aktivieren Hkchen setzen damit wird
automatisch JackAudio-Server bei Programmbeendung anhalten ausgewhlt.
* Verschiedenes Symbol im Benachrichtigunsfeld anzeigen Hkchen setzen
damit wird automatisch Minimiert im Benachrichtungsfeld starten gesetzt

Neustarten!
Ich habe es so eingestellt, dass man den Jack-Server manuell starten muss,
weil ich jede Menge Probleme hatte.
167

Zuerst habe ich erst mal eine mp3 im VLC gestartet und habe natrlich keinen
Ton. Dafr muss man im VLC unter Audio Audiogert Jack sink (Pulse
Audio) whlen.
Es gibt viele Programme, zuerst versuche ich mein Midi-Keyboard
anzuschlieen und mit Bristol zu spielen.
Dafr sollte man zuerst in der Jack-Controll noch den Midi-Treiber zu seq
stellen. Einstellungen Midi-Treiber
Nach dem einstecken mit lsusb kontrollieren, was erkannt wurde.
Alsa-Midi fr Jack verfgbar machen.
yaourt -S a2jmidid-git
a2jmidid -e

Wenn das funktioniert, kann man das in den Einstellungen unter Optionen bei
Script nach Start ausfhren.
/usr/bin/a2jmidid -e &

168

Software
Open-Source-Software
Bristol
Webprsenz: http://bristol.sourceforge.net/
yaourt -S bristol

Danach das Script starten


startBristol -jack

Nach dem Start muss man noch im qjackctl die Soundausgnge und die
Midi-Eingnge verbinden.
Audio
bristol

mit system

Jack-MIDI
a2j Keyboard mit bristol midi_in
Der Ton strzte bei den Versuchen immer ab.

Qsynth
Webprsenz: http://qsynth.sourceforge.net

Der nchste Versuch war dann mit Qsynth


pacman -S qsynth
Man bentigt noch Soundfonts, die ich mir aus dem Internet
zusammengesucht habe.

Ardour3
Webprsenz: http://ardour.org/
pacman -S ardour

169

Linux Multi Media Studio


Webprsenz: http://lmms.sourceforge.net/wiki/index.php/Main_Page
pacman -S lmms

Rosegarden
Webprsenz: http://www.rosegardenmusic.com/

Hydrogen

Webprsenz: http://www.hydrogen-music.org/hcms/
pacman -S hydrogen

Non-DAW
Webprsenz:

http://non.tuxfamily.org/

yaourt -S non-daw-git

Das Paket kompiliert nicht, da es eine nicht vorhandene Abhngigkeit enthlt.


Wenn man es ber Yaourt installiert, muss man das PKGBUILD bearbeiten.
Von
depends=('jack' 'liblo' 'libsigc++' 'liblrdf' 'hicolor-icon-theme' 'ntk')

in
depends=('jack' 'liblo' 'libsigc++' 'liblrdf' 'hicolor-icon-theme' 'ntk-git')

danach :wq

write quit

170

TerminatorX
Webprsenz: http://terminatorx.org/

Timidity
Webprsenz: http://timidity.sourceforge.net/
pacman -S timidity++ timidity-freepats
nano /etc/timidity++/timidity.cfg
dir /usr/share/timidity/freepats
source /etc/timidity++/freepats/freepats.cfg

Mixxx
Webprsenz: http://www.mixxx.org/

pacman -S mixxx

Notam Radium
Webprsenz: http://users.notam02.no/~kjetism/radium/

Linuxsampler
Webprsenz: http://www.linuxsampler.org/

Der Linuxsampler besteht im Wesentlichen aus 3 verschiedenen


Programmteilen:
dem Linussampler der eigentliche Sampleplayer
der grafischen Oberflche: jsampler-classic & jsampler-fantasia die
beide auf Java basieren und qsampler der auf Qt basiert
dem Sampleeditor gigedit.

Ich habe mich hier entschieden, eine Qt-Oberflche zu nehmen.


yaourt -S qsampler

171

yaourt -S gigedit

Das funktioniert bei mir nicht. Wenn ich Qsampler starte, kommt eine
Fehlermeldung:
Warning: no translation found for 'de_DE' locale:
/usr/share/locale/qsampler_de_DE.qm
[1]

1537 segmentation fault (core dumped)

qsampler

Also alles wieder deinstallieren:


yaourt -Rss qsampler
pacman -Rss gigedit

Spter baue ich das Paket selbst, jetzt nehme ich erst mal jsampler.
pacman -S jsampler gigedit

Qsampler selbst bauen.


cd AUR
mkdir qsampler-svn
cd qsampler-svn
wget https://aur.archlinux.org/packages/qs/qsampler-svn/qsampler-svn.tar.gz
tar -xvzf qsampler-svn.tar.gz
cd qsampler-svn
nano PKGBUILD

Dort ndern wir folgendes, um die aktuelle Version zu benutzen.


pkgver=0.2.2.42
source=("$pkgname::svn+http://svn.linuxsampler.org/cgibin/viewvc.cgi/qsampler/trunk")

Danach wieder
makepkg -s

Samples:
Instrumente im .gig-Format auf der linuxsampler Seite:
http://www.linuxsampler.org/instruments.html

Sonatina Symphonic Orchester: Komplett freies Orchester im sfz-Format in


172

semiprofessioneller Qualitt:
http://www.wuala.com/makimaki/share/

Salamander Grand Piano: freie Klaviersamples im .gig-Format, aufgenommen


von einem Yamaha C5 Grand:

Casio VL-Tone Soundfont: "Piano"-Soundfont im sf2-Format vom Casio VL-1:

Probleme:
* Ich habe nur eine Gig-Engine. Kein Support fr sfz...

173

Kommerzielle Software
Renoise
Webprsenz: http://www.renoise.com

Ist kein Open-Source, sieht aber sehr nett aus.


Eine Demo ist im AUR verfgbar.
Demo Einschrnkungen:

rendering to .wav is disabled


rendering/resampling selections is disabled
rendering/freezing plugin instruments to samples is disabled
nag screens
as ReWire Master, only the first stereo input bus will be available
as ReWire Slave, Renoise will occasionally generate a small subtle hiss

no ASIO support on Windows


Zum jetzigen Zeitpunkt war die Version im AUR die aktuellste.
Der APC40 & das Launchpad funktionieren direkt als Midi-Controller, aber um
eine fertige Vorlagen nutzen zu knnen, gehe zur Renoise Community und
lade da den Duplex-Browser herunter.
http://forum.renoise.com/index.php?/topic/27886-duplex-beta-versions/

Einfach die Skriptdatei in das Renoise-Fenster ziehen und schon installiert


sich das Plugin selbst.

Bitwig Studio
Webprsenz: http://bitwig.com/en/bitwig-studio

Auch kein Open-Source. Coming Soon steht aber auch schon was lnger da.
(Da habe ich jetzt in letzten Woche im Jahr 2013 gelesen, dass es wohl bald
verffentlicht wird.)

174

Ableton Live
Webprsenz: https://www.ableton.com/de/

Ableton Live luft nicht nativ unter Linux. Vielleicht knnte es mit Wine
laufen.

Harrison Mixbus
Webprsenz: http://www.harrisonconsoles.com/mixbus/website/

175

Hardware
Tascam US-800
ist ein USB1.1/2-Soundinterface. Ich bekenne mich persnlich dazu ein
Tascam-Fan zu sein, aber dieses Soundinterface kann ich auf gar keinen Fall
empfehlen. Die Hardware scheint fehlerhaft zu sein und Windows scheint das
irgendwie zu umgehen. Allerdings hat dieses Interface bei mir auch unter
Windows immer Probleme gemacht. Wenn sie mal luft, hrt sie sich aber sehr
gut an.

Wie ich vorgegangen bin:


1) Die Jack-Konfiguration speichern.
2) Neustarten, in einem Terminal journalctl -f eingeben, das Interface in
einen USB-Port stecken und gucken, was passiert. Nichts. Danach lsusb
aufrufen. Das msste TEAC Corp. Sein, also wurde erkannt. Dann mal die
dmesg-Ausgabe anschauen.
[

453.716756] usb 8-2: new high-speed USB device number 5 using ehci-pci

[ 453.840575] usb 8-2: config 1 interface 4 altsetting 0 bulk endpoint 0x4 has
invalid maxpacket 64
[ 453.840584] usb 8-2: config 1 interface 4 altsetting 0 bulk endpoint 0x85 has
invalid maxpacket 64
[ 458.900343] cannot get ctl value: req = 0x83, wValue = 0x101, wIndex =
0x1f00, type = 4
[ 463.900351] cannot get ctl value: req = 0x83, wValue = 0x201, wIndex =
0x1f00, type = 4
[ 468.900246] cannot get ctl value: req = 0x83, wValue = 0x101, wIndex =
0x2000, type = 4
[ 473.900264] cannot get ctl value: req = 0x83, wValue = 0x201, wIndex =
0x2000, type = 4
[

473.901199] usbcore: registered new interface driver snd-usb-audio

Mit alsamixer probieren, ob man das Interface einstellen kann. Bei mir wurde
es erkannt, aber ich konnte keine Einstellungen vornehmen.
Fehler beim Laden der Mixer-Regler: Die Wartezeit fr die Verbindung ist
abgelaufen .

Aber wenn man ein bisschen wartet, erkennt Gnome die Karte, wird ber
Audioeinstellungen angezeigt und kann benutzt werden. Allerdings wird die
Karte als 4.1-Karte eingestellt, was ja so nicht ganz stimmt. Stereo konnte ich
nicht einstellen. Die Eingnge werden aber nicht erkannt.

176

3) Eine neue Jack-Konfiguration auf der Basis der alten Konfiguration


erstellen. Dafr whlt man aus:
Schnittstellen:

hw:US800

US800(hw:3)

Kanle I/O:

8 Eingnge / 6 Ausgnge <_ vielleicht 2 Ausgnge?

Perioden/Puffer:

2 fr Motherboard/PCI/PCI-X usw. /

3 fr USB dadurch geht


die Latenz

hoch

Dann den Jack-Server neu starten und danach funktioniert das Soundinterface
auch schon.
4) Danach versucht man mal die Latenz herunterzuschrauben.
Abtastrate: 96k
Samples: 256
Latenz = 5,33 Millisekunden

Das funktioniert, ist aber nicht schn. Besser:


Abtastrate: 96k
Samples: 512
Latenz = 10,7 Millisekunden

Ohne XRUN-Fehler geht es nur mit einer Latenz von 64 ms, was natrlich
nicht akzeptabel ist.
Bei einem Neustart ist es wichtig, wie das auch schon unter Windows war,
dass man das Interface erst einschaltet, wenn das Betriebssystem luft. Leider
hat das Gert keinen Schalter, deswegen habe benutze ich ein
Verlngerungskabel mit Schalter. Man muss danach auch eine Zeit warten, bis
das Betriebssystem das Interface erkannt hat. Erst dann kann man qjackctl
starten.

Es luft einigermaen, aber das Probleme ist, dass Pulseaudio nicht


mitkommt:
ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state =
Running
ERROR: JackEngine::XRun: client = PulseAudio JACK Source was not finished, state
= Running
ERROR: JackEngine::XRun: client = a2j was not finished, state = Triggered
ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error
ERROR: JackEngine::XRun: client = PulseAudio JACK Sink was not finished, state =
Running
ERROR: JackEngine::XRun: client PulseAudio JACK Source finished after current

177

callback
ERROR: JackEngine::XRun: client = a2j was not finished, state = Running
ERROR: JackAudioDriver::ProcessGraphAsyncMaster: Process error

Das beschreibt einfach, dass die Aufgaben, welche das auch immer sind, nicht
in der vorgeschriebenen Zeit erledigt werden konnten. Also ohne spezielle
Einstellungen am System ist auch keine vernnftige Latenz einstellbar.
Probleme:
* Wenn man eine externe Festplatte einsteckt, verliert das US800 die USBVerbindung. Im schlimmsten Fall friert das ganze System ein. Das Problem
hatte ich auch unter Windows schon, nur da hat es etwas gedauert, hier
passiert es direkt. Das kann man beheben, indem man die Festplatte schon
vor dem Systemstart einsteckt. Das ging unter Windows nicht.
* Man hrt ein getaktetes fiepsen im Hintergrund. Das ist natrlich bei einem
Laptop nicht unbedingt einfach zu beheben. Das kann alles mgliche sein.
Schlecht geschirmtes USB-Kabel, interner- oder externer Monitor, Netzteil,
Mantelwellen. Muss man mal schauen.
* Das Soundinterface schaltet nach dem Standby nicht ein.

Novation Launchpad
Es hat sich jemand erbarmt einen Linux-Treiber fr das Launchpad zu
schreiben.
http://videca.wordpress.com/2012/09/24/endriver-for-novation-launchpad/
Leider scheint es so, dass der Treiber nicht mit einem Echtzeitkernel
funktioniert. Ebenso ist der Treiber nicht im AUR vorhanden, also selbst
bauen.
Das will ich aber auch mit einem Echtzeitkernel zum laufen bekommen.
Launchpad Programmers Reference Guide:
http://d19ulaff0trnck.cloudfront.net/sites/default/files/novation/downloads/408
0/launchpad-programmers-reference.pdf
Ich habe gerade gesehen, dass das Launchpad direkt erkannt wird und man
kann es mit renoise nutzen.

178

Akai APC40
Eine gute Nachricht, muss ja auch mal sein. Einfach den Controller
anschlieen und er ist sofort einsatzbereit. Die LEDs habe ich noch nicht
getestet.

Hercules DJ Control Mp3 e2


cd AUR
mkdir hercules-dj-control-mp3-e2
cd hercules-dj-control-mp3-e2
wget https://aur.archlinux.org/packages/hd/hdjmod/hdjmod.tar.gz
tar -xvzf hdjmod.tar.gz
cd hdjmod
makepkg -s
FEHLER: hdjmod steht fr die 'x86_64'-Architektur nicht zur Verfgung.
Beachten Sie, dass bei vielen Paketen eine Zeile zu PKGBUILD hinzugefgt werden
muss wie arch=('x86_64').
nano PKGBUILD
arch=('i686' 'x86_64')
makepkg -s

==> WARNUNG: PKGBUILD sollte nicht mehr ohne die Funktion package()
verwendet werden.
Das mchte Headers fr einen anderen Kernel installieren.
Abgebrochen da muss ich spter noch mal gucken.
Ich habe das jetzt mal gebaut. Nach dem installieren, berprft man, ob es
luft.
modprobe hdj_mod

Bei mir friert das System immer ein. Schade eigentlich.

179

Echtzeitkernel:
Um die Latenzen gering zu halten, bentigt man einen Kernel, der garantiert,
dass alle Aufgaben mit einer niedrigen Reaktionszeit erledigt werden. Das ist
ungefhr vergleichbar mit einem Airbag. Wenn man gegen einen Baum fhrt,
dann mssen innerhalb von von Millisekunden alle Sensoren auslesen und der
richtigen Airbag ausgelst werden. Es bringt nichts, wenn der Sensor merkt:
Ahh, der Beifahrerairbag ist gerade beschftigt, ich warte mal und probiere es
in 200 Millisekunden nochmal, ggf. ist er dann immer noch beschftigt. Der
Sensor muss also in der Lage sein diese Beschftigung zu beenden und seine
Anweisung sofort auszufhren.

Es gibt natrlich auch hier wieder mehrere Mglichkeiten, ich habe mich dazu
entschieden ein Paket aus dem AUR zu nehmen. Das ist allerdings dann nicht
der aktuellste Kernel, aber so wie ich das verstanden habe, gibt es auch
keinen neueren KernelPatch.
Zuerst habe ich versucht, den ber Yaourt zu installieren, aber das ist nach 2
Stunden fehlgeschlagen, weil nicht genug Festplattenspeicher in /tmp zur
Verfgung stand.
yaourt -S linux-rt

Also selbst machen.


Den Ordner AUR hatte ich schon.
cd AUR
mkdir kernel-linux-rt
cd kernel-linux-rt
wget https://aur.archlinux.org/packages/li/linux-rt/linux-rt.tar.gz
tar -xvzf linux-rt.tar.gz
cd linux-rt
makepkg -s

Das hat dann noch mal 2 Stunden gedauert.


Jetzt installiert man das Paket:
pacman -U /home/benutzer/AUR/kernel-linux-rt/linux-rt/linux-rt-3.12.1_rt4-2x86_64.pkg.tar.xz
Und das gleiche noch mal mit den Header.

Danach den Grub-Bootloader aktualisieren


grub-mkconfig -o /boot/grub/grub.cfg

180

Ich konnte den Grub2 nicht aktualisiert, da kam eine Fehlermeldung mit
Hauptspeicher erschpft und Syntax-Error. Also so, nur auf deutsch.
error: out of memory.
error: syntax error.
error: Incorrect command.
error: syntax error.
Syntax error at line 393
Syntax errors are detected in generated GRUB config file.
Ensure that there are no errors in /etc/default/grub
and /etc/grub.d/* files or please file a bug report with
/boot/grub/grub.cfg.new file attached.done

Um den Kernel trotzdem ausprobieren zu knnen, startet man neu. Wenn der
Grub-Startbildschirm erscheint, drckt man e und gibt man in den zwei Zeilen
ein -rt ein.
linux

/vmlinuz-linux-rt root=UUID=xxx rw

initrd

/initramfs-linux-rt.img

clocksource=acpi_pm resume=/dev/sda2

Das muss man dann aber leider bei jedem Neustart machen, sonst startet er
mit dem originalen Kernel. Man kann das selbe auch in die /boot/grub/grub.cfg
schreiben, dann ldt der RT-Kernel auch beim Start. Aber das ist nur eine
Notlsung. Das sollte man eigentlich nicht machen.
Lsung:
Das scheint ein Bug zu sein siehe https://bugs.archlinux.org/task/37904
Um das Problem zu lsen, bearbeitet man
nano /etc/default/grub

und fgt dort die Zeile hinzu:


GRUB_DISABLE_SUBMENU=y

Danach Grub aktualisieren:


grub-mkconfig -o /boot/grub/grub.cfg

Der Realtime-Kernel ist schon ein riesiger Unterschied. Mit 4 ms Latenz


funktioniert es schon ganz gut, aber man hat zwischendurch immer mal
wieder ein knacken drin, weil das System nicht hinterherkommt. Ich habe
aber auch noch keine weiteren Schritte unternommen, um das System zu
optimieren.

181

182

Probleme mit dem Echtzeitkernel:


* Der Kernel funktioniert nicht out-of-the-box mit dem b-43-WLAN-Treiber. Es
gibt einen linux-rt-broadcom Kernel, der dann den auf den broadcom-wltreiber setzt. Den habe ich aber nicht benutzt. Das ist ja auch eine gute
Mglichkeit mal einen anderen WLAN-Treiber zu versuchen.
* Der Computer wacht nach dem Ruhezustand nicht wieder auf. Standby ???

Performance-Messungen
Die Angaben ber die Latenz sind alles nur theoretische. Alles sieht schn und
gut aus und es fhlt sich auch gut an beim spielen. Wenn ich eine Saite
anschlage, hre ich keine Latenz im Lautsprecher. Aber man mchte ja auch
kontrollieren, wie lange es jetzt nun wirklich dauert von dem Moment an, wo
ich Saite anschlage bis zu dem Moment, wo ich den Ton im Lautsprecher hre.
183

Externe Hardware
Brother MFC-7360N
Allein der Gedanke ist mir schon ein Graus, ich habe immer Probleme mit
Druckern und Scanners unter Linux.
Hier muss auch wieder das Multilib-Repositorum aktiviert sein, weil 32-bitBibliotheken installiert werden.
Das Brothers-Script benutzt C-Shell anstatt die Bash. Deshalb:
pacman -S tcsh

[Das Script sucht nach der C-Shell in /bin/csh, aber Arch Linux legt das Paket in /usr/bin/csh ab. Dafr als root einen
symbolischen Verknpfung anlegen.
ln -s /usr/bin/tcsh /bin/csh
Ausgabe:
ln: die symbolische Verknpfung /bin/csh konnte nicht angelegt werden: Die Datei existiert bereits]

Den Benutzer zur Gruppe lp hinzufgen. Danach aus- & einloggen, damit die
nderungen angewendet werden.
gpasswd -a benutzer lp

Das Modul usblp blacklisten:


nano /etc/modprobe.d/blacklist.conf
install usblp /bin/false

Zur Erklrung: Wenn man Module mittels der Blacklist am Starten hindert,
aber ein anderes Modul dieses Modul als Abhngigkeit aufruft, wird das
geblacklistete Modul trotzdem geladen. Es ist hier aber wichtig, dass es nicht
geladen wird, sonst wird der Drucker ber eine falsche Hardware-Adresse
angesprochen. Deshalb verwendet man install usblp /bin/false.
Den Treiber insatallieren:
yaourt -S brother-mfc7360n-cups

installiert.

Als Root ausfhren:


/usr/local/Brother/Printer/MFC7360N/cupswrapper/cupswrapperMFC7360N-2.0.4

systemctl restart cups


184

Unter http://localhost:631 kann man den Cups konfigurieren. Ich habe es aber
ber Gnome gemacht.
systemctl enable cups

Probleme:
Obwohl die Testseite am Anfang gedruckt wurde, funktionierte es spter nicht
mehr.
Fehler: Die Verbindung zum Anschluss ist falsch.: usb:/dev/usb/lp0, obwohl das
Modul usblp definitiv nicht geladen ist. Am Anfang hat es ja auch funktioniert.
Ich finde den Fehler nicht. Jetzt habe ich ihn so eingestellt, dass er bers
Netzwerk druckt. Wollte ich sowieso machen, denn so habe ich wieder einen
USB-Port frei.
* Drucker deinstallieren
* Add Printer
* wenn schon Verfgbar, ansonsten weiter:
Discovered Network Printers: Brother MFC-7360N (Brother MFC-7360N)
* AppSocket/HP JetDirect auswhlen
* Entweder IP-Adresse:9100 oder lpd://BRN001BA989E78B/BINARY_P1
* Marke: Brother
* Modell: MFC-7360N for CUPS

Scanner
yaourt -S brscan4

Find additional documentation about scanner driver install at:


http://welcome.solutions.brother.com/bsc/public_s/id/linux/en/instruction_scn1.h
tml
For a network installation run the following as root:
brsaneconfig4 -a name="Brother" model="YOURMODELHERE" ip=YOUR.SCANNER.IP.HERE

Xsane gibt einen Fehler aus. Irgendwas mit I/O-Error.


Scanimage bringt den gleichen Fehler (mit sudo funktioniert es dann):
185

scanimage --format=tiff > test.tiff


scanimage: open of device brother4:bus1;dev1 failed: Error during device I/O

Die Lsung ist eigentlich ganz einfach. Der Benutzer muss Mitglied in der
Gruppe scanner sein.
gpasswd -a benutzer scanner

Als Software habe ich zuerst Xsane probiert.


Scanner bers Netzwerk nutzen:
brsaneconfig4 -a name="Brother" model="MFC-7360n" ip=YOUR.SCANNER.IP.HERE

Ich habe im Moment alles ber DHCP laufen, das sollte ich ndern. Wenn ich
den Scanner dann mal benutze, muss ich erst mal wieder die IP ndern.
Habe ich im Router gendert, so bekommt der Scanner/Drucker immer
dieselbe IP zugegewiesen.

PS3 Controller
sudo pacman -S xf86-input-joystick

und dann einmal ausloggen und einloggen und der Controller ist sofort ber
USB einsatzbereit.
Das muss man sich ggf. etwas einstellen. Die linke Maustaste liegt auf der
Select-Taste.
Bluetooth:

186

Bluetooth USB-Sticks
Ich habe zwei Hama-Bluetooth-USB-Sticks hier rumliegen:
Hama 00077026 Class 2
Hama (nicht gefunden)

Zuerst den Bluetooth Protokoll Stack installieren. Ich nutze hier Bluez, ich
wei gar nicht, ob es auch andere Implementationen gibt.
sudo pacman -S bluez

bluez-utils

sudo systemctl start bluetooth

bluetoothctl

[NEW] Controller 00:33:23:2D:6X:42 Host [default]

[bluetooth]# power on

[CHG] Controller 00:11:67:9E:8D:39 Class: 0x00010c

Changing power on succeeded

[CHG] Controller 00:11:67:9E:8D:39 Powered: yes

[bluetooth]# scan on

Discovery started

[CHG] Controller 00:11:67:9E:8D:39 Discovering: yes

mit Android-Smartphone verbinden


hcitool scan

Dateien ber den Dateimanager senden & empfangen


sudo pacman -S obexfs autofs

mit Android-Smartphone verbinden - siehe oben


Einen Ordner erstellen, wohin das Dateisystem gemountet werden soll und
einhngen:
cd
mkdir android-bt

187

obexfs -b D4:20:6D:AF:95:B7 android-bt/

Jetzt ist das Gert zwar eingehangen, aber irgendwas stimmt da nicht. Mann
kann zwar alle Ordner sehen, es werden aber keine Dateien angezeigt, weder
im Thunar noch auf der Konsole.

Um das Gert auszuhngen:


fusermount -u ~/android-bt

Ich mchte es hier mal ausnahmsweise direkt mit einer KlickiBunti Oberflche
versuchen.
yaourt -S blueman-bzr

Die AUR Version ist abhngig von bluez4 und das steht mit bluez im Konflikt.
Ich werde spter mal versuchen, ob es nicht auch mit bluez geht, aber jetzt
habe ich es erst mal so gelassen.
Ich kann nicht durch mein Telefon browsen.
sudo pacman -S obex-data-server
Ne, dieses Blueman sieht nett aus, ist aber voller Fehler. Da habe ich keine
Lust mich mit rumzurgern. Deinstalliert..

188

Entwicklungsumgebungen

Android
ist sowohl ein Betriebssystem als auch eine Softwareplattform fr mobile
Gerte, das quelloffen entwickelt wird. Die Programmiersprache orientiert
sich sehr stark an Java, genauer ist es Apache Harmony, nur wird das
Programm nicht in der Java Virtual Machine, sondern in einer
Eigenentwicklung, der Dalvik Virtual Machine ausgefhrt.
Was Voraussetzungen mssen erfllt sein?
* Es muss das Multilib-Repositorium freigeschaltet sein.

Die bentigen Pakete beschaffen:


Die Pakete sind allesamt im AUR verfgbar. Man knnte sie ber Yaourt
installieren, ich werde sie aber selbst kompilieren.

Android-SDK installieren
cd AUR
mkdir android
cd android
mkdir android-sdk
cd android-sdk
wget https://aur.archlinux.org/packages/an/android-sdk/android-sdk.tar.gz
tar -xvzf android-sdk.tar.gz
cd android-sdk
makepkg -s

Die Binrdatei knnte man jetzt mit


pacman -U android-sdk-r22.3-1-x86_64.pkg.tar.xz

installieren, aber ich verschiebe die Dateien in mein eigenes NetzwerkRepositorium, um das weiter zu testen.

189

Weiter gehts
cd ..
cd ..
mkdir android-sdk-platform-tools
cd android-sdk-platform-tools
wget https://aur.archlinux.org/packages/an/android-sdk-platform-tools/androidsdk-platform-tools.tar.gz
tar -xvzf android-sdk-platform-tools.tar.gz
cd android-sdk-platform-tools
makepkg -s
pacman -U blahblahh

Und das macht man dann auch noch fr das Paket


* android-sdk-build-tools
https://aur.archlinux.org/packages/an/android-sdk-build-tools/android-sdk-buildtools.tar.gz

Android-Studio
Ich habe schon lnger nichts mehr mit Android gemacht, aber bisher habe ich
immer mit Eclipse gearbeitet. Darauf mchte ich aber erst spter eingehen.
Im Jahr 2013 hat Google eine neue Entwicklungsumgebung verffentlicht. Die
nennt sich Android-Studio und basiert auf Intellj IDEA. Die mchte ich mal
zuerst ausprobieren.
Dafr baut man sich wieder das Paket aus dem AUR.
https://aur.archlinux.org/packages/an/android-studio/android-studio.tar.gz

Jetzt ist der Zeitpunkt alles zu installieren. Danach ruft man die Plattformtools
auf, wo man eine Vorauswahl trifft.
sudo /opt/android-sdk/tools/android

Dort whle ich die aktuellste API aus, in meinem Fall war das die API 19. Da
ich aber noch ein sehr altes Smartphone besitze, auf dem ich spter meine
190

Apps nutzen mchte, whle ich zustzlich die API 8 aus, weil auf meinem
Telefon noch Android 2.2 luft. Vielleicht gibts da ja inzwischen ein Upgrade,
glaube ich aber nicht. Der Hersteller ist sehr knauserig, was das angeht.
Und man whlt noch das Paket Android Support Repository, sonst meckert der
spter, dass er etwas nicht finden konnte.
Wenn man weitere braucht, kann man die spter noch nachinstallieren.
Einfach den Befehl noch mal aufrufen.
Jedes Android-Gert hat eine Hersteller- und Produktkennung. Das System
muss diese kennen. Das kann man manuell machen, aber ich lade mir eine
Liste mit Kennungen herunter und hoffe, dass es funktioniert. Dafr baut man
sich das Paket android-udev aus dem AUR.
https://aur.archlinux.org/packages/an/android-udev/android-udev.tar.gz

Beim ersten Start von Android-Studio bekam ich eine Fehlermeldung:


'tools.jar' seems to be not in Android Studio classpath.
Please ensure JAVA_HOME points to JDK rather than JRE.

Das bedeutet bestimmt, dass ich keine Java-Entwicklungsumgebung installiert


habe.
Also baut man sich das Paket jdk aus dem AUR.
https://aur.archlinux.org/packages/jd/jdk/jdk.tar.gz

Beim installieren tritt ein Konflikt mit jr7-openjdk und deren Abhngigkeiten
auf. Diese entfernen. Allerdings funktioniert dann auch das Java-Plugin fr
Firefox nicht mehr.
==> NOTE: Please re-login to include JDK in your PATH.

So, jetzt man das Android-Studio starten.


Bevor man das Gert mit dem Rechner verbindet, muss man noch einige
Einstellungen auf dem Gert vornehmen. Das sieht bestimmt bei jedem anders
aus, aber irgendwo muss man die Option USB-Debugging aktivieren.
Zustzlich sollte man sicherstellen, dass der Schlafmodus deaktiviert ist.
Danach verbindet man das Gert.

191

Hallo Welt

Jetzt schreibt man sein erstes App. Es ist kein richtiges App, aber es gehrt
zur Tradition, dass man erst mal ein Programm schreibt, das einfach nur Hallo
Welt auf dem Bildschirm ausgibt. Damit kann man sehr einfach testen, ob man
bis hierhin alles richtig gemacht hat.
* Android-Studio starten
* Neues Projekt auswhlen
Application name:

HalloWelt

Modulname:

HalloWelt

Package name:
Minimum requires SDK:

com.example.hallowelt
2.2 Froyo

Language Level:

Den Rest lasse ich erst mal so. Dann auf Next klicken.
Dort habe ich noch einen gelben Hintergrund eingestellt. Next.
Nchster Bildschirm Nichts machen Next.
Nchster Bildschirm Finish

Dann fngt er an das Programm zu bauen.


Wenn jetzt jetzt alles geklappt hat, drckt man oben mittig den grnen PlayKnopf. Tadaa, das App luft auf dem Smartphone.

Wie man Android-Apps programmiert ist im InterNetz, der allwissenden


Mllhalde, gut erklrt, da mchte ich hier nicht weiter drauf eingehen. Hier
soll es ja hauptschlich darum gehen, wie man Arch Linux zum Laufen
bekommt. Im Prinzip muss man in Java lesen und schreiben knnen. Als
kostenlose Lektre knnte ich diese OpenBooks von Galileo Computing
empfehlen.
Java ist auch eine Insel: http://openbook.galileocomputing.de/javainsel/
Java 7 Mehr als eine Insel: http://openbook.galileocomputing.de/java7/
Da gibt es natrlich noch viel viel viel mehr kostenloses Zeug. Einfach mal auf
die Suche gehen.

192

Eclipse
Es gibt wahrscheinlich auch Implementationen fr andere
Entwicklungsumgebungen. Ich kenne mich da jetzt nicht sooo aus, vielleicht
kann man sogar unter VisualBasic Android-Programme entwickeln. Einfach
mal schauen, ob die bevorzugte Entwicklungsumgebung das untersttzt. Ich
nutze gerne Eclipse.
Dafr braucht man das Android-SDK, Eclipse und ein Eclipse Plugin, das
Android Development Tool (ADT).
Android-SDK installieren
Siehe Android-SDK installieren
Eclipse installieren:
pacman -S eclipse

Das ADT-Plugin einfgen


* Eclipse ffnen
* Gehe zu Help Install new Software
* rechts oben add klicken
* Im Dialog den Namen ADT-Plugin eingeben und Location https://dlssl.google.com/android/eclipse/ - Falls das nicht funktioniert, http whlen
* Developer Tools whlen Next
* Im nchsten Fenster Next klicken
* Lizenzen akzeptieren Finish
* Die Dateien werden heruntergeladen, und die Warnung mit dem unsignierten Code
zur Kenntnis nehmen und besttigen.
* Eclipse neustarten, damit die nderungen verfgbar sind.
* Fehlermedung wegklicken
* Whle Use existing SDKs - /opt/android-sdk
* Whlen, ob man Google Statistiken schicken mchte Geschmackssache
* Finish

Hallo Welt

Das sollte jetzt jetzt funktionieren. Probieren geht ber studieren.


* File New Project Android Application Project Next
* Application Name:

HalloAndroid

193

* Project Name:

HalloAndroid

* Package Name:

com.examples.halloandroid

Hier kann man sich irgendwas ausdenken, aber wenn man ein App entwickelt, muss
der Paketname immer beibehalten werden.
* Minimum Required SDK:

API 8

* Target SDK:

API 19

* Compiled With:

API 19

* Theme:

Holo

Light with Dark Action Bar

* Next Mal was rumklicken, Farben ndern etc. Next


* Telefon anschlieen Auf den Play-Knopf drcken Run as Application

Was sofort auffllt, dass Eclipse 2,68 MB RAM verbraucht, wohingegen


Android-Studio 3,64 MB RAM verbraucht. Das sieht aber auch etwas anders
aus, also irgendwas habe ich anders gemacht. Trotzdem macht es bei mobilen
Gerten Sinn, immer darauf zu achten, dass man ressourcenschonend mit
dem Speicher umgeht.

Emulator

Das mit dem Emulator war so eine Sache. Ich habe leider nicht
mitgeschrieben, deshalb schreibe ich hier aus der Erinnerung.
* Eine AVD erstellen: Window Android Virtual Device Manager
* Im Device Definitions New Device alles einstellen Create Device
* Das neu erstellte auswhlen und Create AVD
* Eclipse neustarten

194

Spielend programmieren lernen


Ich lerne gerne wie ein kleines Kind, nmlich beim Spielen. Spielend bedeutet
nicht zwingend, dass das einfach sein muss. Der Vorteil bei dieser Methode
ist, man lernt zu fuschen. Also nicht im Sinne von einem Spickzettel
schreiben oder jemanden zu bestechen. Nein, sondern im Sinne von einer
Lsung aus einer scheinbar ausweglosen Situation zu finden.
Fuschen ist ist entgegen der landlufigen Meinung eine sehr kreative
Ttigkeit, denn man versucht einen Weg zu einem Ziel zu finden, der so nicht
vorgesehen ist. Das knnen Leute, die das professionell gelernt haben oft
nicht, weil die immer nach so einem bestimmten Schema vorgehen.

Robocode
Webprsenz: http://robocode.sourceforge.net/

wurde hauptschlich dafr entwickelt Java zu erlernen, es werden aber


auch andere Sprachen wie C# untersttzt.
Ich baue mir das wieder aus dem AUR.
cd AUR
mkdir robocode
cd robocode
wget https://aur.archlinux.org/packages/ro/robocode/robocode.tar.gz
tar -xvzf robode.tar.gz
cd robocode
nano PKGBUILD

Dort ndert man die Programmversion, da ja eigentlich fast alle Pakete im


AUR veraltet sind. Zumindest kommt es einem so vor.
Man ndert die Zeile
pkgver=1.8.1.0

in
pkgver=1.8.3.0

Dann muss man, da wir ja ein anderes Programm herunterladen, die md5sums
angepasst werden.
makepkg -g
md5sums=('551097457ac0d1838224f816f6dc5857'
'8a556209b3ffb39839f28f30479a8c8d')

195

nano PKGBUILD
md5sums ndern

makepkg -s

pacman -U

FYI: Wenn man mal ein eigenes PKGBUILD schreibt, sollte man keine md5sum
benutzen. Da kann man ruhig etwas hherwertiges nehmen.

Robocode in Eclipse
* Eclipse ffnen
* File New Java Project
* einen Namen vergeben, zb. ErsterRoboter Next
* gehe zum Reiter Libaries und klicke auf Add External JARs
* gehe zu /opt/robocode/libs und whle robocode.jar
* gehe zu Javadoc location und klicke auf Edit
* klicke Browse und gehe zu /opt/robocode/javadoc und klicke OK OK Finish
* Robocode ffnen
* Options Preferences Development Options Add
* Den Eclipse workspace auswhlen. Bei mir das
/home/benutzer/eclipse/ErsterRobotor/bin Finish
* Gehe wieder zu Eclipse und whle File New Class

196

* Finish

Jetzt kann man den Roboter bearbeiten. Man knnte z.B. so etwas hinzufgen:
197

package EigeneRoboter;
import robocode.Robot;
import robocode.ScannedRobotEvent;
public class ErsterRoboter extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(90);
}
}
public void onScannedRobot(ScannedRobotEvent e) {
fire(1);
}
}

Robocode aus Eclipse starten


* Robocode schlieen
* Auf das Projekt Erster Roboter gehen und Rechtsklick
* Run As Run Configuration Java Apllication
* oben links New whlen

198

199

-Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true

* Apply Run
* Ab jetzt kann man zu starten einfach den Play-Button in Eclipse drcken

Hamster
Webprsenz:
http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/index2.html

AntMe!

200

Scratch
Webprsenz: http://scratch.mit.edu/
offiziell untersttztes deutsches Wiki: http://scratch-dach.info/wiki/Hauptseite

Ein eigenes Live-Medium erstellen

Archiso
Archiso installieren:
pacman -S archiso

Ein Verzeichnis erstellen, in dem man nachher arbeitet:


mkdir ~/archlive

201

Die ntigen Skripte kopieren:


cp -r /usr/share/archiso/configs/releng/ ~/archlive
cd releng
ls

Dort sieht ein paar Dateien. Dort bearbeitet man z.B. die Datei packages.both,
wenn man 686 und x64_86 untersttzen mchte. Wenn man von vornherein
wei, dass man nur x64 schreibt man es in packages.x64_86. Dazu sollte man
wissen, dass alle i686 (32-Bit) auch auf einem 64-Bit Computer ausgefhrt
werden.
nano packages.both

Das voreingestellte lasse ich erst mal so und fge meine gewnschten Pakete
ein.
[...]
xorg-server
xorg-xinit
xorg-utils
xorg-server-utils
lxde
xf86-video-nouveau
xf86-input-synaptics
openssh
firefox
firefox-i18n-de
usw.

Jetzt ndert ich die locale.conf und ndere sie.


nano ~/archlive/releng/root-image/etc/locale.conf
LANG=de_DE.UTF-8

Ich mchte mich den Benutzern und den dazugehrigen Passwrtern auf
meinem Live-Medium anmelden.
Darum kopiere ich meine Dateien in das Live-System
sudo cp /etc/{shadow,passwd,group} ~/archlive/releng/root-image/etc/

Jetzt kopiere ich noch ein paar Dateien von meinem System in das neue LiveMedium.
202

Synaptics:
sudo cp -r /etc/X11/xorg.conf.d/50-synaptics.conf ~/archlive/releng/rootimage/etc

.xinitrc
in das Verzeichnis ~/archlive/releng/root-image/etc wechseln und dort ein
neues Verzeichnis erstellen
cd ~/archlive/releng/root-image/etc && mkdir skel

und dort jetzt die Datei hineinkopieren


cp ~/.xinitrc ~/archlive/releng/root-image/etc/skel/

Da ich da aber noch Gnome ausfhre, ndere ich das nach LXDE ab.
nano ~/archlive/releng/root-image/etc/skel/.xinitrc

Jetzt noch dem Skript sagen, dass es .xinitrc fr meinen Benutzer installieren
soll. Benutzer ist der, den man auf dem ebenfalls der auf dem System, von
dem gerade gearbeitet wird.
nano ~/archlive/releng/root-image/root/customize_root_image.sh
# Create the user directory for live session
if [ ! -d /home/benutzer ]; then
mkdir /home/benutzer && chown benutzer /home/benutzer
fi
# Copy files over to home
su -c "cp -r /etc/skel/.* /home/benutzer/" benutzer

So, jetzt drfte ich so weit sein, den ersten Versuch zu starten.
cd ~/archlive/releng
sudo ./build.sh -v

Jetzt wird alles erstellt. Danach auf einen USB-Massenspeicher kopieren


dd bs=4M if=~/archlive/releng/out/??.iso of=/dev/sdx
dd bs=4M if=/path/to/??.iso of=/dev/sdx && sync

Benutze sdx anstatt sdx1!!! x natrlich ersetzen. Wichtig ist, dass der USBMassenspeicher nicht eingehngt ist, berprfen mit lsblk.

203

Arch Linux forken


Jetzt hat man eigentlich fast alle Werkzeuge, um sich einen eigenen Ableger
von Arch Linux zu basteln.
* Ein eigenes Repositorium
* Man kann ein eigenes Installationsmedium erstellen

FAQ
Warum denn noch eine neue Linux-Distribution?
Ziemlich simpel. Weil ich es kann und auerdem wollte ich schon immer mein
eigenes Betriebssystem haben.

Ja, aber warum ?


Warum denn nicht?

Vorbereitung
Wenn man natrlich wie ich nur etwas fr sich selbst baut, kann man machen,
was man mchte. Wenn aber dein eigenes Linux auch von Anderen genutzt
werden soll, fehlt natrlich noch einiges.
Als erstes wre natrlich eine gute Idee vonnten, sonst wird niemand deine
Distribution nutzen. Man muss schon eine Zielgruppe ansprechen und
berzeugen, dass man es besser macht, als die anderen Distributionen.
Um Ideen aus diesem Skript zu nehmen, knnte man ja eine Distribution
schaffen, die alles ntige fr einen Lenovo B550 Laptop direkt installiert und
konfiguriert hat. Das spricht natrlich auch so viele an. Oder man knnte eine
Tonstudio-Distribution, oder eine Amateurfunk-Distribution erschaffen. Oder
vielleicht eine, die sich besonders an Windowsumsteiger richtet. Oder eine,
die besonders fr Firmen interessant ist. Oder, oder, oder.
Als zweites wre zu nennen, dass man unbedingt eine Infrastruktur braucht.
Das muss jedem klar, dass das Geld kostet. Strom, Server und
Internetdatenverkehr sind auch gerade billig.
Und es ist viel, viel, sehr viel Arbeit, die man primr in seiner Freizeit
erledigt. Geld verdienen lsst sich damit eigentlich nur, wenn man ein stabiles
Produkt geschaffen hat, was auch fr Firmen interessant ist, denen man dann
Support anbietet. Oder man macht es so wie Apple mit ihrem MacOS X, das
204

soweit ich wei auf einem Darwin BSD basiert, was auch ein freies
Betriebssystem ist. Die grafische Oberflche Aqua ist aber dann proprietr.
Unter Linux ist das aber so nicht mglich, weil die Lizenz, die GNU General
Public License, garantiert, dass alle nderungen und Ableitungen wieder
unter der GPL vertrieben werden mssen. Das ist bei einer BSD-Lizenz
anders. Aber dafr gbe es ja auch noch Arch BSD.
https://www.archbsd.net/

ToDo
* Die ganzen (d)englischen Begriffe soweit wie mglich aus den Erklrungen
herausfiltern. Das ist manchmal gar nicht so einfach. Aber ich lebe in
Deutschland und da spricht man deutsch.
* Ein barrierefreies Dokumentenformat whlen. Ich kenne mich jetzt nicht
aus, aber ich glaube PDF ist kein geeignetes Format fr Barrierefreiheit. Ich
kann natrlich noch eine Audioausgabe testen, aber da ich keine Braillezeile
habe, kann ich das auch nicht testen. Ich wei, dass Blinde einfache
Textdateien bevorzugen, aber das ist fr Sehende keine Lsung. Man sollte fr
laufenden Text schon Schriften mit Serifen verwenden, damit das Auge dem
Text schn folgen kann.
* acpi_ipmi Sicherheitsrisiko???? siehe: Optimierungen
* Baustellen fertigstellen
** OpenVas, Metasploit, Lfter, Pdnsd, Bluetooth, ACPI, etc.

205

weiterfhrende Informationen
Kategorie WLAN:
B43-Treiber:
http://wireless.kernel.org/en/users/Drivers/b43

iw Dokumentation:
http://wireless.kernel.org/en/users/Documentation/iw

Kategorie Video:
Kamera linux-uvd-Treiber:
http://www.ideasonboard.org/uvc/

Kategorie Desktop:
Gnome-Shell-Cheat
https://wiki.gnome.org/Projects/GnomeShell/CheatSheet

Customize Gnome
http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html

iptables:
http://www.selflinux.org/selflinux/html/iptables.html
http://de.wikibooks.org/wiki/Linux-Kompendium:_Linux-Firewall_mit_IP-Tables

Kategorie acpi:
Spezifikation
http://www.acpi.info/

The Linux IPMI Driver


https://www.kernel.org/doc/Documentation/IPMI.txt

Kategorie Programmierung:
Python Tutorial
http://tutorial.pocoo.org/

Kategorie Echtzeit:
Vortrag: Einfhrung in Real-Time Linux (Preempt-RT)
http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=517

Real Time Linux Wiki


206

https://rt.wiki.kernel.org

Stichwortverzeichnis
A
abs......14, 48, 55, 61, 68, 75, 93f.,
114, 155f., 158, 160, 163f., 219
Abs.......................................79, 91
ABS...........................................164
Alsa.....................................71, 168
B
bluetooth..................................187
Bluetooth....................5, 186f., 205
D

DNS4, 87, 135f., 138, 142ff., 146f.,


155f.
J
Jack.............................166ff., 176f.
P
Pacman.1, 4, 18, 30f., 34, 51, 58f.,
92, 113ff., 147f., 153, 165, 217
Z
zsh....5, 60, 84, 87, 105, 119f., 216

Warum werden da die Daten aus dem Inhaltsverzeichnis bernommen?


Warum kann man ein mal vorhandene Eintrge nicht mehr ber die
Konkordanzdatei berichtigen/entfernen?
Wie bekomme ich es hin, dass zwischen jedem Buchstabenabsatz eine leere
Zeile eingefgt wird?

207

Arch BSD
Wie das halt im Leben so ist, kann es vorkommen, dass sich Vorstellungen und
Ziele sehr schnell ndern. Ich migriere jetzt zu Arch BSD, weil mir einiger
Features und die Lizenz geeigneter vorkommen.
Auch wenn ich es im Moment noch nicht bruchte, mchte ich aber auch fr
die Zukunft gewappnet sein. Deswegen setze ich ab jetzt auf dem Dateisystem
ZFS.

Arch BSD vs. Arch Linux


Jeder, der sich fr ArchBSD entscheidet, sollte klar sein, dass es kein Arch
Linux ist. Es ist ein FreeBSD, und damit ein Unix-Derivat, und es wird
versucht Arch Linux Werkzeuge in die FreeBSD-Umgebung zu integrieren.
Der fr grte Nachteil daran ist, dass ArchBSD keine systemd benutzt und
auch nicht benutzen kann, da systemd ausschlielich auf Systemen mir
Linux-Kernel luft. Es wird init.d benutzt, entweder FreeBSD-init oder
Open-init. Und das finde ich besonders schade, ich hatte mich gerade an
systemd gewhnt und schtzen gelernt.
Zustzlich sollte man sich im Klaren sein, dass es sich um ein sehr junges
Projekt handelt und auch alles noch nicht so luft, wie es sollte. Man muss
sich auf ein paar Umwege einstellen, um das System ordnungsgem zum
laufen zu bekommen. Auerdem stehen noch nicht allzu viele Pakete zur
Verfgung, was es auch nicht unbedingt einfacher macht. Besonders stehen
noch kaum bis gar keine spezifisch deutschsprachigen Pakete zur
Verfgung.

ArchBSD herunterladen
Wer das Abbild auf einem USB-Massenspeicher schreiben mchte, braucht
eine andere Datei.
ftp://ftp.archbsd.net/iso/2013-08-25/ArchBSD-amd6425082013.img.xzArchBSD installieren

208

Vorbeitung
Ich gehe hier davon aus, dass eine leere Festplatte zur Verfgung steht. Ich
habe meine Festplatte vorhher mit der Gparted-Live-Edition bearbeitet.
* Die Partitionstabelle lschen
* Die Festplatte mit Rauschen gefllt
shred -v /dev/sda

System installieren
ZFS mit MBR-Systemen
Ich habe hier nur diese Methode ausprobiert und bin nach der offiziellen
Anleitung im Arch BSD Wiki vorgegangen, habe nur den Tank umbenannt.

* System von dem Live-Medium starten

Deutsche Tastaturbelegung laden


kbdmap

Und dort German-ISO-8859-1 auswhlen

Um die Auflsung der Konsole zu ndern, tippe


vidcontrol -i mode

ein und whle den gewnschten Modus, z.B.


vidcontrol MODE_379

209

Jetzt werden die Festplatten partitioniert


gpart create -s MBR ada0

ada0 created
gpart add -t freebsd ada0

ada0s1 added
gpart create -s BSD ada0s1

ada0s1 created
gpart set -a active -i1 ada0

<- ieins

active set on ada0s1


gpart add -t freebsd-zfs ada0s1

ada0s1a added
Den ZFS-Pool anlegen
zpool create tanktom /dev/ada0s1

Den Bootloader konfigurieren


zpool export tanktom

gpart bootcode -b /boot/boot0 ada0

bootcode written to ada0


dd if=/boot/zfsboot of=/dev/ada0s1 count=1

1+0 records in
1+0 records out
512 byte transferred
dd if=/boot/zfsboot of=/dev/ada0s1a skip=1 seek=1024

128+0 records in
128+0 records out
65536 bytes transferred
Den Pool wieder importieren
mdconfig -a -t malloc -s 128m -u 2

210

newfs -O2 /dev/md2

<- O wie Oskar, keine Null

zpool export tanktom


mount /dev/md2 /boot/zfs
zpool import -o altroot=/mnt -o cachefile=/boot/zfs/zpool.cache -f tanktom

Prfsummen einschalten
zfs set checksum=fletcher4 tanktom

Datasets erstellen
zfs create -o canmount=off -o mountpoint=legacy tanktom/ROOT
zfs create -o canmount=on -o compression=on -o mountpoint=/ tanktom/ROOT/
archbsd-0
zfs create -o compression=on -o mountpoint=/home tanktom/HOME
zfs create -o compression=off -o mountpoint=/root tanktom/HOME/root

ZFS Swap
zfs create -V2G -o checksum=off -o org.freebsd:swap=on tanktom/swap

Jetzt fngt man an das System zu installieren. Dafr bentigt man eine
Internetverbindung.
dhclient bge0
pacstrap /mnt base

Nun mit chroot in das neue System wechseln und die /etc/fstab erstellen.
chroot /mnt
cat << EOF > /etc/fstab
? # Device Mountpoint FStype Options Dump Pass #
? proc /proc procfs rw 0 0

211

EOF

Jetzt folgendes zur /boot/loader.conf hinzufgen


cat << EOF >> /boot/loader.conf
? zfs_load=Yes
? vfs.root.mountfrom=zfs:tanktom/ROOT/archbsd-0
EOF

Zeitzone einstellen
ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime

Hostname einstellen
echo HOSTNAME=hostname > /etc/conf.d/hostname

Root Passwort ndern


passwd

ZFS weiter konfigurieren


Mit STRG+D die chroot-Umgebung verlassen und den ZFS-Speicher
kopieren:
cp /boot/zfs/zpool.cache /mnt/boot/zfs/zfspool.cache

Noch einstellen von wo ZFS das System booten soll.


zpool set bootfs=tanktom/ROOT/archbsd-0 tanktom

Nun den ZFS beim Start einstellen:


Ich habe irgendwo vorher FreeBSD-Init ausgewhlt
echo zfs_enable=YES > /mnt/etc/rc.conf

Im der originalen Anleitung wurde ein Minutenzeichen hinter YES


vergessen. Sollte ich vielleicht spter mal ndern.

212

Neustarten und hoffen, dass es klappt.System kofigurieren

System konfigurieren
Wo kann ich mich informieren?
Das FreeBSD-Handbuch ist schon mal eine gute Anlaufstelle.
http://www.freebsd.org/doc/de/books/handbook/book.html

Tastaturbelgung ndern
Einloggen
sudo sysinstall

eingeben

Auf Keymap wechseln


GermanISO auswhlen und besttigen

Fuer X - Das ist ein Workaround


Fr einmaliges ndern.
setxkbmap de

Fr eine permanente nderung:


Von X ausloggen, so dass man auf der Konsole ist.
sudo X -configure
sudo cp /root/xorg.conf.new /etc/X11
sudo nano /etc/X11/xorg.conf.new
Dort sucht man InputDevice und fgt folgendes hinzu:
Section "InputDevice"
Identifier

"keyboard0"

Driver

"kbd"

213

Option

"XkbLayout" "de"

EndSection

sudo mv /etc/X11/xorg.conf /etc/X11/xorg.conf

Ausloggen und Einloggen

IP-Adresse beim Systemstart


Statisch
ifconfig
sudo nano /etc/rc.conf
ifconfig_bge0="inet 192.168.1.183 netmask 255.255.255.0"
defaultrouter="192.168.1.1"

Terminal-Auflsung ndern
vidcontrol -i mode

Ich nehme die Auflsung 1280x720x32 - das war das hchste, was ich hatte.
vidcontrol MODE_379

Wenn das passt dann fgt man es der /boot/loader.conf hinzu.


sudo nano /boot/loader.conf
vesa_load=YES

in der rc.conf
sudo nano /etc/rc.conf
allscreens_flags=MODE_379

Neustarten!

214

Soundkarte einrichten
Bevor ich anfing die Karte einzurichten, habe ich mir erstmal den VLC
heruntergeladen, um die Soundkarte testen zu knnen.
Die Soundkarte war direkt einsatzbereit, ich musste nichts machen.
Wenn das nicht funktioniert, sollte das hier funktionieren.
Das Kernelmodul laden:
kldload snd_hda

Wenn dann der Ton luft, sollte man den Treiber zur /boot/loader.conf
hinzufgen.
sudo nano /boot/loader.conf
snd_hda_load="YES"

Kamera
Da das so gut mit der Soundkarte funktioniert hat, versuche ich direkt mal
die interne Webcam, vielleicht habe ich ja Glck. Nein, also spter hierhin
zurck.

grml-zsh
Ich mag an der Stelle von der Bash lieber Zsh mit einer grml-Konfiguration.
Das geht schnell und ich empfinde das als sehr angenehm.
sudo pacman -S zsh
sudo pacman -S wget

Ins Home-Verzeichnis herunterladen:


wget -O .zshrc http://git.grml.org/f/grml-etc-core/etc/zsh/zshrc

Jetzt kann man einfach mal probieren, ob zsh mit der grml-Konfiguration
funktioniert.
zsh

Wenn es dauerhaft aktiviert werden soll, einfach folgendes eingeben.


215

chsh -s /usr/bin/zsh

Standby
Um den Standby-Modus von der Konsole zu benutzen, muss man einfch zzz
eingeben. Dann wird berprft, ob ACPI oder APM genutzt wird und der
Rechner wird schlafen gelegt.
sudo zzz

Das funktioniert, aber leider wacht der Bildschirm nicht wieder auf....

USB-Massenspeicher einbinden
Damit der Speicher eingebunden werden kann, muss ein Verzeichnis fr
den Benutzer angelegt werden, der es einhngen soll.
sudo mkdir /mnt/benutzer
sudo chown benutzername:benutzergruppe /mnt/benutzername
mount /dev/da0s1 /mnt/username

Fehler beheben
Dateien wurden nicht heruntergeladen
Bei mir wurden zwei Dateien nicht komplett heruntergeladen, aber
installiert. Beim neuinstallieren wird das Paket aber nicht neu
heruntergeladen, sondern wird aus dem Pacman-Speicher installiert. Um
die Dateien neu herunterzuladen, muss man den Pacman-Speicher loeschen
und die Pakete danach neu installieren.
sudo pacman -Scc
sudo pacman -S cyrus-saslsudo pacman -S libxkbfile

Unterschrift nicht gueltig


Als ich LXDE installiert habe, war eine Unterschrift nicht gueltig.
216

error: vala: signature from Claudiu Traistaru <claudio2004 at gmail.com> is


unknown trust
:: File /var/cache/pacman/pkg/vala/0.20.1-2-x86_64.pkg.xy is corrupted
(invalid or
corrupted package (PGP signature)).
Man kann es installieren, in dem man in der Pacman Konfiguration das
SigLevel aendert, aber das ist ja nicht der Sinn einer Unterschrift.
nano /etc/pacman.conf
Dort
SigLevel = Never
Aber nach der Installation wieder auf den Ursprung ndern.

Firefox - LXDE
Firefox laesst sich nicht aus dem Panel starten, man muss es mit ALT+F2
starten.
Abiword Copy/Paste
Siehe http://gnats.netbsd.org/38133

Software
Bro
Abiword

Ich nutze eigentlich gerne LibreOffice, aber das Paket gab es noch zu
diesem Zeitpunkt nocht nicht. Da ich aber direkt alles Dokumentieren
wollte, habe ich Abiword installiert, das annhrend alle Funktionionen hat,
die ich brauche, aber es ist nicht so ressourcenhungrig.
pacman -S abiword abiword-plugins

217

Internet
Firefox
pacman -S firefox

Das Paket ist viel zu alt. 21.0-3 und ich glaube aktuell wre heute irgendwas
mit 26.. In dem Testing Repositorium wre Version 25.xx....
HTML5-Videos funktionieren nicht...

Multimedia
VLC

Das Paket installiert eine groe Menge an Abhngigkeiten, aber so hat man
schon groe Menge an Codecs automatisch installiert.
pacman -S vlc

Eigene Pakete packen


Bevor man anfngt eigene Pakete zu packern, muss man einige
Einstellungen vornehmen.
pacman -S abs
pacman -S base-devel

Danach abs aktualisieren:


sudo abs

Dort befindet sich irgendwie noch nichts.

218

Arch BSD forken


Abbild herunterladen
unxz ARCH...Datum.img.xz
Danach mit md das Filesystem mounten
You mean an ISO9660 image? Use an md(4) device. See 16.12.2 of
the handbook.
First create a file-backed md device:
# mdconfig -a -t vnode -f ArchBSd....img -u md0
Then you mount it somewhere:
# mount /dev/md0s1 /mnt/benutzer
When you are done with it, unmount the filesystem and then
detach the md
device:
# umount /mnt
# mdconfig -d -u 0
Dateirechte setzen: Jeder kann alles
In den Ordner ber Image wechseln
sudo find image -type d -exec chmod 777 {} \;

219