RSS Feed  •  Profil  •  Private Nachrichten  •  Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> shroudBNC (sBNC 1.2) installieren Lizenzfreie / GEMA Freie Musik :: Bist du ein Web Geek?
shroudBNC (sBNC 1.2) installieren
Verfasst am: 04.11.2008, 17:17   Autor: killerbees19
Da ich in den letzten Tagen massive Probleme bei der Installation und Konfiguration von sBNC hatte, will ich hier einmal eine aktualisierte Installationsanleitung anbieten. Als Grundvoraussetzung braucht ihr natürlich einen (v)Server mit Root Zugang und Linux Kenntnisse. Die Anleitung beschreibt die Installation von sBNC Version 1.2 unter Debian Etch/Lenny. Das Testsystem war ein ziemlich neu installiertes Debian, weshalb hier auch die Installation von vielen anderen Paketen beschrieben wird, die auf einem anderen Server schon vorhanden sind. Wir beginnen damit uns über SSH einzuloggen und Root Rechte zu erlangen.

Paketmanager aktualisieren
Bitte einmal folgendes ausführen, um auch aktuelle Listen zu haben:
Code:
apt-get update


TCL vorbereiten
Als erstes sollte man überprüfen, ob TCL auch verfügbar ist. TCL kann man mit folgendem Befehl recht einfach installieren bzw. aktualisieren:
Code:
apt-get install tcl8.4 tcl8.4-dev


Make & Co. vorbereiten
Zum Kompilieren von sBNC benötigen wir außerdem noch make, gcc und g++. Falls etwas anderes noch fehlen sollte, wird die Fehlermeldung nicht zu übersehen sein.
Code:
apt-get install make
apt-get install gcc
apt-get install g++


SSL vorbereiten
SSL ist zwar nicht zwingend erforderlich, aber ich empfehle jedem, die SSL Unterstützung auch gleich zu verwenden. Denn nach dem Kompilieren wäre es zu spät, falls ihr einmal SSL nutzen möchtet, und sBNC ohne SSL kompiliert habt. Deswegen: Immer mit. Dafür brauchen wir einerseits openssl und libssl-dev:
Code:
apt-get install openssl
apt-get install libssl-dev


Neuen Benutzer anlegen
Um sBNC zu installieren und ausführen zu können, brauchen wir außerdem noch einen neuen User, denn 1.) wäre es nicht sehr klug einen BNC als Root auszuführen und 2.) lässt das sBNC gar nicht zu ( Zwinker / Razz ). Ich habe einfach sbnc genommen:
Code:
useradd -m sbnc
passwd sbnc <dein_wunschpasswort>

Mittels der Option m, wird auch gleich ein neues Homeverzeichnis für den User sbnc erstellt. Mit passwd vergeben wir noch ein Passwort für den Benutzer. Bitte <dein_wunschpasswort> durch ein sicheres (!) Passwort ersetzen. Jetzt ist unsere Arbeit als root erledigt, und wir müssen uns unter dem neu erstellten Benutzer sbnc einloggen und ins Homeverzeichnis des Users wechseln:
Code:
su sbnc
cd ~


Los geht's
Nachdem wir alle Vorarbeiten erledigt haben, geht's endlich wirklich los. Nun laden wir uns die aktuellste Version von sBNC herunter und entpacken sie. Die aktuellste Version von sBNC (bzw. den Link) gibt es unter www.shroudbnc.info/Download.aspx
Code:
wget http://shroudbnc.info/sbnc-snapshot.tar.gz
tar xfz sbnc-1.2.tar.gz

sBNC wurde in den Ordner sbnc-1.2 entpackt, in den wir nun wechseln:
Code:
cd sbnc-1.2

Jetzt wird der Source Code noch kompiliert:
Code:
./configure --enable-ssl
make
make install

Alle Warnungen (WARNING), die dabei auftreten, können getrost ignoriert werden. Nur Fehler (ERROR) bringen die Installation zum Scheitern. sBNC sollte nun in den Ordner sbnc im Homeverzeichnis des aktuellen Users installiert worden sein. Um sBNC nun das erste mal zu starten, tippen wir folgendes ein. Beim ersten Start fordert uns sBNC auch gleich auf, die nötigsten Konfigurationen zu setzen:
Code:
cd ../sbnc
./sbnc

Das sollte dann so aussehen:
Code:
shroudBNC 1.2 $Revision$- an object-oriented IRC bouncer
Fri Okt 31 15:19:34 2008: Log system initialized.
No valid configuration file has been found. A basic
configuration file can be created for you automatically. Please
answer the following questions:
1. Which port should the bouncer listen on (valid ports are in the range 1025 - 65535): 9000

