Hauptseite
Aus Dokumentation
In diesem Wiki werde ich meine Dokumentation zu verschiedensten Projekten und meine Ideen darlegen.
Server
Auf dieser Unterseite wird die Dokumentation zu meinem Server regelmäßig ergännst.
VDR
Vor wenigen Monaten habe ich begonnen, einen für mich barrierefreien Video Disk Recorder auf basis von Debian zu bauen. Mein Vorgehen und die bis jetzt entstandenen Probleme sind auf der Seite
zu finden.
Konfigurationen
Hier stelle ich meine Konfigurationsdateien, nach denen ich oft gefragt werde zum Download bereit.
Konfiguration Mutt
Hier die Konfiguration des Mailreaders Mutt:
.muttrc
Konfiguration vsftpd
Die Konfigurationsdatei /etc/vsftpd.conf gibts hier:
vsftpd.conf
Konfiguration OpenVPN
Die Konfigurationsdatei für einen OpenVPN-Server findet sich hier. Wie man entsprechende SSL-Zertifikate erstellt findet sich weiter unten.
OpenVPN Konfigurationsdatei /etc/openvpn/server.conf
tipps, Tricks & Gedächtnisstützen
Hier einige kleine tipps, für die man tage lang bei google sucht und man oftmals nur eine kleine Option ändern oder anpassen muss damit es wie gewünscht funktioniert :-)
MYSQL
Root-Passwort neu setzen (Weil man es vergessen hat :-))
Editier die my.cnf (/etc/mysql/my.cnf) und schreibe in die [mysqld]-Sektion:
/etc/init.d/mysql restart
mysql -uroot
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
exit
"skip-grant-tables" wieder aus der my.cnf rausnehmen
/etc/init.d/mysql restart
Datenbank mit einem Benutzer anlegen
Im folgenden wird eine Mysql-Datenbank neu angelegt. Ein neuer Benutzer wird angelegt und bekommt alle Rechte der neuen Datenbank. Das ganze wird über die MYSQL Shell erledigt:
CREATE USER 'userxy'@'localhost' IDENTIFIED BY 'passwordxy';
create database datenbank;
GRANT ALL PRIVILEGES ON `datenbankxy` . * TO 'userxy'@'localhost';
Snapshots mit libvirt (virsh) und KVM
Habe festgestellt, dass snapshots mit kvm-img auch dann angelegt werden, wenn die Virtuellen Maschinen laufen - aber leider funktionieren sie nicht richtig. Deshalb:
Ab libvirt 0.8.1 kann auch virsh snapshots anlegen (WICHTIG: Das Image muss im Format qcow2 vorliegen und in der xml-Konfiguration muss <driver name='qemu' type='qcow2'/> angegeben sein!), dies funktioniert auch im laufenden Betrieb.
Migration von Courier zu Dovecot
Wenn man von courier auf Dovecot umstellen möchte, müssen die Mailboxen konvertiert werden - mit einem perl-Skript ist das aber kein Problem. Voraussetzung ist, dass die Mailboxen im Maildir format vorliegen. Ab Dovecot 1.2 kann das skript: courier-dovecot-migrate.pl verwendet werden.
Migrieren von ext3-Filesystem zu XFS in einer virtuellen Maschine
Dieses hier beschriebene Verfahren kann natürlich auch auf einem normalen System, dass nicht virtualisiert wurde eingesetzt werden - Notwendig dafür ist dann eine zweite Festplatte mit gleicher Größe.
Zunächst wird ein neues Image erstellt:
kvm-img create -f qcow2 platte.img 30G
(in diesem Beispiel maximal 30 gb groß, wichtig ist, dass es genauso groß ist wie die bereits existierende Maschine an Platz braucht). danach mit einer Live-CD das image booten:
kvm -curses -hda platte.img -cdrom grml_1.0.iso -m 1024 --boot d
mit fdisk die entsprechenden Partitionen anlegen (Als typ wird 83 Linux verwendet), und mit mkfs.xfs ein xfs-dateisystem darauf anlegen.
Anschließend die maschine neustarten und die existierende Virtuelle Maschine mit laden, so das beide Image-dateien als platten (hda und hdb) von der Live-CD verfügbar sind. WICHTIG! die existierende virtuelle Maschine muss vorher abgeschaltet werden!!!
Dann die Live-CD mit beiden Festplatten in etwa so starten:
kvm -curses -hda platte_der_existierenden_maschine.img -hdb platte.img -cdrom grml_1.0.iso --boot d
Bitte beachte: Falls du die Virtio-Treiber verwendest musst du sie mit angeben - sonst wird aus hda nicht vda und beim schreiben von Grub gibt es fehler!!!
jetzt beide Festplatten mounten und mit rsync -a existierende_maschine neue_maschine die Daten kopieren. Wenn die existierende virtuelle Maschine nicht weiterhin gestoppt sein soll, kann noch einmal rebootet werden (Ohne die existierende Maschine, diese kann dann wieder gestartet werden).
Im nächsten Schritt muss Grub neu geschrieben werden. dazu muss vorher /proc, /sys und /dev in die neue Maschine gemountet werden:
mount --bind /dev /neue_maschine/dev
Analog dazu mit /sys und /proc verfahren.
Anschließend mit chroot /neue_maschine in eine changeroot umgebung wechseln und grub mit folgenden Kommando neu schreiben:
grub-install --no-floppy --recheck /dev/hda
jetzt mit exit die Changeroot Umgebung verlassen und die dateien /neue_maschine/etc/fstab bzw. /neue_maschine/etc/mtab anpassen.
HINWEIS:
Nicht nur der Dateisystemtyp muss geändert werden - errors=remount-ro darf nicht gesetzt sein - das System hängt das Filesystem sonst nur read only ein.
Zuletzt nur noch alles unmounten (/neue_maschine/proc, /neue_maschine/sys und /neue_maschine/dev nicht vergessen :-)).
Nach einem Neustart sollte alles soweit laufen.
Kalender aus Microsoft Outlook nach ical (.ics) exportieren
Outlook kann zwar den Kalender exportieren - auch in eine .cvs-Datei, die beispielsweise lightning importieren kann, allerdings verwendet Microsoft wie immer dabei keine standards. Die .cvs-Datei funktioniert also beim Import leider nicht. Die lösung:
Das Tool Freemical hilft hier weiter.
WICHTIG:
Das Programm Freemical setzt .net-Framework 2.0 oder höher voraus.
Nach dem Download einfach das .zip-Archiv auspacken und die datei freemical.exe doppelt anklicken. Die gewünschten einstellungen vornehmen und exportieren.
Framebuffer in der Console abschalten
Wenn sich wie unter Debian Squeze der Framebuffer im Bootmanager nicht abschalten lässt, kann folgendes Kommando aufgerufen werden:
stty cols 80 rows 25
sbl mit mbrola direkt verwenden
Damit sbl mit mbrola zusammenarbeitet (Ohne speech-Dispatcher), ist es notwendig in dem init-Script einzutragen:
aoss start-stop-daemon ...
Startreienfolge von init-skripten unter Debian anpassen
Das Anpassen der Startreihenfolge von Diensten ist dann erforderlich, wenn z.B. Samba nur über openvpn erreichbar sein soll. Dann muss nämlich openvpn vor Samba gestartet werden. So gehts:
Init Info
In den Headern von init-Skripten wird ein sogenannter init-Info-Header eingefügt. Anhand dieses Headers generiert insserv dann automatisch eine sinnvolle Startreihenfolge.
Wichtig sind die beiden Zeilen:
Required-start:
Required-stop:
Dort ist in Variablen festgelegt, welche Dienste zuvor gestartet sein müssen. Bei Samba ist dies z.B.:
Required-Start: $network $local_fs $remote_fs
und bei Required-stop das gleiche.
Nun habe ich mir eine eigene Variable namens $vpn erstellt und diese angefügt:
required-start: $network $local_fs $remote_fs $vpn
(Genauso bei required-stop)
Anpassen von /etc/insserv.conf
In der Datei /etc/insserv.conf folgendes einfügen:
$vpn openvpn
Dadurch wird der Variablen vpn der Dienst openvpn hinzugefügt (Geht mit jedem anderen Skript auch, welches in /etc/init.d liegt).
Runlevel neu anpassen
Am einfachsten werden die Runlevel mit update-rc.d angepasst.
Zunächst den alten eintrag entfernen:
update-rc.d -f samba remove
Anschließend neu setzen mit:
update-rc.d samba defaults
Fertig!
(Bei umstellung auf upstart ist diese Anleitung aber hinfällig :-)
Wake on Lan
Besonders wenn ich unterwegs bin und auf einen Rechner Zuhause zugreifen will, dieser aber gerade nicht an ist (Warum auch? Strom spart man am besten, wenn keiner verbraucht wird), ist es praktisch, diesen Rechner über das Internet einschalten zu können.
Technisch wird ein bestimmtes Paket an die Netzwerkkarte des zu startenden Rechners geschickt und dieser wacht dann auf.
Unterstützt die Netzwerkkarte Wake On lan?
Mit dem tool ethtool eth0 lässt man sich zunächst die Infos der Netzwerkkarte anzeigen. Besonders wichtig sind die beiden Zeilen:
Supports Wake-on: (Bei mir steht dort pg)
Wake-on:
Steht in der Zeile Supports ein g, ist alles gut.
Wake-on-Lan aktivieren
Um erst einmal zu testen, ob alles klar geht, ist es am einfachsten, den Befehl ethtool folgendermaßen aufzurufen:
ethtool -s eth0 wol g
Damit wird Wake-on auf g gesetzt (Siehe Ausgabe von ethtool eth0)
Bevor das System nun heruntergefahren wird, muss noch in der Datei /etc/init.d/halt die Variable NETDOWN auf no gesetzt werden, andernfalls schaltet das Skript die Netzwerkkarte vollständig ab und es kann auf kein Start-Paket reagiert werden. Jetzt das System Herunterfahren und einen Wake-ON-Lan-Startversuch starten (z.B. über einen Router wie Fritzbox). Startet das System sind wir fast am ende. Sollte es jedoch nicht starten, ist mehr handarbeit notwendig.
Bei Problemen
Zuerst im Bios nachschauen, ob Wake-on-Lan aktiviert ist.
Ist dies der Fall, dann einen blick in /proc/acpi/wakeup werfen. Dort ist angegeben, welche Geräte das System zum einschalten bringen können. in Verbindung mit lspci kann man dann versuchen, die Netzwerkkarte zu ermitteln und mittels
echo -n ermittelter_devicename > /proc/acpi/wakeup
auf Enabled zu setzen.
Nach erfolgreichem Wakeup
Damit der Befehl ethtool nicht ständig per hand angegeben werden muss, schreiben wir ihn am einfachsten in die Datei /etc/network/interfaces:
iface eth0 inet dhcp
post-down ethtool -s eth0 wol g
QED (Quod erat demonstrandum, Was zu beweisen war) :-)
Partitionstabelle Auslesen und neu schreiben
Partitionstabelle in eine Datei sichern:
sfdisk -d /dev/sd<x> > tabelle.txt
und auf Festplatte zurückschreiben:
sfdisk /dev/sd<x> < tabelle.txt
SSL-Zertifikate für OpenVPN erstellen
zuerst die datei /usr/share/doc/openvpn/examples/easy-rsa/vars editieren
dann:
. vars
aufrufen (wirklich einen punkt und dann eine leerstelle!). Mit vars werden die entsprechenden Variablen gesetzt.
dann:
./cleanall
damit wird die Verzeichnisstruktur angelegt.
jetzt gehts erst los:
./build-ca aufrufen und alles da eintragen
als hostnamen habe ich den servernamen eingetragen, aber ich glaub das muss man nicht. Auf jedenfall muss ein company name eingetragen sein!
./build-key-server server
aufrufen, dadurch werden die serverkeys gebaut!
Mit dem folgenden Aufruf wird dann die benötigte .dh-Datei erstellt:
./build-dh
die dh.pem, server.key ca.crt und server.crt nach /etc/openvpn kopieren. Sie liegen alle unterhalb von keys.
die client keys werden mit folgendem Kommando erstellt:
./build-key name
wobei der name der rechnername des clients ist, hier muss unter common name der hostname angegeben werden.
Die clients bekommen die dateien: ca.crt name.crt, name.key
