Bearbeiten · Veränderungen zeigen · Druckansicht ·

Auf dieser Seite wird dir Step-By-Step erklärt, wie du auf deiner Unix/Linux-Shell am einfachsten einen Bouncer-Service starten kannst. Als Referenzapplikation nutzen wir psyBNC, die am weitesten verbreitete Bouncer-Software auf dem derzeitigen Markt.

Die Homepage zu psyBNC findest du unter diesem Link: http://www.psybnc.net/. Doch zunächst kannst du direkt hier weiterlesen, wir beginnen mit der Installation.

Du brauchst folgendes um einen Bouncer zu betreiben:

  1. Eine Shell auf einer Unix- oder Linux-Box. Es gibt auf der psyBNC-Homepage eine (etwas veraltete) Windowsversion, die allerdings von den Entwicklern nicht supportet wird.
  2. Deine Shell sollte unbedingt eine permanente Internet-Verbindung besitzen (sonst macht das gesamte Bouncer-Konzept keinen Sinn ;-)
  3. Deine Shell sollte über grundlegende Entwicklungswerkzeuge ("dev-Pakete") verfügen, dazu zählen Dinge wie wie ein Compiler, die glibc, die ncurses-Bibliothek und optional die SSL-Bibliothek.

EINSCHUB: Es ist unüblich, dass man einen Bot/Bouncer mit root systemweit installiert. Noch gefährlicher ist es natürlich, wenn man einen Bot/BNC mit root-Rechten startet. Gewöhnlich installiert und startet man das Ganze unter einem Benutzeraccount: zB als Benutzer "irc" oder "bouncer" oder auch unter dem eigenen Arbeitskonto "peter" oder "web123"... Wenn es auf deinem System im Moment nur einen root-Benutzer gibt oder du nicht weißt, wie du einen weniger previligierten Systembenutzer anlegst, dann wird dir der Artikel Unixbenutzer anlegen helfen.

Nach dem Login befinden wir uns für gewöhnlich im Homeverzeichnis unseres Accounts. Wichtig ist, dass wir uns unter keinen Umständen als root einloggen und als root (unter dem Verzeichnis /root) den Bouncer installieren. Root sollte nur werden, wer das System an sich verändern will, "daily work" (dazu gehört auch das Installieren eines Bouncers) werden als Normal-User erledigt. Im Homeverzeichnis befindlich, laden wir uns nun den Quellcode des psyBNCs herunter, entpacken ihn und wechseln sofort in das Quellverzeichnis.

Vorher noch der Hinweis: Bitte begieb dich vor dem Herunterladen der Quellen nochmals auf die Downloadseite des psyBNC-Projekts und schau, ob die hier verwendete psyBNC-Version die aktuellste ist, die angeboten wird. Wenn nicht, dann downloadest und entpackst du dir natürlich nur die aktuellste Version! Weiter im Text:

Downloaden, anstatt wget kann auch eine beliebige
andere Methode angewandt werden:
$> wget http://www.psybnc.net/psyBNC-2.3.2-7.tar.gz

Entpacken:
$> gunzip -c psyBNC-2.3.2-7.tar.gz | tar xf -

Ins entstandenes Verzeichnis wechseln:
$> cd psybnc

So, nachdem wir das Archiv entpackt und ins entpackte Verzeichnis gewechselt haben, fahren wir dort fort. Auch psyBNC benutzt das Linux-übliche Makefile zum automatischen Erstellen einer ausführbaren Binärdatei. Der Clou an dieser Makefile ist, dass wir sogar eine grafische Oberfläche bekommen können um die Optionen für das Kompilieren zu definieren. Wir starten nun den "Einstellungsdialog."

$> make menuconfig

Um den Konfigurationsbildschirm darzustellen benötigt ihr eine spezielle Programmierungsbibliothek in eurer Shell-Umgebung. Sie heißt "ncurses" und muss, sofern sie nicht vorhanden ist, vom Systemadministrator (root) systemweit installiert werden. Wenn alles gut geht jedoch, dann seht ihr binnen weniger Sekunden einen Auswahlfeld mit mehreren Optionen, wenn nicht, hilft euch vielleicht der Artikel psyBNC Probleme bei der Installation.