Als Port sollten wir ruhig einen wählen, den Script Kiddies nicht so leicht finden können. Über 15000 ist also empfehlenswert. Unter diesem Port müssen wir später auch eine Verbindung mit unserem Chatprogramm zu sBNC herstellen. Es handelt sich dabei noch nicht um den SSL Port, dazu kommen wir später. Bitte nicht vergessen diesen Port auch freizugeben, falls er durch eine Firewall blockiert wird!
Code:
2. What should the first user's name be?

Einfach einen Benutzernamen, mit dem ihr euch bei sBNC einloggen wollt. Neue Benutzer können danach noch ohne Probleme hinzugefügt werden.
Code:
3. Please enter a password for the first user:

Und noch ein sicheres (!) Passwort eingeben und bestätigen:
Code:
4. Please confirm your password by typing it again:

Das wars, jetzt können wir sBNC auch schon starten, wieder mit dem gleichen Befehl:
Code:
./sbnc

Jetzt können wir uns eigentlich auch schon einloggen. Dazu müssen wir nur den Domain/Hostnamen/IP des Servers und den Port von vorher in unserem Chatprogramm einstellen. Benutzername und Passwort nicht vergessen, wie ihr das genau einstellt ist von IRC Programm zu IRC Programm verschieden, dazu kann ich euch keine Hilfe anbieten. Nach erfolreicher Verbindung einfach einmal /msg -sBNC help tippen, dann seht ihr die wichtigsten möglichen Konfigurationen.

sBNC stoppen
Dazu bitte folgendes eintippen:
Code:
killall sbnc


sBNC komfortabler starten und stoppen wers braucht...
Das ist jetzt nicht unbedingt das gelbe vom Ei, deshalb könnt ihr sBNC auch wie gewohnt über init.d starten und stoppen. Um das zu ermöglichen loggt euch bitte einmal als root ein und tippt folgendes, dabei wird der Editor Nano gestartet, wer lieber einen anderen hat, einfach ersetzen:
Code:
nano /etc/init.d/sbnc

Dann folgendes mittels Copy&Paste einfügen:
Code:
#! /bin/sh
HOME="/home/sbnc/sbnc"
USER="sbnc"
DESC="IRC Bouncer"
NAME="sbnc"
SCRIPTNAME="/etc/init.d/$NAME"

do_start()
{
        su $USER -c "cd $HOME; ./sbnc"
}

do_stop()
{
        su $USER -c "killall -9 sbnc"
}

case "$1" in
start)
        echo "Starting $DESC $NAME"
        do_start
;;
stop)
        echo "Stopping $DESC $NAME"
        do_stop
;;
restart)
        echo "Stopping $DESC $NAME"
        do_stop
        echo "Starting $DESC $NAME"
        do_start
;;
*)
        echo "Usage: $SCRIPTNAME {start|stop|restart}"
esac

Mit STRG+O speichern und mit STRG+X beenden. Nun noch schnell die Rechte ändern:
Code:
chmod 744 /etc/init.d/sbnc

Fertig. Nun könnt ihr sBNC wie viele andere Dienste mit /etc/init.d/sbnc start starten, mit /etc/init.d/sbnc stop beenden und mit /etc/init.d/sbnc restart neu starten. Einziger Nachteil: Man muss dafür Root sein. Trotzdem ist es recht praktisch, diese Möglichkeit zusätzlich zu haben. Bitte wieder als User sbnc einloggen, wenn wir mit den nächsten Schritten weitermachen Wink

SSL
Nun kommen wir endlich zum SSL. Um SSL von Client zu BNC nutzen zu können (von BNC zu Server funktioniert es schon jetzt), müssen wir die Konfiguration von sBNC händisch anpassen. Vorher müssen wir aber noch ein Zertifikat erstellen, was ganz leicht geht, wenn man die richtigen Befehle kennt, die ich lange suchen musste, bis mir Skyliner aus dem KVIrc Chat half:
Code:
openssl genrsa -des3 -out sbnc.key 1024

Bitte hier irgendein Passwort eingeben und kurz merken. Nun müssen wir das Zertifikat noch konvertieren, da wir ansonsten bei jedem Start von sBNC das Passwort eingeben müssten. Danach müssen wir noch ein paar Details ausfüllen:
Code:
openssl rsa -in sbnc.key -out sbnc.key
openssl req -new -x509 -days 3600 -key sbnc.key -out sbnc.crt

