Chat: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 86: Zeile 86:
* [http://web.swissjabber.ch/index.php/Kategorie:Bot swissjabber.ch Kategorie:Bot]
* [http://web.swissjabber.ch/index.php/Kategorie:Bot swissjabber.ch Kategorie:Bot]


=== FreeBOT ===
=== pentabot ===
Seit 2013 gibt es den FreeBOT.


Der Code vom FreeBOT basiert dem [https://github.com/koeart/pentabot Code vom Pentabot] (von [[user:blotter|blotter]]/[[user:koeart|koeart]]).
Der pentabot ist der bot zum [[C3D2]].


Ergänzend gab es Anpassungen von [[Daniel]]. Der FreeBOT läuft in einer FreeBSD SPARC64 Jail :D .
==== FreeBOT ====


== Userpassword ändern ==
Seit 2013 gibt es den FreeBOT.


Für <tt>hacker@jabber.ccc.de</tt>:
Der Code vom FreeBOT basiert dem [https://github.com/koeart/pentabot Code vom Pentabot] (von [[user:blotter|blotter]]/[[user:koeart|koeart]]).
<pre>
<iq type='set' to='jabber.ccc.de'>
  <query xmlns='jabber:iq:register'>
    <username>hacker</username>
    <password>meinneuespasswort</password>
  </query>
</iq>
</pre>


== Psi passwort recovery ==
Ergänzend gab es Anpassungen von [[Daniel]]. Der FreeBOT lief in einer Jail von FreeBSD (der Architektur SPARC64).


Für den Chat client Psi geht das mit folgendem Perl 1-Zeiler:
===== Pentabot im LXC =====
: <code>perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)' user@host.tld password</code>


Dabei ist
[[#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.
: ''user@host.tld'' die jid und
: ''password'' der string aus der <code>.psi/profiles/<profile>/config.xml</code> unter dem <password>-Feld vom betreffenden <account> .


; Zum Verständnis: jid und password werden in utf-8 Darstellung ge'xor'ed.
====== notwendige Fixes von [[#FreeBOT]] für Pentabot im LXC ======
 
Quelle: http://blogmal.42.org/rev-eng/psi-password.story
 
== Pentabot im LXC ==
 
python-xmpp fixen
 
https://raw.githubusercontent.com/freebsd/freebsd-ports/master/net-im/py-xmpppy/files/patch-xmpp-transports.py


; python-xmpp:
: [https://raw.githubusercontent.com/freebsd/freebsd-ports/master/net-im/py-xmpppy/files/patch-xmpp-transports.py Dokumentation der notwendigen Änderungen] (durch das Projekt [[FreeBSD]])
<source lang="bash">
<source lang="bash">
--- xmpp/transports.py.orig 2010-04-06 21:05:04.000000000 +0800
--- xmpp/transports.py.orig 2010-04-06 21:05:04.000000000 +0800
Zeile 149: Zeile 131:
         tcpsock._send = tcpsock._sslObj.write
         tcpsock._send = tcpsock._sslObj.write
</source>
</source>
== Userpassword ändern ==
Für <tt>hacker@jabber.ccc.de</tt>:
<pre>
<iq type='set' to='jabber.ccc.de'>
  <query xmlns='jabber:iq:register'>
    <username>hacker</username>
    <password>meinneuespasswort</password>
  </query>
</iq>
</pre>
== Psi passwort recovery ==
Für den Chat client Psi geht das mit folgendem Perl 1-Zeiler:
: <code>perl -le '($jid,$pw)=@ARGV;$pw=~s/..(..)/chr hex$1/ge; print substr($pw^$jid,0,length$pw)' user@host.tld password</code>
Dabei ist
: ''user@host.tld'' die jid und
: ''password'' der string aus der <code>.psi/profiles/<profile>/config.xml</code> 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


[[Kategorie:Infrastruktur]]
[[Kategorie:Infrastruktur]]

Version vom 28. Februar 2015, 22:23 Uhr

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.

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