Chat: Unterschied zwischen den Versionen

Aus C3D2
Zur Navigation springen Zur Suche springen
(→‎IRC: jetzt ein proxy)
(18 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
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:
= jabber =


== Setup ==
Seit dem Putsch einiger Jabber-Nerds und dem Wechsel unseres hauptsaechlichen Chats auf einen Jabber-MUC-Channel besitzen wir eine eigene Jabber-Infrastruktur.


=== HQ ===
Zu unserem Multi-User Chat haben wir [[web:muc.html|eine eigene Website!]]
* [[Office2/Netz#jabber1.hq.c3d2.de, jabber2.hq.c3d2.de|jabber1.hq.c3d2.de, jabber2.hq.c3d2.de]]: Da laufen die ejabberd's mit einer verteilten mnesia-DB.
* [[Office2/Netz#icq.hq.c3d2.de|icq.hq.c3d2.de]]: Hier betreiben wir einen ICQ-Transport.
* Auf [[Office2/Netz#www1.hq.c3d2.de|www1.hq.c3d2.de]] laeuft ein Apache, der sich um das load balancing zwischen den beiden Jabber-Servern kuemmert.


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.
== Setup ==


=== wetu ===
=== wetu ===
Zeile 17: Zeile 14:


== Usage ==
== 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 ===
=== wetu ===
Zeile 32: Zeile 22:
== Gimmicks ==
== 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:
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 <tt>ssh chat@ssh.hq.c3d2.de</tt> ermoeglicht. Das script laeuft auf [[Office2/Netz#unsafe.hq.c3d2.de|unsafe.hq.c3d2.de]].
* littlemuc.rb, ein ruby-script, das den chat ueber <tt>ssh chat@ssh.hq.c3d2.de</tt> ermoeglicht. Das script laeuft auf [[Office2/Netz#unsafe.hq.c3d2.de|unsafe.hq.c3d2.de]].
* jetzt auch mit IRC-Zugang (irc.hq.c3d2.de:6667) mit [http://github.com/astro/ejabberd-ircd/ ejabberd-ircd]
** SSL-Port: 6668, '''FIXME:''' stunnel lauscht aber bisher nur auf IPv4


== Bunte Graphen... ==
== Technik ==
{{beinhaltet Abweichungen von der Realität}}
 
{{beinhaltet Projekt|Es ist ein monitoring aufzusetzen, dass im [[HQ]] über [[ziercke]] erreichbar ist.}}
=== [[jabber.c3d2.de]] ===
 
==== Fingerprints ====


...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.
: <del><tt>1f:e1:e9:f9:63:1d:24:8e:5a:dd:f4:8e:9f:80:14:de:a0:92:49:78</tt></del>
:: Aktivierungsdatum: Mon <b>Jul 27</b> 13:09:06 <b>2015</b>
:: Ablaufdatum: Sat <b>Jan 23</b> 12:09:06 <b>2016</b>


== Technik ==
: <tt>97:9B:49:A4:EF:30:EC:F1:49:DD:37:D1:8B:5E:CA:DC:06:AD:46:73</tt>
:: Aktivierungsdatum: Wed <b>Apr 13</b> 19:55:13 <b>2016</b>
:: Ablaufdatum: Mon <b>Oct 10</b> 19:55:13 <b>2016</b>


=== jabber.c3d2.de ===
{{benötigt Dokumentation}}
{{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.
…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]] ===
{{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.<br />
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 [[hacking|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<ref>https://xmpp.org/extensions/xep-0045.html#associations</ref>) erfolgt nach bewährten chaotischen Prinzip. Accounts, denen vertraut wird, erhalten die Privilegien für den Anwendungsfall ''owner'' ([http://xmpp.org/extensions/xep-0045.html#owner Owner Use Cases]). Das Gewähren von geringeren zusätzlichen Privilegien über den Anwendungsfall ''user'' ([http://xmpp.org/extensions/xep-0045.html#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&nbsp;browser verwenden wir die [https://candy-chat.github.io/candy/ Software ''Candy''].
Es wird beim [[C3D2-web]] angeboten mit Candy dem [[#Multi-User Chat]] [[#c3d2@chat.c3d2.de]] beizutreten.<ref>[[web:muc.html]]</ref> Dazu kann mit einem beliebigen Nick als candy@[[jabber.c3d2.de]] dem [[#Multi-User Chat]] beigetreten werden.


== bots ==
== bots ==
Zeile 86: Zeile 100:
* [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 ===
 
Der pentabot ist der bot zum [[C3D2]].
 
Magic prefix ist <tt>+hq</tt>, Hilfe gibt es mit <tt>+hq help</tt>.
 
==== FreeBOT ====
 
Seit 2013 gibt es den FreeBOT.
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 Code vom FreeBOT basiert dem [https://github.com/koeart/pentabot Code vom Pentabot] (von [[user:blotter|blotter]]/[[user:koeart|koeart]]).


Ergänzend gab es Anpassungen von [[Daniel]]. Der FreeBOT läuft in einer FreeBSD SPARC64 Jail :D .
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:
: [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">
--- 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
</source>
 
=== Astrobot ===
 
Code: https://github.com/astro/tigger


== Userpassword ändern ==
== Userpassword ändern ==
Zeile 117: Zeile 176:


Quelle: http://blogmal.42.org/rev-eng/psi-password.story
Quelle: http://blogmal.42.org/rev-eng/psi-password.story
= IRC =
; Kanal: <code>#c3d2</code>
; Server: <code>irc.c3d2.de/6697 (SSL)</code>
Dies ist ein Proxy-Dienst auf Grundlage von [https://github.com/moparisthebest/xmpp-ircd xmpp-ircd].
== bots ==
=== Karl ===
Karl ist ein [https://github.com/ProgVal/Limnoria Supybotfork] und kann mit verschiedenen [https://github.com/ProgVal/Supybot-plugins Plugins] erweitert werden. Karl hört auf alle Kaot*innen.
Funktionen:
{| class="wikitable sorable"
|-
|!post + text
|Postet zu [https://twitter.com/pentafnord @pentafnord]
|-
|!postm + imagelink
|Postet Bilder zu Twitter.
|-
|!mentions (+ number)
|Listet Twittererwähnungen
|-
|!rss +feed (c3d2,fefe,...)
|Listet Feeds des gegebenen Feeds.
|-
|!rss add announce +feed
|Postet neue Feedinhalte automatisch.
|-
|-
|!topic add + topic
|Setzt neues Topic
|-
|!list ...
|Alles andere.
|-
|}
; Siehe auch:
* [[#Multi-User Chat]]
= Allgemein =
== Einzelnachweise ==
<references />


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

Version vom 19. Januar 2019, 21:02 Uhr

jabber

Seit dem Putsch einiger Jabber-Nerds und dem Wechsel unseres hauptsaechlichen Chats auf einen Jabber-MUC-Channel besitzen wir eine eigene Jabber-Infrastruktur.

Zu unserem Multi-User Chat haben wir eine eigene Website!

Setup

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

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:

  • littlemuc.rb, ein ruby-script, das den chat ueber ssh chat@ssh.hq.c3d2.de ermoeglicht. Das script laeuft auf unsafe.hq.c3d2.de.

Technik

jabber.c3d2.de

Fingerprints

1f:e1:e9:f9:63:1d:24:8e:5a:dd:f4:8e:9f:80:14:de:a0:92:49:78
Aktivierungsdatum: Mon Jul 27 13:09:06 2015
Ablaufdatum: Sat Jan 23 12:09:06 2016
97:9B:49:A4:EF:30:EC:F1:49:DD:37:D1:8B:5E:CA:DC:06:AD:46:73
Aktivierungsdatum: Wed Apr 13 19:55:13 2016
Ablaufdatum: Mon Oct 10 19:55:13 2016

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.

Magic prefix ist +hq, Hilfe gibt es mit +hq help.

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

Astrobot

Code: https://github.com/astro/tigger

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
irc.c3d2.de/6697 (SSL)

Dies ist ein Proxy-Dienst auf Grundlage von xmpp-ircd.

bots

Karl

Karl ist ein Supybotfork und kann mit verschiedenen Plugins erweitert werden. Karl hört auf alle Kaot*innen.

Funktionen:

!post + text Postet zu @pentafnord
!postm + imagelink Postet Bilder zu Twitter.
!mentions (+ number) Listet Twittererwähnungen
!rss +feed (c3d2,fefe,...) Listet Feeds des gegebenen Feeds.
!rss add announce +feed Postet neue Feedinhalte automatisch.
!topic add + topic Setzt neues Topic
!list ... Alles andere.
Siehe auch

Allgemein

Einzelnachweise