Wir wählen zunächst Compiling Options. Dort finden wir sämtliche Optionen, mit denen man einen Bouncer bestücken kann. Ein Patentrezept für die richtige "Einstellung" der Compile-Optionen gibt es leider niemals. Du solltest dir genau überlegen was du bei deinem Bouncer brauchst und was nicht. Besondere Aufmerksamkeit solltest du auf Sicherheit, Performance und so weiter legen. Bedenke wievielen Benutzern du die Benutzung des BNCs ermöglichen möchtest. Richte die entsprechende Compile-Option darauf aus.

  +--------------------------- Compiling Options ---------------------------+
  ¦  This is the compiling section of the psyBNC Configuration. Please      ¦
  ¦  select an item and press enter to change settings.                     ¦
  ¦                                                                         ¦
  ¦ +---------------------------------------------------------------------+ ¦
  ¦ ¦     [X] Support Encryption                                          ¦ ¦
  ¦ ¦         Encryption Type: Blowfish                                   ¦ ¦
  ¦ ¦     [X] Support Translation                                         ¦ ¦
  ¦ ¦     [X] Support internal Network                                    ¦ ¦
  ¦ ¦     [X] Support Traffic-Logging                                     ¦ ¦
  ¦ ¦     [X] Support Linkage                                             ¦ ¦
  ¦ ¦     [X] Support DCC Files                                           ¦ ¦
  ¦ ¦     [X] Support DCC Chat                                            ¦ ¦
  ¦ ¦         Mode: Multiuser                                             ¦ ¦
  ¦ ¦         Maximum Users: 3                                            ¦ ¦
  ¦ ¦         Maximum Connections: 10                                     ¦ ¦
  ¦ ¦     [X] Support Scripting                                           ¦ ¦
  ¦ ¦     [ ] Support oIdentd                                             ¦ ¦
  ¦ ¦     [ ] Use asynchroneous resolving - EXPERIMENTAL -                ¦ ¦
  ¦ ¦     [X] Support multiple IRC-Networks                               ¦ ¦
  ¦ ¦     [ ] Support Proxy Usage                                         ¦ ¦
  ¦ ¦     [ ] Anonymous Bouncer Usage                                     ¦ ¦
  ¦ ¦     [ ] None permanent IRC-Connections                              ¦ ¦
  ¦ ¦         Loglevel: Errors, Warnings and Infos                        ¦ ¦
  ¦ ¦     [ ] Use the 2.1.1 compatible Partychannel                       ¦ ¦
  ¦ ¦         Version Reply: None                                         ¦ ¦
  ¦ ¦         SSL-Path: /usr/local/ssl                                    ¦ ¦
  ¦ ¦         SSL-Path: /usr           (<-- ALternative unter Debian)     ¦ ¦
  ¦ ¦         SSL-SecLevel: Check Certs and Keys (NOT IMPLEMENTED)        ¦ ¦
  ¦ +---------------------------------------------------------------------+ ¦
  +-------------------------------------------------------------------------¦
  ¦                    <Select>    < Exit >    < Help >                     ¦
  +-------------------------------------------------------------------------+

Oben im Screengrab findest du eine (meiner Meinung nach) relativ sinnvolle Konfiguration des Bouncers. Er ist, wie du siehst, für maximal 3 Benutzer ausgelegt, jene können maximal 10 (alle zusammen) Verbindungen (eigentlich 5, lies weiter...) ins IRC starten. Einen Hinweis noch. Der Wert von "Maximum users" bezieht sich auf die tatsächliche Anzahl der einzustellenden Benutzer. Der Wert von Maximum-Connections ist da etwas trickreicher. Er darf nicht zu knapp gewählt werden, denn pro Serververbindung (und man bedenke, dass der psyBNC durch seine Multiserverfähigkeiten mehrere Serververbindungen pro User aufrechterhalten kann) werden zwei Connections (eine rausgehende und eine reinkommende) benötigt. Also nicht zu knapp bitte! Quakenet-Besucher, die über einen TRUST nachdenken, aktivieren bitte unbedingt die Option "Support oIdentd"!

So, weiter! Wir haben nun die benötigten Kompilierungsoptionen eingestellt, was nun noch fehlt ist die Übersetzung des Quellcodes in eine für den Computer ausführbare Datei. Ergo: Wir verlassen die grafische Oberfläche komplett mit Exit und nochmal Exit, wir befinden uns nun wieder auf der Shell und uns strahlt ein "Now compile psyBNC using make, if not yet compiled, or if Options were changed. done." entgegen. Gesagt getan:

$> make
Initializing bouncer compilation
[...]

Da der Bouncer die Verschlüsselungstechnik SSL? benutzt werden wir nach einiger Compile-Zeit nach gewissen Infos gefragt. Wir sollten die Information preisgeben, da sie für die Erstellung eines SSL-Zertifikates benötigt werden. Wer jedoch gewisse Informationen nicht preisgeben möchte, kann anstatt der gefragten Info einfach einen Punkt "." eingeben, und die Sache mit ENTER bestätigen. Es wird gefragt nach Landesnamen, Bundesstaat/-land oder Provinz, Name der Ortschaft oder Lokalität, Name der Firma, Abteilung der Firma und der allgemeine Name (es wird empfohlen dort den eigenen Domainnamen einzutragen).

