Menu

Tree [r46] /
 History

HTTPS access


File Date Author Commit
 bncmysql 2007-07-23 the-me88 [r45]
 bnctcl 2007-07-23 the-me88 [r45]
 iface 2007-07-23 the-me88 [r45]
 scripts 2007-07-23 the-me88 [r45]
 src 2007-07-27 the-me88 [r46] Fehler beim erstellen der MySQL Konfiguration; ...
 AUTHORS 2007-05-13 the-me88 [r43] Update auf Revision 894; Lizensierung auf die L...
 COPYING 2007-05-13 the-me88 [r43] Update auf Revision 894; Lizensierung auf die L...
 ChangeLog 2007-05-13 the-me88 [r43] Update auf Revision 894; Lizensierung auf die L...
 INSTALL 2007-03-11 the-me88 [r23] kleiner Code Update; Text Updates
 LICENSE 2007-02-11 the-me88 [r1]
 Makefile 2007-07-23 the-me88 [r45]
 Makefile.am 2007-07-23 the-me88 [r45]
 Makefile.in 2007-07-23 the-me88 [r45]
 NEWS 2007-03-11 the-me88 [r23] kleiner Code Update; Text Updates
 README 2007-07-23 the-me88 [r45]
 README.lean 2007-02-11 the-me88 [r1]
 README.motd 2007-04-06 the-me88 [r30] Update der READMES, Fehlerkorrekturen und ähnli...
 README.mysql 2007-04-06 the-me88 [r30] Update der READMES, Fehlerkorrekturen und ähnli...
 README.settings 2007-04-07 the-me88 [r31] Pufferleerungen eingefügt; fehlendes std::endl ...
 README.ssl 2007-04-07 the-me88 [r31] Pufferleerungen eingefügt; fehlendes std::endl ...
 aclocal.m4 2007-07-23 the-me88 [r45]
 cares.m4 2007-02-11 the-me88 [r1]
 cares2.m4 2007-02-11 the-me88 [r1]
 config.guess 2007-02-11 the-me88 [r1]
 config.h 2007-02-22 the-me88 [r18] Kleine Verbesserungen und die config.log entfernt
 config.h.in 2007-07-23 the-me88 [r45]
 config.status 2007-02-21 the-me88 [r16] Fehlende Build Scripte und Depends hinzugefügt
 config.sub 2007-02-11 the-me88 [r1]
 configure 2007-07-23 the-me88 [r45]
 configure.ac 2007-07-23 the-me88 [r45]
 install-sh 2007-02-11 the-me88 [r1]
 libtool 2007-02-22 the-me88 [r18] Kleine Verbesserungen und die config.log entfernt
 ltmain.sh 2007-02-11 the-me88 [r1]
 missing 2007-02-11 the-me88 [r1]
 mkinstalldirs 2007-02-11 the-me88 [r1]
 sbnc.tcl 2007-02-11 the-me88 [r1]
 ssl.conf 2007-04-06 the-me88 [r30] Update der READMES, Fehlerkorrekturen und ähnli...
 stamp-h1 2007-02-21 the-me88 [r16] Fehlende Build Scripte und Depends hinzugefügt
 stamp-h1.in 2007-02-11 the-me88 [r1]
 tcl.m4 2007-02-11 the-me88 [r1]

Read Me

Secure Socket Layer (SSL)
-------------------------

Mittels der OpenSSL Libarys unterstützt sBNC+ encryptete Client Verbindungen.
Zusätzlich können Clientzertifikate benutzt werden, um einen Benutzer zu
authentifizieren.

Warum?
------

IRC wird meistens über unsichere/unencryptete Verbindungen benutzt. So ist es möglich, den
Datentransfer zwischen Client und Server zu belauschen.
Auch können sich andere zum Beispiel über ein WLAN Netzwerk Zugriff verschaffen und spielend
einfach den Datentransfer belauschen.
Durch verschlüsselte Verbindungen wird zwar das Belauschen nicht gestoppt, allerdings kann
der Angreifer nicht mehr so einfach "mitlesen".

sBNC+ mit SSL Support kompilieren
---------------------------------

Wenn die OpenSSL Headers und Libarys installiert sein sollten, erkennt das configure Script dies
automatisch und kompiliert die Unterstützung mit in den Kern ein.

Wie man sBNC+ mit SSL Support aufsetzt
--------------------------------------

sBNC+ unterstützt zwei Arten von Sockets: unverschlüsselte und verschlüsselte. Beim Starten werden
zwei Konfigurationseinstellungen gelesen um zu entscheiden, ob der Benutzer unverschlüsselte,
verschlüsselte oder beide Arten benutzen will:

system.port - setzt den Port für den unverschlüsselten Socket
system.sslport - setzt den Port für den SSL-verschlüsselten Socket

Wenn keiner dieser Einstellungen angegeben ist, benutzt sBNC+ automatisch den unverschlüsselten
Port 9000.

Du kannst den "system.port" aus deiner Konfiguration entfernen, wenn du nur einen verschlüsselten
Socket benutzen möchtest.

Die Einstellungen können in der Hauptkonfiguration von sBNC+ gesetzt werden: sbnc.conf

Wenn du SSL bei sBNC+ aktiviert hast, versucht der Bouncer die folgenden Dateien im Bouncerhomeordner
zu finden:

sbnc.crt - der öffentliche Teil des Serverschlüssels
sbnc.key - der private Teil des Serverschlüssels

Das "openssl" Programm kann benutzt werden um Zertifikate zu erstellen. Du kannst aber genauso
"make sslcert" benutzen, welches ein SSL Zertifikat für dich erstellt und es in die richtigen
Verzeichnisse installiert.

Client Zertifikate
------------------

Clients wie irssi, XChat oder mIRC unterstützen Clientzertifikate, die zum authentifizieren benutzt
werden können.

Wenn du den öffentlichen Schlüssel für deinen Bounceraccount benutzen möchtest, musst du dich mit
deinem Zertifikat UND deinem Passwort anmelden (weil der Bouncer wahrscheinlich deinen öffentlichen
Schlüssel noch nicht kennt).

Wenn du dich so erst einmal eingeloggt hast, kannst du /sbnc savecert benutzen. Dadurch wird sBNC+
mitgeteilt, dass das Clientzertifikat, welches du in dem Moment benutzt, geschützt ist für die
Public Key Authentifizierung.

Benutz /sbnc showcert um nachzuprüfen, ob das Zertifikat erfolgreich gespeichert wurde. Es sollte
nun möglich sein sich einzuloggen mit dem Clientzertifikat.

(Du kannst genauso deinen öffentlichen Schlüssel in sBNC+ einfügen, indem du ein x509 Zertifikat in
den users/ Ordner tust. Der Dateiname sollte <benutzername>.crt sein, wobei <benutzername> dein sBNC+
Benutzer ist. Das benötigt allerdings einen Neustart von sBNC+, da es die Zertifikate nur beim Starten
einließt.)

SSL und "make update"
---------------------

Wenn SSL benutzt wird ist es nicht möglich, "make update" oder "/sbnc reload" zum Updaten auszuführen,
wenn du ein Serverzertifikat benutzt, welches mit einem Passwort gesichert ist, benutzt.
Während des Reloadvorgangs von sBNC+ würde OpenSSL einen Prompt öffnen, indem man das Passwort
eingeben muss, was zum Freeze/Crash von sBNC+ führt.
Eine Lösung für dieses Problem könnet später implementiert werden.