Das Zertifikat wäre jetzt 10 Jahre lang gültig, aber so lange wird hoffentlich niemand seine sBNC Installation haben ( Cool ). Hier reicht es als Land AT, DE oder z.B. CH anzugeben, den Rest kann man getrost überspringen. Nun bitte sBNC einmal stoppen und dann folgendes eintippen:
nano ./sbnc.conf
Hier ergänzen wir die Konfiguration um folgenden Eintrag:
Code:
system.sslport=xyz

xyz bitte auch hier mit einem beliebigem Port ersetzen, den ihr verwenden wollt. Dieser darf logischerweise aber nicht der gleiche, wie der normale sein. So, jetzt sBNC neu starten und schon kann man sich auf dem neuen SSL Port einloggen.

Cronjob & Autostartscript
Damit man sBNC bei einem Reboot des Servers o.ä. nicht immer händisch neustarten muss, kann man sich auch gleich einen neuen Cronjob anlegen. Dazu einfach
Code:
crontab -e

aufrufen und in die letzte Zeile einen neuen Eintrag hinzufügen:
Code:
*/5 *  *   *   *     /home/sbnc/scripts/sbnc

Damit wird alle 5 Minuten geprüft, ob sBNC noch läuft, falls nicht wird sBNC gestartet. Das angegebene Script müssen wir aber erst anlegen, dazu noch einmal:
Code:
mkdir /home/sbnc/scripts
nano /home/sbnc/scripts/sbnc
chmod 744 /home/sbnc/scripts/sbnc

Und folgendes in unsere Script Datei kopieren:
Code:
#!/bin/sh
# This is the crontab script for sbnc.
#
# Please change the following path to your sbnc-directory.
SBNCPATH=/home/sbnc/sbnc
# the rest should be kept as is
if test -r $SBNCPATH/sbnc.pid;
then
   SPID=$(cat $SBNCPATH/sbnc.pid)
   if $(kill -CHLD $SPID >/dev/null 2>&1)
   then
      exit 0
   fi
fi
echo "sBNC wird gestartet..."
cd $SBNCPATH
./sbnc &>/dev/null

Erledigt. Ein großes Dankeschön hierfür geht übrigens an Cat aus dem iZ Chat, die mir dafür einige sehr gute Tipps gegeben hat. Alternativ zu dem oberen Code, habe ich auch noch einen anderen, der ohne die sbnc.pid auskommt:
Code:
#!/bin/sh
# This is the crontab script for sbnc.
#
# Please change the following path to your sbnc-directory.
SBNCPATH=/home/sBNC/sbnc
# the rest should be kept as is
SPID=$(pidof sbnc)
if $(kill -CHLD $SPID >/dev/null 2>&1)
then
   exit 0
fi
echo "sBNC wird gestartet..."
cd $SBNCPATH
./sbnc &>/dev/null


Jetzt muss man eigentlich nur mehr seine gewünschten Server und Benutzer für sBNC konfigurieren. Dabei hilft einem aber, wie schon oben beschrieben, /msg -sBNC help im IRC ausführen. Die Erklärungen sollten selbsterklärend sein. Als letztes habe ich hier noch alle Links gesammelt, die mir bei meiner sBNC Konfiguration und Installation geholfen haben:

Dankeschön nochmals an Cat aus dem iZ Chat, Skyliner vom KVIrc Chat, Alex sowie dem SSF (Server Support Forum) und seinen Benutzern. Falls ich jetzt jemanden vergessen habe, bitte ich um Entschuldigung Wink

Empfehlen kann ich jedem auch noch die Liste aller möglichen Konfigurationsoptionen von sBNC, viele davon muss man jedoch direkt in den Konfigurationsdateien ändern, dafür gibt es keine Möglichkeit im IRC: wiki.shroudbnc.info/en/1.2/settings

Nun wünsche ich viel Spaß mit sBNC, bei weiteren Fragen stehe ich natürlich jederzeit zur Verfügung 0114


MfG Christian

Dieser Beitrag wurde insgesamt 1 mal geändert. Zuletzt am 04.06.2010, 20:06.


Autor Nachricht
killerbees19
Administrator & BOFH
Administrator & BOFH

OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 27 Jahre
Beiträge: 11514
Wohnort: Wien

BeitragVerfasst am: 15.11.2008, 11:50    Titel:

