Upload
wisterio
View
53
Download
5
Embed Size (px)
DESCRIPTION
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Ü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
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
[ 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
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
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
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
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
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
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
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
* --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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- /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
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
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant OpenSSL::PKCS7::BINARY
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant OpenSSL::PKCS7::NOATTR
/usr/lib/ruby/2.0.0/x86_64-linux/openssl.so: warning: already initialized constant OpenSSL::PKCS7::NOSMIMECAP
[...]
'
Ich denke, dass Metasploit nicht mit ruby-2.0.0 funktioniert
Vielleicht hilft ein Downgrade
sudo pacman -Rdd ruby
mkdir ruby1.9
cd ruby1.9
wget https://aur.archlinux.org/packages/ru/ruby1.9/ruby1.9.tar.gz
tar -xfzv ruby1.9
cd ruby1.9
makepkg -s
sudo pacman -U ruby1.9-1.9.3_p484-1-x86_64.pkg.tar.xz
Jetzt funktioniert Ruby gar nicht mehr, obwohl es da ist.
ruby --version
ruby will not execute and completion _ruby exists.
opt/ruby1.9/bin/ruby --version ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux]
Also wieder den Pfad anpassen, dann funktioniert Ruby auch:
export PATH=$PATH:/opt/ruby1.9/bin/
Jetzt will ich nur noch hoffen, dass Metasploit funktioniert:
msfconsole
Ohh nein, jetzt muss man schon wieder das bundle istallieren. AHHHH
gem install bundler
ERROR: While executing gem ... (Gem::FilePermissionError)
108
You don't have write permissions for the /opt/ruby1.9/lib/ruby/gems/1.9.1 directory.
Der 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
… 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
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
>2!?Al^1
# Uppercase pure alphanumeric words
-c >2!?XuQ
# Lowercase pure alphabetic words and append a digit or simple punctuation
<*>2!?Al$[2!37954860.?]
# Words containing punctuation, which is then squeezed out, lowercase
/?p@?p>3l
# Words with vowels removed, lowercase
/?v@?v>3l
# Words containing whitespace, which is then squeezed out, lowercase
/?w@?w>3l
# Capitalize and duplicate short pure alphabetic words (fred -> FredFred)
-c <7>1!?Acd
# Capitalize and reverse pure alphabetic words (fred -> derF)
-c <+>2!?Acr
# Reverse and capitalize pure alphabetic words (fred -> Derf)
-c >2!?AMrQc
# Lowercase and reflect pure alphabetic words (fred -> fredderf)
<7>1!?AlMrQrf
# Uppercase the last letter of pure alphabetic words (fred -> freD)
-c <+>2!?AMrQcr
# Prefix pure alphabetic words with '2' or '4'
>2!?Al^[24]
# Capitalize pure alphabetic words and append a digit or simple punctuation
-c <*>2!?Ac$[2!3957468.?0]
# Prefix pure alphabetic words with digits
>2!?Al^[379568]
# Capitalize and pluralize pure alphabetic words of reasonable length
-c <*>2!?Acp
# Lowercase/capitalize pure alphabetic words of reasonable length and convert:
# crack -> cracked, crack -> cracking
<*>2!?Al[PI]
-c <*>2!?Ac[PI]
# Try the second half of split passwords
-s x**
-s-c x**MlQ
cd /usr/share
sudo mkdir stegbreak
sudo cp ~/Dateipfad/zur/rules.ini /usr/share/stegbreak/
127
Jetzt 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
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
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
for($i = 1; $i <= $parallelism; $i++){
@thr[$i] = threads->create('do_crack', $i);
}
#Join all our threads. Oddly this didn't work when it was in the same loop as create
for($i = 1; $i <= $parallelism; $i++){
@thr[$i]->join();
}
#Incremenr our counter.
$count = $count + $parallelism * $step;
print $tested . "\n" . $count . "\n";
}
if(!$found){
print "Passphrase was not found :(\n";
}
sub do_crack{
$nThread = @_[0];
$offset = $step * ($nThread - 1) + $count;
$finish = + $offset + $step;
if($found){
threads->exit() if threads->can('exit');
exit();
}
while($offset < $finish && !$found){
if($line = line_with_index(*FILE, *INDEX, $offset)){
$line =~ s/\s+$//;
if($verbose){
print $nThread . ":[$offset]Trying: " . $line . "\n";}
$result = `steghide extract -sf $image -p "$line" -f 2>&1`;
131
if($result =~ m/extracted/ || $result =~ m/already/){
print "Got it! The passphrase is: $line\n";
print $result;
$found = 1;
@timeData = localtime(time);
$time2 = join(' ',@timeData);
print $time1 . "\n" . $time2 . "\n";
}
}else{
die "Offset out of range\n";
}
$offset++;
lock($tested);
$tested++;
}}
sub rtfm {
print "Just a simple multi-threaded script to bruteforce Steghide passphrases.\n";
print "Good luck! -Nevermore\n\n";
print "Options:\n";
print " --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
while (<$data_file>) {
print $index_file pack("N", $offset);
$offset = tell($data_file);
}
}
sub line_with_index {
my $data_file = shift;
my $index_file = shift;
my $line_number = shift;
my $size; # size of an index entry
my $i_offset; # offset into the index of the entry
my $entry; # index entry
my $d_offset; # offset into the data file
$size = length(pack("N", 0));
$i_offset = $size * ($line_number-1);
seek($index_file, $i_offset, 0) or return;
read($index_file, $entry, $size);
$d_offset = unpack("N", $entry);
seek($data_file, $d_offset, 0);
return scalar(<$data_file>);
}
#Interrupt handler: closes our wordlist before exiting
sub INT_handler {
print "\nDying...\n";
$found++;
sleep(1);
close(FILE);
print "Goodbye!\n";
exit(0);
}
So startet man den Angriff:
perl crack-steghide.pl -i Versteck.jpg -w cracklib-small -v
Prinzipiell funktioniert das Skript, aber es beendet sich nicht, wenn die geheime Information extrahiert wurde.
133
Kryptographie
Das gesamte System 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
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
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
#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
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
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
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
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
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
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
# 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
# NXDOMAIN for non-existant domains, instead they supply you with an
# address of one of their search engines. They also lie about the addresses of
# of the search engines of google, microsoft and yahoo.
# If you do not like this behaviour the "reject" option may be useful.
server {
label = "opendns";
ip = 208.67.222.222, 208.67.220.220;
reject = 208.69.32.0/24, # You may need to add additional address ranges
208.69.34.0/24, # here if the addresses of their search engines
208.67.219.0/24; # change.
reject_policy = fail; # If you do not provide any alternative server
# sections, like the following root-server
# example, "negate" may be more appropriate here.
timeout = 4;
uptest = ping; # Test availability using ICMP echo requests.
ping_timeout = 100; # ping test will time out after 10 seconds.
interval = 15m; # Test every 15 minutes.
preset = off;
}
*/
/*
# This section is meant for resolving from root servers.
server {
label = "root-servers";
root_server = discover; # Query the name servers listed below
# to obtain a full list of root servers.
randomize_servers = on; # Give every root server an equal chance
# of being queried.
ip = 198.41.0.4, # This list will be expanded to the full
192.228.79.201; # list on start up.
timeout = 5;
uptest = query; # Test availability using empty DNS queries.
# query_test_name = .; # To be used if remote servers ignore empty queries.
interval = 30m; # Test every half hour.
ping_timeout = 300; # Test should time out after 30 seconds.
purge_cache = off;
# edns_query = yes; # Use EDNS for outgoing queries to allow UDP messages
# larger than 512 bytes. May cause trouble with some
# legacy systems.
exclude = .localdomain;
policy = included;
144
preset = off;
}
*/
source {
owner=localhost;
# serve_aliases=on;
file="/etc/hosts";
}
/*
include {file="/etc/pdnsd.include";} # 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
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
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
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
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
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]
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
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
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
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
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
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 n[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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
182
Probleme mit dem Echtzeitkernel:
* Der Kernel funktioniert nicht out-of-the-box mit dem b-43-WLAN-Treiber. Es gibt einen linux-rt-broadcom Kernel, der dann den auf den broadcom-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
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
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
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
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
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
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
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
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
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
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
* 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
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
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
* Finish
Jetzt kann man den Roboter bearbeiten. Man könnte z.B. so etwas hinzufügen:
197
package EigeneRoboter;
import robocode.Robot;import robocode.ScannedRobotEvent;
public class ErsterRoboter extends Robot { public void run() { while (true) { ahead(100); turnGunRight(360); back(100); turnGunRight(90); } } public void onScannedRobot(ScannedRobotEvent e) { fire(1); }
}
Robocode aus Eclipse starten
* Robocode schließen
* Auf das Projekt Erster Roboter gehen und Rechtsklick
* Run As → Run Configuration → Java Apllication
* oben links New wählen
198
199
-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
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
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
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
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
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
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
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
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
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
Jetzt werden die Festplatten partitioniert
gpart create -s MBR ada0
ada0 created
gpart add -t freebsd ada0
ada0s1 added
gpart create -s BSD ada0s1
ada0s1 created
gpart set -a active -i1 ada0 <- ieins
active set on ada0s1
gpart add -t freebsd-zfs ada0s1
ada0s1a added
Den ZFS-Pool anlegen
zpool create tanktom /dev/ada0s1
Den Bootloader konfigurieren
zpool export tanktom
gpart bootcode -b /boot/boot0 ada0
bootcode written to ada0
dd if=/boot/zfsboot of=/dev/ada0s1 count=1
1+0 records in
1+0 records out
512 byte transferred
dd if=/boot/zfsboot of=/dev/ada0s1a skip=1 seek=1024
128+0 records in
128+0 records out
65536 bytes transferred
Den Pool wieder importieren
mdconfig -a -t malloc -s 128m -u 2
210
newfs -O2 /dev/md2 <- O wie Oskar, keine Null
zpool export tanktom
mount /dev/md2 /boot/zfs
zpool import -o altroot=/mnt -o cachefile=/boot/zfs/zpool.cache -f tanktom
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
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
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
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
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
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
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
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
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