Wer will, kann während der Zeit, die der Compiler benutzt um den Quellcode zu übersetzen, mal kurz Pinkeln gehen - ansonsten ist nach kurzer Zeit der Prozess abgeschlossen und wir haben eine neue, ausführbare Datei namens psybnc in unserem psyBNC-Verzeichnis. (Wer mir das nicht glaubt, kann es durch eintippen des ls-Kommandos nachprüfen ;-)

Wir könnten versuchen den Bouncer jetzt zu starten... Aber Halt! Noch weiß der BNC doch gar nicht was wir von ihm wollen. Genau deswegen müssen wir jetzt fortfahren und eine Konfigurationsdatei für den BNC erstellen, aus dem er die benötigten Informationen (wie Server-Addresse, Passwort, etc) ausliest. Die Programmierer des psyBNC's waren aber nett und ersparen uns das reine Schreiben der psybnc.conf. Wir machen also folgendes, zurück ins config-Menü:

$> make menuconfig

Wir befinden uns wieder in der Übersicht, aber du ahnst es schon: Wir werden diesmal nicht nach "Compiling Options" gehen, sondern wir clicken auf Bouncer-Config -->.

Wir gehen direkt weiter nach Listening Ports und bestimmen dort den Anschluss ("Port" und IP), an dem der Bouncer später für dich und deine Mitbenutzer horchen wird. Zuerst zur IP-Addresse: Standardmäßig versucht psyBNC an allen Netzwerksegmenten zu horchen, die es auf deinem Server findet (deshalb das Sternchen "*"). Dies hat aber in letzter Zeit zu Problemen geführt, darum empfehle ich dir, das Sternchen durch die volle IP-Addresse deines Servers zu ersetzen! Nun zum Port, auf dem Verbindungen entgegen genommen werden sollen: Ich empfehle dort einen anderen als den Standardwert von 31337 einzutragen, denn jener Port ist bekannt für psyBNCs und jemand könnte versuchen deinen Bouncer zu knacken, denn er weiß ja, dass dort ein BNC läuft. Nimm lieber etwas geistreiches wie 50023. Achtung, der Port muss größer als 1024 aber kleiner als 65535 sein! Das ganze sollte dann also so aussehen:

Listening Port:

#1 :123.45.67.89 50023

#1 :S=123.45.67.89 50023  <-- (für einne SSL fähigen Server)

So, fertig, wir verlassen den Bereich mit einem einmaligen Druck auf die ESC-Taste.

Da ich davon ausgehe, dass du deinen BNC zuersteinmal nicht linken willst überspringen wir den Bereich "Links -->" und gehen direkt weiter nach Bouncername. Dort geben wir einen kurzen und prägnanten Namen für unseren bnc ein. Ich empfehle "bnc", "meinbouncer" oder "waechter". Oder irgendsowas halt. ;-)

Nachdem wir das abgeschlossen haben gehen wir direkt weiter zu Users -->, denn "Host Allows" ist standardmäßig für Dialup-User gut eingestellt. Also ab zu den Users..

Jetzt geht's ans Eingemachte, wir müssen die Benutzer für den Bouncer festlegen, es ist noch keiner vorhanden, also legen wir einen mit, irgendwie logisch, einem "Druck" auf <New> an! Zuerst geben wir dem User einen Login. Dieser muss später als email/ident im IRC-Client angegeben werden. Darunter sagen wir dem Bouncer, wie der Standard-Spitzname (Nick) des users sein soll. In die Username-Zeile tragen wir den Namen des Benutzers ein. Danach definieren wir das Password, welches zum Einloggen gebraucht wird. VHost? lassen wir aus. Es folgt eine wichtige Option: Entweder wird der Benutzer des Bouncers ein Admin oder ein normaler User ohne Konfigurationsrechte. Wenn du einen Login für dich selbst erstellst solltest du "Admin" wählen (auswählen mit Enter), ansonsten bitte "User". Alle anderen Werte sollten ersteinmal unangetastet bleiben, nur die Option "Receive Systemmessages" kann für Admins noch interessant sein. Bei mir sähe eine Beispielkonfiguration in etwa so aus:

  +-------------------------------- User #1 --------------------------------+
  ¦             Choose the option to change and press ENTER.                ¦
  ¦                                                                         ¦
  ¦                                                                         ¦
  ¦ +---------------------------------------------------------------------+ ¦
  ¦ ¦                  Login: hbergunde                                   ¦ ¦
  ¦ ¦                  Nick: Hendrik                                      ¦ ¦
  ¦ ¦                  Username: Hendrik                                  ¦ ¦
  ¦ ¦                  Password: zaZAblar                                 ¦ ¦
  ¦ ¦                  VHost:                                             ¦ ¦
  ¦ ¦                  Rights: Admin                                      ¦ ¦
  ¦ ¦                  Relaying over Link #:                              ¦ ¦
  ¦ ¦                  Using Proxy:                                       ¦ ¦
  ¦ ¦                  Proxy Port: None                                   ¦ ¦
  ¦ ¦                  Network User of User #: None                       ¦ ¦
  ¦ ¦                  User marked as quitted: No                         ¦ ¦
  ¦ ¦                  Auto-Accept DCC-Files: No                          ¦ ¦
  ¦ ¦                  Receive Systemmessages: Yes                        ¦ ¦
  ¦ ¦                  Network name of Network User:                      ¦ ¦
  ¦ ¦                  Reset LastLog                                      ¦ ¦
  ¦ ¦                  Servers --->                                       ¦ ¦
  ¦ +---------------------------------------------------------------------+ ¦
  +-------------------------------------------------------------------------¦
  ¦                    <Select>    < Exit >    < Help >                     ¦
  +-------------------------------------------------------------------------+

