Arch Linux

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 möchte 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 Oberfläche........................................................................................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

description

Arch Linux

Transcript of Arch Linux

Page 1: Arch Linux

Arch Linux auf einen Lenovo B550 Laptop

Version: 0.00.020 alpha

Datum: 06. Januar 2014

InhaltsverzeichnisVorwort................................................................................................................6Lizenz..................................................................................................................6FAQ......................................................................................................................7

Warum Arch Linux?.........................................................................................7Ich möchte mich einbringen, was kann ich tun?.............................................7Gibt es so was ähnliches nicht schon?............................................................7Machst du dich mit einem Skript deiner Konfiguration nicht angreifbar?.....7Wie kann man dich erreichen?........................................................................7

Hardware............................................................................................................8Installation von Arch Linux.................................................................................9

Vorbereitung....................................................................................................9Abbild herunterladen...................................................................................9Abbild auf einen USB-Massenspeicher schreiben.....................................10

Windows.................................................................................................10Linux......................................................................................................10Mac-OS..................................................................................................10

Startreihenfolge im BIOS ändern..............................................................10Basissystem vom Medium installieren..........................................................10

System - Grundlagen.........................................................................................16Manpages..................................................................................................16Systemd.....................................................................................................17Pacman......................................................................................................18die Shell.....................................................................................................18

System konfigurieren........................................................................................19Netzwerk.......................................................................................................19Cronjobs........................................................................................................19automatische Zeitsynchronisation................................................................19Wake on LAN.................................................................................................20

Grafische Oberfläche........................................................................................22X-Server.........................................................................................................22

mehrere Bildschirme.................................................................................23Deutsche Tastaturbelegung einstellen......................................................24.xinitrc erstellen........................................................................................24Touchpad...................................................................................................25

LXDE.............................................................................................................26Gnome...........................................................................................................27

Tastaturfeatures........................................................................................28Gnome anpassen........................................................................................29

1

Page 2: Arch Linux

gsettings................................................................................................29GNOME tweak tool................................................................................30Thema ändern........................................................................................30Icons ändern..........................................................................................30Displaymanager.....................................................................................31Startprogrammeinstellungen.................................................................31

XFCE.............................................................................................................35Pakete installieren............................................................................................42

Amateurfunk..................................................................................................42HamRadioTrainer......................................................................................424nec2.........................................................................................................43Gpredict.....................................................................................................43

Büro...............................................................................................................46LibreOffice.................................................................................................46

Rechtschreibprüfung.............................................................................46Tomboy......................................................................................................47

Internet.........................................................................................................48Firefox.......................................................................................................48Thunderbird...............................................................................................50Transmission..............................................................................................51Google Earth..............................................................................................51Tor - The Onion Router..............................................................................52

Multimedia....................................................................................................55VLC............................................................................................................55Brasero......................................................................................................55Transkritionsprogramme...........................................................................55

Transcribe..............................................................................................55Gimp..........................................................................................................56

Sonstiges.......................................................................................................56Galculator:.................................................................................................56Gnome-Calculator......................................................................................57Genius........................................................................................................57

Spiele.............................................................................................................57TORCS – The Open Racing Car Simulator................................................57

Systemprogramme........................................................................................58Yaourt........................................................................................................58DHCP.........................................................................................................59Java............................................................................................................59Zsh mit grml-Konfiguration.......................................................................60zmap..........................................................................................................61guake.........................................................................................................61Gvim...........................................................................................................62Screenreader.............................................................................................62

Orca.......................................................................................................62espeak....................................................................................................62

Wireshark..................................................................................................63Nmap.........................................................................................................63SSH............................................................................................................64Filezilla......................................................................................................64Gnome Archive Manager - File-Roller.......................................................64

2

Page 3: Arch Linux

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

Wine...........................................................................................................66Iris Erkennung...........................................................................................68

Hardware konfigurieren...................................................................................70CPU-Frequenz...............................................................................................70Soundkarte....................................................................................................71Internen PC-Speaker deaktivieren................................................................71WLAN............................................................................................................71Optisches Laufwerk.......................................................................................75Kamera..........................................................................................................75Optimierungen..............................................................................................77

acpi............................................................................................................77Standby......................................................................................................79Ruhezustand..............................................................................................79

Fehler beheben.................................................................................................80Fast TSC calibration failed............................................................................80Swap..............................................................................................................81Grub-Fehler beheben....................................................................................82

CHROOT über das Live-Medium...............................................................82Sicherheitsrisiken minimieren..........................................................................83

AUR – ArchLinux User-Community Repository.............................................83Offene Ports...................................................................................................83iptables..........................................................................................................83Halb kaputte Dinge sollte man nicht mehr benutzen...................................88Passwörter.....................................................................................................88

Schwache Passwörter................................................................................88NetworkManager......................................................................................89

Virenscanner.................................................................................................89UPnP..............................................................................................................89Root-Benutzerkonto deaktivieren.................................................................90

Angriff ist die beste Verteidigung.....................................................................91Black Arch.....................................................................................................92Schwachstellen finden..................................................................................92

OpenVAS....................................................................................................94Metasploit................................................................................................102

Eigenes Repositorium erstellen..................................................................110Lokal........................................................................................................110Server......................................................................................................111Sshfs........................................................................................................111Eigene Pakete signieren..........................................................................112

Steganographie...........................................................................................116Bordmittel................................................................................................117Steghide...................................................................................................118Outgess....................................................................................................122Steganalyse.............................................................................................123

Kryptographie.............................................................................................134Das gesamte System verschlüsseln.........................................................134Truecrypt.................................................................................................134

Spionageabwehr & Zensurgegenmaßnahmen................................................134

3

Page 4: Arch Linux

DNS.............................................................................................................135Pdnsd.......................................................................................................138

Pacman........................................................................................................147Mirrorlist und pacman.conf.....................................................................147Pacman durch das Tor-Netzwerk.............................................................148

Firefox.........................................................................................................148Suchmaschinen...........................................................................................148

Tipps & Tricks.................................................................................................149Zip-Dateien entpacken................................................................................149Dateien mit wget von Sourceforge herunterladen......................................149Rechner zeitgesteuert herunterfahren.......................................................149Startreihenfolge im Grub2 ändern..............................................................149Zeilennummer im nano anzeigen................................................................149Prüfsumme von Strings ausgeben...............................................................150Automatisches einloggen............................................................................150Startgeschwindigkeit optimieren................................................................151

Desktopbenachrichtigungen über die Shell............................................161Exif-Einträge bearbeiten oder entfernen................................................162

Gimp.....................................................................................................162ExifTool................................................................................................162

Eigenen Kernel bauen.....................................................................................163Probleme ohne Lösungsansatz.......................................................................165Tonstudio.........................................................................................................166

Jack2............................................................................................................166Software......................................................................................................169

Open-Source-Software............................................................................169Bristol..................................................................................................169Qsynth..................................................................................................169Ardour3................................................................................................169Linux Multi Media Studio....................................................................170Rosegarden..........................................................................................170Hydrogen.............................................................................................170Non-DAW.............................................................................................170TerminatorX.........................................................................................171Timidity................................................................................................171Mixxx....................................................................................................171Notam Radium.....................................................................................171Linuxsampler.......................................................................................171

Kommerzielle Software...........................................................................174Renoise................................................................................................174Bitwig Studio.......................................................................................174Ableton Live.........................................................................................175Harrison Mixbus..................................................................................175

Hardware....................................................................................................176Tascam US-800........................................................................................176Novation Launchpad................................................................................178Akai APC40..............................................................................................179Hercules DJ Control Mp3 e2...................................................................179

Echtzeitkernel:............................................................................................180Performance-Messungen.............................................................................183

4

Page 5: Arch Linux

Externe Hardware...........................................................................................184Brother MFC-7360N...................................................................................184PS3 Controller.............................................................................................186Bluetooth USB-Sticks..................................................................................187

Entwicklungsumgebungen..............................................................................189Android........................................................................................................189

Android-SDK installieren.........................................................................189Android-Studio.........................................................................................190

Hallo Welt............................................................................................192Eclipse.....................................................................................................193

Hallo Welt............................................................................................193Emulator..............................................................................................194

Spielend programmieren lernen.....................................................................195Robocode.....................................................................................................195Hamster.......................................................................................................200AntMe!.........................................................................................................200Scratch........................................................................................................201

Ein eigenes Live-Medium erstellen.................................................................201Archiso........................................................................................................201

Arch Linux forken...........................................................................................204FAQ..............................................................................................................204

Warum denn noch eine neue Linux-Distribution?...................................204Ja, aber warum …?..................................................................................204

Vorbereitung................................................................................................204ToDo................................................................................................................205weiterführende Informationen........................................................................206Arch BSD.........................................................................................................208

Arch BSD vs. Arch Linux.............................................................................208ArchBSD herunterladen..............................................................................208Vorbeitung...................................................................................................209System installieren......................................................................................209

ZFS mit MBR-Systemen..........................................................................209System konfigurieren..................................................................................213

Wo kann ich mich informieren?...............................................................213Tastaturbelgung ändern..........................................................................213IP-Adresse beim Systemstart...................................................................214Soundkarte einrichten.............................................................................215Kamera....................................................................................................215grml-zsh...................................................................................................215Standby....................................................................................................216USB-Massenspeicher einbinden..............................................................216

Fehler beheben............................................................................................216Dateien wurden nicht heruntergeladen..................................................216Unterschrift nicht gueltig........................................................................216Firefox - LXDE.........................................................................................217

Software......................................................................................................217Büro.........................................................................................................217

Abiword................................................................................................217Internet....................................................................................................218

Firefox..................................................................................................218

5

Page 6: Arch Linux

Multimedia...............................................................................................218VLC......................................................................................................218

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

VorwortHier handelt es sich nicht um eine Installationsanleitung, sondern um Notizen,die ich mir bei der Installation gemacht habe, die ich anschließend sortiert habe. Es dient mir in erster Linie als Installationsübersicht, 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 Primärziel, es wurde in erster Linie für mich geschrieben. Ich werde das Dokument noch weiter ausbauen, aber es wird wahrscheinlich nie vollständig sein. Das wäre 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 dafür verantwortlich zu machen.

LizenzEigentlich muss man das nicht erwähnen, da es automatisch so ist, wenn keine andere Lizenz definiert ist. Alle Rechte liegen ausdrücklich bei mir. Ich mache das nur, damit ich später eine geeignete freie Lizenz wählen kann. Unter Umständen möchte ich das Dokument oder Teile davon in das Arch Linux Projekt zurückfließen lassen. Wenn ich jetzt voreilig eine freie Lizenz wähle, könnte es sein, dass diese Lizenzen inkompatibel zueinander sind.

Letztendlich kann man hiermit machen, was man will, ich werde mir nicht die Mühe machen, Verstöße 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 erwähnt, weil sich dieses Dokument auf die Installation von Arch Linux auf explizit diesen Laptop bezieht und stellt keine Werbung, Empfehlung, Kritik oder Wertung dar.

6

Page 7: Arch Linux

FAQ

Warum Arch Linux?

Das ist mehr oder weniger eine philosophische Frage. Beherrschen wir Menschen die Technik oder beherrscht die Technik uns? Für 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 Möglichkeit ein Linux von Grund auf aufbauen zu können, ohne dass ich mir eine eigene Distribution von ganz unten bauen muss. Nebenbei kann ich so meine Computerkenntnisse erweitern.

Ich möchte mich einbringen, was kann ich tun?

Es gäbe 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 anfällt, aber zum jetzigen Zeitpunkt ist noch keine Mitarbeit möglich. Spätestens wenn eine geeignete freie Lizenz gefunden wurde, wird es auch eine Möglichkeit 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 hätte verstanden. Und wenn ich dann versuche es in Worte zu fassen, fällt mir auf, dass ich eigentlich gar nichts verstanden habe. Wenn man selbst einen Ausdruck für einen Sachverhalt findet, werden die Dinge oft klarer.

Machst du dich mit einem Skript deiner Konfiguration nicht angreifbar?

Möglich. Ich versuche wichtige Dinge zu anonymisieren, aber natürlich macheich auch Fehler und zeige hier unter Umständen auch Einfallstore. Ich habe da jetzt aber auch nicht so ein ungutes Gefühl, ich beschäftige mich auch damit alle sicherheitsfragwürdigen Einstellungen nach und nach abzusichern. [Aber falls dir etwas auffällt, kannst du dich gerne bei mir melden.]

Wie kann man dich erreichen?

Noch gar nicht.

7

Page 8: Arch Linux

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. Auflösung: 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

Page 9: Arch Linux

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 Bezugsmöglichkeiten inklusive einer Übersicht der Spiegelserver.

https://www.archlinux.org/download/

Nach dem herunterladen sollte man immer die MD5- oder besser die SHA1-Prüfsumme kontrollieren. Zum einen, um auszuschließen, 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 Prüfsumme nicht übereinstimmte. Falls die Prüfsumme nichtübereinstimmt, sollte man die Datei nicht benutzen.

Das Abbild kann man dann auf eine CD köcheln, in ein virtuelles Laufwerk einbinden oder direkt auf einen USB-Massenspeicher schreiben.

9

Page 10: Arch Linux

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-Gerät schreiben zu können, 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-Gerät.

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 wählt.

Basissystem vom Medium installieren

Wenn die Startreihenfolge richtig eingestellt wurde, bekommt man jetzt einen Auswahlbildschirm zu sehen. Hier wird nur erklärt, wie man ein 64-bit-Systemaufsetzt. Dafür X86_64 auswählen.

Es gibt keine grafische Arbeitsumgebung zur Installation. Bis man selbst eine grafische Oberfläche installiert hat, muss man alles über die Befehlszeile konfigurieren.

Deutsche Tastaturbelegung laden

loadkeys de-latin1

vorhandene Festplattenpartitionen löschen (mit fdisk, cfdisk oder gdisk)

Festplatte mit Rauschen füllen, um persönliche Daten einer alten Installation

10

Page 11: Arch Linux

zu vernichten. Dafür wird die Festplatte drei mal mit zufälligen Nullen und Einsen überschrieben. Das dauert.

shred -v /dev/sda

Festplattenpartitionen erstellen

gdisk /dev/sda

Partition Label Dateisystem Größe Typ

sda1 arch ext4 20GB 8300

sda2 swap 9GB 8200

sda3 boot ext2 600 MB 8300

sda4 home ext4 Rest 8300

sda128 3 MB ef02

Ich habe eine GUID-Partitionstabelle (GPT) eingesetzt, obwohl das eigentlich in meinem Fall gar nicht nötig wäre. Da es sich aber auch für herkömmliche Platten eignet, die Sektoren in 512 MB verwalten, habe ich es hier einfach malausprobiert. Hier wird nicht zwischen primären und sekundären Partitionen unterschieden und es können bis zu 128 Partitionen hinzugefügt werden. GUID-Partionen sind eigentlich für UEFI-Systeme gedacht und können nur unter Einschränkungen mit BIOS-Systemen arbeiten.

sda1 ist die Rootpartition mit einem ext4-Dateisystem. Sie beinhaltet später 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 benötigt sie nicht, damit das System läuft. Hierbei handelt es sich um eine Möglichkeit den Arbeitsspeicher auszulagern. Die Größe ist mit 9 GB sehr großzügig bemessen. 6 GB hätten bestimmt vollkommen ausgereicht. Als Richtwert kannman 1,3 bis 2 mal die Größe des Arbeitsspeichers nehmen. Bei den modernen Rechner reicht im Normalfall eine Größe von 1-2 GB, wenn man nicht gerade Echtzeitaudio-/Videobearbeitung nutzt. Aber da ich später den Ruhezustand - Hibernation – Suspend to Disk (S4?) nutzen möchte, brauche ich mindestens die Größe des Arbeitsspeichers plus Reserve, um das komplette System in die Auslagerungspartion zu verschieben.

sda3 enthält später den Linux-Kern und ein Teil des Bootloaders grub2. Die Partition ist bestimmt auch etwas zu groß dimensioniert. Ich habe mich hier für ein ext2-Dateisystem entschieden, welches kein „Journaling“ unterstützt.

11

Page 12: Arch Linux

sda4 enthält später die Benutzer-Verzeichnisse, wo alle privaten Daten gespeichert werde. Die Größe entspricht dem, was übrig geblieben ist.

sda128 ist eine Partition, die man benötigt, wenn man ein BIOS benutzt. Dort wird Speicher für den Bootloader grub2 reserviert. Die Partition bleibt unberührt, grub2 kümmert sich selbst um die Einrichtung.

Das ist Patentrezept, man kann es natürlich nach belieben ändern. Man könnte 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

Page 13: Arch Linux

dhcpcd enp7s0

ping -c3 google.de

Spiegelserver konfigurieren

Zuerst ein Backup erstellen

cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.bak

Vier oder fünf Spiegelserver aus Deutschland auswählen

Je niedriger der Score, desto aktueller ist der Spiegelserver.

Benutze STRG-k um überflüssige Zeilen zu löschen

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

Page 14: Arch Linux

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 für 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

Page 15: Arch Linux

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 hinzufügen:

# Grub Fix, um grub.cfg zu erzeugen

GRUB_DISABLE_SUBMENU=y

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

grub-install /dev/sda

15

Page 16: Arch Linux

chroot-Umgebung sauber verlassen und neu starten

STRG+D oder exit

umount /mnt/boot

umount /mnt/home

umount /mnt

systemctl reboot

Herzlichen Glückwunsch und Willkommen zu Deinem Arch Linux-Basissystem.

Wenn das hier kein Testbetriebssystem wäre, würde ich hier das erste Backup machen, was ich einfach zurück spiele, wenn was schief geht.

Als root mit dem neuen Passwort anmelden.

System - GrundlagenBevor 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 fündig. Mit q wird die Ausgabe beendet.

Ein Beispiel für systemctl.

man systemctl

Um die Manpages auf deutsch lesen zu können, muss man diese zuerst installieren.

pacman -S man-pages-de

16

Page 17: Arch Linux

Es wurden noch lange nicht alle übersetzt, aber es sind schon einige. Aber dasist nur ein Tropfen auf den heißen Stein.

https://www.archlinux.org/packages/community/any/man-pages-de/files/

