Chat

Aus C3D2
Zur Navigation springen Zur Suche springen

jabber

Seit dem Putsch einiger Jabber-Nerds und dem Wechsel unseres hauptsaechlichen Chats auf einen Jabber-MUC-Channel besitzen wir eine eigene Jabber-Infrastruktur. Diese besteht momentan aus vier Servern:

Setup

HQ

Alle diese Hosts sind Xen-Guests auf hummer.hq.c3d2.de. Wenn einer der beiden ejabberds ausfaellt, reconnecten die clients und nehmen den anderen. Leider faellt nicht der ejabberd oder die VM aus, sondern meistens der Xen Host, wodurch das Setup nicht wirklich ausfallsicher ist. In Zukunft soll aber auch der Xen Host redundant ausgelegt werden, so dass dann unsere Internetanbindung der einzige SPoF ist.

wetu

  • alternative zur HQ Infrastruktur einen Prosody Jabber Server
  • erreichbar unter jabber.c3d2.de und frei zum Accounts erstellen
  • Multi User Chats können unter chat.c3d2.de erstellt werden
  • unter MUC: c3d2@chat.c3d2.de ist der c3d2 zu finden

Usage

HQ

Die Jabber-IDs enden auf @hq.c3d2.de, MUC-Channel auf @muc.hq.c3d2.de, der ICQ-Transport auf @icq.hq.c3d2.de. Alle diese Dienste sind oeffentlich, es kann sich also jeder ein Jabber-ID oder einen MUC-Channel anlegen.

Ueber anonxmpp.hq.c3d2.de unterstuetzen wir auch anonyme logins, wodurch auch coole Dinge wie Web- oder SSH-Chat moeglich werden.

SSL wird vom Server ausdruecklich verlangt, wir empfehlen zusaetzlich natuerlich noch eine Ende-zu-Ende-Verschluesselung.

wetu

  • Jabber-IDs: @jabber.c3d2.de
  • MUC-Channel: @chat.c3d2.de
  • ssl fähig

Gimmicks

Ein Beweggrund fuer den Wechsel auf Jabber war der Wunsch, es Besuchern so einfach wie moeglich zu machen, mit uns zu kommunizieren. In diesem Sinne hat astro noch weitere Moeglichkeiten geschaffen, in unseren Channel zu kommen:

  • muckl, ein AJAX-basierter Web-Chat, der momentan von einem lighttpd auf jabber1 ausgeliefert wird, in Zukunft aber auf www1 migriert werden soll
  • littlemuc.rb, ein ruby-script, das den chat ueber ssh chat@ssh.hq.c3d2.de ermoeglicht. Das script laeuft auf unsafe.hq.c3d2.de.
  • jetzt auch mit IRC-Zugang (irc.hq.c3d2.de:6667) mit ejabberd-ircd
    • SSL-Port: 6668, FIXME: stunnel lauscht aber bisher nur auf IPv4

Bunte Graphen...

Vorlage:Beinhaltet Abweichungen von der Realität Vorlage:Beinhaltet Projekt

...sind auf unserem Monitoring-Server zu finden: http://ziercke.hq.c3d2.de/ -- In den dort verlinkten diversen Monitoring-System suchst du jabber1.hq.c3d2.de, jabber2.hq.c3d2.de, www1.hq.c3d2.de und icq.hq.c3d2.de.

Technik

jabber.c3d2.de

Vorlage:Benötigt Dokumentation

…ist eine VM auf Wetu#jabber.c3d2.de. Seit dem langsamen Tod der freien Entwicklung von w:de:Ejabberd, ist die VM mit w:de:prosody ausgestattet.

chat.c3d2.de

Vorlage:Benötigt Dokumentation

Multi-User Chat

c3d2@chat.c3d2.de

Der Raum c3d2 auf dem Server chat.c3d2.de ist der öffentliche #Multi-User Chat vom C3D2.

Dem Raum selbstverständlich mit einem Account für XMPP (aka jabber) beigetreten werden.
Darüber hinaus gibt es aber auch die Möglichkeit anonym den Raum zu betreten. Dies kann beispielsweise per #web user interface für den Multi-User Chat geschehen. Aber es existiert auch anonxmpp.hq.c3d2.de.

Insbesondere ist auch Ulf im MUC anzutreffen, wenn er nicht gerade wieder arg hackt. Üblicher Weise kann seine Person und seine Funktion – als richtig krasser Hacker – bei richtig krassen Fragen zu richtig krass illegalen Belangen beantworten.

