Kategorien
bash Linux Sonstiges

Quassel – Client vom Server aus trennen

Hatte am Wochenende wieder das Problem, dass ich einen Quassel-Cient (kennt ihr von hier) zuviel laufen hatte. Zwar kann Quassel dies ohne Probleme handhaben, nur markiert mir dieser Client das aktuelle Fenster immer als gelesen, so dass ich nix mitkrieg in diesem Channel. Aber wie trennt man den Client wenn man keinen Zugriff auf den Client-PC hat? Ganz einfach: Zuerst findet man raus, von welcher IP bzw. URL der Client sich konnektiert. In meinem Fall war das einfach

~ netstat --numeric-ports -W | grep 4242
tcp        0      0 meinserver.de:4242        derersteclient.de:1348 VERBUNDEN
tcp        0      0 meinserver.de:4242        derzweiteclient.de:53575 VERBUNDEN

dann nutzt man tcpkill. Das tötet einfach alles was an TCP/IP von diesem Host kommt. Find ich gut 🙂

~ tcpkill host derzweiteclient.de
tcpkill: listening on eth0 [derzweiteclient.de]
213.*.*.* - 212.*.*.*:50937: R 1398992140:1398992140(0) win 0
213.*.*.* - 212.*.*.*:50937: R 1398992260:1398992260(0) win 0
213.*.*.* - 212.*.*.*:50937: R 1398992500:1398992500(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312272914:2312272914(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312273916:2312273916(0) win 0
212.*.*.*:50937 - 213.*.*.*:22: R 2312275920:2312275920(0) win 0
CTRL^C

ACHTUNG: Man sollte tunlichst das nicht vom „derzweiteclient.de“-PC machen, weil man sich damit komplett aussperrt. tcpkill läuft solange bis man es abbricht, in der Regel reichen schon 3-5 Sekunden für Quassel zum disconnecten.

Man kann das optimieren mit der Port-Angabe, z.B.: tcpkill host derzweiteclient.de port 4242. Einfach mal bei tcpdump nachlesen was es alles für Optionen gibt.

Kategorien
Linux

Ubuntu + Openoffice 3.1

Weil es schon ne Weile die 3.1er Version gibt, und standardmässig nur die 3.0 installiert wird, hier eine kleine Hilfestellung:

  1. Hinzufügen der Quelle zu den /etc/apt/sources.list
    deb http://ppa.launchpad.net/openoffice-pkgs/ubuntu jaunty main
    deb-src http://ppa.launchpad.net/openoffice-pkgs/ppa/ubuntu jaunty main
  2. Dann noch den passenden Schlüssel hinzufügen:
    sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 60D11217247D1CFF
  3. Updaten & Upgraden
    sudo apt-get update
    sudo apt-get upgrade
Kategorien
Linux

Postbox unter Linux

Ich mag Postbox. Leider gibt es (noch) keine native Linux-Version. Aber unter WINE läuft es bisher prima. Hier eine kleine Anleitung für (K)Ubuntu:

  • Wine installieren (neuste Version, siehe hier)
  • Postbox herunterladen und über WINE installieren, z.B.
    wine postbox-1.0b12-win32.exe
  • Danach einfach nur Postbox mittels WINE starten, z.B.
    /usr/bin/wine ~/.wine/drive_c/Programme/Postbox/postbox.exe

Funktioniert. Ein paar grafische Bugs gibt es, aber bisher klappt alles wie gewohnt und sehr stabil.

UPDATE: Ok, kleines Problem existiert doch. Beim Verfassen von E-Mails sieht es so aus:
bildschirmfoto1
Ist aber nur ein Darstellungsfehler, die E-Mails sind trotzdem „richtig“ und „lesbar“.

Kategorien
Linux PHP Sonstiges Spass

Quassel – PHP_search

Ich nutze ja schon eine Weile lang Quassel-IRC. Leider durchsucht die Suche nur das bereits vorhandene Backlog (bzw. die „Chathistorie“) und man muss immer erst mühsam bis zum Anfang hochscrollen, damit er sich „mehr“ holt.

Jetzt hab ich einfach auf dem Server auf dem der Core läuft folgendes PHP-Script hinterlegt:

#!/usr/bin/php -q
<?php
$shortopts  = "";
$shortopts .= "h:";
$shortopts .= "u:";
$shortopts .= "c:";
$shortopts .= "s:";

$options = getopt($shortopts);

function getMessage($db, $quasseluser, $channel, $search = null) {
    $quasseluser = sqlite_escape_string($quasseluser);
    $channel = sqlite_escape_string($channel);
    $search = sqlite_escape_string($search);

    $sql = '
        SELECT DISTINCT
                backlog.time AS time,
                sender.sender AS sender,
                backlog.message AS message,
                buffer.buffername AS buffername
        FROM backlog
        OUTER JOIN quasseluser, buffer, sender
        ON (
                quasseluser.username = "'.$quasseluser.'"
                AND
                backlog.bufferid = buffer.bufferid
                AND
                quasseluser.userid = buffer.userid
                AND
                buffer.buffername LIKE "%'.$channel.'%"
                AND
                sender.senderid = backlog.senderid
        )';
    if ($search != null) {
        $sql .= ' WHERE message LIKE "%'.$search.'%";';
    }
    $output = array();
    $longestname = 0;
    foreach ($db->query($sql) as $row) {
        $sender = explode("!", $row['sender']);
        $sendername = $sender[0];
        if (strlen($sendername) > $longestname) {
            $longestname = strlen($sendername);
        }
        array_push(
            $output,
            array(
                date("Y-m-d H:i:s", $row['time']),
                $row['buffername'],
                $sendername,
                $row['message']
            ));
    }
    foreach ($output as $entry) {
        printf("%s (%s) %s : %s\n", $entry[0], $entry[1], str_pad($entry[2], $longestname, " "), $entry[3]);
    }
    printf("Es wurden %u Ergebnisse gefunden.\n", count($output));
}

try {
    $homepath = $options["h"];
    $username = $options["u"];
    $buffer = $options["c"];
    $search = $options["s"];

    if(!$homepath || !$username || !$buffer) {
        $output = "usage: ";
        $output .= __FILE__." -h <path/to/quassel/sqlite> -u <quasseluser> -c <channel/buffer> [-s <string>]";
        die($output . "\n");
    }

    $db = new PDO('sqlite:' . $homepath);
    getMessage($db, $username, $buffer, $search);

} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

Keinerlei Fehlerbehandlung, wenns schiefläuft geht bestimmt irgendwas irreperabel kaputt. Keine Garantie für nichts 🙂 Ein möglicher Aufruf wäre:

14:34:46 pennywise ~# ./searchQuassel.php -h quassel-storage.sqlite -u pennywise -c quassel.de -s foobar
2008-11-03 11:49:01 (#quassel.de) pennywise    : und da war der Bot jetzt halt drin, weil er irgendwas gesagt hat wie "hallo foobar, wilkkommen in der hölle"
2008-11-06 20:35:57 (#quassel.de) pennywise    : kann ich auch ein temporäres netzwerk haben? sowas wie /join irc.server.com/#foobar?
2008-11-12 11:52:56 (#quassel.de) hanswurst    : im core-log steht nur "foobar benutzer x getrennt"

manpage

-h : Pfad zur SQLite-DB von quasselcore. Liegt meist in ~/.config/quassel-irc.org/
-u : Der Benutzer mit dem man sich in quassel einloggt. Dies hat nichts mit der IRC-Identität zu tun.
-c : Der Channel (bzw. das Query) in dem gesucht werden soll. Ist case insensitive und kann auch nur teilweise übergeben werden (z.B. „quassel“ findet „#quassel“, „#quassel.de“ und „quassel-announce“)
-s : OPTIONAL. Der Text nach dem gesucht werden soll. Wenn weggelassen, dann werden alle Nachrichten im übergebenen Channel zurückgegeben

Ich hatte auch noch ne Version mit Prepared Statements, aber die hat beim „$db->prepare($sql)“ einfach kein Statement erzeugt. Ohne Fehlermeldung ohne alles. WTF?!

Kategorien
Linux PC & Accessoires

su unter Windows

Gerade gefunden:

Muss ich bei Gelegenheit mal ausprobieren 🙂

Kategorien
Diplomarbeit Linux PC & Accessoires

Unix vs. Dos

Jaja, UNIX („\n“) und DOS („\r\n“) Zeilenenden … FALSCH:

./funD.reinstallExtension.sh
: No such file or directoryh: line 3: cd: /cygdrive/c/Dokumente und Einstellungen/matthiasc/Eigene Dateien/Diplomarbeit/
./funD.reinstallExtension.sh: line 4: $'\r': command not found
: No such file or directorysion.sh
: No such file or directory.sh
: No such file or directorynsion
./funD.reinstallExtension.sh: line 8: $'\r': command not found
: No such file or directoryh: line 9: cd: /cygdrive/c/Dokumente und Einstellungen/matthiasc/Eigene Dateien/Diplomarbeit

RICHTIG:

11:20:34 matthiasc@fungdenhut /cygdrive/c/Dokumente und Einstellungen/matthiasc/Eigene Dateien/Diplomarbeit $ ./funD.reinstallExtension.sh
11:20:36 matthiasc@fungdenhut /cygdrive/c/Dokumente und Einstellungen/matthiasc/Eigene Dateien/Diplomarbeit $ 
Kategorien
Linux Sonstiges

FileZilla & proftpd

Heute wollte ich mal wieder was per FTPS hochladen. Schmeiss also den FileZilla an, der informiert mich über eine neue Version, also mache ich das Update. Nun hab ich FileZilla 3.1.0.1 und auf dem Server läuft der proftpd 1.3.1_rc2-r3.

So, der Fehler ist nun

Status:    Server hat die TLS-Verbindung nicht ordnungsgemäß geschlossen
Fehler:    Could not read from transfer socket: ECONNABORTED – Connection aborted

Ahja. Ein bisschen googlen erbrachte dann erste Aufschreie im FileZilla-Forum. Da gibt’s dann sowas wie

Frage: Hilfe, es geht nimmer!
Antwort: Upgrade auf einen besseren und korrekteren FTP-Server

Quelle: http://forum.filezilla-project.org/viewtopic.php?f=2&t=7580

Ansonsten gibts noch drei Threads, in denen das Problem etwas detailierter beschrieben wird, inkl. warum FileZilla hier das so macht wie er es macht, wobei der letzte der ausführlichste ist.

  1. http://forum.filezilla-project.org/viewtopic.php?f=2&t=7587
  2. http://forum.filezilla-project.org/viewtopic.php?f=2&t=7559
  3. http://forum.filezilla-project.org/viewtopic.php?f=2&t=7465

Auf filezilla-project.org gibts auch einen Newseintrag dazu:

2008-07-24 – Security Advisory

FileZilla 3.1.0.1 fixes a vulnerability regarding the way some errors are handled on SSL/TLS secured data transfers.

If the data connection of a transfer gets closed, FileZilla did not check if the server performed an orderly TLS shutdown.

Impact

An attacker could send spoofed FIN packets to the client. Even though GnuTLS detects this with GNUTLS_E_UNEXPECTED_PACKET_LENGTH, FileZilla did not record a transfer failure in all cases.

Unfortunately not all servers perform an orderly SSL/TLS shutdown. Since this cannot be distinguished from an attack, FileZilla will not be able to download listings or files from such servers.

Affected versions

All versions prior to 3.1.0.1 are affected. This vulnerability has been fixed in 3.1.0.1

Nunja, so wie es aussieht, verhaelt sich FileZilla so: Wir haben Recht, der Server is das Problem. Nungut, auf der Maillingliste von proftpd sieht das so aus:

http://sourceforge.net/mailarchive/forum.php?forum_name=proftp-user

da sieht man unter dem Thread [Proftpd-user] Filezilla – explicit TLS vom 29.07. 07:25 die ersten Berichte. Auf der Entwicklerliste wurde schon ein Patch eingereicht und hier (
[Proftpd-devel] Patch for mod_tls shutdown
) diskutiert. Jetzt heisst es warten, bis der Patch auch bei Gentoo ankommt.

UPDATE: Oder einfach den FileZilla downgraden, das macht der Installer automatisch, einfach einen alten FileZilla runterladen.

Weitere Links:

Kategorien
Linux PC & Accessoires

IEs4Linux

Falls man dann doch mal den Internet Explorer braucht unter Linux (sei es fuer Webdesignzwecke oder weil Seiten nur mit dem IE funktionieren), dann sollte man sich mal

IEs4Linux

angucken

UPDATE:

Ok, der Installer ist total verbuggt. Man muss ihn teilweise einfach mehrsmals starten, dann kommt er einen Schritt weiter, manchmal hilft es auch anstatt nur den IE6 auch den IE5.5 und IE5 zu installieren. Wenn es aber mal durch ist, dann gibts einen IE6 mit Flash-Plugin, man ist also fuer ziemlich alles geruestet. Leider ist keine JVM installiert, so dass es fuer mich nichts taugt. Das nachinstallieren der JVM funktionierte nicht und der Autor von IEs4Linux sagt selber dass das nicht so schlimm waere. Fuer ihn vielleicht.

Kategorien
Linux Praxissemester Studium USA

3/14

Toller Titel, ist das Datum von heute, nur in der englischen Darstellungsweise. Heute ist ja auch der „Huldigt der Zahl PI“-Tag. Was es alles gibt.

Kommen wir zu der Zusammenfassung der letzten Tage, es ist eine Menge passiert, und meistens kam ich nicht dazu es hier zu veröffentlichen. Deswegen wird dies hiermit und sofort nachgeholt:

  • Inzwischen kann ich Boxen flashen. Was bedeutet: Ich kann den FPGA flashen und danach noch das Bios der Box. Näheres wird nicht erwähnt
  • Tank Gauging aus der Sicht des Marketings ist doch ziemlich interessant. Bisher kannte ich nur die Entwicklersicht, aber mal aus dem eigenen Teller auszusteigen um über einen fremden Tellerrand zu blicken hat durchaus Vorteile.
  • Postsendeanträge die nicht funktionieren sind lästig. Und da Nacharbeit teuer ist, hab ich 40 € und 6h Zeit investiert um ein Formular aus Karlsruhe zu besorgen das für mein Visum unentbehrlich ist. Ärgerlich wenn man Vorbereitungen trifft und diese absagen muss, weil eine „fremde“ Macht einem einen Strich durch die Rechnung macht
  • Refactoring ist ein interessantes Thema. Dazu werde ich noch einen eigenen Artikel schreiben.
  • Das Visum J-1 wurde inzwischen genehmigt (der Termin im US-Konsulat Frankfurt war heute) und wird mir im Laufe der nächsten Woche postalisch zugesandt. Ärgerlich ist es nur wenn man Stunden warten muss, weil sich andere Leute nicht an die Vorschriften halten und den kompletten Sicherheitscheck aufhalten, weil Sie mal nicht eine Stunde auf ihr Handy verzichten können. Auf jeden Fall kann der Flug jetzt gebucht werden.
  • Getoastetes Toast mit Schweinerückensteak und Champignonsahnesoße mit gemischtem italienischem Salat ist unglaublich lecker. Interessanterweise kann man mit Fleischkäse auch ein Cordon Bleu machen und das schmeckt dann sogar.
Kategorien
Linux

Konkurrenzbewusstsein