Systemd

Systemd ist ein Manager, der das System und die dazugehörigen Dienste verwaltet. Wenn ich das richtig verstanden habe, ist das der Prozess, der als erstes startet. Da Prozesse häufig voneinander abhängig sind, wird durch Parallelisierung für eine bessere Auslastung schon beim Systemstart gesorgt, und somit weniger Verzögerung 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 wählt es automatisch aus.

Weitere häufiger genutzte Befehle wären:

systemctl reboot System neustarten

systemctl poweroff System ausschalten

systemctl suspend Suspend-to-RAM

systemctl hibernate Supend-to-Disc

Fortsetzung folgt

17

Page 18: Arch Linux

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 schätzen lernt. Während 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 kümmert, dass eine große Vielzahl von Software zur Verfügung steht und gepflegt wird. Programme, Bibliotheken, etc. stehen dafür in Form von Paketen zur Verfügung. 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

Für Gnome3 gibt es auch eine grafische Integration von Pacman. Dazu später mehr unter Gnome.

die Shell

Wenn man Befehle in die Befehlszeile eingibt, müssen diese an das Betriebssystem übergeben werden. Dafür benötigt man einen Interpreter, den man Shell nennt. Unter Arch Linux ist das standardmäßig die bash. Dazu gibt es natürlich auch Alternativen. Ich habe vor Jahren mal Zsh mit grml ausprobiert und erinnere mich, dass ich sehr zufrieden war . Dazu später mehr, jetzt erst mal ein paar Grundlagen zur bash.

18

Page 19: Arch Linux

System konfigurieren

Netzwerk

IP-Adresse über DHCP beim Systemstart beziehen

systemctl enable dhcpcd@enp7s0

neuen Benutzer hinzufügen & 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

Page 20: Arch Linux

später zur PTB ändern

Zugriffskontrolle

nomodify hinzufügen

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 geändert wurde. Falls das noch nicht geschehen ist, ein bisschen warten bis da „Zeit geändert“ steht und danach noch mal mit date überprüfen.

journalctl -f

Wake on LAN

(nicht getestet)

… muss im BIOS aktiviert werden. Nicht alle Motherboards unterstützen 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

Page 21: Arch Linux

Überprüfen, 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 füge 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

Page 22: Arch Linux

Grafische Oberfläche

Hier gibt es so viele Möglichkeiten, 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

Für Nvidia

xf86-video-nouveau

Kernel Mode Setting (KMS)

nano /etc/mkinitcpio.conf

Dort folgendes eintragen

Modules=“nouveau“

Anschließend den Treiber einbauen.

mkinitcpio -g /boot/initramfs-linux.img

Für ATI

Ich versuchen hier erst mal den OpenSource-Treiber:

sudo pacman -S xf86-video-ati

Damit man die 3D-Unterstützung 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

Page 23: Arch Linux

mehrere Bildschirme

Damit die Bildschirme bereits beim laden des X Servers die korrekte Auflösung haben, muss die Datei /etc/X11/xorg.conf.d/20-nouveau.conf erstelltund konfiguriert werden. Um mögliche Auflösungen sowie genutzte Anschlussnamen anzuzeigen folgenden Befehl nutzen.

xrandr

Typische Anschlussnamen sind LVDS-1 (Laptop Bildschirm), VGA-1, DVI-1 oder HDMI-1. Mögliche Auflösungen werden unter dem Anschlussnamen ausgegeben. Beispielhafte Konfiguration:

Section "Monitor" #Laptop Bildschirm Identifier "Laptop" Option "Primary" "True" # Auf dem primären Display wird bspw. der Login-Manager angezeigt Option "PreferredMode" "1366x768" # korrekte Auflösung eintragenEndSection

Section "Monitor" #externer Bildschirm Identifier "Extern" Option "RightOf" "Laptop" # Auch "LeftOf" möglich Option "Primary" "False" Option "PreferredMode" "1280x1024" # korrekte Auflösung eintragenEndSection

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 # Höhe und Breite des erzeugten "Screens" (1280 + 1280 = 2560) EndSubSectionEndSection

Section "ServerLayout" Identifier "Layout0" Screen "Screen0"EndSection

(Benutzer wurde nicht zur Gruppe video hinzugefügt. Das habe ich nachgeholt, Siehe → Kamera.)

23

Page 24: Arch Linux

Deutsche Tastaturbelegung einstellen

Die Datei /etc/X11/xorg.conf.d/20-keyboard.conf erzeugen und folgendes hinzufügen:

Section "InputClass" Identifier "keyboard" MatchIsKeyboard "yes" Option "XkbLayout" "de" Option "XkbVariant" "nodeadkeys"EndSection

Man könnte 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. Ichhabe 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. Später, als die GUI lief, habe ich denText aus /etc/skel/.xinitrc kopiert.

nano ~/.xinirc

Minimalkonfiguration

#!/bin/sh

exec startlxde

Später sollte das dann so aussehen.

#!/bin/sh

#

# ~/.xinitrc

#

# Executed by startx (run your window manager from here)

24

Page 25: Arch Linux

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