Das Vergeben von Berechtigungen (wie es in einem #Multi-User Chat möglich ist[1]) erfolgt nach bewährten chaotischen Prinzip. Accounts, denen vertraut wird, erhalten die Privilegien für den Anwendungsfall owner (Owner Use Cases). Das Gewähren von geringeren zusätzlichen Privilegien über den Anwendungsfall user (Occupant Use Cases) hinaus ist unüblich.

web user interface für den Multi-User Chat

Für Verwendung von XMPP (aka jabber) per web browser verwenden wir die Software Candy.

Es wird beim C3D2-web angeboten mit Candy dem #Multi-User Chat #c3d2@chat.c3d2.de beizutreten.[2] Dazu kann mit einem beliebigen Nick als candy@jabber.c3d2.de dem #Multi-User Chat beigetreten werden.

bots

astrobot@spaceboyz.net Jabber-Interface zum Harvester
mucbot@hq.c3d2.de Jabber-Interface für verschiedene Dienste im MUC [1]
woerterbuch.info@swissjabber.org Deutsch<>Englisch Wörterbuch
jabrss@cmeerw.net Bot für beliebige RSS-Feeds
whois@swissjabber.org Bot für whois(1)
bot@jabberland.com Jabberland bot (spanisch)
livedelu@jobble.uaznia.net Bot für die Jobble-Weltkarte
dylanbot@jabber.berlin.ccc.de Änderungen in http://wiki.opendylan.org/
postgresql@jabber.org Bot der Links zur PostgreSQL-Dokumentation zurückliefert
Siehe auch

pentabot

Der pentabot ist der bot zum C3D2.

FreeBOT

Seit 2013 gibt es den FreeBOT.

Der Code vom FreeBOT basiert dem Code vom Pentabot (von blotter/koeart).

Ergänzend gab es Anpassungen von Daniel. Der FreeBOT lief in einer Jail von FreeBSD (der Architektur SPARC64).

Pentabot im LXC

#FreeBOT wurde Anfang 2015 von Daniel so weiterentwickelt (angepasst), dass der #pentabot in einem LXC läuft. Der #Pentabot im LXC heißt jetzt wieder Pentabot, obwohl er eine Weiterentwicklung von #FreeBOT ist.

notwendige Fixes von #FreeBOT für Pentabot im LXC
python-xmpp
Dokumentation der notwendigen Änderungen (durch das Projekt FreeBSD)
--- xmpp/transports.py.orig	2010-04-06 21:05:04.000000000 +0800
+++ xmpp/transports.py	2010-04-06 21:05:20.000000000 +0800
@@ -27,7 +27,7 @@ Transports are stackable so you - f.e. T
 Also exception 'error' is defined to allow capture of this module specific exceptions.
 """
 
-import socket,select,base64,dispatcher,sys
+import socket,ssl,select,base64,dispatcher,sys
 from simplexml import ustr
 from client import PlugIn
 from protocol import *
@@ -312,9 +312,9 @@ class TLS(PlugIn):
         """ Immidiatedly switch socket to TLS mode. Used internally."""
         """ Here we should switch pending_data to hint mode."""
         tcpsock=self._owner.Connection
-        tcpsock._sslObj    = socket.ssl(tcpsock._sock, None, None)
-        tcpsock._sslIssuer = tcpsock._sslObj.issuer()
-        tcpsock._sslServer = tcpsock._sslObj.server()
+        tcpsock._sslObj    = ssl.wrap_socket(tcpsock._sock, None, None)
+        tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
+        tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
         tcpsock._recv = tcpsock._sslObj.read
         tcpsock._send = tcpsock._sslObj.write

Userpassword ändern

Für hacker@jabber.ccc.de:

<iq type='set' to='jabber.ccc.de'>
  <query xmlns='jabber:iq:register'>
    <username>hacker</username>
    <password>meinneuespasswort</password>
  </query>
</iq>

Psi passwort recovery

Für den Chat client Psi geht das mit folgendem Perl 1-Zeiler:

perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)' user@host.tld password

Dabei ist

user@host.tld die jid und
password der string aus der .psi/profiles/<profile>/config.xml unter dem <password>-Feld vom betreffenden <account> .
Zum Verständnis
jid und password werden in utf-8 Darstellung ge'xor'ed.

Quelle: http://blogmal.42.org/rev-eng/psi-password.story

IRC

Kanal
#c3d2
Server
hackint.org
Siehe auch

Allgemein

Einzelnachweise