6 nützliche Dinge, die man mit SSH tun kann
SSH ist wahrscheinlich mein liebstes Stück Software. Es ist frei, gibt mir Freiheit, es ist einfach zu benutzen und ist trotzdem sehr mächtig. Mit SSH kann man Kommunikation verschlüsseln. Das klappt auf eine sehr universelle Weise für fast jedes Problem. In diesem kleinen Howto zeige ich 6 nützliche Dinge die man - ohne zu großen Stress - mit SSH tun kann. SSH ist mehr als "nur" eine sichere Remote-Shell!
Ding #1 - Eine sichere Remote-Shell
Das ist das Offensichtlichste was man mit SSH tun kann und die meisten Linuxuser haben es wohl schon einmal gemacht: Eine sichere Verbindung mit einem anderen Rechner herstellen und diesen darüber administrieren.
Das geht sehr einfach:
ssh user@box_B
Das verbindet Dich zu BOX B als "user". Danach kann man als "user" auf BOX B arbeiten.
Manchmal benötigt man gar keine interaktive Sitzung zu einem entfernten Rechner, sondern möchte lediglich ein einzelnes Kommando ausführen.
ssh user@box_B command
Hier wird man zu Box B als "user" verbunden, das Kommando "command" wird ausgeführt, das Ergebnis landet auf der lokalen Standardausgabe und die Verbindung wird beendet.
Ding #2 - Dateien zwischen Rechnern sicher kopieren
Cool, wir können eine entfernte Maschine mit SSH administrieren, aber man kann mit SSH auch Dateien von einer Maschine zu einer anderen kopieren. Es funktioniert im Grunde so wie das "cp" Kommando, es heisst aber "scp" - Secure Copy.
scp /home/me/a_file.txt user@box_B:/home/me/
Das kopiert die lokale Datei "/home/me/a_file.txt" auf Box A nach "/home/me/a_file.txt" auf Box B.
Es funktioniert auch andersherum:
scp user@box_B:/home/me/b_file.txt /home/me
Das würde die Datei "/home/me/b_file.txt" von Box B ins Home-Verzeichnis auf Box A kopieren.
Weil "scp" so ähnlich funktioniert wie "cp" sind auch Wildcards erlaubt:
scp /var/log/* user@box_B:/home/me/logsbackup
Das kopiert alle Logfiles von Box A nach "/home/me/logsbackup" auf Box B.
Ding #3 - Ein Verzeichnis auf einem entfernten Rechner ins lokale Dateisystem mounten
Manchmal reicht es nicht einfach nur einige Dateien von einem Rechner auf einen anderen zu kopieren. Ein entferntes Verzeichnis ins lokale Dateisystem zu mounten ist super nützlich, wenn man mit lokalen Programmen Remote-Files bearbeiten will. Ein gutes Beispiel dafür wäre zum Beispiel die Arbeit an einer Webseite auf einem entfernten Server. Man kann einfach das Web-Verzeichnis des entfernten Servers ins lokale Dateisystem mounten und danach die Dateien mit all den coolen lokal installierten HTML-Editoren und Grafikprogrammen öffnen und speichern. Ganz so als wären die Dateien auf der loaklen Platte. Hierfür benötigt man "sshfs". Das FUSE-Filesystem ist in vielen Distributionen nicht standardmässig installiert aber meistens in den Repositories enthalten. Unter Debian und Ubuntu kann man es so installieren:
apt-get install sshfs
Nach der Installation kann man beginnen es zu benutzen
mkdir /mnt/b_data sshfs user@box_B:/b_data /mnt/b_data
Das mountet das Verzeichnis "/b_data" auf Box B nach "/mnt/b_data" im lokalen Dateisystem. Nun kann man mit lokalen Programm die Remote-Dateien bearbeiten. Wenn man fertig ist, kann man den mount wieder entfernen:
fusermount -u /mnt/b_data
Falls der unmount fehlschlägt sollte man überprüfen, ob noch Dateien vom Remoterechner geöffnet sind oder ob man sich noch mit der Shell oder einem Dateimanager im gemounteten Verzeichnis befindet.
Ding #4 - Unzensiert und anonym von "kritischen Orten" aus im Web surfen
Firmenrichtlinien, faschistische Regierungen, Internet-Cafes und andere unfreundliche Regelungen, Institutionen und Orte können einen sicheren und privaten Zugriff aufs Web ziemlich schwierig gestalten. Firewalls und Proxys könnten interessante Webseiten blocken, loggen wo man herumsurft, Man-In-The-Middle-Attacken ausführen oder einfach nur ein mulmiges Gefühl generieren. SSH ist die Lösung für alle diese Probleme. Es bietet die Möglichkeit als Web-Proxy (SOCKS) zu arbeiten. Man verbindet sich einfach per SSH zur guten vertrauenswürdigen BOX B und surft durch diese Verbindung.
(Lokaler Browser <-> Lokaler SSH Proxy <-> SSH <-> Box B <-> Webseite)
Dann kann niemand mehr im unfreundlichen lokalen LAN blockieren, zensieren oder schnüffeln.
Klingt gut? Es ist sogar sehr einfach einzurichten und zu benutzen! SSH bietet die "-D" Option um einen SOCKS-Proxy auf der lokalen Maschine einzurichten:
ssh -D 1234 user@box_B
Nun hat man einen SOCKS-Proxy der auf localhost Port 1234 lauscht. Nun muss man nur noch seinem Browser so konfigurieren, dass er für Internetverbindungen diesen Proxy benutzt. Man kann überprüfen ob alles funktioniert hat, wenn man im Browser eine Webseite aufruft, die die IP-Adresse ausgibt, die für die Verbindung genutzt wurde. http://www.whatismyip.com würde funktionieren, aber es gibt auch 1000de andere Seiten. Wenn dort die IP von Box B erscheint, ist alles in Butter. Ein portalbler Browser auf einem USB-Stick wie zum Beispiel Portable Firefox würde die Sache noch angenehmer machen.
Ding #5 - Den Traffic von lokalen Programmen verschlüsseln und tunneln oder auf Dienste in LANs zugreifen, die normalerweise nicht übers Internet erreichbar sind.
OK, wir haben sicher Maschinen administriert, Dateien sicher von Maschine zu Maschine kopiert und haben sogar in China unzensiert im Web gesurft. Aber SSH kann mehr! Man kann damit den Datenaustausch aller lokalen Programme die TCP benutzen durch einen Tunnel zu einem vertrauenswürdigen Rechner schicken. Wie schon mit dem SOCKS-Proxy kann man Daten-Verkehr zunächst durch diesen Tunnel schicken, zum Beispiel den vom lokalen E-Mail Client, damit er nicht durchs lokale LAN fliessen muss. Wir möchten unsere E-Mail in einer "kritischen" Umgebung abrufen. Skript Kiddies, blöde Admins und Terror-China-Hacker könnten die Mail mitlesen oder sogar das E-Mail-Passwort mitsniffen. SSH hilft. Die Syntax für Tunnel mit SSH ist etwas krampfig und zunächst ein ziemlicher Brain-Twister aber eigentlich ziemlich logisch und mit ein bisschen Übung nicht schwierig:
ssh -L local_port:target_host:target_port user@box_B
zum Beispiel:
ssh -L 10000:pop3.mailprovider.com:110 user@box_B
Was ist hier geschehen? SSH wurde angewiesen einen Tunnnel mit einem lokalen (-L) Endpunkt auf Port 10000 anzulegen. Alles was in diesen lokalen Endpunkt an Daten hineingeworfen wird, fliesst zunächst verschlüsselt zu Box B und danach zu "pop3.mailprovider.com" auf port 110 (Port 110 ist POP3). Die Daten fliessen also vom lokalen E-Mail Client verschlüsselt zu Box B und von dort aus an den E-Mail-Provider. Der E-mail Account im lokalen Client benötigt somit also für den POP-Server folgende Einstellungen: Server: localhost / Port: 10000. Aber es muss nicht unbedingt E-Mail sein. Jede Applikation, die das TCP-Protokoll benutzt kann so getunnelt werden. Zum Beispiel IRC, FTP, HTTP, IMAP, etc.
Falls sich der Server auf den zugegriffen werden soll nicht irgendwo im Internet sondern auf Box B selbst befindet, kann der Zielrechner natürlich auch BOX B sein:
ssh -L 10000:127.0.0.1:110 user@box_B
Ziel in diesem Beispiel ist "127.0.0.1", weil es das Ziel aus der Sicht von Box B ist. Denn "127.0.0.1" gesehen von Box B ist Box B selbst.
Tunneln kann nützlich sein um Internetdienste abzusichern, aber auch um auf Dienste in BOX B's privatem Netzwerk zuzugreifen. Falls man einen von außen zugänglichen SSH-Account in einem LAN besitzt, kann man so auf alle TCP-Dienste in diesm LAN zugreifen, ganz so als sei man ein "echter" Client in diesem LAN.
Angenommen BOX B steht in einem Intrantet, das einen interessanten Webserver beherbergt, der aber nicht aus dem Ineternet zugänglich ist. Dieser Server läuft im LAN auf Kiste 192.168.0.77. Mit SSH tunnelt man nun einfach einen lokalen Port auf Port 80 des Webservers im LAN:
ssh -L 10000:192.168.0.77:80 user@box_B
Wenn man nun "http://127.0.0.1:10000" im lokalen Webbrowser aufruft landet man auf der Homepage des Webservers im entfernten Intranet.
Ding #6 - Ein Tunnel - andersherum
Wenn #5 klar ist, sollten umgekehrte Tunnel kein Problem mehr sein. Hier wird ein entfernter Endpunkt für den Tunnel erstellt. Alles was dort hineinfliesst wird verschlüsselt weitergeleitet an BOX A (den lokale Rechner) und danach an den Zielrechner weitergeleitet.
ssh -R remote_port:target_host:target_port user@box_B
zum Beispiel:
ssh -R 10000:pop3.mailprovider.com:110 user@box_B
Im E-Mail-Client würde man als POP-Server "Box B" und Port "10000" eintragen.
BOX B tunnelt dann den Traffic zunächst sicher auf BOX A um. Box A leitet danach weiter an "pop3.mailprovider.com" port "110"
Nützliche Kommandozeilenoptionen für SSH
-c "Compress"
Die "-c" Option komprimiert die übertragenen Daten mit gzip bevor sie durchs Inetrnet fliessen. Das erhöht die Geschwindigkeit beim Übertragen von unkomprimierten Daten (so wie reinem Text) stark. Sie ist nützlich beim Übertragen
langer Textdateien oder beim Websurfen wenn man SSH als Proxy nutzt.
ssh -c -D 1234 user@box_B
-g "Grant Access"
Die "-g" option eraubt anderen Rechnern als localhost auf die lokal angelegten Tunnelendpunkte zuzugreifen. So können also zum Beispiel auch andere Rechner im LAN die lokal angelegten Tunnel nutzen.
ssh -L -g 10000:127.0.0.1:110 user@box_B
-p "Port"
Die "-p" Option benötigt man, wenn der entfernte SSH-Server nicht auf dem Standardport 22 lauscht.
ssh -p 22000 user@box_b
-v "Verbose"
Mit dieser Option kann man sehr viele technische Verbindungsinformationen sehen, falls man tiefer in SSH eintauchen möchte.
Mehr Lesestoff:
Ich habe versucht diesen Artikel so einfach wie möglich zu schreiben, da er mir selbst in erster Linie als Referenz dienen soll. Es gibt aber noch sehr viel mehr was man mit SSH tun kann:
Meine Ubuntu 10.04 Lucid Lynx Problemchen (und wie ich sie gelöst habe)
Der Luchs ist da! Deshalb ist es wie schon bei Karmic an der Zeit alle Änderungen zu dokumentieren, die ich vornehmen musste, damit alles nach meinen Vorstellungen läuft. Diese Liste wird über die Lebenszeit des Luchses sicherlich noch etwas wachsen. Einige Probleme sind sehr speziell, andere könnten auch andere Benutzer interessieren. Im Großen und Ganzen bin ich schwer begeistert von 10.04: Alles wirkt etwas smoother, schneller und aufgeräumter. Karmic hat mir zwar gute Dienste geleistet, aber den Luchs habe ich bereits jetzt ins Herz geschlossen. Euch allen ein schönes halbes Jahr (oder sogar 3?) mit Ubuntu 10.04 Lucid Lynx!
Problemchen #1: Fensterbuttons nach rechts verschieben
Zum Glück nur einmal Copy/Paste....
gconftool-2 --set /apps/metacity/general/button_layout --type string "menu:minimize,maximize,close"
Problemchen #2: Miese Flash Performance
Seit Karmic wurden die Standardeinstellungen für den Radeon-Treiber geändert. Meine Mobility Radeon 9600 auf einem Asus M6N kommt im Zusammenspiel mit Flash damit nicht klar. Webseiten mit Flash pushen die CPU auf 100%. Mit dieser xorg.conf klappt es:
Section "Device" Identifier "Configured Video Device" Option "AccelMethod" "XAA" EndSection
Problemchen #3: Fensterskalierung bei Pokerstars
In Pokerstars unter Wine skalieren die Tische nicht mit, wenn man das Tischfenster resized. Mit einem speziellen Eintrag in der user.ini im Pokerstarsverzeichnis lässt sich das beheben. Nach einem Neustart von Pokerstars lässt sich das Fenster mit F5 auf die richtige Größe bringen.
# user.ini [Options] f5redrawtable=1
Problemchen #4: Links in Pokerstars
In Pokerstars unter Wine öffnen angeklickte Links den Browser nicht.
"wine regedit" starten Key HKEY_CLASSES_ROOT\http\shell\open\command suchen In diesem Key "%1" nach "-nohome" anhängen
Problemchen #5: ffmpeg mit unfreien Codecs installieren
ffmpeg ist super zum konvertieren von Videos. Um auch unfreie Codecs nutzen zu können (z.B. h264, AAC) muss man ffmpeg selbst kompilieren. Das original Howto ist hier.
Problemchen #6: Logitech Quickcam Chat funktioniert unter Skype nicht
Die Kamera benötigt eine spezielle Library. So klappt es:
# Skype starten LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so skype
Problemchen #7: Es werden nicht alle Auflösungen und Wiederholraten meines externen Monitors erkannt
Eine Anpassung der xorg.conf mit den richtigen Werten funktioniert:
# /etc/X11/xorg.conf Section "Monitor" Identifier "NOVITAS" Option "VGA" HorizSync 30-80 VertRefresh 50-75 ModeLine "1024x768@75" 94.43 1024 1056 1528 1560 768 782 792 807 EndSection Section "Screen" Identifier "Default Screen" Device "Configured Video Device" Monitor "NOVITAS" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1027x768@75" "1024x768" "800x600" EndSubSection EndSection
Problemchen #8: Der "Dokumentbetrachter" kann nicht drucken.
Geht doch. Hatte nur Probleme mit einem ganz bestimmten Dokument. Alle anderen funktionieren.
Problemchen #9: Der Ziffernblock meiner Tastatur geht nicht mehr
Wow was ist das denn? Jetzt wirds langsam nervig 🙂
"Mauszeiger per Tastatur steuern" war aktiv. Ist das eine neue Standardeinstellung?
(unter System > Einstellungen > Tastatur > Maustasten). Nach dem Deaktivieren dieses Features ging es wieder.
Problemchen #10: Lautstärkeregler im Panel ohne E-Mail Icon (Benachrichtigungsanzeige)
Seit Lucid sind der Lautstärkeregler und die Steuerung für Evolution und Messenger gebündelt als "Benachrichtigungsanzeige". Ich benutze Evolution nicht und das E-mail-Icon nimmt Platz weg.
Unter System -> Einstellungen -> Startprogramme "gnome-volume-control-applet" eintragen um nur die Lautstärkensteuerung ohne das Brief-Icon zu bekommen.
Problemchen #11: Aktuellste Adobe-Flash Version installieren
#!/bin/bash # # http://labs.adobe.com/downloads/flashplayer10.html # sudo su cd /tmp wget http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_1_rc2_linux_041910.tar.gz tar xvf /tmp/flashplayer10_1_rc2_linux_041910.tar.gz mv /usr/lib/flashplugin-installer/libflashplayer.so /usr/lib/flashplugin-installer/libflashplayer.so.orig mv /tmp/libflashplayer.so /usr/lib/flashplugin-installer/ rm /tmp/flashplayer10_1_rc2_linux_041910.tar.gz
Crosslink-Kabel Ersatz: Delock Crossover-Adapter RJ-45 (M) – RJ-45 (W)
Crosslink-Kabel benötige ich äußerst selten. Man kann mit ihnen 2 Rechner direkt von Netzwerkkarte zu Netzwerkkarte (ohne einen Switch oder Router) verbinden. Immer wenn ich aber mal eins gebraucht habe, war es ziemlich dringend. Natürlich war dann auch gerade keins zur Hand und es ist in einer üblen Bastelei ausgeartet, wie rechts im Bild zu sehen. Im Crosslinkkabel sind lediglich die Adern gekreuzt. Auf einer Seite des Kabels ist ein normaler Patchkabel-Stecker, auf der anderen dasselbe noch einmal spiegelverkehrt. Um diesem Problem aus dem Weg zu gehen und da ich solch ein Kabel vor kurzer Zeit einmal gebraucht hätte, habe ich mir diesen kleinen schicken Adapter bestellt, der in Sekunden aus einem normalen Patchkabel ein Crosslinkkabel macht.
no images were found
Daten in Dropbox transparent verschlüsseln mit encfs
Dropbox ist schon ein tolles Tool. Nach der Installation hat man einen Ordner im lokalen Dateisystem, der automatisch alle enthaltenen Dateien online sichert und synchronisiert. Wenn man mehrere Rechner hat, erscheinen die Dateien auf allen Rechnern. Das ist sehr praktisch, zum Beispiel um wichtige Dokumente auf jedem Rechner verfügbar zu haben, oder um Konfigurationsdateien, wie zum Beispiel das E-Mail-Adressbuch zwischen Rechnern zu synchronisieren. Allerdings sollte man sich darüber bewußt sein, dass alle Daten im Dropbox-Ordner natürlich auch auf einer Festplatte irgendwo in der "Cloud" liegen (müssen). Dropbox gibt zwar an, dass sie die Daten der Nutzer selbst nicht einsehen können, da sie mit dem Passwort des Nutzers verschlüsselt werden. Trotzdem hatte ich immer ein ungutes Gefühl dabei "wichtige" Dateien zu "dropboxen". Mit Hilfe von encfs kann man sich allerdings innerhalb der Dropbox einen verschlüsselten Bereich anlegen, der vollkommen transparent verschlüsselt und entschlüsselt wird. Ein gutes Gefühl, oder?
Na dann mal los. Zunächst braucht man 2 neue Verzeichnisse. Zum einen ein Verzeichnis in der Dropbox, das später verschlüsselt wird und zum anderen ein Verzeichnis in das man das verschlüsselte Verzeichnis später entschlüsselt mounten kann:
mkdir /home/user/Dropbox/enc mkdir /home/user/dec
Danach bereitet man das verschlüsselte Verzeichnis für die Benutzung vor und mountet es direkt:
sudo apt-get install encfs encfs /home/user/Dropbox/enc /home/user/dec
Ab sofort werden alle Dateien, die in /home/user/dec abgelegt werden, verschlüsselt in die Dropbox gepackt.
Dateien in den Verzeichnissen sehen danach so aus:
# /home/user/dec ww-ww-20:39:28 ~/dec-> ls -la insgesamt 2320 drwxrwxr-x 13 ww ww 4096 2010-12-18 20:39 . drwxr-xr-x 70 ww ww 4096 2010-12-18 03:39 .. -rw-rw-r-- 1 ww ww 13 2010-12-18 20:39 meine_geheime_datei ww-ww-20:40:33 ~/dec -> cat ./meine_geheime_datei SUPER GEHEIM #/home/user/Dropbox/enc ww-ww-20:39:28 ~/Dropbox/enc-> ls -la -rw-rw-r-- 1 ww ww 29 2010-12-18 20:39 zKcZI9p9vmR60OMvDJPKeZPnGyRByRWVRUKyAOr4sRTVu- ww-ww-20:42:32 ~/Dropbox/enc -> cat ./zKcZI9p9vmR60OMvDJPKeZPnGyRByRWVRUKyAOr4sRTVu- ��Z� ��>o��q0�����"�q �
Den Mountvorgang kann man beim Login mit einem kleinen Einzeiler automatisieren:
#!/bin/bash echo "MeinPasswort" | encfs -S /home/user/Dropbox/emc /home/user/dec
Eine gratis Dropbox mit 2.25 GB Speicher bekommst Du hier.
USB Netzwerkkarte (auch) für Linux: DeLOCK 61147 USB 2.0 > Ethernet Adapter
Achtung! Aktuell unter Lucid läuft der Adapter NICHT mehr.
Um es gleich vorweg zu nehmen - der Adapter läuft mit einem aktuellen Linux ohne Treiberinstallation sofort "out of the Box" (getestet unter Debian Lenny und Ubuntu Karmic). Drinnen steckt ein indischer MOSCHIP 7830. Mit dem praktischen Teil kann man allen Kisten mit USB-Anschluss eine weitere Netzwerkkarte spendieren. Zum Beispiel um ein Notebook als Bridge oder Router zu benutzen, oder um Kisten ohne Netzwerkkarte online zu bekommen.
Nach dem Einstecken:
# /var/log/messages Apr 23 18:23:08 ww kernel: [13489.976038] usb 1-3: new high speed USB device using ehci_hcd and address 7 Apr 23 18:23:08 ww kernel: [13490.112911] usb 1-3: configuration #1 chosen from 1 choice Apr 23 18:23:08 ww kernel: [13490.184613] usb 1-3: applying rev.C fixup Apr 23 18:23:08 ww kernel: [13490.192111] usb 1-3: applying rev.C fixup Apr 23 18:23:08 ww kernel: [13490.201739] eth2: register 'MOSCHIP usb-ethernet driver' at usb-0000:00:1d.7-3, MOSCHIP 7830/7730 usb-NET adapter, 00:13:3b:04:00:5a Apr 23 18:23:09 ww NetworkManager: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/net/eth5, iface: eth5) Apr 23 18:23:09 ww kernel: [13490.251588] udev: renamed network interface eth2 to eth5 Apr 23 18:23:09 ww NetworkManager: SCPlugin-Ifupdown: device added (path: /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3:1.0/net/eth5, iface: eth5): no ifupdown configuration found.
eth5 existiert danach und kann direkt konfiguriert werden.
Mit dabei ist noch eine Treiber-CD mit Treibern für Windows und Linux, man kann sich zur Not also auch das Kernelmodul selbst kompilieren. Der Hersteller bietet eine Seite mit aktuellen Treibern für alle gängigen Betriebssysteme. Und auch vom Chiphersteller selbst gibt es eine Treiber-Downloadseite.
Ein cooles Teil. Es wird sich noch im täglichen Gebrauch beweisen müssen, aber der erste Eindruck war sehr gut.
no images were found
Auf Trojanerjagd mit einer sniffenden Netzbrücke
Vor einigen Tagen erhielt ich einen Anruf mit der Bitte um Hilfe. Aus einem Firmen-LAN mit ca. 10 Clients konnte keine E-Mail mehr versandt werden. Alle Mails blieben in der Warteschlange des lokalen SMTP stecken, der sie an einen Remote-SMTP beim Provider weiterreichen sollte. Eine manuelle Telnet-Session zum SMTP des Providers brachte schnelle Klarheit: "Your IP is blacklisted in Spamcop.net's Spam-Database". Ups. Ich dachte zunächst nichts Böses und ging davon aus, dass das Problem dadurch entstanden ist, dass durch Pech beim täglichen IP-Wechsel eine Ex-Adresse eines Spammers zugewiesen worden war. Nach einem mauellen Reset des Routers, der dadurch eine neue IP bekam, war das Problem auch gelöst (dachte ich zumindest). Die Mails gingen raus.
Einen Tag später: "Wir können keine Mails mehr verschicken!" Oh nein, eine Workstation hat einen Trojaner. Der Spammer ist im LAN. Avira Workstation Pro läuft auf allen XP-Clients im LAN und hat in der Regel auch zuverlässig funktioniert. Hier ist aber wohl etwas schief gelaufen.
Um herauszufinden wer der Übeltäter ist, habe ich den SMTP-Traffic zwischen DSL-Router und LAN gesnifft. Da alle Clients an Switchen hängen, war passives Mithören am selben Switch mit einem Client nicht möglich (Das geht nur mit HUB's). Deshalb habe ich mit einer Debian-Kiste, 2 Netzwerkkarten und 2 Switches ziemlich umständlich einen Wiretap gebaut. Dabei war mir dieser Artikel von heise netze sehr nützlich.
Im Endeffekt muss nur die Verkablung des Sniff-Rechners stimmen, danach muss eine
Netzwerkbrücke erstellt werden:
Die beiden Netzwerkkarten im Rechner wurden gebridged, damit der ganze LAN-INTERNET Traffic auch durch den Pinguin fliessen konnte. Ein Sniff mit Wireshark auf TCP/25 brachte dann sehr schnell die Lösung. In Sekundenschnelle füllte sich das Livelog mit SMTP-Verbindungen eines LAN-CLients zu externen SMTPs.
Den Übeltäter habe ich mit dem Avira Rescue System gebootet. Die Live-CD hat einen Trojaner (TR/Trojan.GEN) festgestellt, konnte ihn aber nicht löschen. Ich habe die infizierte Datei (Zufallsname in system32/drivers) danach mit einer Ubuntu-Live-CD entfernt. Die Spamflut hatte aufgehört. Ich muss es noch einige Zeit beobachten, aber ich glaube der Client ist wieder Herr seiner Sinne.
Ich werde mir mal so einen USB LAN NIC besorgen. Dann geht das ganze auch mit dem Notebook. Das wäre viel angenehmer beim nächsten Mal.
Die heise Schnüffel-Bridge:
apt-get install brctl ifconfig eth0 -arp promisc 0.0.0.0 up ifconfig eth1 -arp promisc 0.0.0.0 up brctl addbr br0 brctl addif br0 eth0 brctl addif br0 eth1 ifconfig br0 -arp promisc 0.0.0.0 up
Die Ubuntu 10.04 Lucid Lynx Wallpaper sind da
Der Contest in der Ubuntu Artwork Flickr Group ist vorbei und die offiziellen Wallpaper für Lucid Lynx, die standardmässig in der Final enthalten sein werden, stehen fest.
Alle Wallpaper bekommt man zum Download im Launchpad.
no images were found
Mit der PS3 online zocken ohne Update 3.21 [defunct]
Leider funktioniert der Workaround seit dem 13. April nicht mehr. Sony überprüft inzwischen auch bei der Anmeldung ans PSN die Firmware-Version. Das Update Downgrade 3.21 für die PS3 entfernt die Linux-Unterstützung der PS3. Deshalb sollte man es nicht installieren, falls man die PS3 auch weiterhin als Linux-Rechner benutzen möchte. Um trotzdem mit der PS3 online zocken zu können muss man etwas tricksen und ihr vorgaukeln, es gäbe das Update auf 3.21 gar nicht. Danke an einige Unbekannte aus dem Golem-Forum, die die Methode zusammengebastelt haben. Ich habe sie lediglich in einem leicht zu benutzenden Skript zusammengefasst. Der Trick funktioniert so: Bevor die PS3 online geht, überprüft sie, ob sie die neueste Systemsoftware hat. Wenn nicht, wird der Benutzer zum Update aufgefordert und die Verbindung schlägt fehl. Zur Überprüfung verbindet sich die PS3 mit einem SONY-Server und liest dort eine Textdatei, in der die aktuelle Version hinterlegt ist.
Um der PS3 vorzugaukeln, dass sie bereits die aktuelle Version hat, benötigt man einen lokalen Proxy-Server (im Beispiel Squid), der die Anfrage an den SONY-Server an einen anderen Webserver umleitet, auf dem eine ältere Version der Textdatei liegt. Die PS3 denkt, dass sie aktuell ist und geht online.
Der Code wurde getstet unter einem Debian Lenny mit einem lokalen Webserver auf der Maschine. Er sollte aber auch unter Ubuntu ohne Probleme funktionieren.
Danach muss man in der PS3 als Proxy (Einstellungen -> Netwerk-Einstellungen -> Internetverbindungseinstellungen) lediglich noch die IP des Squid-Proxys angeben. Der Squid-Standardport ist 3128.
Leider ist das keine permanente Lösung. Sobald die ersten Games die Firmware 3.21 voraussetzen, werden diese durch diesen Workaround unspielbar. Aber wahrscheinlich ist ohnehin bald eine permanente Lösung verfügbar. Eventuell tut sich auch auf rechtlicher Seite etwas, da das Vorgehen von SONY klar gegen die EU-Direktive 1999/44 verstößt, die unter anderem vorschreibt, dass ein in der EU gekauftes Produkt die Funktion erfüllen muss, die dem Käufer zur Zeit des Kaufes bekanntgemacht wurde. Wörtlich: "fit for the purpose which the consumer requires them and which was made known to the seller at the time of purchase""
Linux auf der PS3 offenbar gerettet
Letzte Woche hat die neue PS3-Firmware Blogger-Wellen geschlagen, da sie als einziges neues Feature den Support für das zusätzliche Betriebssystem auf der PS3 entfernte. Heute präsentierte "GeoHot" seinen angekündigten Weg aus der Misere:
Ich habe bisher nicht upgedatet, um das "Other OS" nicht zu gefährden, da ich mir damit eine Emu-Box bauen wollte. Bisher wurde der Patch von Geohot noch nicht veröffentlicht. Um weiterhin mit einer nicht aktualisierten PS3 online gehen zu können, kann mit einem Webproxy wie zum Beispiel Squid gebastelt werden. Ich bin gespannt. Mehr Infos hier: http://geohotps3.blogspot.com/
Ubuntuzilla – Immer die aktuelle Firefox- und Thunderbirdversion unter Ubuntu
Das Paketsystem von Ubuntu ist schon etwas Feines. Nachdem man ein Programm über die Paketverwaltung installiert hat, bekommt man automatisch Sicherheitsupdates und neuere Versionen eingespielt. Sicherheitsupdates kommen sofort, wenn sie verfügbar sind. Neue Software-Versionen hingegen leider immer nur im Takt der Ubuntu Releases. Man wartet, wenn man sich das entsprechende Programm nicht manuell installieren will, ziemlich genau 6 Monate auf die nächste Version. Das ist in der Regel kein Problem, nur bei Firefox und Thunderbird hat es mich manchmal gestört.
Diesem Problem hat sich das Ubuntuzilla-Projekt angenommen. Sie betreiben ein Repository für Ubuntu, das stets die aktuellen stabilien Mozilla-Builds von Firefox, Thunderbird und Seamonkey enthält. Einmal dem aktuellen System hinzugefügt, bekommt man so bequem über die Paketverwaltung die neuesten Versionen eingespielt.
Und so funktioniert es:
Ubuntuzilla-Repo der sources.list hinzufügen
echo -e "\ndeb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" | sudo tee -a /etc/apt/sources.list > /dev/null
Den Repository Key hinzufügen um Nachfragen des Paketmanagers zu vermeiden
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29
Danach die gewünschten Pakete installieren
sudo apt-get update sudo apt-get install firefox-mozilla-build sudo apt-get install thunderbird-mozilla-build sudo apt-get install seamonkey-mozilla-build
BASH Spickzettel
Dies ist mein BASH-Spickzettel. Ich werde hier nützliche Codeschnipsel und Konstrukte sammeln, die ich ansonsten immer mal wieder googlen oder man'en musste. Der Artikel dient mir persönlich als Nachschlagewerk aber könnte auch anderen nützlich sein, die häufig mit der Bourne-again Shell zu tun haben.
Schleifen
while [ 1 ] #Endlosschleife do echo "Blah" done
for i in $(ls /etc) do echo $i done for f in `ls | grep something`; do rm $f; done for i in `seq 1 10`; do echo $i done
Case
case "$1" in a) echo "a" ;; b) echo b" ;; *) echo "$1 ist nicht a oder b" ;; esac
Switches für Test : http://bash-hackers.org/wiki/doku.php/commands/classictest oder /usr/bin/[ --help
If-Then-Else
if [ "$1" = "a" ]; then echo "a" else echo "kein a" fi
dpkg + apt
#Installierte Files aus einem Paket auflisten dpkg -L [Paketname] #Files IN einem Paket auflisten dpkg -c [paket.deb] #Info über ein Paket dpkg -I [paket.deb] #Alle installierten Pakete auflisten dpkg -l dpkg --get-selections > getselections.txt #Installationsauswahl aus Datei einspielen dpkg --set-selections < getselections.txt
netstat
# Alle nach außen geöffneten Ports listen netstat -lpn | grep LISTEN | grep -v localhost
mdadm
# Testmail senden # Benutzt MAILADDR aus /etc/mdadm/mdadm.conf mdadm --monitor -1 /dev/md0 -t # Frisches Array anlegen. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1 # Array verschlüsseln cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/md0 # Verschlüsseltes Arrayentschlüsseln cryptsetup luksOpen /dev/md0 raid-partition # Device formatieren mkfs.ext4 /dev/mapper/raid-partition # Device Nutzen und sperren mount /dev/mapper/raid-partition /root/tmp umount /root/tmp/ cryptsetup luksClose /dev/mapper/lukslvm dmsetup remove_all # Device dem Array hinzufügen mdadm --add /dev/md0 /dev/sda1 # Device aus dem Array entfernen mdadm --manage /dev/md0 --fail /dev/sda1 mdadm --remove /dev/md0 /dev/sda1 # Fehlerhafte Devices entfernen mdadm --manage /dev/md0 --remove faulty mdadm --manage /dev/md0 --remove failed # Partitionstabelle sichern sfdisk -d /dev/sda > sda.partition # Partitionstabelle wieder einspielen sfdisk /dev/sdb < sda.partition # Bootloader nachinstallieren (grub legacy) grub grub> root (hd0,0) /dev/null | strings # Grub 2 unter Debian. # Funktionierte nicht ohne Konfiguration von GRUB_TERMINAL=console # DEBIAN BUG in SQUEEZE # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=611537 # http://kupschke.net/2012/02/20/grub2-auf-mdadm-raid-installieren/#comment-170 In: /etc/default/grub -> GRUB_TERMINAL=console grub-install /dev/sda grub-install /dev/sdb update-grub # Festplatteninfos ausgeben smartctl -i /dev/sdx # RAID auf Live-CD mounten und ins System chrooten um GRUB zu installieren # oder für andere Wartungsarbeiten apt-get install mdadm mdadm --assemble /dev/md0 /dev/sda (weitere Devices falls vorhanden) mkdir /tmp/mnt mount /dev/md0 /tmp/mnt mount --bind /proc /tmp/mnt/proc mount --bind /sys /tmp/mnt/sys mount --bind /dev /tmp/mnt/dev chroot /tmp/mnt
ext
# Disklabel setzen e2label device label
screen
# Screens in Scripten automatisch generieren und task in screen starten screen -S [screenname] -d -m [script.sh] #Screen in Script für anderen User erstellen su username - -c "screen -dmS Screenname befehl" # Neue screen erstellen oder zu bestehender wechseln screen -R -d [screenname] # Keystroke zum verlassen einer Screen CTRL - A - D
mysql
# Alle Datenbanken in eine Datei dumpen mysqldump -u root -psecret --all-databases > backup.sql # Nur die Datenbankstruktur in eine Datei dumpen mysqldump -u root -psecret --no-data --all-databases > backup.sql # Einzelne Tabelle dumpen mysqldump -u root -psecret datenbankname tabellenname > /tmp/backup.sql # Dump wieder herstellen mysql -u root -psecret < backup.sql # root Passwort resetten /etc/init.d/mysql stop echo "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('neuespasswort');" >~/setrootpassword.sql mysqld_safe --init-file=~/setrootpassword.sql #[ctrl]+[c] /etc/init.d/mysql start rm -f ~/setrootpassword.sql
imagemagick
# Alle Bilder im aktuellen Verzeichnis resizen mogrify -resize 800x600 ./*.JPG # Alle Bilder im aktuellen Verzeichnis in PNG konvertieren mogrify -format png ./* # Auflösung von grossen Bildern ändern, EXIF Daten strippen, resizen, JPEG Quality setzen mogrify -resize 350 -density 72x72 -strip - quality 80% ./*.jpg # Serie von Bildern in ein PDF-Buch umwandeln for i in $(ls); do convert $i $i.pdf; done pdftk $(ls *.pdf) cat output book.pdf
unionfs-fuse
# Union zwischen a und b in c # Geschrieben wird nach a unionfs-fuse -o cow /home/a=RW:/home/b=RW /home/ww/Desktop/c
ffmpeg
# flv in 3gp umwandeln ffmpeg -i in.flv -f 3gp -vcodec h263 -s 176x144 -ab 12.2k -ar 8000 -ac 1 out.3gp # flv in mp3 umwandeln apt-get install ffmpeg libavcodec-extra-53 ffmpeg -i ./input.flv -f mp3 output.mp3 # so ziemlich von jedem Format in jedes andere so verlustfrei wie möglich umwandeln ffmpeg -i infile.ext -pass 2 -sameq outfile.ext # Watermark mittig in Video einsetzen ffmpeg -i ./infile.mp4 -i ./watermark.png -strict -2 -filter_complex "overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2" output.mp4
find
# Dateien suchen und etwas mit ihnen tun find . -name "*.mp3" -exec file {} \; # Softlinks finden und anzeigen find . -type l -exec ls -l {} \; # Alle Dateien in einem Verzeichnis zählen find /verzeichnis -type f | wc -l
sudo
#/etc/sudoers # User username erlauben einen privilegierten Befehl ohne Passwort auszuführen # (Muss ganz am Ende von /etc/sudoers angehängt werden) username ALL=NOPASSWD: /sbin/reboot
iptables
# Alles auf INPUT erlauben iptables -F; iptables -P INPUT ACCEPT # Verbindungen debuggen # Paketzähler einer Chain auf 0 setzen iptables -Z INPUT # Chain mit Paketzähler anzeigen iptables -L INPUT -v # Einen Port mappen # # Alles was auf eth1 Port 11111 ankommt wird geforwarded auf 10.10.10.100:80 # iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 11111 -j DNAT --to 10.10.10.100:80 iptables -A FORWARD -p tcp -d 10.10.10.100 --dport 80 -j ACCEPT #IPTABLES LOG ALL INCOMING TRAFFIC iptables -t raw -I PREROUTING 1 -d 5.9.81.114/32 -j LOG --log-prefix "INCOMING Traffic" # DELETE THIS RULE iptables -t raw -D PREROUTING 1 #LOG OUTGOING TRAFFIC iptables -t mangle -I POSTROUTING 1 -d 5.9.81.114/32 -j LOG --log-prefix "OUTGOING Traffic" # DELETE THIS RULE iptables -t mangle -D POSTROUTING 1 #TRACE packages iptables -t raw -I PREROUTING 1 -p icmp -j TRACEiptables debuggingHow to List and Delete Iptables Rules
Platte verschlüsseln
#System vorbereiten apt-get install cryptsetup modprobe loop modprobe dm-crypt # Platte für AES 256 vorbereiten cryptsetup -c aes-xts-plain -s 512 luksFormat /dev/sdb # Platte entschlüsseln (entschlüsseltes Device: /dev/mapper/cryptodisk) cryptsetup luksOpen /dev/sdb cryptodisk # Formatieren mkfs.ext4 /dev/mapper/cryptodisk # Entschlüsselt ins FS mounten mkdir /media/cryptodisk mount /dev/mapper/cryptodisk /media/cryptodisk # Daten schreiben echo "blah" > /media/cryptodisk/test # Unmounten umount /media/cryptodisk # Locken cryptsetup luksClose cryptodisk
Datei verschlüsseln
# Datei verschlüsseln gpg -c --cipher-algo twofish ./datei # Original löschen shred ./datei # Datei entschlüsseln gpg -d ./datei.gpg > ./datei
Containerdatei verschlüsseln
#System vorbereiten apt-get install cryptsetup modprobe loop modprobe dm-crypt #Containerdatei 250MB erstellen dd if=/dev/urandom of=container_file bs=1M count=250 # Freies Loopdevice anfragen losetup -f # Loopdevice an Containerdatei binden losetup /dev/loop0 container_file # Containerdatei verschlüsseln cryptsetup -c aes-xts-plain -y -s 512 luksFormat /dev/loop0 # Containerdatei entschlüsseln cryptsetup luksOpen /dev/loop0 container # Containerdatei formatieren mkfs.ext4 /dev/mapper/container # Mounten mount -t ext4 /dev/mapper/container /mnt # Locken cryptsetup luksClose container # Loopdevice freigeben losetup -d /dev/loop0
FTP mounten
mkdir /tmp/mnt modprobe fuse curlftpfs -v ftp.host.com -o nonempty -o user=username:passwort /tmp/mnt umount /tmp/mnt
umount "Device is busy" - Blockierenden Prozess finden
fuser -m [mountpoint]
wget Website mirrorn
wget -km http://www.website.com
SAMBA mounten
mount.cifs //192.168.0.1/share /media/share -o username=$USERNAME,password=$PASSWORD
32bit oder 64bit
getconf LONG_BIT
/etc/fstab
NFS: 192.168.0.1:/home /home nfs rsize=8192,wsize=8192,hard,intr 0 0
Disk Full - Speicherfresser finden
apt-get install ncdu ncdu # / ohne mounts auf andere FS in /mnt mounten # (Falls mounts Daten auf der lokalen Platte verdecken) mount --bind / /mnt ; du -sm /mnt
Vollverschlüsselung des Systems
Sehr gutes Tutorial von Andreas Haerter: http://blog.andreas-haerter.com/2011/06/18/ubuntu-festplattenvollverschluesselung-lvm-luks
Platte über das LAN klonen
dd if=/dev/hda | ssh -c blowfish -C root@otherbox.ip.addr dd of=/dev/hda
Aktuellen UNIX TIMESTAMP (Epoch) ausgeben
date +%s
Asterisk
#Sounddatei in von Asterisk abspielbares Format umwandeln ffmpeg -i ./input.mp3 -ar 8000 -ac 1 -ab 64 ./output.wav
VirtualBox
#Existierende VM klonen und in VirtualBox anmelden VBoxManage clonevm "MACHINE NAME" --mode all --name "CLONE NAME" --register #VM Headless starten VBoxHeadless -s "CLONE NAME" # # VM Headless generieren # #VM anlegen und registrieren VBoxManage createvm --name "Ubuntu" --ostype Ubuntu --register #Hardware / BIOS konfigurieren VBoxManage modifyvm "Ubuntu" --memory 256 --acpi on --vram 128 --boot1 dvd --nic1 nat #HDD anlegen(10GB) VBoxManage createhd --filename "Ubuntu.vdi" --size 10000 #IDE Controller anlegen VBoxManage storagectl "Ubuntu" --name "IDE Controller" --add ide --controller PIIX4 #HDD Image an IDE Controller hängen VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium "Ubuntu.vdi" #Boot ISO an IDE Controller hängen VBoxManage storageattach "Ubuntu" --storagectl "IDE Controller" --port 0 --device 1 --type dvddrive --medium /home/user/my.iso
Mail in Script/Konsole verschicken
echo "Mail Body hier" | mail -s "Mail Subject hier" jemand@server.de
rsync
#Verzeichnis von entferntem Server rsyncen rsync -avz user@10.10.10.10:/remote/dir /local/dir
vlc und dvbt
#get channel list w_scan -ft -cDE -L >> ./channels.xspf #start streaming server cvlc -vvv -I http ./channels.xspf --sout '#standard{access=http,mux=ts,dst=server.ip:9999}' #stream and transcode, enable rc telnet interface cvlc -I rc --sout-keep --rc-host 192.168.1.2:20000 /etc/channels.xspf --sout '#transcode{vcodec=mjvp8=64,fps=24,scale=0,acodec=mpga,ab=64,chanls=2,samplerate=44100}:standard{access=http,mux=ts,dst=192.168.1.2:9999}' #start client vlc http://server.ip:9999 -R #Web Interface #edit /usr/share/vlc/lua/http/.hosts Browser -> http://server.ip:8080
mysql query auf einzelnen wert aus der bash
mysql -u user -pPASSWORD -D table -N -B -e "QUERY"
Ein lustiger Windowsausflug
Ich habe mich mit der Windowstrollerei halbwegs zurückgehalten, aber mein heutiger Ausflug in die gute, alte Microsoftwelt hatte es in sich. Ich benutze seit ca. 3 Jahren privat kein Windows mehr. Wenn ich tatsächlich einmal unbedingt ein Windows-Programm gebraucht habe, habe ich es mit wine oder einem XP in VirtualBox zum laufen gebracht. Heute benötigte ich zum ersten mal wieder ein "echtes Windows", da ich eine neue Firmware auf mein Motorola Milestone flashen wollte. Das Tool dazu läuft leider nur unter nativem Windows. Da ich noch ein wenig Platz hinten auf meiner Platte hatte, machte ich mich schweren Herzens daran XP zu installieren. Ich hatte schon böse Vorahnungen. Nach der Neuinstallation liefen LAN und Grafik nicht richtig. Verständlich, hatte ein uraltes XP und die Treiber waren damals nur vom Hersteller verfügbar. Zuerst habe ich mir den LAN-Treiber mit einer anderen Kiste gesaugt - REBOOT - danach den VGA-Treiber mit meinem jetzt vernetzten XP. Installation - REBOOT - CANNOT LOAD OPERATING SYSTEM. In Ordnung. Damit hatte ich nicht gerechnet. MBR kaputt? Wodurch? Grafiktreiberinstallation? Gut, kein Problem. Habe mit der Super Grub Disk mein Ubuntu gebootet und mit update-grub das kleine Malheur bereinigt. Zurück in XP: Ich benötige von Motorola einen Treiber für die USB-Verbindung vom Handy zum PC. Nachdem ich ihn mir heruntergeladen hatte (Motorola_Phone_treiber_Blah_irgendwas.exe) habe ich beim beherzten Doppelklick noch gedacht: "Ach ja, das ist schon besser als unter Linux. *Wenn* man unter Linux Treiberprobleme hat, dann aber so richtig". Kaum zuende gedacht ein Popup: "Cannot write file. Volume not found C:\". Fuck. Da ich XP im freien Platz hinten auf meiner Platte installiert hatte (vorne ist ja bereits Ubuntu), hat Windows den Laufwerksbuchstaben H: bekommen. Der Treiber installiert sich wohl nur auf C:\. Ich habe mir winrar besorgt und die exe ausgepackt. Darin: Keine .inf nur kryptischer Installer-Mist. Danach habe ich Foren gewälzt. Angeblich bringe das "Motorola Software Update", ein Updatetool für Motorola-Software und Geräte, auch eine Treiberinstallation mit sich. Also gut. Ich installiere es. Es benötigt "Windows Installer 3.1". Den gibts über Windows Update. Ich kriege den Installer 3.1 und Windows Genuine Advantage, mein proprietäres Vorteilspaket. REBOOT. Ich versuche erneut das "Motorola Software Update" zu installieren. Diesmal fehlt .NET. Ich lade es runter, fette 66MB. Die Installation dauert ungefähr 10 Minuten. Eine freundliche Meldung währenddessen sagt: "Der Download ist abgeschlossen, Sie können die Verbindung zum Internet nun trennen" Ich komme mir vor wie auf einer Zeitreise. Die Verbindung trennen? Lol! Der Updater läuft jetzt und installiert wohl auch einige Treiber. Windows beginnt sofort ungefragt Photos von meinem Handy herunterzuladen und eine Digitalkamera wird erkannt. Der Treiber zum flashen war aber wohl leider nicht dabei. Das Tool erkennt mein Handy nach wie vor nicht. Als letzten Ausweg versuche ich den Laufwerksbuchstaben von H: auf C: zu ändern. Microsoft sagt, dass es nicht geht und dass es nicht empfohlen wird. Ich fummele in der Registry herum. REBOOT. Hübsches Windows XP Logo. Leider für 4 Minuten. Windows bootet nicht mehr. Ich werde wohl meine ganzen Partitionen nach hinten verschieben müssen und danach noch einmal Windows installieren müssen. Nur damit Windows C:\ als Laufwerksbuchstabe bekommt, um einen Treiber installieren zu können. Krank oder?
Ein Tag später. Mein Ehrgeiz wurde geweckt. Ich verkleinere, verschiebe, kopiere meine Partitionen, bis sie alle hinten auf der Platte liegen. GParted braucht 3 Stunden dafür. Ich boote mit einer Live-CD, mounte meine root-Partition, chroote in sie rein und installiere Grub neu. Ubuntu läuft wieder. Ich mache mich also daran XP nochmal zu installieren. Diesmal an den Anfang der Platte. Leider will XP die Installation am Anfang der Platte wieder auf H:\ ausführen. Es geht wohl nicht um die Reihenfolge der Partitionen auf der Platte sondern um die Reihenfolge in der Partitionstabelle. Wieder was gelernt. Ich könnte Windows auf C :\ installieren, das ist aber eigentlich mein sda1 auf dem meine root-Partition liegt. Ich will Windows nicht mein Ubuntu killen lassen. Ich boote erneut mit der Live-CD und mache mit partimage ein Backup meiner root-Partition um es nach der XP-Installation wieder in eine neue Partition zurückspielen zu können. Ich starte mal wieder das XP Setup. Jetzt bin ich völlig verwirrt.Der freie Platz am Anfang der Platte heisst jetzt doch C:\. Warum das? Ich hatte an den Partitionen nichts mehr geändert. Ich bekomme so langsam aber sicher das Gefühl, dass ich an irgendeiner Stelle dieser Odysee etwas hätte schlauer machen können. Ich gähne mich durch die erneute XP-Installation. Mann, warum müssen sie mitten in der Installation die Fragen stellen und nicht einfach ganz am Anfang. Man muß daneben sitzen. XP ist wieder da. Auf C:\. Ich installiere den LAN Treiber und den VGA-Treiber. REBOOT. CANNOT LOAD OPERATING SYSTEM. Na ja. Kenne ich ja schon. Vielleicht bin ich in einer Windows-Support Endlosschleife in der Hölle. REBOOT. Also nochmal die Super Grub Disk und update-grub && grub-install. REBOOT. Zurück in XP. "Ihr Computer ist eventuell gefährdet" - da bin ich mir sicher. Ich sauge mir erneut den Motorola-USB-Treiber. Geschafft. Es funktioniert. Was für ein Krampf.
Nachtrag: Ein befreundeteter Windows-Admin hat mir erzählt, wie ich es mir viel einfacher hätte machen können: ein "subst h: c:\" hätte vor der Installation des Treibers gereicht. Ich Windows-DAU! 🙂