hinzufügen (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

Page 26: Arch Linux

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

Es gibt noch mehr Optionen. Alle verfügbaren 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 wählt dann seine Einstellungen neu.

LXDEWebpräsenz: 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

Page 27: Arch Linux

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

GnomeWebpräsenz: http://www.gnome.org/

Ich habe mich überwunden jetzt auch mal eine schwergewichtige Desktop-Umgebungen zu installieren, obwohl ich dieses Testsystem eigentlich so klein wie möglich halten wollte, um Fehler einfacher finden zu können.

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. Später werde ich dann nur die Pakete hinzufügen, die ich brauche.

Da ich keinen Login-Manager benutze, muss ich die ./xinitrc bearbeiten

nano ~/.xinitrc

und dort

exec gnome-session

hinzufügen. Die anderen exec-Zeilen müssen kommentiert werden.

27

Page 28: Arch Linux

Es gibt noch die Möglichkeit eine klassische Ansicht zu starten.

exec gnome-session –session=gnome-classic

Funktioniert soweit ganz gut, aber der Start dauert recht lange und der Lüfterspringt auch häufiger mal an. Den habe ich jetzt die Tage mit LXDE nicht ein mal wahrgenommen. Fairerweise muss man sagen, dass ich noch keine Maßnahmen zur Optimierung durchgeführt habe.

Pakete, die ich momentan nicht brauche (mit allen Abhängigkeiten gelöscht):

Cheese Wer ist auf die Idee gekommen, das in das Kernpaket zu packen? Kein Editor drin, aber ein Prg für 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, nützliche 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 → Tastaturkürzel.

28

Page 29: Arch Linux

Gnome anpassen

Beim ersten Start kommt Gnome3 etwas nackt daher. Es gibt eine Vielzahl vonEinstellungsmöglichkeiten. Hier gibt es kein Patentrezept, sondern es muss, oder besser kann, jeder den Desktop nach seinen Bedürfnissen anpassen. Ich kann hier nur ein paar Möglichkeiten aufzeigen, wie man dies bewerkstelligt.

gsettings

Mit gsettings steht ein mächtiges Werkzeug für die Befehlszeile zur Verfügung, um Gnome an seine Bedürfnisse anzupassen. Es wurde automatisch mit dem Paket gnome installiert.

Die Ausgabe von gsettings sieht folgendermaßen 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 Schlüssel in einem Schema auflisten

list-children Unterlemente eines Schemas auflisten

list-recursively Schlüssel und Werte rekursiv auflisten

range Bereich eines Schlüssels abfragen

get Wert eines Schlüssels ermitteln

set Wert eines Schlüssels setzen

reset Wert eines Schlüssels zurücksetzen

reset-recursively Werte aller Schlüssel eines gegebenen

Schemas zurücksetzen

writable Prüfen, ob Schlüssel schreibgeschützt 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

Page 30: Arch Linux

org.gnome.shell.calendar

[...]

org.gnome.desktop.a11y.keyboard

org.gnome.desktop.thumbnailers

...

GNOME tweak tool

Dafür installiert man das Paket gnome-tweak-tool mittels Pacman und kann es danach mit ALT-F2 starten. Im Menü heißt es Optimierungswerkzeug. Hier gibt’s eine Menge Einstellmöglichkeiten, das zu erklären würde den Rahmen sprengen.

pacman -S gnome-tweak-tool

Thema ändern

Das voreingestellte Thema nennt sich Adwaita und ist Teil von gnome-themes-standard. In diesem Paket ist zusätzlich 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 später wieder deinstallieren. Aber es gibt wirklich ausreichend Modifikationen.

yaourt -Rss delorean-dark-3.10

Icons ändern

30

Page 31: Arch Linux

Displaymanager

sudo systemctl enable gdm

Startprogrammeinstellungen

Welche Programme beim Start von Gnome gestartet werden sollen, kann man natürlich auch einstellen. Bitte nur deaktivieren, nicht löschen. Das erschwert eine Fehlersuche, wenn es mal nicht so klappt, wie es soll.

ALT+F2 und gnome-session-properties eingeben.

Um das nervige Blub-Geräusch im zu entfernen, muss man unter den Audioeinstellungen die Klangeffekte ausschalten. Da bleibt mir fast das Herz stehen, wenn ich vorher Musik gehört habe und das Mischpult ¾ aufgedreht ist.

Pacman Integration für Gnome:

pacman -S gnome-packagekit

Damit das Packagekit automatisch nach Aktualisierungen sucht, muss noch das Paket gnome-settings-daemon-updates installiert werden. Zusätzlich benötigt 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 auswählen.

Probleme:

Das kann die Lüfterdrehzahl nicht anzeigen. Dafür lm_sensors installieren.

pacman -S lm_sensors

Danach als root starten:

sensors-detect

Ausgabe:

Intel digital thermal sensor... Success!

(driver `coretemp')

31

Page 32: Arch Linux

Wenn man auf die Frage, ob man /etc/conf.d/lm_sensors erstellen möchte, 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 auswählen.

Beispiel Drehzahl an einem anderen Rechner

sudo modprobe w83627hf

Device or resource busy

folgendes hinzufügen:

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: Lüftersteuerung

w83627hf

Da fehlt noch Lüfter1, aber Lüfter2 läuft 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 läuft, kann man es beim Systemstart mitstarten.

sudo systemctl enable fancontrol

sudo systemctl start fancontrol

32

Page 33: Arch Linux

Probleme:

*Manche installierte Programme werden nicht direkt oder gar nicht zu der Programmliste hinzugefügt. Manche sind erst nach einem Neustart von Gnome verfügbar.

*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 drücken und r eingeben. Jetzt steht Rechtsklick → Neues Dokument → neue_Textdatei zur Verfügung.

Aber da ich das komplett boykottiere, würde ich Nautilus den Rücken 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 Häckchen beiFiles entfernen. Dann mit Hinzufügen einen neuen Eintrag erstellen.

Name: PCManFM Dateimanager

Befehl: pcmanfm -n

Kommentar: Als Ersatz für Nautilus

Danach abmelden und neu anmelden.

Der ist aber auch nicht wirklich schön, aber man kann ja auch andere Dateimanager installieren.

*Man kann nur Abmelden, Herunterfahren oder Neustart wählen. Wo sind die anderen Auswahlmöglichkeiten?

So wie ich das verstehe, ist das kein Fehler. Das ist so von den Entwicklern gewollt.

Fehlerbehebung:

Den Benutzer zur Gruppe power hinzugefügt.

gpasswd -a benutzer power

Das gnome-shell-plugin Alternative Status Menu könnte Abhilfe schaffen, aber

33

Page 34: Arch Linux

es lässt sich nicht installieren. Siehe weiter unten.

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

Standby lässt sich mit ALT drücken bewerkstelligen, aber für den Ruhezustand gibt es nur die Möglichkeit über die Konsole. Also keine Ahnung,was sich die Entwickler dabei gedacht haben.

*Entweder war die Rechtschreibprüfung nicht installiert oder ich habe sie aus Versehen deinstalliert. Dafür aspell-de oder besser hunspell-de installieren, dasfunktioniert 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 denexternen 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 gnome-shell-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, müsste ich die Webseite besuchen. Ich möchte 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 Verfügung und die gnome-shell macht beim starten Probleme. Beim Start fehlt das Hintergrundbild auf dem primären 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 hätte, wenn ich das Paket gnome-shell-extensions neu installiert hätte.

34

Page 35: Arch Linux

* 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 Schlüsselbund habe, also bezweifle ich, dass das Passwort „ordentlich“ gespeichert wurde.

* Das ist kein Fehler, aber ich würde mir wünschen, wenn man mit ALT+F2 etwas öffnen möchte, dass es automatisch vervollständigt 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 xfce4pacman -S xfce4-goodiespacman -S human-icon-theme

nano .xinitrc

exec startxfce4

Als Ersatz für guake (siehe Software) kann man hier unter Einstellungen → Einstellungen → Tastatur → Tastaturkürzel folgendes eingeben:

xfce4-terminal –-drop-down

Jetzt muss man sich nur noch eine Taste aussuchen.

35

Page 36: Arch Linux

Eye Candy:

Docky

Mal ein bisschen Zucker für 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 Abhängigkeiten für compiz-xfce

gconf-editor: Adjust window decorator settings (/apps/metacity/general/)

==> Packages no longer required by any installed package:

intltool pyrex

Selbstverständlich startet es nicht automatisch. Man muss den laufenden Fensterdekorator ersetzen.

compiz --replace &

Wer mal vergessen hat die Häkchen für das Speichern der Session zu entfernen, dann klappt es auch mit dem Compiz-Autostart.

rm -r ~/.cache/sessions

36

Page 37: Arch Linux

Der aktivierte „Würfel“ hat nur 2 Seiten :-/

Allgemein → Allgemeine Optionen → Tab Desktop Größe → auf 4:1:1 stellen

CD/DVD automatisch mit VLC öffnen

Einstellungen → Einstellungen → Wechselträger und Medieneinstellungen

Reiter Datenträger = alle Checkboxen markiert (man kann natürlich auch eineAuswahl 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, lädt 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

Page 38: Arch Linux

Mit Alt+Tab kann man nur Fenster aufrufen, die auf der jeweiligen Arbeitsfläche liegen.

Man könnte alle Arbeitsflächen mit STRG-ALT+TAB nutzen, aber da verkrampfen mir die Finger.

Normalerweise stellt man das in der Fensterverwaltung ein, aber mit Compiz lässt sich die nicht öffnen.

Ich habe das jetzt im Compiz-Einstellungs-Manager eingestellt. Plug-in Shift Switcher aktivieren und dort das Tastaturkürzel für alle Arbeitsflächen auf Super+Tab geändert. Sieht auch noch schöner aus.

Lösung:

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 wählen und unten Links auf Sitzung speichern drücken. Ausloggen & Einloggen!

Um die Änderungen wieder zurückzunehmen, 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 verändert, weiß aber nicht was, jetzt ist das Problem weg.

38

Page 39: Arch Linux

Desktop-Suchmaschine

Ich habe mir abgewöhnt meine Dateien zu sortieren. Bei mehreren Terabyte ist das schlichtweg zu viel Arbeit. Deswegen nutze ich gerne Desktopsuchmaschinen. Unter XFCE möchte 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 stündlich aktualisieren. Das sollte ausreichen.

sudo cp /etc/cron.daily/updatedb /etc/cron.hourly/

Mir persönlich 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 hinzufügen. Da fehlt wohl ein Plugin, lame habe ich installiert. Brasero macht das ohne zu mucken.

39

Page 40: Arch Linux

Dual Monitor mit XFCEZuerst ü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 75.0 60.0

832x624 74.6

800x600 75.0 60.3

640x480 75.0 60.0

720x400 70.1

Jetzt testet man die Einstellungen:

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

Die Adapterbezeichnungen können ggf. abweichen, die muss aus der oben gezeigten Ausgabe übernehmen und man kann right-of natürlich 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

Page 41: Arch Linux

man sie mit XFCE automatisch starten.

Gehe zu Einstellungen → Einstellungen → Sitzungen und Startverhalten und wähleden Reiter Automatisch gestartete Anwendungen. Dort geht man Hinzufügen, gibt die oben genannte Zeile ein und setzt das Häkchen zum Autostart.

41

Page 42: Arch Linux

Pakete installieren

Amateurfunk

… ist grundsätzlich ein Hobby, das sich mit drahtloser Kommunikation beschäftigt. Ein Funkamateur ist jemand, der sich aus purer Neigung mit demThema beschäftigt, ohne kommerzielle Interessen zu verfolgen. Man wird Funkamateur, in dem man eine staatliche Prüfung 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 Hasensehr dagegen sträuben. Meiner Meinung nach ist Funkamateur heutzutage eine Bezeichnung, womit man sich selbst nur einschränkt. Ich würde es besser Nachrichten- und Kommunikationsamateur nennen. Wer mal reinhörenwill, sich aber kein Funkgerät kaufen möchte, kann das z.B. über http://websdr.org/ tun. Dort findet man Stationen, die die Signale mittels einesdigitalen Empfängers direkt live über das Internet streamen. Eine gute Übersicht über Linuxsoftware zum Amateurfunk findet man hier. http://radio.linux.org.au/

HamRadioTrainerWebpräsenz: http://www.oliver-saal.de/software/afutrainer/

Da ich unbedingt noch mal was für die Amateurfunkprüfung lernen muss, habe ich den HamRadioTrainer installiert. Das AUR enthält das Paket afutrainer und kann mit yaourt installiert werden. Es wird die Qt-Bibliothek Version 4.2.2 oder höher benötigt. 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

Page 43: Arch Linux

4nec2Webpräsenz: http://www.qsl.net/4nec2/

... ist ein 2D/3D Antennensimulator, um Antennen gestalten und optimieren zukönnen. Ich meine, dass es Open-Source wäre, finde aber nur ein Windowsdateien. Zur Not muss man versuchen es unter Wine zu installieren.

Eine Altenative wäre 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/xnec2c/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 schlägt 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 für selbstgebaute Pakete erstellen.

mkdir gpredict

cd gpredigt

43

Page 44: Arch Linux

Jetzt lädt 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 benötigt.

- 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 läuft 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 ausführen:

cd bin

./gpredict

Man hat jetzt wohl noch keine Hamlib, deswegen kann man weder den Rotor nachführen, noch das Funkgerät 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

Page 45: Arch Linux

2)

Um doch das AUR-Paket doch nutzen zu können, versuche ich es zu bearbeiten. Der Fehler war, dass grig nicht kompilierte, das ist ein grafisches Programm, um das Funkgerät zu steuern. Das brauche ich erst mal nicht grafisch.

http://groundstation.sourceforge.net/grig/

Wer die hamlib braucht, damit der Rotor automatisch nachführt und das Funkgerät automatisch den Dopplereffekt ausgleicht, kann sie aus dem AUR installieren. Die ist zwar als veraltet markiert, aber das dürfte eigentlich die aktuelle Version sein. Amateurfunk ist halt nur ein Hobby, da dauern die Releases auch schon mal was länger.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 läuft es durch.

45

Page 46: Arch Linux

Büro

LibreOfficeWebpräsenz: 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 dafür, dass LibreOffice lediglich die GTK-Theme benutzt wird, ohne die ganzen Gnome-Abhängigkeiten zu benötigen.

yaourt -S libreoffice-gtk-only-ultralite

Da ich später Gnome installiert habe, wurde es ersetzt.

pacman -Rss libreoffice-gtk-only-ultralite

pacman -S libreoffice-gnome

Rechtschreibprüfung

Wörterbuch 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 berücksichtigt. Habe aber auf die schnellekein anderes gefunden.

Das Wörterbuch unter Extras → Optionen → Spracheinstellungen im Unterpunkt Linguistik hinzufügen.

Probleme:

* Ich hatte, nachdem ich etwas mit dem Erscheinungsbild herumgespielt habe,Probleme mit den Icons gehabt. Um das zu beheben, wählt man über Extras →Optionen → im Untermenü Ansicht → einen anderen Symbolstil aus.

* Ich benutze jetzt hunspell-de zur Rechtschreibprüfung, jetzt finde ich das Wörterbuch nicht mehr, was ich heruntergeladen habe, aber scheint noch aktiv zu sein.

46

Page 47: Arch Linux

TomboyWebpräsenz: https://projects.gnome.org/tomboy/

Tomboy ist eine Notizzettelanwendung mit vielen Funktionen, wie Rechtschreibprüfung, 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 gibt’s weitere Plugins:

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

47

Page 48: Arch Linux

Internet

FirefoxWebpräsenz: http://www.mozilla.org/de/firefox/new/

Firefox mit deutscher Sprachdatei und Flash-Plugin installieren

pacman -S firefox firefox-i18n-de flashplugin

Um die Rechtschreibprüfung zu aktivieren, installiere hunspell

pacman -S hunspell-de

Um Java im Firefox nutzen zu können, Siehe → Java

Firefox im Sandkasten

Um Firefox in einem isolierten Bereich, der keinen oder nur eingeschränkten Zugriff auf das Dateisystem hat, benötigt 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:

about:config öffnen, dort nach rc4 suchen und alle 6 Einstellungen auf false stellen. Jetzt werden alle Seiten, die mit RC4 verschlüsseln wollen mit einer anderen Methode verschlüsselt. Falls eine Seite keine andere Methode unterstützt, kann die Seite nicht geöffnet werden. Dann sollte man die Seite aber nicht benutzen.

AES 128 abschalten: Das macht Probleme!!

Weil ich gerade meinen Paranoiden habe, habe ich AES mit 128 Bit Schlüssellänge verboten. Also jede Seite muss mit 256 Bit Schlüssellänge verschlüsseln. Auch wieder about:config und dort nach aes suchen und alle Einträge mit 128 Bit auf false stellen. Ich weiß nicht wieso, aber Firefox scheint immer die weniger starke Verschlüsselung zu bevorzugen.

48

Page 49: Arch Linux

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. Ichbin mir eigentlich sicher, dass ich das bei der Installation überprüft habe. Das Problem tritt auch wieder nur im Dual-View auf. Ohne externen Monitor funktioniert es ohne Probleme, was auch erklärt, 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 Lösung suchen, bevor ich mich jetzt mit einem Closes-Source-Flash-Plugin herumschlage. Zumindest für Youtube kann man die Videos in Vollbild über HTML5 gucken.

http://www.youtube.com/html5

Das wird allerdings über Cookies gesteuert, wenn man diese löscht, muss mandas 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.approval-required 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

Webpräsenz: https://www.eff.org/https-everywhere

… ist ein Add-On, dass überprüft, ob die angewählte Seite in der Positivliste steht und diese dann automatisch per https ansteuert anstatt die unverschlüttelte Version http zu benutzen. Zusätzlcih gibt es das ??Observium??, dass die Zertifikate überprüft.

49

Page 50: Arch Linux

Das ist mir persönlich nicht genug. Ich habe keine Lust, jede einzelne Seite zuüberprüfen, ob sie https unterstützt 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 überprüft automatisch, ob es auch eine https-Version dieser Seite gibt und fügt 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 früher auf der MozillaAdd-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 geprüft. Ich halte trotzdem nichts davon.

Thunderbird

Webpräsenz: http://www.mozilla.org/de/thunderbird/

Thunderbird Email-Client mit deutscher Sprachdatei installieren:

pacman -S thunderbird thunderbird-i18n-de

50

Page 51: Arch Linux

TransmissionWebpräsenz: 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 EarthWebpräsenz: http://earth.google.de

… ist ein virtueller Globus. Ach, was erzähl 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 auflösen (eine Abhängigkeit 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

Page 52: Arch Linux

Tor - The Onion RouterWebpräsenz. 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 würde ich das Tor-Browser-Bundle von der Webseite herunterladen. Dieses muss nicht installiert werden.

Lade das Browserbundle und die dazugehörige Signatur von der Webseite herunter:

https://www.torproject.org/projects/torbrowser.html.en

In meinem Fall war das die deutsche 64-bit Version.

Wichtig wäre zu überprüfen, ob das Paket nicht manipuliert wurde. Ich gebe zu, dass das etwas umständlich ist. Die Entwicklerschlüssel kann man hier sehen.

https://www.torproject.org/docs/signing-keys.html.en

Um zu überprüfen, 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-Schlüssel ID 63FEE659

gpg: Signatur kann nicht geprüft werden: Kein öffentlicher Schlüssel

Jetzt sagt das noch nicht so viel, aber dieses Tor-Bundle-Paket wurde von Erinn Clark signiert und man lädt jetzt ihren öffentlichen Schlüssel herunter.

gpg --keyserver x-hkp://pool.sks-keyservers.net --recv-keys 0x416F061063FEE659

gpg: fordere Schlüssel 63FEE659 von hkp-Server pool.sks-keyservers.net an

gpg: Schlüssel 63FEE659: Öffentlicher Schlüssel "Erinn Clark <[email protected]>" importiert

gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell

gpg: Tiefe: 0 gültig: 1 signiert: 0 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u

gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2014-12-12

gpg: Anzahl insgesamt bearbeiteter Schlüssel: 1

gpg: importiert: 1 (RSA: 1)

52

Page 53: Arch Linux

Um jetzt den Fingerabdruck zu überprüfen:

gpg --fingerprint 0x416F061063FEE659

pub 2048R/63FEE659 2003-10-16

Schl.-Fingerabdruck = 8738 A680 B84B 3031 A630 F2DB 416F 0610 63FE E659

uid Erinn Clark <[email protected]>

uid Erinn Clark <[email protected]>

uid Erinn Clark <[email protected]>

sub 2048R/EB399FD7 2003-10-16

Und jetzt noch mal die Datei überprüfen:

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

gpg: Signatur vom Di 17 Dez 2013 21:41:12 CET mittels RSA-Schlüssel ID 63FEE659

gpg: Korrekte Signatur von "Erinn Clark <[email protected]>"

gpg: alias "Erinn Clark <[email protected]>"

gpg: alias "Erinn Clark <[email protected]>"

gpg: WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!

gpg: Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen Besitzer gehört.

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 trotzdemnicht. Ich kenne sie nicht und ich kenne auch niemanden, der sie kennt und ihr vertraut. Und deswegen ist sie letztendlich doch nicht vertrauenswürdig.

Um die Anonymität zu erhöhen reicht Tor alleine nicht aus, sondern man mussauch seine Gewohnheiten ändern.

* Melde dich nie auf Seiten an, die deine Identität trotzdem freigeben. Es bringt zum Beispiel nichts, wenn man sich bei Facebook o.ä. mit seinem realenNamen anmeldet. Dann ist logischerweise die Anonymität 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

Page 54: Arch Linux

* Benutze immer https anstelle von http. Die Verbindungen innerhalb des Tor-Netzwerkes sind verschlüsselt, aber von dem Ausgangspunkt des Tor-Netzwerkes bis zu der Seite, die man anfordert ist die Verbindung so wie man sie anfordert und im Falle von http unverschlüsselt.

* Ö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 ausdrücklich so eingestellt hat. Das würde 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 könnte man sich eine virtuelle Umgebung schaffen, die keinen Zugang zum Internet hat.

* Benutze keine Plugins wie Flash, Java, (JavaScript,) Quicktime usw. und installiere keine zusätzlichen Add-Ons. Diese können deine Anonymität untergraben. Das bedeutet natürlich auch, dass Seiten, die Flash benutzen nicht funktionieren. Im Falle von Youtube könnte man HTML5 benutzen, was allerdings etwas nervig ist, weil Youtube das mit Cookies bewerkstelligt. Außerdem stellt Youtube nicht alle Videos für die Nutzung mit HTML5 bereit. Besonders neu hinzugefügte Videos können 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 können.

* Speicher keine Cookies! Diese Verraten deine Identität 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 Bundlehört dieser auf Port 9150, um Konflikte mit einer installierten Tor-Version zu vermeiden.

54

Page 55: Arch Linux

Multimedia

VLC

Webpräsenz: http://www.videolan.org/vlc/

Paket installieren

pacman -S vlc

Um CDs/DVDs mit dem VLC abspielen zu können, müssen zusätzliche Bibliotheken installiert werden. Siehe → Optisches Laufwerk

Probleme:

Die DVD startet nicht automatisch auf Deutsch.

BraseroWebpräsenz: https://projects.gnome.org/brasero/

Brasero ist ein grafisches Werkzeug, um CDs/DVDs brennen zu können.

Installation:

pacman -S brasero

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

Transkritionsprogramme

Transcribe

Webpräsenz: https://launchpad.net/transcribe

55

Page 56: Arch Linux

GimpWebpräsenz: http://www.gimp.org/

Das „GNU Image Manipulation Program“ ist ein Bildbearbeitungsprogramm, dessen Schwerpunkt auf die Bearbeitung von Einzelbildern liegt und viele Erweiterungen unterstützt. Ich muss ehrlich zugeben, ich persönlich komme nicht damit klar. Die Bedienung erschließt 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: Webpräsenz: 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 schönes breites „Display“, kannaber man kann nur 12 Zahlen eingeben. Da habe ich mich bei der Rechnung mal schnell über 8000 Jahre vertan.

56

Page 57: Arch Linux

Gnome-Calculatorpacman -S gnome-calculator

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

Geniuspacman -S genius

Spiele

Ich bin kein großer Gamer, aber manchmal möchte man auch ein bisschen daddeln.

TORCS – The Open Racing Car SimulatorWebpräsenz: http://torcs.sourceforge.net/

… ist eine 3D-Autorennsimulation.

pacman -S torcs

F2 wechselt die Perspektive, F1 zeigt eine Übersicht.

Leider gibt’s 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 gibt’s aber doch bestimmt einen Workaround.

Keine Probleme mehr mit Vollbild unter XFCE.

57

Page 58: Arch Linux

Systemprogramme

Yaourt

Es gibt zwei Möglichkeiten 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, dafür 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 für 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 nächst höhere 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

Page 59: Arch Linux

2. Installation über Pacman

pacman.conf bearbeiten

sudo nano /etc/pacman.conf

folgendes am Ende hinzufügen

[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 Abhängigkeiten 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 Abhängigkeiten. Die meisten waren bei mir schon installiert.

Um Java im Webbrowser nutzen zu können, muss man noch folgendes installieren:

pacman -S icedtea-web-java7

59

Page 60: Arch Linux

Zsh mit grml-Konfiguration

Bevor man startet, überprüft 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 zurück, die von dem Debian Derivat grml zur Verfügunggestellt wird. Damit sind schon eine Menge an Funktionen standardmäßig aktiviert.

pacman -S grml-zsh-config

Nach einem Neustart oder wenn man ein neues Terminal öffnet, bekommt man einen Auswahlbildschirm. Dort wählt 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 später 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 für den Benutzer aktivieren lässt.

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 möchte, benutzt man .zshrc.local oder .zshrc.pre

Wenn man diese Konfiguration nutzen möchte muss man wahrscheinlich

chsh -s /usr/bin/zsh benutzen, habe ich aber noch nicht ausprobiert.

60

Page 61: Arch Linux

zmapWebpräsenz: https://zmap.io/

Wie man merkt, mag ich die Programme, die mit z anfangen. Das hat damit zutun, dass es der letzte Buchstabe im Alphabet ist. Das bedeutet nicht selten, dass sich die Entwickler sehr viel Mühe geben etwas zu schaffen, nachdem nichts mehr kommt. Das ist natürlich nicht wirklich möglich, 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 bestätigen 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 einfügt. Mit F12 öffnet er sich, F11 ist Vollbild.

pacman -S guake

und danach über gome-tweak-tool zum Autostart hinzugefügt. 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 für Transparenz verändern und danach werden alle weiteren Tabs mit Transparenz dargestellt.

61

Page 62: Arch Linux

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 Selbstverständlichkeit ist, aber das funktioniert ja echt besch...eiden.

Orca

Webpräsenz: https://wiki.gnome.org/Projects/Orca

sudo pacman -S orca

espeak

Webpräsenz: http://espeak.sourceforge.net/

In der Reihenfolge:

sudo pacman -S alsa-lib alsa-oss alsa-utils alsa-plugins pulseaudio pulseaudio-alsa

alsamixeralsactl storepacman -S espeak

yaourt -S espeak-gui

62

Page 63: Arch Linux

WiresharkWebpräsenz: http://www.wireshark.org/

Installation (Damit wird auch wireshark-cli installiert):

sudo pacman -S wireshark-gtk

Damit man Pakete mitschneiden kann, benötigt man Administrationsrechte. Das macht einen aber unnötig angreifbar, da man ja manipulierte Pakete empfangen könnte, die das System kompromittieren.

Mit der Installation ist auch das Programm dumpcap vorhanden und man sorgt dafür, 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 vonMitgliedern der Gruppe Wireshark gestartet werden. Dazu fügt 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 nötigen Rechte fehlten.

So geht man auch bei tcpdump vor.

NmapWebpräsenz: http://nmap.org/

… ist ein Portscanner.

sudo pacman -S nmap

Zenmap wurde mitinstalliert.

63

Page 64: Arch Linux

SSH

sudo pacman -S openssh

Filezillasudo pacman -S filezilla

Gnome Archive Manager - File-Roller Webpräsenz: 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 benötigt man Qemu.

sudo pacman -S qemu

Leider unterstützt die CPU keine direkte Virtualisierung, daher kann man KVM nicht nutzen.

lscpu

oder

64

Page 65: Arch Linux

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

Einen neuen Ordner erstellen

mkdir raspberrypi

cd raspberrypi

Das Arch Linux Abbild für den Raspberry Pi heruntergeladen:

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

Sha1-Prüfsumme überprüfen

(Muss man auf der Seite nachschlagen. Es gibt bestimmt auch eine andere Möglichkeit, kenne ich aber nicht. http://downloads.raspberrypi.org/ )

sha1sum arch_latest

Datei entpacken

unzip arch_latest

Zip löschen

rm arch_latest

Linux Kernel für Qemu herunterladen

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

Dann das erste mal starten, dort muss noch was geändert werden, bevor es läuft.

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -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 deßlatin1

nano /etc/udev/rules.d/90-qemu.rules

KERNEL=="sda", SYMLINK+="mmcblk0"KERNEL=="sda?", SYMLINK+="mmcblk0p%n",

65

Page 66: Arch Linux

Noch mal starten, ohne init=/bin/bash

qemu-system-arm -kernel kernel-qemu -cpu arm1176 -m 256 -M versatilepb -no-reboot -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 für „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 Verfügung, 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

Page 67: Arch Linux

Jetzt könnte 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 ausgeführt. Wenn man jetzt 32-Bit-Programme laufen lassen möchte, muss man vorher

WINEARCH=win32 WINEPREFIX=/home/user/32bit-wine winecfgausführen. 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 Windows-Problematik auf sein System holt. Nur für das eine benutzt, wofür ich es brauchte und wieder deinstalliert.

67

Page 68: Arch Linux

Iris ErkennungWebpräsenz: http://projectiris.co.uk/

Die Tatsache, dass biometrische Daten sich nicht unbedingt zur Zugangssicherung eignen, sollte eigentlich bekannt sein. Sie sind nicht so fälschungssicher, wie uns dass die Firmen gerne verkaufen. Das größte Problem, was die momentan üblichen Systeme aufweisen, ist, dass sie nicht verifizieren, ob es sich um lebendes Gewebe handelt. Man kann also leicht 3D-Modelle 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 Körperteile durchaus abschneiden kann, während man ein Passwort nicht aus dem Kopf schneiden kann. Nichts desto trotz, kann es im Zusammenspiel mit traditionellen Methoden den Zugang erschweren. Außerdem will ich mich ja hier mit Technik beschäftigen.

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 hängt das Paket im AUR von kdelibs ab, was absolut unnötig ist. Das Programm benötigt 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 Abhängigkeit kommentieren

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

Außerdem hat der Verantwortliche 100%ig nicht getestet, ob das Paket kompiliert. Da muss anstatt

install=('iris.install')

nämlich

install=iris.install

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

68

Page 69: Arch Linux

qmake-qt4 stehen.

Das PKGBUILD sollte also ungefähr 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 für nichts produktives zu gebrauchen, sondern eher für Forschung und Lehre gedacht.

Ein vergleichbares Projekt, zumindest ausgehend von den Screenshots, wäre JIRMM, ein Open Source Iris-Scanner in Java geschrieben. Allerdings ist der noch älter, nämlich von 2006.

http://sourceforge.net/projects/jirrm/

Ich habe es mir nicht angeguckt. Es muss doch irgendwo was anständiges geben. Siehe auch:

69

Page 70: Arch Linux

https://github.com/bernii/IrisRecognition

weitere:

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

Hardware konfigurieren

CPU-Frequenz

Um zu überprüfen, 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 später auflösen. Das ist okay, hier ist das CPU-Frequency-Scaling aktiviert.

70

Page 71: Arch Linux

Soundkarte

Alsa installieren und den Benutzer, der erstellt wurde, zur Gruppe audio hinzufügen.

sudo pacman -S alsa-utils

sudo gpasswd -a benutzer audio

Mit alsamixer die Lautstärke 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 hinzufügen

nano /etc/modprobe.d/blacklist.conf

Die Zeile hinzufügen

blacklist pcspkr

WLAN

Ich weiß den genauen Wortlaut gerade nicht aus dem Kopf. Ungefähr so:

WLAN-Firmware nicht gefunden

b43-phy0

b43/ucode15.fw

b43-open/ucode15.fw

Besuchen Sie die Seite http://xxxxxxx für weiter Informationen

71

Page 72: Arch Linux

ip addr bestätigt, dass kein WLAN-Adapter erkannt wurde.

ip addr

Um das WLAN zum laufen zu bekommen, habe ich die Firmware aus dem AURheruntergeladen.

yaourt -S b43-firmware

Wenn man mehrere Treiber installiert hat, sollte man die anderen auf die Blacklist setzten, damit keine unerwünschten Wechselwirkungen auftreten.

sudo nano /etc/modprobe.d/blacklist.conf

Dort z.B. folgendes hinzufügen. (Immer nur ein Modul pro Zeile)

blacklist b43legacy

Danach neu starten und gucken, ob der WLAN-Adapter wlan0 verfügbar ist.

Ip addr

Viele Wege führen nach Rom und so ist das auch hier. Es gibt viele Möglichkeiten wie man das WLAN zum Laufen bekommt, aber erst mal geht der Weg über die Konsole, da ich mein neues System ja kennenlernen möchte.

iw installieren

pacman -S iw

Jetzt kann man das WLAN konfigurieren. Um sich mit Acces-Points verbinden zu können, 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-Anschlüssen, vom Systemstart an aktiviert war. Wenn man das nachträglich macht, wurde immer noch RF-Kill angezeigt. Um

72

Page 73: Arch Linux

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 allfalls 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 ausführen, bis es geklappt hat.

Konfigurationsdatei für den wpa_supplicant generieren. Die Essid und das Passwort müssen natürlich 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 prüfen.

iw dev wlan0 link

73

Page 74: Arch Linux

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 möchte man seine Karte im monitor-mode betreiben, um sich alle Pakete anzeigen zu lassen, „die durch Luft fliegen“. Dafür muss man die Kartezuerst 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 grün.

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 unterstütze 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

Page 75: Arch Linux

Optisches Laufwerk

Um CDs/DVDs abspielen zu können, müssen zusätzliche 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 können, 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/8-3:1.0/input/input11

Eine Überprüfung, ob der Treiber linux-uvc die Kamera unterstützt, 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. Dafür das Modul in meinemodule laden.

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

75

Page 76: Arch Linux

Dort folgendes eintragen:

#Kamera

uvcvideo

Um die Kamera nutzen zu können, muss der Benutzer ein Mitglied der Gruppevideo sein. Das wurde noch nicht gemacht, deshalb muss man das nachholen. Um zu kontrollieren, welchen Gruppen man angehört einfach als normaler Benutzer groups eingeben.

groups

Als Root den normalen Benutzer zu Gruppe video hinzufügen.

gpasswd -a Benutzer video

Da der VLC schon installiert ist, benutze ich den zum testen. Unter Medien → Aufnahmegerät muss man Video- und Audiogerät auswählen. Dann kann man mehrere Optionen auswählen.

Anhängen: ???

Wiedergabe: ist selbsterklärend

Stream: Über das Netzwerk streamen

Konvertieren: In ein bestimmtes Format umwandeln und auf die Festplatte schreiben.

So, funktioniert. Ton an, Spot an, Kamera läuft – ACTION...

76

Page 77: Arch Linux

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 Knöpfe, die ein Ereignis auslösen könnten.

Jetzt versucht man mit dmesg weitere Informationen zu sammeln.

dmesg | grep acpi

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

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

77

Page 78: Arch Linux

[ 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, disablingPCIe 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 prüfen

dmesg ← das Modul sollte eigentlich am Ende hinzugefügt werden

dmesg | grep acpi

Da hat irgendwie nur acpi_ipmi funktioniert. Erst mal neugestartet, BIOS überprüft, noch mal getestet und dann acpid installiert und noch mal neugestartet.

pacman -S acpid

systemctl enable acpid

systemctl reboot

dann noch mal probiert. Keine Veränderung. Ich bin ratlos.

Das kann doch eigentlich nicht sein. Zumindest das Modul für den Lüfter sollte funktionieren. Später 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

Page 79: Arch Linux

Standby

Dafür 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 hinzufügen.

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 hinzufügen.

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

Page 80: Arch Linux

Fehler beheben

Mit dmesg kann man sich Kernel-Meldungen anzeigen lassen. Ich schreibe dieimmer 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 löschen.

rm dmesg.txt

Dort sind mir folgende Fehlermeldungen aufgefallen (nicht komplett).

Fast TSC calibration failed

Das ist allerdings kein schwerwiegender Fehler, er informiert nur darüber, 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 hinzufügen.

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 verfügbaren Optionen anzeigenlassen 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

Page 81: Arch Linux

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 Gerätenamen, sondern mit ihrer Labelbezeichnung erzeugt habe.

swapon -s

Filename Type Size Used Priority

/dev/sda2 partition 9437180 0 -1

zeigt aber, dass die die Swap-Partition aktiviert ist. Trotzdem möchte 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

geändert. Jetzt ist die Fehlermeldung verschwunden. Das ist sicher nicht die eleganteste Lösung, hat aber funktioniert. Besser die fstab bei der Installationmit den Gerätenamen und nicht mit den Labelbezeichnungen generieren. Geändert.

81

Page 82: Arch Linux

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 einhängen

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

Page 83: Arch Linux

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 veröffentlichen 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 Abhängigkeit installiert. Wer war das?

pacman -Qi iptables

Installationsgrund : Installiert als Abhängigkeit für ein anderes Paket

Na toll. Super Datenbank :-/ Dann sollte man sich mal um iptables kümmern.

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

Page 84: Arch Linux

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, löscht 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 für die Loopback Schnittstelle erlauben

sudo iptables -A INPUT -i lo -j ACCEPT

Wenn Verbindungen von außen gewünscht 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 ausführen

sudo iptables-save > /etc/iptables/iptables.rules

Wenn das nicht funktioniert:

sudo zsh -c "iptables-save > /etc/iptables/iptables.rules"

84

Page 85: Arch Linux

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 möchte 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 löschen.

sudo iptable -F

sudo iptables -P INPUT DROP

sudo iptables -P OUTPUT DROP

sudo iptables -P FORWARD DROP

Um Ports zu öffnen, muss man für 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 sähe 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 für die ausgehende Verbindung

* -o enp7s0: bezeichnet den Namen des Netzwerkadapters, der sich nach draußen verbinden darf.

* -p tcp: Definiert das Protokoll, das benutzt werden soll [udp/tcp]

85

Page 86: Arch Linux

* --dport 22: Definiert den Port, der für 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 draußen passieren dürfen

Jetzt muss man noch erlauben, dass mein Rechner die Antwort auf die Anfragedurchlässt.

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

* -A Output: erstellt eine neue Regel für die eingehende Verbindung

* -i enp7s0: bezeichnet den Namen des Netzwerkadapters, der die Antwort entgegennehmen 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 dürfen, also die Verbindungen, auf die mein Computer initiiert hat.

Und das selbe in Grün für 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 für Https-Anfragen:

sudo iptables -A OUTPUT -o enp7s0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT

86

Page 87: Arch Linux

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

und noch für 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 für 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 erklären wieso, aber sudo hat nicht genug Rechte (oder verliert diese zwischendurch) um das zu speichern. Man müsste 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 natürlich die Möglichkeit 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 würde ja gerne zur einfacheren Bedienung eine GUI benutzen, aber ich finde nichts anständiges. Nicht, dass es nichts anständiges gäbe, aber ich nicht in den offiziellen Quellen. Ich möchte einfach so weit wie möglich etwas haben, was auch von anderen geupdatet wird.

87

Page 88: Arch Linux

Halb kaputte Dinge sollte man nicht mehr benutzen

Es hat schon Gründe, warum Experten seit Jahren warnen, dass man bestimmte Verschlüsselungen und Hashfunktionen nicht mehr nutzen sollte. Die sind dann zwar noch nicht gebrochen, aber können jederzeit in sich zusammenfallen, trotzdem werden sie als Standard implementiert.

RC4:

Es wird vermutet, dass z.B. die führenden Geheimdienste RC4 in Echtzeit entschlüsseln können. Es ist also nur eine Frage der Zeit, bis auch die kleinen Brüder Methoden dazu entwickeln.

Firefox: siehe Firefox / aus paranoiden Gründen habe ich auch AES mit 128 Bit Schlüssellänge verboten. Ich weiß nicht wieso, aber firefox scheint immer die einfachste Verschlüsselung zu nehmen, zeigt aber „hochgradige Verschlüsselung“ 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 byteSchlüssellänge (sha256 oder sha512)

Passwörter

Schwache Passwörter

… untergraben die stärksten Sicherheitsmaßnahmen. Auch wenn das ein alterHut ist und auch jeder (also ich meine JEDER) die Problematik inzwischen erkannt hat, werden aus Bequemlichkeit trotzdem zu einfache Passwörter benutzt. Ich erkenne das auch immer an mir selbst, es ist einfach umständlich sichere Passwörter zu verwenden.

88

Page 89: Arch Linux

NetworkManager

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

Virenscanner

… können natürlich keinen Schutz garantieren. Ich benutze eigentlich keinen Virenscanner auf meinem System, das würde das System nur unnötig langsammachen. Zum Glück ist man unter Linux auf Grund des geringen Marktanteils nicht sooo gefährdet. Ein Angreifer, der sich ja auch viel Mühe macht, wird imNormalfall etwas schreiben, dass mehr Rechner infiziert. Nichts desto trotz gibt es natürlich auch für 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 dafür gedacht, dass Geräte über das IP-Protokoll automatisch Ports in der Firewall/Router öffnen kann. Ich weiß, das ist bequem, aber untergräbt halt jede Sicherheitsmaßnahme. Außerdem kann man oft genug lesen, dass viele UpnP-Implementationen auch von außen, alsovom Internet aus, Ports öffnen können. Das will man natürlich nicht, also lieber alle Ports per Hand öffnen.

89

Page 90: Arch Linux

Root-Benutzerkonto deaktivieren

Da ich das Root-Benutzerkonto gar nicht benutze, brauch es auch nicht aktiv zu sein. So müssen Angreifer zumindest etwas mehr Arbeiten, um seine Rechte zu erweitern.

Achtung: Arch Linux ist nicht unbedingt dafür ausgelegt ohne Root-Benutzerkonto zu laufen. Das kann zu Problemen führen.

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 rootDann neues Passwort vergeben:

sudo passwd root

So zum Spaß kann man auch einstellen, dass man beleidigt wird, wenn man das Passwort für sudo falsch eingibt, leider sind die nur auf Englisch. Dafür muss man folgende Zeile hinzufügen:

sudo nano /etc/sudoers

Defaults insults

90

Page 91: Arch Linux

Angriff ist die beste VerteidigungWarnung:

Ich bin kein Jurist, aber nach meiner Interpretation stellt der deutsche Staat es unter Strafe seine eigenen Systeme auf Sicherheit zu überprüfen, da zumÜberprüfen und Einbrechen natürlich die gleichen Werkzeuge benutzt werden.

§ 202c Vorbereiten des Ausspähens und Abfangens von Daten

(1) Wer eine Straftat nach § 202a oder § 202b vorbereitet, indem er

1. Passwörter oder sonstige Sicherungscodes, die den Zugang zu Daten (§ 202a Abs. 2) ermöglichen, oder 2. Computerprogramme, deren Zweck die Begehung einer solchen Tat ist, herstellt, sich oder einem anderen verschafft, verkauft, einem anderen überlässt, verbreitet oder sonst zugänglich 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 können natürlich bei den ganzen aktuellen Nachrichtendienst-Skandalen viele Verschwörungstheorien entstehen, ich denke aber, dass es sich einfach nur um Unwissenheit handelt. Na ja, auf jeden Fall wurde auch schon das Bundesamt für Sicherheit in der Informationstechnik vors Gericht gezerrt, da das natürlich 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 „bösartiger“ Nutzung. Ganz im Gegenteil – da steht doch ausdrücklich, dass der Besitz verboten ist. Anscheinend kann die Staatsanwaltschaft das auslegen, wie sie es möchte und man ist deren Willkürausgesetzt.

Ich für meinen Teil werde das Risiko eingehen, mir diese Programme besorgen und in meinen Computersystemen auch benutzen. Da würde 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 möchte, wird man naturgemäß versuchen, das so leise wie möglich zu machen, damit man nicht auffällt. Solange man keine extra Maßnahmen getroffen hat und diese ausdrücklich testen möchte, muss man sich im eigenen Netzwerk darum keine Sorgen

91

Page 92: Arch Linux

machen. Da kann man rumpoltern, wie man möchte, es ist ja sogar interessantzu überprüfen, ob man einen Logbucheintrag findet.

Black ArchWebpräsenz: http://www.blackarch.org

… ist eine inoffizielle Version, die Sicherheitswerkzeuge bereitstellt. Es ist möglich 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 können, muss man den Schlüssel importieren und beglaubigen.

sudo pacman-key -r 4345771566D76038C7FEB43863EC0ADBEA87E4E3sudo 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 benötigt immer eine unabhängige Prüfung. Das gilt genauso für Systemadministratoren und Programmierer. Sie sind nicht in Lage ihre

92

Page 93: Arch Linux

Systeme oder Programme selbst zu testen. Um annähernd als sicher zu gelten, muss ein System einer unabhängigen Prüfung unterzogen werden.

Dazu lädt 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 möchte, 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 müssen. 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 möchte und die Risiken ordentlich abgeschätzt 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 Risikoabschätzung zu machen und die vorhandenen Lücken zu schließen. Das kann aber immer nur eine Momentaufnahme sein, denn Sicherheit ist kein Zustand, sondern ein Prozess, den man ständig kontrollieren muss.

Man kann sich aber besser schützen, indem man sich einiger Regeln bewusst ist. Scott Culp, ?ehemaliger? Security Response Center Manager von Microsoft, hat die „zehn unabänderlichen Gesetze der Sicherheit“ aufgestellt.

http://technet.microsoft.com/en-us/library/hh278941.aspx

* Gesetz Nummer 1:

Wenn ein böser Bube Sie dazu überreden kann, sein Programm auf ihrem Computer auszuführen, ist es nicht mehr Ihr Computer.

* Gesetz Nummer 2:

Wenn ein böser Bube das Betriebssystem an Ihrem Computer ändern kann, istes nicht mehr Ihr Computer.

* Gesetz Nummer 3:

Wenn ein böser Bube den uneingeschränkten physischen Zugang auf ihren Computer hat, ist es nicht mehr Ihr Computer.

* Gesetz Nummer 4:

93

Page 94: Arch Linux

Wenn Sie einem bösen Buben erlauben, Programme auf Ihre Webseite hochzuladen, ist es nicht mehr Ihre Webseite.

* Gesetz Nummer 5:

Schwache Passwörter unterminieren die stärksten Sicherheitsmaßnahmen.

* Gesetz Nummer 6:

Ein Computer ist nur so sicher, wie der Administrator vertrauenswürdig ist.

* Gesetz Nummer 7:

Verschlüsselte Dateien sind nur so sicher, wie der Schlüssel für die Entschlüsselung.

* Gesetz Nummer 8:

Ein veralteter Virenscanner ist nur wenig besser als gar kein Virenscanner.

* Gesetz Nummer 9:

Die absolute Anonymität 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 proprietären Lizenz weiterentwickelt. Es wird auch vom Bundesamts für Sicherheit in der Informationstechnik vorrangig empfohlen.

Das Programm ist im AUR verfügbar. Ich bin gerade wieder zu faul, es für das Repositorium zu erstellen.

yaourt -S openvas-scanner

94

Page 95: Arch Linux

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 jaspäter immer noch ändern.

Um den Benutzer wieder zu löschen:

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

Page 96: Arch Linux

ERROR: No OpenVAS SCAP database found. (Tried: /var/lib/openvas/scap-data/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/cert-data/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 darüber lachen. Das Paket im AUR istveraltet.https://aur.archlinux.org/packages/gsa/

Also bearbeiten:cd AURmkdir gsacd gsawget https://aur.archlinux.org/packages/gs/gsa/gsa.tar.gztar -xvzf gsa.tar.gz

96

Page 97: Arch Linux

cd gsanano PKGBUILD

Das sollte ungefähr 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' 'openvas-libraries') 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-security-assistant-$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' failedmake[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

Page 98: Arch Linux

sudo pacman -Rss openvas-scannersudo pacman -Rss openvas-client-freedesktopsudo pacman -Rss openvas-administratorsudo pacman -Rss openvas-manager

Wenn ich über den Client anmelden möchte, kann ich im Terminal folgende Fehlermeldung sehen. socket : Die Adressfamilie wird von der Protokollfamilie nicht unterstützt 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 mitder vorherigen Installation.

98

Page 99: Arch Linux

Warnung: Verzeichnis-Berechtigungen unterscheiden sich für /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 sharedobject 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 Paketaus dem AUR hat sich mit der libssh2 zufriedengegeben.

sudo pacman -S libssh

Danach lädt es auch.

Jetzt kann man sich über den Browser anmelden.

https://127.0.0.1:9391/

Die Verbindung zum Server wurde zurückgesetzt, während 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 Überprüfungsskript so nennt, kann man sich über den Webbrowser anmelden:

https://127.0.0.1

Okay, es scheint so, als hätte ich vergessen ein Passwort zu vergeben.

sudo openvas-adduser

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

99

Page 100: Arch Linux

Nächster 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 Adminad 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 9393sudo 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 eingeschätzt wird. Auf meinem Rechner wurden die gefundenen Schwachstellen mit Low eingestuft. Es handelte sich meistens um unnötige Informationen, die man einem Angreifer zur Verfügung stellt. Auf einem Router wurde festgestellt, dass Denial of Service-Attacken möglich sind und noch ein paar weitere Schwachstellen. Wenn man sich den Report anguckt, vermisst OpenVAS noch ein paar Programme, die noch installiert werden müssen. Sie werden alle im Black Arch Repositorium als Pakete bereitgestellt.

* DIRB

Webpräsenz: 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 againsta web server and analizing the response. DIRB main purpose is to help in web

100

Page 101: Arch Linux

application auditing.

* Arachni

Webpräsenz: 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

Webpräsenz: 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

Webpräsenz: 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 BlackArch Repositorium bereithält.

sudo pacman -S dirb arachni nikto wapiti

Der nächste Scan hat schon wieder Fehlermeldungen produziert. Das scheint eine unendliche Geschichte zu werden. :-/"wapiti report filename is empty. that could mean thatwrong version of wapiti is used or tmp dir is not accessible.Make sure to have wapiti 2.x as wapiti 1.x is not supported.In short: check installation of wapiti and OpenVAS"

101

Page 102: Arch Linux

Arachni could not be found in your system path.OpenVAS was unable to execute Arachni and to perform the scan yourequested.Please make sure that Arachni is installed and that arachni isavailable in the PATH variable defined for your environment.

Habe ich wieder deinstalliert, muss ich nächstes mal schauen, woran es liegt.

Zusätzlich habe ich noch eine zu aktuelle Nmap-Version installiert. Ich benutze 6.40 und OpenVAS möchte 5.?.?...

Metasploit

… ist ...

Es natürlich schon ein bisschen Übertrieben, sein kleines, lokales Netzwerk mit Metasploit zu penetrieren, aber das macht nichts, ich will ja hier auch denSpieltrieb mit technischen Dingen fördern.

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 gem-1.9 install rake --version "10.1.0"sudo gem-1.9 install i18n --version "0.6.5"sudo gem-1.9 install multi_json --version "1.0.4"sudo gem-1.9 install activesupport --version "3.2.14"sudo gem-1.9 install builder --version "3.0.4"sudo gem-1.9 install activemodel --version "3.2.14"sudo gem-1.9 install arel --version "3.0.2"sudo gem-1.9 install tzinfo --version "0.3.37"sudo gem-1.9 install activerecord --version "3.2.14"

102

Page 103: Arch Linux

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

Um Armitage starten zu können, 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 möchte

createuser -s -U postgres --interactiveGeben Sie den Namen der neuen Rolle ein: (ich setze da meinen Benutzernamen ein)

createdb msf

sudo nano /etc/metasploit/database.yml

Das sollte ungefähr so aussehen:

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

103

Page 104: Arch Linux

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.shexport PATH=$PATH:/etc/metasploitexport 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

Page 105: Arch Linux

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 lässt sich der Befehl aber vervollständigen, also bin ich mir sicher, dass bundle existiert.

Da ich keine Lust habe wieder alle gems einzeln zu installieren, möchte 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

Page 106: Arch Linux

- /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 hinzufügen:

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.

Natürlich klappt das nicht, man muss immer noch alle einzeln installieren.

gem install bundler

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

106

Page 107: Arch Linux

gem install factory_girl --version "4.2.0"gem install fivemat --version "1.2.1"gem install json --version "1.8.0"gem install pg --version "0.16.0"gem install mini_portile --version "0.5.1"gem install msgpack --version "0.5.5"gem install network_interface --version "0.0.1"gem install nokogiri --version "1.6.0"gem install packetfu --version "1.1.9" gem install pcaprub --version "0.11.3"gem install redcarpet --version "3.0.0"gem install robots --version "0.10.1"gem install rspec-core --version "2.14.5"gem install rspec-expectations --version "2.14.2"gem install rspec --version "2.14.1"gem install shoulda-matchers --version "2.3.0"gem install simplecov --version "0.5.4"gem install timecop --version "0.6.3"gem install yard --version "0.8.7"gem install 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

Page 108: Arch Linux

/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

Page 109: Arch Linux

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

Der möchte das wieder mit sudo haben. Ungern, aber wenn es sein muss. Dafür 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

Hätte 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 Abhängigkeit 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 gekämpft.

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

Page 110: Arch Linux

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 Binärdateien installieren.

Lokal

In meinem Beispiel soll das Repositorium mor (My Own Repository) heißen.

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 fügt man sein Repositorium hinzu.

# eigenes Repositorium – mor

[mor]

SigLevel = Optional TrustAll

Server = file:///home/benutzer/mor

Datenbank aktualisieren:

pacman -Sy

110

Page 111: Arch Linux

Server

Ich habe so einen Plasterouter, auf dem ich ein OpenWRT installiert habe und der einen USB-Anschluss besitzt. Da liegt es natürlich nah, dass ich mein Repositorium auf diesen Router verschiebe. Dort habe ich einen schlanken FTP-Server, den vsftpd, installiert.

Einfach die pacman.conf abändern:

nano /etc/pacman.conf

Dort fügt 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 wäre jaschön, wenn ich die Datenbank auf OpenWRT pflegen könnte.

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

Page 112: Arch Linux

Danach auf Arch Linux die Festplatte einbinden:

mkdir ~/routerfs

sshfs user@host:/mnt/dir /routerfs

Zum aushängen:

fusermount -u ~/routerfs

Eigene Pakete signieren

Da ich für dieses Testrepositorium nicht plane, es anderen im Internet zur Verfügung zu stellen, benutze ich keinen Schlüsselserver, sondern erstelle eine ASCII-Datei, die ich auf einem USB-Stick verteilen kann.

Ein Schlüsselpaar erstellen

gpg --gen-key

Es werden einige Fragen gestellt:

Ich wähle den voreingestellten Wert

Ich wähle eine Schlüssellänge von 4096 Bit

Da ich meine Schlüssel regelmäßig verliere, lasse ich ihn nach einem Jahr ablaufen. - 1y

Das Passwort sollte natürlich annähernd zufällig gewählt 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 wäre natürlich noch Zahlen und Sonderzeichen einzufügen, aber ich übernehme die Zeile immer so, wie sie dort steht. So kann ich das Passwort einfach nachschlagen, wenn ich es vergessen habe.

Das Schlüsselpaar wird erstellt:

Jetzt den Schlüssel auflisten (wobei Benutzer, die Daten sind, die man eingeben hat):

112

Page 113: Arch Linux

gpg --list-keys

/home/benutzer/.gnupg/pubring.gpg

-------------------------------

pub 4096R/ABCD1234 2013-12-12 [verfällt: 2014-12-12]

uid Benutzer <[email protected]>

sub 4096R/EFGH5678 2013-12-12 [verfällt: 2014-12-12]

Die Schlüsseldatei erzeugen:

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

Den Schlüssel 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 [verfällt: 2014-12-12]

uid Benutzer <[email protected]>

sig 3 ABCD1234 2013-12-12 Benutzer <[email protected]>

sub 4096R/EFGH5678 2013-12-12 [verfällt: 2014-12-12]

sig ABCD1234 2013-12-12 Benutzer <[email protected]>

sudo pacman-key --edit-key 0xABCD1234

ub 4096R/ABCD1234 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: SC

Vertrauen: unbekannt Gültigkeit: unbekannt

sub 4096R/EFGH5678 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: E

[ unbek.] (1). Benutzer <[email protected]>

Den eigenen Schlüssel mit dem Generalschlüssel beglaubigen:

gpg> lsign

pub 4096R/ABCD1234 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: SC

Vertrauen: unbekannt Gültigkeit: unbekannt

Haupt-Fingerabdruck = 72DD 8327 43E1 32D3 5598 0719 B5D0 7254 45B5 52HE

Benutzer <[email protected]>

113

Page 114: Arch Linux

Dieser Schlüssel wird 2014-12-12 verfallen.

Sind Sie wirklich sicher, daß Sie vorstehenden Schlüssel mit Ihrem

Schlüssel "Pacman Keyring Master Key <pacman@localhost>" (30F47BAY) beglaubigen wollen

Die Signatur wird als nicht-exportfähig markiert werden.

Wirklich signieren? (j/N) j

Dem eigenen Schlüssel vertrauen:

gpg> trust

pub 4096R/ABCD1234 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: SC

Vertrauen: unbekannt Gültigkeit: unbekannt

sub 4096R/EFGH5678 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: E

[ unbek.] (1). Benutzer <[email protected]>

Bitte entscheiden Sie, in wieweit Sie diesem User zutrauen,

Schlüssel anderer User korrekt zu prüfen (durch Vergleich

mit Lichtbildausweisen, Vergleich der Fingerabdrücke aus

unterschiedlichen Quellen ...)?

1 = Weiß nicht so recht

2 = Nein, ihm traue ich NICHT

3 = Ich vertraue ihm marginal

4 = Ich vertraue ihm vollständig

5 = Ich vertraue ihm absolut

m = Zurück zum Menü

Ihre Auswahl? 4 ← es muss mindestens 3 eingestellt werden!!

pub 4096R/ABCD1234 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: SC

Vertrauen: vollständig Gültigkeit: unbekannt

sub 4096R/EFGH5678 erzeugt: 2013-12-12 verfällt: 2014-12-12 Aufruf: E

[ unbek.] (1). Benutzer <[email protected]>

Bitte beachten Sie, daß ohne einen Programmneustart die angezeigte

Schlüsselgültigkeit nicht notwendigerweise korrekt ist.

114

Page 115: Arch Linux

Speichern:

gpg> save

==> Aktualisiere Trust-Datenbank ...

gpg: 3 marginal-needed, 1 complete-needed, PGP Vertrauensmodell

gpg: Tiefe: 0 gültig: 1 signiert: 6 Vertrauen: 0-, 0q, 0n, 0m, 0f, 1u

gpg: Tiefe: 1 gültig: 6 signiert: 63 Vertrauen: 0-, 0q, 0n, 5m, 1f, 0u

gpg: Tiefe: 2 gültig: 59 signiert: 4 Vertrauen: 59-, 0q, 0n, 0m, 0f, 0u

gpg: nächste "Trust-DB"-Pflichtüberprüfung am 2014-01-22

Um makepkg zu erklären, 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 <[email protected]>" GPGKEY="ABCD1234"

Da es auf Dauer sehr nervig ist, ständig 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 Schlüsseldatei benutzer.asc noch irgendwo sicher ab.

115

Page 116: Arch Linux

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 zusehen. Idealerweise ist diese geheime Nachricht dann noch verschlüsselt, 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 Außenstehende ihre Existenz nicht wahrnehmen.

Wenn ich hier von Informationen rede, kann das natürlich alles sein, Texte, Bilder, Videos, Audiodateien, Ordner, Archive, Programme, egal was. Es stellt sich nur die Frage, welche Information möchte ich vor wem in welchem Medium verstecken. Da gibt es natürlich viele Möglichkeiten, wovon sich je nach Kombination einige Methoden halt besser eignen als andere. Wenn man ein 30 Sekunden Video in einem Bild verstecken möchte, ist klar, dass das nicht gerade unauffällig ist. Und eine wichtige Frage ist, vor wem möchte ich es verbergen. Wenn man etwas vor seiner Familie oder Freundin verstecken möchte, dann wird man höchstwahrscheinlich schon mit geringem Aufwand Erfolge erzielen. Möchte man aber brisante Informationen aus einem Schurkenstaat schmuggeln, wird man sich die größte Mühe geben nicht enttarnt zu werden.

Digitale Wasserzeichen sind übrigens nichts großartig anderes. So kann man verifizieren, ob eine Datei, die ich zum Beispiel plötzlich irgendwo im Internet finde, von einem selbst stammt.

Anfangen möchte ich mal mit den Bordmitteln, die schon zur Verfügung stehen und ich möchte auch direkt zeigen, warum die auf einen ersten Blick zwar funktionieren, aber schon einer Überprüfung 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 für diesen Fall.

sudo pacman -S ...

ghex

vbindiff

Hier gibt es ein großes Portal mit viel Lesestoff:

http://www.forensics.nl/steganograph

116

Page 117: Arch Linux

Bordmittel

Dieses Beispiel arbeitet mit Injektion, was nicht besonders unauffällig ist, weildas Steganogramm, die Datei mit dem versteckten Inhalt, danach eine für die Dateiart untypische Größe 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 enthält.

https://de.wikipedia.org/wiki/Datei:FuBK-Testbild.png

und ich möchte 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 können, habe ich die Datei nicht verschlüsselt. Das ist natürlich 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 später 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 fällt alleine schon wegen der Dateigröße auf. Das ursprünglicheBild war 15,2 kB und das neue Bild hat eine Größe von 684,8 kB.

Und siehe da, das neue Bild enthält, wie zu erwarten war, ebenfalls diese obengenannte Stelle.

117

Page 118: Arch Linux

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 anfängt. Hier sind die ersten 15241 bytes die Größe des originalen FuBK-Testbild.png.

Um jetzt mal auf die Programme zu kommen, die sich in ihrem Umfang und unterstützten 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 Umständen sind verschiedene Versionen untereinander inkompatibel. Der Vorteil ist natürlich, dass man nur wenig Ahnung von der ganzen Materie haben muss, um in den Genuss zu kommen, Inhalte zu verstecken.

SteghideWebpräsenz: http://steghide.sourceforge.net/

… ist in dem Community Repositorium enthalten.

sudo pacman -S steghide

Die Trägerdatei unterstützt dabei die Formate .bmp, .jpg, .wav und .au.

Ich habe mich für diese Datei entschieden:

https://upload.wikimedia.org/wikipedia/commons/f/f4/MGM_Grand%2C_Macao%2C_2013-08-08%2C_DD_14.jpg

118

Page 119: Arch Linux

und überprüfe, 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

Kapazit�t: 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 möchte ist die grml-zsh-refcard:

http://grml.org/ zsh /grml- zsh -refcard.pdf

Das ganze läuft so ab:

Es wird nach einem Passwort gefragt, danach wird die Datei komprimiert, verschlüsselt und anschließend in einer Trägerdatei versteckt. Standardmäßigwird rijndael-128 (AES) im cbc-Modus zur Verschlüsselung genutzt. Man kann aber auch andere Verschlüsselungsmethoden und Kombinationen wählen. Hiermit kann man sich anzeigen lassen, welche Optionen man hat:

steghide encinfo

Ich würde 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-zsh-refcard.pdf -sf Versteck.jpg -e rijndael-256 cbc

* -cf: Die Trägerdatei,

* -ef: Die Datei, die versteckt werden soll

* -sf: Das neu erstellte Steganogramm, welches beide Dateien enthält

* -e: Der gewählte Algorithmus und der gewählte Modus

Was leider auffällt, ist dass die Datei kleiner geworden ist. Sie hat zwar eine realistische Größe, aber besser wäre es, wenn sie gleich groß geblieben wäre.

119

Page 120: Arch Linux

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

Kapazit�t: 372,2 KB

Soll versucht werden, Information �ber eingebettete Daten anzuzeigen ? (j/n) j

Passwort eingeben:

Eingebettete Datei "grml-zsh-refcard.pdf":

Gr��e: 97,1 KB

verschl�sselt: 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 entschlüsselt werden soll

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

Fazit:

Lässt sich schön benutzen, aber leider konnte es einer Überprüfung nicht standhalten. Erstens die Dateigröße. Gut, die ist realistisch und wenn ich das original nicht kennen würde, wäre es mir nicht aufgefallen. Aber es fällt sofortauf, dass etwas mit dem Bild nicht stimmt, wenn man sich die Datei im Hex-Editor anguckt. Und zwar wurde das Bild von einer Kamera aufgenommen und deshalb enthält es Metadaten, sogenannte Exif-Einträge.

Siehe: https://de.wikipedia.org/wiki/Exchangeable_Image_File_Format

Leider wurden diese Exif-Einträge mit verschlüsselt, was natürlich 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 Bildgröße und Farbraum, übrig bleiben. Wenn man sich die Ausgabe von vbindiff anschaut, sieht man sofort was ich meine.

120

Page 121: Arch Linux

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

Also Fakt ist, dass Steghide die Trägerdaten nicht ausreichend prüft, was eigentlich schon seltsam ist für ein Programm, was nur zwei Bildformate unterstützt. Schöner wäre es, wenn man die Verschleierung granularer bearbeiten könnte. Aber vielleicht kann man das ja auch, ich habe mich jetzt noch nicht ausgiebig damit beschäftigt. Man ist zwar jetzt noch nicht in der Lage die Datei zu extrahieren, aber man erkennt auf Anhieb, dass sie manipuliert wurde.

121

Page 122: Arch Linux

OutgessWebpräsenz: http://www.outguess.org/

Letzte Version wurde im Jahr 2001 veröffentlicht und außerdem ist es gebrochen. Wäre aber vielleicht mal interessant einen Blick drauf zu werfen, um zu verstehen, wie man das attackiert.

OpenPuff

Webpräsenz: http://embeddedsw.net/OpenPuff_Steganography_Home.html

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

Jphide

Webpräsenz: http://linux01.gwdg.de/~alatham/stego.html

SilentEye

Webpräsenz: http://www.silenteye.org/

122

Page 123: Arch Linux

Steganalyse

Das Ziel der Steganalyse ist es ein Medium auf die mögliche Existenz von unsichtbaren Informationen zu überprüfen, 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 Abhängigkeiten 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 für Steganographie, immer wenn man sich eine Datei mal genauer anschauen möchte, 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 können, wo sie Unterschiede sind.

Anomalien suchen:

Wenn man eine Audiodatei vor sich hat, öffnet man diese in einem Audioeditorund schaut sich z.B. die Hüllkurve an. Wenn man ein Bild vor sich hat, nimmt einen Bildeditor und versucht verschiedene Filter anzuwenden.

Nach Signaturen suchen:

Manche Programme könnten eine Sequenz von Zeichen generieren, welche Rückschlüsse auf das verwendete Programm geben.

123

Page 124: Arch Linux

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

Verschlüsselung:

Viele Steganogramme enthalten Verschlüsselung, die man angreifen könnte. Leider ist die meist sehr stark. Also wie im Beispiel von Steghide eine AES Verschlüsselung mit 256 Bit Schlüssellänge wird das nicht ganz so einfach. Nachrichtendienste arbeiten an so was oder können es vielleicht auch schon, aber ich kann das nicht. Wenn überhaupt würde ich versuchen, die Implementierung anzugreifen.

Passwort:

Die meisten Programme setzen auf ein Passwort als Schlüssel und das kann man ja immer versuchen anzugreifen. Wie man ja weiß: Schwache Passwörter untergraben die stärksten Sicherheitsmaßnahmen.

Unerwartete Benutzung:

Hier greift die Regel, dass Programmierer ihre Programme nicht selbst testen können. 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 Kreativität 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 "sdhsjfhdashfjhdfjhdfhjdhfjdshfjhdkfhkdhfjkdhfhdskhfjkdhfhdsfhjkdhfhdjfhdshfjkdshdsfbjkbncjbjkdhfdsnic[...]nciocifids ci ac→→ł€ððæſð€ł¶€ŧ¶ŧ€¶tztrztgreŋŧ¶€¶đ¢đ€ŋerterŧ€¶ŧ¶€←ŧ¶↓←ħ““ħŋ“„đ„ðſ„ðſ¢ðſſđſŋðħ¶←↓ħħ“ðđ“ðđ„¢ſ€¢€ŧ¶tecewtceueiodfio[...]thrzjurkŧħŋſ¶thrsgarrrrezjthgrtwzhtgrtzwuejhgfgrthzjeurkjhgfbvŧħ←↓ŧ←¶½¬{↓←ŧħŋ¶ŧ½¬←{łŧħŋ¶ŧ"

steghide: Mit diesem Passwort konnten keine Daten extrahiert werden!

124

Page 125: Arch Linux

… man einfach mal ein 60 Millionen Zeichen langes Passwort eingibt?

… man einfach mal ASCII-Zeichen, wie z.B. einen Notenschlüssel eingibt?

… man einfach Shell-Befehle in der Passworteingabe eingibt?

automatische Steganalyse:

stegdetect:

… ist im AUR verfügbar

wget https://aur.archlinux.org/packages/st/stegdetect/stegdetect.tar.gz

den Rest kennt man ja inzwischen...

Bei Stegdetect kann man sie Sensitivität einstellen. Der Standard ist 1. Die Werte können 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 höher die Sensitivität eingestellt wird, desto höher ist auch die Möglichkeit 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 unähnlich.

125

Page 126: Arch Linux

Jetzt will ich mal einen Angriff auf das Passwort realisieren. Zuerst mit einem Wörterbuch. 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 Wörterbuch wird es nicht stehen. Ich glaube allerdings, dass es durch einen Bruteforce-Angriff schon geknackt werden könnte. Es hat neun 9 Zeichen, die aus Groß- und Kleinbuchstaben bestehen. Das sind nur 2779905883635712 mögliche Kombinationen. Das zeigt, dass es sich schon lohnt Zahlen einzubauen. Das würde die möglichen Kombinationen bei 9 Zeichen auf 13537086546263552 erhöhen.

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

Page 127: Arch Linux

>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

Page 128: Arch Linux

Jetzt müsste 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 habeich noch keine Lösung gefunden. Das ist doch dann ein Programmfehler, irgendwo wird eine Zugriffsverletzung im Speicher ausgelöst, weil z.B. ein Pointer auf 0 zeigt. Da müsste 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 ungefähr 10000 Kombinationen pro Sekunde, was eigentlich gar nichts ist. Das würde bei einem Bruteforce-Angriff mit den 2779905883635712 möglichen Kombinationen ja 8937 ½ Jahre dauern alle durchzuprobieren. Ich denke, da könnte man auch mehr rausholen. Das bedeutet aber nicht, dass man das Passwort nicht schon nach einer halben Stunden haben könnte. Man würde versuchen, die möglichen Kombinationen einzuengen und mit jedem Fehlversuch steigt auch die Wahrscheinlichkeit, dass der nächste Versuch ein Treffer ist.

Aber:

Stegbreak kann das Steganogramm von Steghide nicht brechen, selbstwenn das Passwort in einer Wörterliste stehen würde. Gerade getestet. Zumindest in der Version 0.4.

128

Page 129: Arch Linux

Perl Skript:

Vorsicht: Das Skript hat meine Temperatur so dermaßen 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 Kühlung.

Ich habe ein kleines Perlskript gefunden, was Wörterbuch-Attacken auf Steghide-Steganogramme durchführen kann.

Ich habe irgendwie mehrere Dutzend Gigabyte Wörterbücher hier rumfliegen, aber immer wenn ich die mal brauche, finde ich die nicht. Ich habe mir jetzt mal das Wörterbuch aus Stegdetect genommen.

Zuerst mal einen neuen Ordner erstellen und das Stenganogramm da rein kopieren, dann das Wörterbuch 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

Page 130: Arch Linux

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^cis 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

Page 131: Arch Linux

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

Page 132: Arch Linux

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 " --image, -i The stegfile you want to bruteforce (required)\n";

print " --wordlist, -w Path to your wordlist (required)\n";

print " --parallelism, -p Number of concurrent threads (default 10)\n";

print " --step, -s Number of words for each thead to test (default 100)\n";

print " --verbose, -v Prints every tested word with thread and try number info\n";

print " --help, -h What do you think you are looking at?\n\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

Page 133: Arch Linux

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

Page 134: Arch Linux

Kryptographie

Das gesamte System verschlüsseln

Truecrypt

Spionageabwehr & ZensurgegenmaßnahmenDie aktuelle Debatte über die Enthüllungen von Snowden, was Nachrichtendienste denn nun wirklich leisten können, verursachen bei vielen Menschen ein Gefühl von Ohnmacht, denn sie sagen zwar, dass sie das nicht gut finden, sehen sich aber nicht in der Lage technische Gegenmaßnahmen einzuleiten. Dabei ist die Debatte auch schon viele Jahrzehnte alt, weil es ist janicht so, dass man nicht wusste, was technisch möglich ist. Der einzige Unterschied ist, dass man jetzt keine Vermutungen mehr äußern 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 können). Ich möchte hier mal ein paar Hinweise geben, was man gegen die großen und besonders auch gegen die kleinen Brüder, die ich persönlich viel gefährlicher finde, tun kann.

Auch diese Liste wird wahrscheinlich nie vollständig werden, weil sich die Autoritäten, Firmen und böse Buben auch ständig 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 möglich zu machen und für mich ist die Sache klar. Wenn jemand an meine sensiblen Daten ran möchte, soll er sich gefälligst was anstrengen.

134

Page 135: Arch Linux

Es gibt verschiedene Informationen, die für die Brüder 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 wäre dann das Äquivalent Telefonbuch. Man braucht keinen Namen, um z.B. eine Webseite anzuwählen, man könnte auch einfach die „Telefonnummer“ eingeben. Man kann sich vorstellen, dass es sehr unbequem wäre, die ganzen Nummern auswendig zu lernen, oder immer per Hand im „Telefonbuch“ nachzuschlagen. Deswegen hält der eigene Internet Service Provider (ISP) ständig 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 fällt 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 verschlüssele, weiß der DNS-Server immer mit wem ich kommunizieren möchte.

Das stellt eine hohe Vertrauensbasis dar, denn da kann man natürlich gut bei der Überwachung und Zensur ansetzen. Wenn der DNS-Server nicht möchte, dass man eine bestimmte Seite aufruft, wird er die IP-Adresse einfach nicht auflösen.

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

Page 136: Arch Linux

Das sieht dann ungefähr 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 Hände. Wenn der DNS-Server mir eine gefälschte 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

Page 137: Arch Linux

Meine persönliche Meinung: Ich benutze den zwar im Moment und ich persönlich traue dem CCC auch, aber man sollte sich im Klaren sein, dass es sich hier um Computerexperten handelt, die einen hohen Spielspaß am Gerät haben. Man kann sich also nicht sein, ob man nicht auch mal für Experimente herhalten muss.

FoeBuD (funktioniert nicht?)

IPv4:

85.214.73.63

OpenNIC:

Webpräsenz: 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

Webpräsenz: http://www.opendns.com/

Kritik: schaltet Werbung bei Falscheingabe / es gibt noch nicht mal eine https-Webseite / ist eine amerikanische Firma / es gibt drei Versionen von Funktionen – Basic (kostenlos), Deluxe und Enterprise / entgegen des Namensist da gar nichts Open – weder ist der Server OpenSource noch ist einzusehen,welche Seiten blockiert werden / die machen irgendwelche komischen Sachenmit Google /

137

Page 138: Arch Linux

Einen eigenen DNS-Cache betreiben:

… was natürlich das Problem mit der Vertraulichkeit für mich löst. 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.

PdnsdWebpräsenz: 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 /* undendet mit */

* Eine Sektion wird mit { eingeleitet und endet mit } und alle Konfigurationeninnerhalb einer Sektion müssen mit einem Semikolon (;) enden

Ich habe mich jetzt zuerst mal für ein Setup mit OpenDNS und dnscrypt-proxyentschieden, obwohl ich OpenDNS eigentlich nicht nutzen wollte. Vielleicht kann ich ja später 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 benötigt. Wenn nun jemand eine Schwachstelle in einem anderen Programm ausnutzen kann und Prozesse als „nobody“ starten kann, könnte der Angreifer in der Lage sein, falsche DNS-Einträge 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

Page 139: Arch Linux

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 für die Ordner, allerdings halte ich das nicht für 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/pdnsdsudo chmod 700 /var/cache/pdnsdsudo chmod 600 /var/cache/pdnsd/pdnsd.cache

Dann noch die Sektion für OpenDNS auskommentieren und die zweite Sektionkommentieren.

Jetzt muss man noch die resolv.conf ändern, denn man möchte ja den lokalen Cache benutzen.

sudo nano /etc/resolvconf.conf

Dort alles mit # kommentieren

name_servers=127.0.0.1pdnsd_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 hinzugefügt undmusste noch loopback in iptables erlauben und ich habe noch Port 53 TCP

139

Page 140: Arch Linux

hinzugefügt. Ich würde lieber nur die Ports für 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 immerdas Problem, dass Pdnsd nicht direkt funktionierte. Man muss den Dienst nach jedem Neustart immer neustarten.

sudo systemctl restart pdnsd.service

140

Page 141: Arch Linux

Um pdnsd-ctl nutzen zu können, 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 löschen:

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 möchte, 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

Page 142: Arch Linux

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; # Das sollte schon Standard sein, ich hoffe, dass es den Fehler des Neustarts behebt

query_method=udp_tcp;

run_ipv4 = on; # IPv6 deaktivieren

min_ttl=2h; # 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; # Upper limit on the size of UDP messages.

par_queries=1; #

}

# 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; # Put your ISP's DNS-server address(es) here.

proxy_only=on; # Do not query any name servers beside your ISP's.

142

Page 143: Arch Linux

# 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; # Test if the network interface is active.

interface=lo; # 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

Page 144: Arch Linux

# 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

Page 145: Arch Linux

preset = off;

}

*/

source {

owner=localhost;

# serve_aliases=on;

file="/etc/hosts";

}

/*

include {file="/etc/pdnsd.include";} # Read additional definitions from /etc/pdnsd.include.

*/

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 auszuführen:

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

Page 146: Arch Linux

Irgendwie habe ich keine eingebaute Methode gefunden, wie man testen kann, ob das denn jetzt auch funktioniert. Aber zum Glück habe ich ja schon einen Sniffer installiert, also Wireshark starten und auf allen Interfaces kontrollieren.

Schön, dass funktioniert schon mal, allerdings bin ich immer noch nicht recht zufrieden. Das schützt mich jetzt vor Man-In-The-Middle-Attacken, aber es schützt mich immer noch vor DNS-Poising, also dass mir jemand gefälschte DNS-Einträge unterjubelt. Dafür benötige ich so etwas wie DNSSEC oder eineandere Methode, die DNS-Übertragungen signiert, denn nur so kann ich ausschließen, dass sich jemand für meinen DNS-Server ausgibt. Ich weiß auch gar nicht, warum eine Firma, die mit Sicherheit im Internet ihr Geld verdient, keine Maßnahmen dagegen unterstützt. Ich kann es mir nicht erklären, aber ich möchte auch keine Verschwörungstheorien spinnen. Fakt ist, das hier ist nur eine vorläufige 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 verschlüsselte 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 hinzufügen:

sudo nano /etc/conf.d/dhcpcd

DHCPCD_ARGS="-C resolv.conf"

Fazit:

So, dass läuft zwar jetzt, aber ich sollte ich unbedingt noch mal kontrollieren und ggf. nachbessern. Was mir gar nicht gefällt, 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 Verschlüsselung ü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 dafür geeignet ist, wenn ich damit umziehen möchte.

146

Page 147: Arch Linux

FEHLER:

Es werden immer noch einige Dienste unverschlüsselt 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 unverschlüsselt 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 unterstützt Black Arch kein https – aber ich stelle trotzdem weiter die Anfrage über https, vielleicht merken die das ja von alleine, wenn sie ihre Logbücher durchgucken und stellen eine https-Verbindung zur Verfügung. Ansonsten werde ich mal bei denen nachfragen, ob das nicht möglich wäre.

147

Page 148: Arch Linux

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 einfachauch was ich wirklich suche. Das kann man von DuckDuckGo nicht unbedingt behaupten.

Weiteres folgt.

148

Page 149: Arch Linux

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 herunterladenwget -O Dateiname http-Link

Rechner zeitgesteuert herunterfahren

Ein Befehl, den ich sehr oft benutze, wenn ich z.B. noch einen Podcast zum Einschlafen höre. In diesem Beispiel fährt 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 fängt 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

Page 150: Arch Linux

Prüfsumme von Strings ausgebenecho -n 'Das ist die Prüfsumme' | sha512sum

75717595ec341cf6117aa758b6c23e5944682c9920916ff2acdae824ee5794fd7c8c1d712ac0f10b9661fa86a647ef090ba9f657f2b01ad5814fc149a8dca84e -

Da kann man ruhig mal einen ganzen Abschnitt über Prüfsummen schreiben.

Automatisches einloggen

Sicherheitstechnisch ist das bestimmt nicht die beste Idee, aber ich mag es halt auch bequem.

Ich möchte 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 Oberfläche.

auf virtuelle Konsole einloggen:

cd /etc/systemd/system

sudo mkdir [email protected]

cd [email protected]

sudo nano autologin.conf

Dort folgendes eingeben:

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

Aktivieren

sudo systemctl disable [email protected] systemctl enable [email protected]

auf X einloggen:

Sicherstellen, dass der eventuell vorhandene Display-Manager nicht mehr geladen wird, z.B.

150

Page 151: Arch Linux

sudo systemctl disable gdm.service

Ich benutze Zsh, deswegen füge ich es zur zprofile. Benutzer der Bash fügen 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

Page 152: Arch Linux

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 natürlich nicht ganz so genau.

Ich stoppe, wie lange es dauert von dem Moment, wo ich den Startknopf drücke bis Gnome inklusive guake und firefox mit leerer Seite gestartet ist.

Das dauert momentan ungefähr 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 Auswahlmöglichkeiten. 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, könnte man e4rat benutzen. Aber zuerst werde ich die integrierte Methode von systemd nutzen, da ich vielleicht später auf ein anderes Dateisystem umsteigen möchte.

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, dafür dass ichnur eine Funktion, die standardmäßig integriert, aber nicht eingeschaltet ist, aktiviert habe.

152

Page 153: Arch Linux

5. Versuch: 1:15 Minute ← nichts verändert.

Der Grub-Timeout steht bei mir auf 3 Sekunden. Den stelle ich mal auf 1, das reicht um eine Auswahl zu treffen. Zusätzlich stelle ich die Ausgabe wieder auf „quiet“, das hatte ich geändert.

6. Versuch: 1:10 Minute

Vor dem 7. Versuch habe ich in der Gnome-Shell die Plugins ausgeschaltet unddie Dateien werden nicht mehr auf dem Dekstop angezeigt.

Und ich habe mal angefangen Programme und deren Abhängigkeiten 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 löschen

sudo pacman -Scc

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

153

Page 154: Arch Linux

MB. Standardmäßig sind 10% der Root-Partition eingestellt, das wären bei mirja 2GB. Ich brauche auf einem Desktopsystem keine 2GB Logbücher.

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 löschen

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 unnötigen Belast zu befreien. Was ich ja eigentlich möchte, ist so viele Dienste wie möglich am Anfang des Startprozesses parallel starten, um die bestmöglichste Auslastung zu erreichen und das macht man über die Systemd.

sudo nano /etc/conf.d/network@enp7s0

address=192.168.1.187netmask=24broadcast=192.168.1.255gateway=192.168.1.1

sudo nano /etc/systemd/system/[email protected]

[Unit]Description=Network connectivity (%i)Wants=network.targetBefore=network.targetBindsTo=sys-subsystem-net-devices-%i.deviceAfter=sys-subsystem-net-devices-%i.device

[Service]Type=oneshotRemainAfterExit=yesEnvironmentFile=/etc/conf.d/network@%i

ExecStart=/usr/bin/ip link set dev %i upExecStart=/usr/bin/ip addr add ${address}/${netmask} broadcast ${broadcast} dev%iExecStart=/usr/bin/ip route add default via ${gateway}

154

Page 155: Arch Linux

ExecStop=/usr/bin/ip addr flush dev %iExecStop=/usr/bin/ip link set dev %i down

[Install]WantedBy=multi-user.target

Sicherstellen, dass alle anderen Konfigurationen nicht aktiv sind.

sudo systemctl enable [email protected] systemctl start [email protected]

Nicht vergessen, einen Nameserver in der /etc/resolveconf.conf einzutragen, sonst hat man kein DNS.

Staggered spin-up abschalten

dmesg | grep SSSzeigt, dass es bei mir angeschaltet ist. Das ist eigentlich nur dafür 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 einerVerzögerung 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 Kernel-Parameter ändern. Vorsicht, das kann zu Problemen führen. Nur weil man es persönlich nicht braucht, kann es trotzdem sein, dass irgendwelche Programme seltsame Fehlermeldungen ausspucken und ggf. nicht funktionieren.

155

Page 156: Arch Linux

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 Arbeitsfläche

* Login Sound

* Persönliche 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

Page 157: Arch Linux

sudo nano /etc/sysctl.d/99-sysctl.conf

vm.swappiness=1vm.vfs_cache_pressure=20

Da Ext4 keine Komprimierung unterstützt, 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 später wieder zurückgenommen. Das empfand ich dann doch als einen zu großen 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 Feb 18th 2013

File size Ratio Format Name

-------------------- ------ ----------- -----------

122048 -> 61844 50.67% linux/ElfAMD firefox

11. Versuch 0:53 Sekunden

Ich schalte mal den ntpd ab, dann muss ich mir etwas anderes überlegen.

sudo systemctl disable ntpd

157

Page 158: Arch Linux

Und ich habe mal RF-Kill für den WLAN-Adapter eingeschaltet, vielleicht verschwindet die Fehlermeldung beim Start. (Nöö)

Zugriffzeiten für 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 nötig ist, benutztman -c. Swap-Partitionen werdem nicht unterstützt.

sudo e4defrag -c /dev/sda1

Ist aber nicht nötig

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 zurück, 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.upxsudo rm /usr/lib/firefox/firefox

sudo mv /usr/lib/firefox/firefox.bak /usr/lib/firefox/firefox

sudo pacman -Rss upx

Ich versuche mal den proprietären 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

Page 159: Arch Linux

nvidia deinstalliert.

Alles andere sollte automatisch gehen, ich bezweifle das ja.

:: nvidia-libgl und mesa-libgl stehen miteinander in Konflikt (libgl). mesa-libgl entfernen? [j/N]j

Fehler: Konnte den Vorgang nicht vorbereiten (Kann Abhängigkeiten nicht erfüllen)

:: nouveau-dri: benötigt mesa-libgl

Soviel dazu....

sudo pacman -Rss xf86-video-nouveau

Prüfe Abhängigkeiten...

:: google-earth benötigt optional nouveau-dri: For the open source Nouveau driver

Pakete (2): nouveau-dri-10.0.1-1 xf86-video-nouveau-1.0.10-1

Gesamtgröße der entfernten Pakete: 16,90 MiB

:: Möchten Sie diese Pakete entfernen? [J/n] j

pacman -Rss google-earth

Ohh, glu brauche ich wohl für 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 zurück zu nouveau. Der reicht im Moment.

13. Versuch 0:53 Sekunden

Man könnte ja jetzt schon fast zufrieden sein, immerhin habe ich schon um die35 Sekunden einsparen können. 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 geöffnet ist.

Aber ich möchte natürlich auch etwas herumexperimentieren. Gnome ist hier ausschlaggebend langsam. Das ist ja ein Schwergewicht, ich probiere mal

159

Page 160: Arch Linux

XFCE und deinstalliere Gnome. Siehe Grafische Oberfläche - XFCE

14. Versuch 0:48 Sekunden

ToDo:

Grub2-Welcome-Message brauche ich nicht. Das ist wieder mehr als eine Sekunde, die man sparen könnte. Leider halten die Entwickler nicht davon und es gibt keine direkte Funktion, das abzuschalten. Man muss also den Source-Code verändern und selbst bauen oder man versucht es mit grub-shusher. 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 drücken 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 während des Startes in den Arbeitsspeicher schreiben. Ist das möglich?

Der Hersteller gibt kein BIOS-Update heraus, aber vielleicht ist es möglich OpenBIOS o.ä. zu benutzen.

Die seriellen? Konsolen von 6 auf 2 ändern.

160

Page 161: Arch Linux

Desktopbenachrichtigungen über die Shell

Wenn man eine Benachrichtigung an den Desktop mittels eines Shell-Skript schicken möchte, 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 Specifies the urgency level (low, normal, critical).

-t, --expire-time=TIME Specifies the timeout in milliseconds at which to expire the notification.

-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 Specifies basic extra data to pass. Valid types are int, double, string and byte.

-v, --version Version of the package.

z.B.

notify-send -u critical -t 3000 "Akku leer" "Bitte schließen sie ihr Laptop an die Stromversorgung an"

161

Page 162: Arch Linux

Exif-Einträge bearbeiten oder entfernen

Gimp

Um ein einzelnes Bild von Exif-Einträgen zu befreien könnte man Gimp nehmen.

Einfach das Bild öffnen und dann wieder Exportieren. Im Exportieren-Dialog auf Erweiterte Optionen gehen und das Häkchen bei EXIF-Daten speichern entfernen.

Man kann auch einige Details unter Bildinformationen bearbeiten.

Das ist bei vielen Bildern aber sehr umständlich.

ExifTool

Webpräsenz: http://owl.phy.queensu.ca/~phil/exiftool/

… ist ein plattformunabhängiges 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 erschlägt 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. Müsste man sich halt selbst ein PKGBUILD erstellen.

http://hvdwolf.github.io/pyExifToolGUI/

162

Page 163: Arch Linux

Man muss das unbedingt installieren, aber man benötigt trotzdem ein paar Abhängigkeiten, die ich noch nicht gefunden habe.

Bemerkung: Bei allen Methoden wurden immer unterschiedliche Exif-Einträgeentfernt, 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 hartnäckig zu sein.

* exiv2

War irgendwie schon installiert

exiv2 Bild.jpg

Ist nicht so ausführlich wie exiftool

* jhead

*

Eigenen Kernel bauen

Hardware- und Systeminformationen sammeln.

Inxi ist in im Community Repositorium:

pacman -S inxi

In meiner Methode benötigt man abs und base-devel. Die habe ich schon installiert, nun werde ich nur noch einmal den abs-Baum aktualisieren.

163

Page 164: Arch Linux

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 versionmake preparemake 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 configurationmake xconfig # X-based configuration#make oldconfig # using old config from previous kernel version# ... or manually edit .config

Um den Kernel schneller bauen zu können, gibt man sich mit nproc die Anzahlder Verfügbaren Prozesse aus. In meinem Fall ist nproc=2. Das füge ich der makepg.conf hinzu.

nproc

nano /etc/makepkg.conf

MAKEFLAGS="-j2" auskommentieren

164

Page 165: Arch Linux

Probleme ohne Lösungsansatz

* Pakete inklusive Konfigurationsdateien löschen

Pacman entfernt die Konfigurationsdateien beim Deinstallieren nicht. Ich bin es langsam echt leid, die ständig per Hand zu löschen. Andere Paketmanager können das doch auch.

165

Page 166: Arch Linux

TonstudioMeiner Meinung nach ist Audiobearbeitung unter Linux nichts weiter als ein Krampf. Meine bisherigen Erfahrungen sind einfach niederschmetternd. Das ganze Linux-Audio-System könnte mal eine Finanzspritze brauchen und jemanden, der die Sache in die Hand nimmt und mal was anständiges entwickelt. Trotzdem ist es eine Möglichkeit sehr kostengünstig 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, würde man natürlich einen dedizierten Computer verwenden, der nur das notwendigste enthält, um sein Studio aufzubauen. Das steht mir in meinem Fall jetzt nicht zur Verfügung.

Jack2

Jack, ein rekursives Akronym für Jack Audio Connection Kit, verbindet die Audioanschlüsse 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 möchte 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

Page 167: Arch Linux

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 – Häkchen setzen – damit wird automatisch „JackAudio-Server bei Programmbeendung anhalten“ ausgewählt.

* Verschiedenes → Symbol im Benachrichtigunsfeld anzeigen – Häkchen 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

Page 168: Arch Linux

Zuerst habe ich erst mal eine mp3 im VLC gestartet und habe natürlich keinenTon. Dafür muss man im VLC unter Audio → Audiogerät → Jack sink (Pulse Audio) wählen.

Es gibt viele Programme, zuerst versuche ich mein Midi-Keyboard anzuschließen und mit Bristol zu spielen.

Dafür 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 für Jack verfügbar machen.

yaourt -S a2jmidid-git

a2jmidid -e

Wenn das funktioniert, kann man das in den Einstellungen unter Optionen bei Script nach Start ausführen.

/usr/bin/a2jmidid -e &

168

Page 169: Arch Linux

Software

Open-Source-Software

Bristol

Webpräsenz: http://bristol.sourceforge.net/

yaourt -S bristol

Danach das Script starten

startBristol -jack

Nach dem Start muss man noch im qjackctl die Soundausgänge und die Midi-Eingänge verbinden.

Audio

bristol mit system

Jack-MIDI

a2j → Keyboard mit bristol → midi_in

Der Ton stürzte bei den Versuchen immer ab.

Qsynth

Webpräsenz: http://qsynth.sourceforge.net

Der nächste Versuch war dann mit Qsynth

pacman -S qsynth

Man benötigt noch Soundfonts, die ich mir aus dem Internet zusammengesucht habe.

Ardour3

Webpräsenz: http://ardour.org/

pacman -S ardour

169

Page 170: Arch Linux

Linux Multi Media Studio

Webpräsenz: http://lmms.sourceforge.net/wiki/index.php/Main_Page

pacman -S lmms

Rosegarden

Webpräsenz: http://www.rosegardenmusic.com/

Hydrogen

Webpräsenz: http://www.hydrogen-music.org/hcms/

pacman -S hydrogen

Non-DAW

Webpräsenz: http://non.tuxfamily.org/

yaourt -S non-daw-git

Das Paket kompiliert nicht, da es eine nicht vorhandene Abhängigkeit enthält. 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

Page 171: Arch Linux

TerminatorX

Webpräsenz: http://terminatorx.org/

Timidity

Webpräsenz: http://timidity.sourceforge.net/

pacman -S timidity++ timidity-freepats

nano /etc/timidity++/timidity.cfgdir /usr/share/timidity/freepatssource /etc/timidity++/freepats/freepats.cfg

Mixxx

Webpräsenz: http://www.mixxx.org/

pacman -S mixxx

Notam Radium

Webpräsenz: http://users.notam02.no/~kjetism/radium/

Linuxsampler

Webpräsenz: http://www.linuxsampler.org/

Der Linuxsampler besteht im Wesentlichen aus 3 verschiedenen Programmteilen:

• dem Linussampler – der eigentliche Sampleplayer • der grafischen Oberfläche: 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-Oberfläche zu nehmen.

yaourt -S qsampler

171

Page 172: Arch Linux

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

Später 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/cgi-bin/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

Page 173: Arch Linux

semiprofessioneller Qualität:

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 für sfz...

173

Page 174: Arch Linux

Kommerzielle Software

Renoise

Webpräsenz: http://www.renoise.com

Ist kein Open-Source, sieht aber sehr nett aus.

Eine Demo ist im AUR verfügbar.

Demo Einschränkungen:

• 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 umeine fertige Vorlagen nutzen zu können, 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

Webpräsenz: http://bitwig.com/en/bitwig-studio

Auch kein Open-Source. „Coming Soon“ steht aber auch schon was länger da.

(Da habe ich jetzt in letzten Woche im Jahr 2013 gelesen, dass es wohl bald veröffentlicht wird.)

174

Page 175: Arch Linux

Ableton Live

Webpräsenz: https://www.ableton.com/de/

Ableton Live läuft nicht nativ unter Linux. Vielleicht könnte es mit Wine laufen.

Harrison Mixbus

Webpräsenz: http://www.harrisonconsoles.com/mixbus/website/

175

Page 176: Arch Linux

Hardware

Tascam US-800

… ist ein USB1.1/2-Soundinterface. Ich bekenne mich persönlich 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 läuft, hört sie sich aber sehrgut 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 müsste 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 hasinvalid 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 für 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 Eingänge werden aber nicht erkannt.

176

Page 177: Arch Linux

3) Eine neue Jack-Konfiguration auf der Basis der alten Konfiguration erstellen. Dafür wählt man aus:

Schnittstellen: hw:US800 US800(hw:3)

Kanäle I/O: 8 Eingänge / 6 Ausgänge <_ vielleicht 2 Ausgänge?

Perioden/Puffer: 3 ← 2 für Motherboard/PCI/PCI-X usw. / 3 für USB - dadurch geht die Latenz

hoch

Dann den Jack-Server neu starten und danach funktioniert das Soundinterfaceauch schon.

4) Danach versucht man mal die Latenz herunterzuschrauben.

Abtastrate: 96k

Samples: 256

Latenz = 5,33 Millisekunden

Das funktioniert, ist aber nicht schön. Besser:

Abtastrate: 96k

Samples: 512

Latenz = 10,7 Millisekunden

Ohne XRUN-Fehler geht es nur mit einer Latenz von 64 ms, was natürlich 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 läuft. Leiderhat das Gerät keinen Schalter, deswegen habe benutze ich ein Verlängerungskabel mit Schalter. Man muss danach auch eine Zeit warten, bisdas Betriebssystem das Interface erkannt hat. Erst dann kann man qjackctl starten.

Es läuft einigermaßen, 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

Page 178: Arch Linux

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, nichtin der vorgeschriebenen Zeit erledigt werden konnten. Also ohne spezielle Einstellungen am System ist auch keine vernünftige Latenz einstellbar.

Probleme:

* Wenn man eine externe Festplatte einsteckt, verliert das US800 die USB-Verbindung. 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 hört ein getaktetes fiepsen im Hintergrund. Das ist natürlich bei einemLaptop nicht unbedingt einfach zu beheben. Das kann alles mögliche 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 für 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/4080/launchpad-programmers-reference.pdf

Ich habe gerade gesehen, dass das Launchpad direkt erkannt wird und man kann es mit renoise nutzen.

178

Page 179: Arch Linux

Akai APC40

Eine gute Nachricht, muss ja auch mal sein. Einfach den Controller anschließen und er ist sofort einsatzbereit. Die LEDs habe ich noch nicht getestet.

Hercules DJ Control Mp3 e2cd 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 für die 'x86_64'-Architektur nicht zur Verfügung.

Beachten Sie, dass bei vielen Paketen eine Zeile zu PKGBUILD hinzugefügt 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 möchte Headers für einen anderen Kernel installieren.

Abgebrochen – da muss ich später noch mal gucken.

Ich habe das jetzt mal gebaut. Nach dem installieren, überprüft man, ob es läuft.

modprobe hdj_mod

Bei mir friert das System immer ein. Schade eigentlich.

179

Page 180: Arch Linux

Echtzeitkernel:

Um die Latenzen gering zu halten, benötigt man einen Kernel, der garantiert, dass alle Aufgaben mit einer niedrigen Reaktionszeit erledigt werden. Das ist ungefähr vergleichbar mit einem Airbag. Wenn man gegen einen Baum fährt, dann müssen innerhalb von von Millisekunden alle Sensoren auslesen und derrichtigen Airbag ausgelöst werden. Es bringt nichts, wenn der Sensor merkt: Ahh, der Beifahrerairbag ist gerade beschäftigt, ich warte mal und probiere esin 200 Millisekunden nochmal, ggf. ist er dann immer noch beschäftigt. Der Sensor muss also in der Lage sein diese Beschäftigung zu beenden und seine Anweisung sofort auszuführen.

Es gibt natürlich auch hier wieder mehrere Möglichkeiten, ich habe mich dazuentschieden 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 Verfügung 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-2-x86_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

Page 181: Arch Linux

Ich konnte den Grub2 nicht aktualisiert, da kam eine Fehlermeldung mit Hauptspeicher erschöpft 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 393Syntax errors are detected in generated GRUB config file.Ensure that there are no errors in /etc/default/gruband /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 können, startet man neu. Wenn der Grub-Startbildschirm erscheint, drückt man e und gibt man in den zwei Zeilen ein -rt ein.

linux /vmlinuz-linux-rt root=UUID=xxx rw clocksource=acpi_pm resume=/dev/sda2

initrd /initramfs-linux-rt.img

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 lädt der RT-Kernel auch beim Start. Aber das ist nur eine Notlösung. Das sollte man eigentlich nicht machen.

Lösung:

Das scheint ein Bug zu sein – siehe https://bugs.archlinux.org/task/37904

Um das Problem zu lösen, bearbeitet man

nano /etc/default/grub

und fügt 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

Page 182: Arch Linux

182

Page 183: Arch Linux

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-wl-treiber setzt. Den habe ich aber nicht benutzt. Das ist ja auch eine gute Möglichkeit 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 schön undgut aus und es fühlt sich auch gut an beim spielen. Wenn ich eine Saite anschlage, höre ich keine Latenz im Lautsprecher. Aber man möchte 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 höre.

183

Page 184: Arch Linux

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-bit-Bibliotheken 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. Dafür als root einen symbolischen Verknüpfung anlegen.

ln -s /usr/bin/tcsh /bin/csh

Ausgabe:

ln: die symbolische Verknüpfung „/bin/csh“ konnte nicht angelegt werden: Die Datei existiert bereits]

Den Benutzer zur Gruppe lp hinzufügen. 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 Erklärung: Wenn man Module mittels der Blacklist am Starten hindert, aber ein anderes Modul dieses Modul als Abhängigkeit 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 ausführen:

/usr/local/Brother/Printer/MFC7360N/cupswrapper/cupswrapperMFC7360N-2.0.4

systemctl restart cups

184

Page 185: Arch Linux

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 später nichtmehr.

Fehler: Die Verbindung zum Anschluss ist falsch.: usb:/dev/usb/lp0, obwohl dasModul 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 Verfügbar, ansonsten weiter:

Discovered Network Printers: Brother MFC-7360N (Brother MFC-7360N)

* AppSocket/HP JetDirect auswählen

* 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.html

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

Page 186: Arch Linux

scanimage --format=tiff > test.tiff

scanimage: open of device brother4:bus1;dev1 failed: Error during device I/O

Die Lösung 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 geändert, 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

Page 187: Arch Linux

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 einhängen:

cd

mkdir android-bt

187

Page 188: Arch Linux

obexfs -b D4:20:6D:AF:95:B7 android-bt/

Jetzt ist das Gerät 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 Gerät auszuhängen:

fusermount -u ~/android-bt

Ich möchte es hier mal ausnahmsweise direkt mit einer KlickiBunti Oberflächeversuchen.

yaourt -S blueman-bzr

Die AUR Version ist abhängig von bluez4 und das steht mit bluez im Konflikt.

Ich werde später 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 rumzuärgern. Deinstalliert..

188

Page 189: Arch Linux

Entwicklungsumgebungen

Android

… ist sowohl ein Betriebssystem als auch eine Softwareplattform für mobile Geräte, 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 ausgeführt.

Was Voraussetzungen müssen erfüllt sein?

* Es muss das Multilib-Repositorium freigeschaltet sein.

Die benötigen Pakete beschaffen:

Die Pakete sind allesamt im AUR verfügbar. Man könnte sie über Yaourt installieren, ich werde sie aber selbst kompilieren.

Android-SDK installierencd 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 Binärdatei könnte man jetzt mit

pacman -U android-sdk-r22.3-1-x86_64.pkg.tar.xz

installieren, aber ich verschiebe die Dateien in mein eigenes Netzwerk-Repositorium, um das weiter zu testen.

189

Page 190: Arch Linux

Weiter geht’s

cd ..

cd ..

mkdir android-sdk-platform-tools

cd android-sdk-platform-tools

wget https://aur.archlinux.org/packages/an/android-sdk-platform- tools/android-sdk-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 für das Paket

* android-sdk-build-tools

https://aur.archlinux.org/packages/an/android-sdk-build-tools/android-sdk-build-tools.tar.gz

Android-Studio

Ich habe schon länger nichts mehr mit Android gemacht, aber bisher habe ich immer mit Eclipse gearbeitet. Darauf möchte ich aber erst später eingehen. Im Jahr 2013 hat Google eine neue Entwicklungsumgebung veröffentlicht. Die nennt sich Android-Studio und basiert auf Intellj IDEA. Die möchte ich mal zuerst ausprobieren.

Dafür 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 Plattformtoolsauf, wo man eine Vorauswahl trifft.

sudo /opt/android-sdk/tools/android

Dort wähle 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 später meine

190

Page 191: Arch Linux

Apps nutzen möchte, wähle ich zusätzlich die API 8 aus, weil auf meinem Telefon noch Android 2.2 läuft. Vielleicht gibt’s da ja inzwischen ein Upgrade, glaube ich aber nicht. Der Hersteller ist sehr knauserig, was das angeht.

Und man wählt noch das Paket Android Support Repository, sonst meckert der später, dass er etwas nicht finden konnte.

Wenn man weitere braucht, kann man die später noch nachinstallieren. Einfach den Befehl noch mal aufrufen.

Jedes Android-Gerät 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. Dafür 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 installierthabe.

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 Abhängigkeiten auf. Diese entfernen. Allerdings funktioniert dann auch das Java-Plugin für Firefox nicht mehr.

==> NOTE: Please re-login to include JDK in your PATH.

So, jetzt man das Android-Studio starten.

Bevor man das Gerät mit dem Rechner verbindet, muss man noch einige Einstellungen auf dem Gerät vornehmen. Das sieht bestimmt bei jedem andersaus, aber irgendwo muss man die Option USB-Debugging aktivieren. Zusätzlich sollte man sicherstellen, dass der Schlafmodus deaktiviert ist. Danach verbindet man das Gerät.

191

Page 192: Arch Linux

Hallo Welt

Jetzt schreibt man sein erstes App. Es ist kein richtiges App, aber es gehört zur Tradition, dass man erst mal ein Programm schreibt, das einfach nur HalloWelt auf dem Bildschirm ausgibt. Damit kann man sehr einfach testen, ob manbis hierhin alles richtig gemacht hat.

* Android-Studio starten

* Neues Projekt auswählen

Application name: HalloWelt

Modulname: HalloWelt

Package name: com.example.hallowelt

Minimum requires SDK: 2.2 Froyo

Language Level: 7

Den Rest lasse ich erst mal so. Dann auf Next klicken.

Dort habe ich noch einen gelben Hintergrund eingestellt. Next.

Nächster Bildschirm → Nichts machen → Next.

Nächster Bildschirm → Finish

Dann fängt er an das Programm zu bauen.

Wenn jetzt jetzt alles geklappt hat, drückt man oben mittig den grünen Play-Knopf. Tadaa, das App läuft auf dem Smartphone.

Wie man Android-Apps programmiert ist im InterNetz, der allwissenden Müllhalde, gut erklärt, da möchte ich hier nicht weiter drauf eingehen. Hier soll es ja hauptsächlich darum gehen, wie man Arch Linux zum Laufen bekommt. Im Prinzip muss man in Java lesen und schreiben können. Als kostenlose Lektüre könnte 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 natürlich noch viel viel viel mehr kostenloses Zeug. Einfach mal aufdie Suche gehen.

192

Page 193: Arch Linux

Eclipse

Es gibt wahrscheinlich auch Implementationen für 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 unterstützt. Ich nutze gerne Eclipse.

Dafür 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 einfügen

* Eclipse öffnen

* Gehe zu Help → Install new Software

* rechts oben add klicken

* Im Dialog den Namen ADT-Plugin eingeben und Location https://dl-ssl.google.com/android/eclipse/ - Falls das nicht funktioniert, http wählen

* Developer Tools wählen Next

* Im nächsten Fenster Next klicken

* Lizenzen akzeptieren → Finish

* Die Dateien werden heruntergeladen, und die Warnung mit dem unsignierten Code zur Kenntnis nehmen und bestätigen.

* Eclipse neustarten, damit die Änderungen verfügbar sind.

* Fehlermedung wegklicken

* Wähle Use existing SDKs - /opt/android-sdk

* Wählen, ob man Google Statistiken schicken möchte – Geschmackssache

* Finish

Hallo Welt

Das sollte jetzt jetzt funktionieren. Probieren geht über studieren.

* File → New → Project → Android Application Project → Next

* Application Name: HalloAndroid

193

Page 194: Arch Linux

* 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 anschließen → Auf den Play-Knopf drücken → Run as Application

Was sofort auffällt, 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 Geräten 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 auswählen und Create AVD

* Eclipse neustarten

194

Page 195: Arch Linux

Spielend programmieren lernen

Ich lerne gerne wie ein kleines Kind, nämlich 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 Lösung aus einer scheinbar ausweglosen Situation zu finden.

Fuschen ist ist entgegen der landläufigen Meinung eine sehr kreative Tätigkeit, denn man versucht einen Weg zu einem Ziel zu finden, der so nicht vorgesehen ist. Das können Leute, die das professionell gelernt haben oft nicht, weil die immer nach so einem bestimmten Schema vorgehen.

RobocodeWebpräsenz: http://robocode.sourceforge.net/

… wurde hauptsächlich dafür entwickelt Java zu erlernen, es werden aber auch andere Sprachen wie C# unterstützt.

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 md5sumsangepasst werden.

makepkg -g

md5sums=('551097457ac0d1838224f816f6dc5857'

'8a556209b3ffb39839f28f30479a8c8d')

195

Page 196: Arch Linux

nano PKGBUILD

md5sums ändern

makepkg -s

pacman -U

FYI: Wenn man mal ein eigenes PKGBUILD schreibt, sollte man keine md5sumbenutzen. Da kann man ruhig etwas höherwertiges 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 wähle 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 auswählen. Bei mir das /home/benutzer/eclipse/ErsterRobotor/bin → Finish

* Gehe wieder zu Eclipse und wähle File → New → Class

196

Page 197: Arch Linux

* Finish

Jetzt kann man den Roboter bearbeiten. Man könnte z.B. so etwas hinzufügen:

197

Page 198: Arch Linux

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 schließen

* Auf das Projekt Erster Roboter gehen und Rechtsklick

* Run As → Run Configuration → Java Apllication

* oben links New wählen

198

Page 199: Arch Linux

199

Page 200: Arch Linux

-Xmx512M -Dsun.io.useCanonCaches=false -Ddebug=true

* Apply → Run

* Ab jetzt kann man zu starten einfach den Play-Button in Eclipse drücken

HamsterWebpräsenz:

http://www-is.informatik.uni-oldenburg.de/~dibo/hamster/index2.html

AntMe!

200

Page 201: Arch Linux

Scratch

Webpräsenz: http://scratch.mit.edu/

offiziell unterstütztes 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

Page 202: Arch Linux

Die nötigen 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 unterstützen möchte. 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 ausgeführt werden.

nano packages.both

Das voreingestellte lasse ich erst mal so und füge meine gewünschten 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 möchte mich den Benutzern und den dazugehörigen Passwörtern 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 Live-Medium.

202

Page 203: Arch Linux

Synaptics:

sudo cp -r /etc/X11/xorg.conf.d/50-synaptics.conf ~/archlive/releng/root-image/etc

.xinitrc

in das Verzeichnis ~/archlive/releng/root-image/etc wechseln und dort ein neues Verzeichnis erstellen

cd ~/archlive/releng/root-image/etc && mkdir skelund dort jetzt die Datei hineinkopieren

cp ~/.xinitrc ~/archlive/releng/root-image/etc/skel/Da ich da aber noch Gnome ausführe, ändere ich das nach LXDE ab.

nano ~/archlive/releng/root-image/etc/skel/.xinitrc

Jetzt noch dem Skript sagen, dass es .xinitrc für 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 sessionif [ ! -d /home/benutzer ]; then mkdir /home/benutzer && chown benutzer /home/benutzerfi# Copy files over to homesu -c "cp -r /etc/skel/.* /home/benutzer/" benutzer

So, jetzt dürfte 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/sdxdd bs=4M if=/path/to/??.iso of=/dev/sdx && sync

Benutze sdx anstatt sdx1!!! x natürlich ersetzen. Wichtig ist, dass der USB-Massenspeicher nicht eingehängt ist, überprüfen mit lsblk.

203

Page 204: Arch Linux

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 außerdem wollte ich schon immer mein eigenes Betriebssystem haben.

Ja, aber warum …?

Warum denn nicht?

Vorbereitung

Wenn man natürlich wie ich nur etwas für sich selbst baut, kann man machen,was man möchte. Wenn aber dein eigenes Linux auch von Anderen genutzt werden soll, fehlt natürlich noch einiges.

Als erstes wäre natürlich eine gute Idee vonnöten, 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, könnte man ja eine Distribution schaffen, die alles nötige für einen Lenovo B550 Laptop direkt installiert und konfiguriert hat. Das spricht natürlich auch so viele an. Oder man könnte eine Tonstudio-Distribution, oder eine Amateurfunk-Distribution erschaffen. Oder vielleicht eine, die sich besonders an Windowsumsteiger richtet. Oder eine, die besonders für Firmen interessant ist. Oder, oder, oder.

Als zweites wäre 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 primär in seiner Freizeit erledigt. Geld verdienen lässt sich damit eigentlich nur, wenn man ein stabilesProdukt geschaffen hat, was auch für Firmen interessant ist, denen man dann Support anbietet. Oder man macht es so wie Apple mit ihrem MacOS X, das

204

Page 205: Arch Linux

soweit ich weiß auf einem Darwin BSD basiert, was auch ein freies Betriebssystem ist. Die grafische Oberfläche Aqua ist aber dann proprietär. Unter Linux ist das aber so nicht möglich, weil die Lizenz, die GNU General Public License, garantiert, dass alle Änderungen und Ableitungen wieder unter der GPL vertrieben werden müssen. Das ist bei einer BSD-Lizenz anders. Aber dafür gäbe es ja auch noch Arch BSD.

https://www.archbsd.net/

ToDo* Die ganzen (d)englischen Begriffe soweit wie möglich aus den Erklärungen herausfiltern. Das ist manchmal gar nicht so einfach. Aber ich lebe in Deutschland und da spricht man deutsch.

* Ein barrierefreies Dokumentenformat wählen. Ich kenne mich jetzt nicht aus, aber ich glaube PDF ist kein geeignetes Format für Barrierefreiheit. Ich kann natürlich 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 für Sehende keine Lösung. Man sollte fürlaufenden Text schon Schriften mit Serifen verwenden, damit das Auge dem Text schön folgen kann.

* acpi_ipmi – Sicherheitsrisiko???? siehe: Optimierungen

* Baustellen fertigstellen

** OpenVas, Metasploit, Lüfter, Pdnsd, Bluetooth, ACPI, etc.

205

Page 206: Arch Linux

weiterführende 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: Einführung in Real-Time Linux (Preempt-RT)

http://chemnitzer.linux-tage.de/2010/vortraege/detail.html?idx=517

Real Time Linux Wiki

206

Page 207: Arch Linux

https://rt.wiki.kernel.org

StichwortverzeichnisAabs......14, 48, 55, 61, 68, 75, 93f., 114, 155f., 158, 160, 163f., 219Abs.......................................79, 91ABS...........................................164Alsa.....................................71, 168Bbluetooth..................................187Bluetooth....................5, 186f., 205D

DNS4, 87, 135f., 138, 142ff., 146f.,155f.JJack.............................166ff., 176f.PPacman.1, 4, 18, 30f., 34, 51, 58f., 92, 113ff., 147f., 153, 165, 217Zzsh....5, 60, 84, 87, 105, 119f., 216

Warum werden da die Daten aus dem Inhaltsverzeichnis übernommen?

Warum kann man ein mal vorhandene Einträge nicht mehr über die Konkordanzdatei berichtigen/entfernen?

Wie bekomme ich es hin, dass zwischen jedem Buchstabenabsatz eine leere Zeile eingefügt wird?

207

Page 208: Arch Linux

Arch BSDWie das halt im Leben so ist, kann es vorkommen, dass sich Vorstellungen undZiele 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 bräuchte, möchte ich aber auch für die Zukunft gewappnet sein. Deswegen setze ich ab jetzt auf dem DateisystemZFS.

Arch BSD vs. Arch Linux

Jeder, der sich für 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 für größte Nachteil daran ist, dass ArchBSD keine systemd benutzt und

auch nicht benutzen kann, da systemd ausschließlich auf Systemen mir

Linux-Kernel läuft. Es wird init.d benutzt, entweder FreeBSD-init oder

Open-init. Und das finde ich besonders schade, ich hatte mich gerade an

systemd gewöhnt und schätzen gelernt.

Zusätzlich sollte man sich im Klaren sein, dass es sich um ein sehr junges

Projekt handelt und auch alles noch nicht so läuft, wie es sollte. Man muss

sich auf ein paar Umwege einstellen, um das System ordnungsgemäß zum

laufen zu bekommen. Außerdem stehen noch nicht allzu viele Pakete zur

Verfügung, was es auch nicht unbedingt einfacher macht. Besonders stehen

noch kaum bis gar keine spezifisch deutschsprachigen Pakete zur

Verfügung.

ArchBSD herunterladen

Wer das Abbild auf einem USB-Massenspeicher schreiben möchte, braucht

eine andere Datei.

ftp://ftp.archbsd.net/iso/2013-08-25/ArchBSD-amd64-25082013.img.xzArchBSD installieren

208

Page 209: Arch Linux

Vorbeitung

Ich gehe hier davon aus, dass eine leere Festplatte zur Verfügung steht. Ich

habe meine Festplatte vorhher mit der Gparted-Live-Edition bearbeitet.

* Die Partitionstabelle löschen

* Die Festplatte mit Rauschen gefüllt

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 auswählen

Um die Auflösung der Konsole zu ändern, tippe

vidcontrol -i mode

ein und wähle den gewünschten Modus, z.B.

vidcontrol MODE_379

209

Page 210: Arch Linux

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

Page 211: Arch Linux

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

Prüfsummen 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 fängt man an das System zu installieren. Dafür benötigt 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

Page 212: Arch Linux

EOF

Jetzt folgendes zur /boot/loader.conf hinzufügen

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 ausgewählt

echo ‘zfs_enable=“YES“‘ > /mnt/etc/rc.conf

Im der originalen Anleitung wurde ein Minutenzeichen hinter YES

vergessen. Sollte ich vielleicht später mal ändern.

212

Page 213: Arch Linux

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 auswählen und bestätigen

Fuer X - Das ist ein Workaround

Für einmaliges ändern.

setxkbmap de

Für 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 fügt folgendes hinzu:

Section "InputDevice"

Identifier "keyboard0"

Driver "kbd"

213

Page 214: Arch Linux

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-Auflösung ändern

vidcontrol -i mode

Ich nehme die Auflösung 1280x720x32 - das war das höchste, was ich hatte.

vidcontrol MODE_379

Wenn das passt dann fügt 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

Page 215: Arch Linux

Soundkarte einrichten

Bevor ich anfing die Karte einzurichten, habe ich mir erstmal den VLC

heruntergeladen, um die Soundkarte testen zu können.

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 läuft, sollte man den Treiber zur /boot/loader.conf

hinzufügen.

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 Glück. Nein, also später hierhin

zurück.

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

Page 216: Arch Linux

chsh -s /usr/bin/zsh

Standby

Um den Standby-Modus von der Konsole zu benutzen, muss man einfch zzz

eingeben. Dann wird überprüft, 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 für

den Benutzer angelegt werden, der es einhängen 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

Page 217: Arch Linux

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

Büro

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 annährend alle Funktionionen hat,

die ich brauche, aber es ist nicht so ressourcenhungrig.

pacman -S abiword abiword-plugins

217

Page 218: Arch Linux

Internet

Firefox

pacman -S firefox

Das Paket ist viel zu alt. 21.0-3 und ich glaube aktuell wäre heute irgendwas

mit 26.. In dem Testing Repositorium wäre Version 25.xx....

HTML5-Videos funktionieren nicht...

Multimedia

VLC

Das Paket installiert eine große Menge an Abhängigkeiten, aber so hat man

schon große Menge an Codecs automatisch installiert.

pacman -S vlc

Eigene Pakete packen

Bevor man anfängt 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

Page 219: Arch Linux

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