Zu Guterletzt fügen wir dem Benutzer noch ein paar Server hinzu, wähle dazu "Servers" aus. Dort erstellen wir mit "New" eine neue Auswahl an Servern. Nun können wir im Format "irc.server.net 6667" (Also Servername, Leerzeichen, Port(für SSL server muß vor der Serveradresse ein GROßES S= z.B. S=xxx.xxx.xxx.xxx PORT)) neue Server hinzufügen. Natürlich werden hier nur Server des selben IRC-Netzes eingetragen, der Bouncer geht die Reihe nach durch und versucht funktionierende Server zu finden, wenn einer von ihnen mal nicht erreichbar ist! Weitere Netze erstellen wir später über den Bouncer im Betrieb..

So, damit ist auch die Configuration des Bouncer erledigt. Wir beenden den Dialog nun mit einem Druck auf die ESC-Taste. Danach kann, wer will, die Sprache ("language") auf "german" ändern! Ansonsten beenden wir menuconfig nun entgültig mit der Auswahl von < exit > solang, bis das Programm nicht mehr läuft, wir uns also wieder auf der Shell befinden! Den Hinweis "Now compile psyBNC using make, if not yet compiled, or if Options were changed. done." ignorieren wir, schließlich haben wir an den Compiling-Options nichts mehr geändert, folglich brauchen wir auch nicht neu kompilieren. Im PsyBNC-Verzeichnis sollte jetzt eine Datei namens "psybnc.conf" erstellt worden sein, wir können sie uns mit "cat psybnc.conf" einmal ansehen. Wenn alles soweit in Ordnung ist, können wir den Bouncer starten! Dies geschieht mit dem folgenden Befehl:

$> ./psybnc

Jetzt sollte der Bouncer laufen und wir können uns einloggen. Als Servername muss natürlich der Hostname oder die IP-Addresse des Rechners hergenommen werden, auf dem der Bouncer läuftl. Als Port wird (meistens) nicht 6667 verwendet, sondern 31337 (standardmäßig) oder ein anderer, manuell während der menuconfig, eingestellter Wert. Als Passwort für den Server benutzt du das Passwort, welches du eben im User-Dialog eingestellt hast. Als Username/Ident, bei mIRC ist es die "Email-Address" unter der Kategorie "Connect", musst du den im User-Dialog eingestellten Login (im obigen Beispiel ist das hbergunde) wählen. Tust du dies nicht bekommst du die Meldung: <-psyBNC> Falsches Password. Verbindung wird getrennt.. Dies ist eine Falle, in die viele Erstlinge schnell fallen..Wenn du zum Server verbunden bist, alles also funktioniert, kannst du mittels /join #channel deinen Stamm-Chans beiwohnen.. Brauchst du Hilfe, dann hilft dir das Bouncer-Kommando /bhelp! Dahinter versteckt sich ein komplettes Hilfesystem und alles was du brauchst! Du solltest jetzt dringend noch einige Konfigurationen vornehmen, ich empfehle dir folgende Hilfstexte einmal genau durchzulesen (geht alles sehr schnell und spart Nerven):

In deinem IRC-Client:

/bhelp SETAWAY

/bhelp SETLEAVEMSG

/bhelp SETAWAYNICK

/bhelp AIDLE

/bhelp AUTOREJOIN

Der Nick, den du im IRC annimmst, wenn dein Client offline geht wird zum Beispiel mit /SETAWAYNICK Yada|OffLine eingestellt.. Und so weiter

So, den Rest lasse ich dich jetzt alleine Erforschen. Viel Spaß mit deinem neuen Bouncer wünsche ich dir!

Offene Fragen zu dem Thema können natürlich auch im Forum diskutiert werden!

Bearbeiten · Veränderungen zeigen · Druckansicht ·
Page last modified on March 07, 2014, at 08:52 AM