Gerade habe ich noch eine Anleitung gefunden, mit der man alle Einstellungen von sBNC in einer MySQL Datenbank speichern kann, die auch automatisch neu geladen werden. Die sehr einfache Anleitung findet ihr in der Datei /bncmysql/README des Source Codes. Die Erklärung sollte leicht verständlich sein. Damit man die Konfigurationswerte in der DB auch selbst leicht ändern kann, habe ich einfach den Typ der Spalte "value" in der Tabelle von sBNC von BLOB auf VARBINARY mit einerLänge von 1000 geändert. Wer jedoch alle seine alten Konfgurationen weiter verwenden möchte, ohne alles händisch neu einstellen zu müssen, der kann ein einfaches PHP Script verwenden, das ich schnell geschrieben habe:
PHP-Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<?php

$files 
= array(
    
'/home/sbnc/sbnc/users/<name_der_datei>.conf',
);

$con mysql_connect('localhost''<db-benutzername>''<db-passwort>');
if(!
is_resource($con) || !mysql_select_db('<db-name>'$con))
{
    
trigger_error('DB Verbindunsgfehler!'E_USER_ERROR);
}

foreach(
$files as $file)
{
    if(!
file_exists($file))
    {
        
trigger_error($file.' existiert nicht!'E_USER_WARNING);
        continue;
    }
    
    
$content file_get_contents($file);
    if(
$content !== false && $content != '')
    {
        
$content preg_split("/[\r\n]+/"$content);
        foreach(
$content as $line)
        {
            if(
trim($line) != '')
            {
                
$line explode('='$line2);
                
$key $line[0];
                
$value $line[1];
                
                if(
$key != '' && $value != '')
                {
                    
$sql "INSERT INTO sbnc_config
                            SET file = '" 
mysql_real_escape_string('users/'.basename($file), $con) . "',
                            setting = '" 
mysql_real_escape_string($key$con) . "',
                            value = '" 
mysql_real_escape_string($value$con) . "'";
                    
                    if(!
mysql_query($sql$con))
                    {
                        echo 
"MySQL Error: ".mysql_error($con)."\n";
                    }
                    else
                    {
                        echo 
'Einfügen: '.$key.' = '.$value."\n";
                    }
                }
                else
                {
                    echo 
"Invalid key/value: $key=$value\n";
                }
            }
            else
            {
                echo 
"Invalid line: $line\n";
            }
        }
    }
    else
    {
        echo 
"Invalid content: $file\n";
    }
}

die(
"\n\nFertig!\n");

?>

Bei $files einfach alle zu konvertierenden Dateien mit absolutem Pfad angeben. Außerdem müssen noch die DB Zugangsdaten ersetzt werden. Danach kann das Script einfach auf der Kommandozeile ausgeführt werden. Nachdem man das Script ausgeführt hat, muss man noch "system.users" in der Datenbanktabelle von sBNC händisch anpassen und jeden hinzugefügten Benutzer durch ein Leerzeichen getrennt an den bisherigen Wert anhängen. Danach einfach sBNC neustarten oder ein wenig warten, bis die Tabelle neu eingelesen wird.

Sorry, dass die Anleitung so kurz und vielleicht auch unverständlich ausfällt, ich habe im Moment leider nicht mehr Zeit und wollte diese Anleitung trotzdem online stellen, bevor ich es vergesse Wink


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen
killerbees19
Administrator & BOFH
Administrator & BOFH

OC-Nickname: KB19
Südafrika Team South Africa

Anmeldedatum: 09.05.2006
Geschlecht: Männlich
Alter: 27 Jahre
Beiträge: 11514
Wohnort: Wien

BeitragVerfasst am: 11.08.2009, 17:33    Titel:

Außerdem kann ich jedem nur empfehlen einen Ident Daemon wie z.B. OIdentd zu installieren. Dadurch werden "echte" Idents durch sBNC zurückgegeben und das in manchen IRC-Netzen vorangestellte ~ im Ident entfällt. Eine gute Anleitung für die OIdentd Installation findet ihr hier: http://irc-guide.de/wiki/Main/OidentdInstallationUndKonfiguration

Wie ihr sBNC zur Zusammenarbeit mit OIdentd konfiguriert steht dann noch hier beschrieben: http://wiki.shroudbnc.info/en/oidentd


MfG Christian
_________________
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline Spielerprofile bei SC:Special Bewerben anzeigen Private Nachricht senden Website dieses Benutzers besuchen


 

Alle Zeiten sind GMT + 2 Stunden (Sommerzeit)
Aktuelles Datum und Uhrzeit: 16.07.2018, 11:01
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

netcup - Internetdienstleistungen
 
 
[ happytec.at | forum.happytec.at | blog.happytec.at | esports.happytec.at | event.happytec.at ]