IRC-Quakenet: irssi Client, Bouncer Service und Eggdrop-Bot aufsetzen

(Last Updated On: 4. Juni 2015)

Das IRC ist ein weltweites Chatnetzwerk, mit dem Sie mit anderen Benutzern in Kommunikation treten können.Viele Online-Communities nutzen dabei QuakeNet  – eines von vielen verschiedenen IRC-Netzen –  als Plattform, um sich untereinander auszutauschen.

In einem solchen IRC-Netzwerk wie dem QuakeNet eröffnen Sie dann einen sogenannten Channel, einen Kanal. Das ist sozusagen ein Chatraum, der Ihnen gehört. Sie können aus diesem Chatraum also unerwünschte Gäste herauswerfen, erwünschte Gäste einladen, den Chatraum mit einem Passwort belegen und vieles mehr. Dabei gilt im QuakeNet das Prinzip: Wer zuerst kommt, mahlt zuerst. Wenn also vor Ihnen jemand einen Kanal mit einem bestimmten Namen besetzt hat, gehört der Kanal solange ihm, bis alle User, die auf dem Channel als Administratoren registriert sind, für eine bestimmte Zeitspanne offline waren.

Dabei gibt es Mittel und Wege, sich einen solchen Chatraum zu reservieren, sich im Anschluss Administratorenrechte auf diesem Channel zu sichern und diese auch zu behalten, selbst wenn man offline geht. Mit den hier vorgestellten Service müssen Sie also nicht 24/7 im Chatraum bleiben, damit dieser weiterhin Ihnen gehört. Stattdessen nutzen Sie einen Serverdienst, den Sie beispielsweise auf einer NAS, einem Raspberry Pi oder auf einem anderen Gerät mit geringem Stromverbrauch dann 24/7 laufen lassen können.

Zusätzlich gibt es dann die Möglichkeit, auf einem ihrer Channels einen sogenannten Eggdrop-Bot aufzusetzen. Dieser ermöglicht es, dass sich von Ihnen definierte Moderatoren am Bot anmelden und dadurch Moderatorenrechte bekommen. Aber auch andere spielereien sind möglich: Sie können den Bot beispielsweise mit Ihrer Website verbinden, so dass der Bot neu hinzugekommene Newseinträge oder die Titel neuer Artikel auf Ihrem WordPress-Blog in den IRC-channel automatisch mit Link reinpostet, so dass die Besucher quasi immer auf dem aktuellen Stand bleiben. Sie können aber auch Spaß-Skritpe installieren wie beispielsweise ein Quiz, bei welchem sich die User im Beantworten von Fragen duellieren können, oder Sie geben durch, welches Lied gerade auf Ihrem Online-radio läuft.

In diesem Beitrag werde ich IHnen aufzeigen, wie Sie sich zunächst mit dem IRC-Client irssi auf einem Linux-Betriebssystem in das QuakeNet einwählen und sich dort einen Channel freihalten und auf sich selbst registrierten. Danach zeige ich Ihnen, wie Sie die soeben erworbenen Rechte am Channel permanent behalten, indem wir uns einen Bouncer-Service aufsetzen. Und zu guter letzt zeige ich Ihnen noch die installationsschritte für einen Eggdrop-Bot.

Quakenet-Registrierung mit IRSSI

Wir wollen uns einige  im QuakeNet registrieren und einige IRC-Channels reservieren, indem wir mit unserem Server dauerhaft in einigen IRC-channels idlen.

als erstes müssen wir uns einen IRC Cleitn installieren. Das geht über

apt-get install irssi

irssi liegt jetzt normalerwiese unter /usr/bin/irssi

Wir wollen irssi wieder in einer extra screen-Session starten

screen -dmS irssi

Jetzt starten wir irssi und verbinden uns auf das quakenet. Jedoch dürfen wir das Programm irssi nicht als root-User ausführen. Nehmt also euren normalen Linux-User dafür her.

irssi
[(status)]/connect irc.quakenet.org

jetzt snid wir mit dem quakenet vebrunden. Als erstes ändern wir den Namen. ihr solltet nämlich permanent nicht mit dem nick online sein, mit dem ihr später chatten wollt – mit dem wollt ihr euch immer dann manuell connecten, wenn ihr gerade online seid.

/nick <neuer nickname>

Jetzt reservieren wir uns diesen Namen, mti dem wir permanent online sind, durch einen Q-Account

/msg Q HELLo <deine e-mail adresse> <wiederholung e-mail adresse>

ihr erhaltet per E-Mail eine Linkn Link, auf den ihr klicken müsst. Danach bekommt ihr ein passwort. Führ das folgende Komamdno aus, um euch bei Q zu authen

/auth <username> <passwort>
#oder
/msg Q@CServe.quaketnet.org AUTH <username> <passwort>

wenn ihr wollt, könnt ihr jetzt noch euer apsswrot ändern

/msg Q@CServe.quakenet.org NEWPASS oldpassword newpassword newpassword (for example, /msg Q@CServe.quakenet.org NEWPASS john notjohn notjohn).

nun joinen wir den ersten channels, die wir uns frei halten wollen.

/join #<channelname>

Jetzt schreiben wir uns ein Skript, mit dem irssi automatisch starte,t sich zum Quakenet connected, sich bei Q authed und den Channels neu joint.

Als erstes müssen wir zum Quakenet unseeren Nickname hinzufügen

/network add -nick <nickname> -user <username> -realname "The Test" -autosencmd "/msg Q@CServe.quaketnet.org AUTH <username> <passwort>" QuakeNet

Schauen, ob die Änderungen übernoimmen wurden, mit

/network list

Jetzt stellen wir ein, dass irssi beim Start sich automatisch mit dem Quakenet verbindet

/server add -network QuakeNet -auto irc.quakenet.org

Das kommando

/server list

sollte jetzt zeigen, das irssi beim Starten automatisch verbindet (autoconnect)

Jetzt fügen wir edie channels hinzu, die automatisch gejoint werdne sollen, sobald irssi gestartet wird

/channel add -auto #<channelname> <servername>

Das kommando

/channel list

sollte nun zeigen, dass der channel automatisch gejoint wird (autojoin)

und geben jetzt ein

/layout save

/save

Jetzt führt irssi die Aktionen immer durch, sobald wir den client starten. Jetzt stellen wir ein, dass beim System-Startup irssi automatisch in einer neuen Screen-Session gestatet wird. DAzu erstellen wir eine Datei /etc/init.d/irssi mit folgendem Inhalt

#!/bin/sh
if [ -z "$STY" ]; then exec screen -d -m -S irssi /bin/bash "$0"; fi
irssi

wir machjen das Skript ausführbar

chmod +x /etc/init.d/irssi
ln -s /etc/init.d/irssi /etc/rc2.d/S99irssi

und jetzt sollte es funktionieren, sobald wir das skript zum ersten aml ausführen.

Wir starten irssi neu und sollten nun mit einem geautheten Quakenet-Account im gewünschten IRC-channel sein. Nun wollenw ir uns den Channel nicht nur frei halten, sondern uns auch einen Channelbot holen. Als erstes müssen Sie der Operator des channels sein. Wenn Sie der erste sind, der den Channel aufgemacht hat, haben Sie vermutlich automatisch operator-Status bekommen. DAs erkennen Sie an einem @ vor Ihrem eigentlichen Nicknamen. Manhcmal, wenn der Eröffner des channels IRC verlässt und sich danach enu einloggt, hat keiner der aktuell im channel befindlichen mehr Operator Status. In diesem fall können Sie aber den operator Status beantragen über.

/msg R REQUESTOP #<channelname>

Um sich nun einen channelbot in den Channel zu holen, müssen Sie es schaffen, dass Sie 3 User für 3 Stunden in dem Channel halten. Danach können Sie einen channelbot beantragen über

/msg R REQUESTBOT #<channelname>

 

 IRC Bouncer

Der IRC-Bouncer ist nicht für den Useraccount, mit dem wir uns unsere Channels freihalten, sondern für den User, mit dem wir später im IRC chatten wollen (möglicherweise auch in Channels, die wir uns zu diesem Zweck nicht frei halten wollen). Der Bouncer bleibt mit unserem Chat-Account dauernd für uns online, so dass uns niemand unseren Chat-.Nicknamen wegnehmen kann.

Grundsätzlich wäre es möglich, sich mit dem IRc-Bounceraccount ebenfalls Channels frei zu halten. Es ist jedoch eempfehlenswert, das Freihalten eines channels vom Freihalten eines Chat-Accounts loigisch zu trennen. Deswegen werden wir nun einen IRC-Bouncer für den Account einrichten, mit dem wir später chatten wollen. Desweiteren ist es mit dem Serverdienst, den wir hier installieren, möglich, IRc-Bouncer auch für andere Leute (und nicht nur für uns selbst) bereitzustellen.

Installation

apt-get update
sudo apt-get install build-essential libssl-dev libperl-dev pkg-config
cd /usr/local/src; sudo wget http://znc.in/releases/znc-latest.tar.gz
sudo tar -xzvf znc-latest.tar.gz; cd znc*
cd znc*/
./configure
make
make install

Jetzt erstellen wir einen neuen User für ZNC und erstellen eine config datei für ZNC

adduser znc-admin
su znc-admin; cd ~
/usr/local/bin/znc --makeconf

Wir müssen einige Fragen beantworten. Empfehlenswert als Port ist der port 5000. Empfehlenswert ist auch, SSL Support zu bejahen, damit man püer SSL/HTTPS connecten kann. Wenn eine meeldung kommt unable to find the pem file einfach die nächste Frage mit ja beantworten, um eine zu erstellen. Die Frage nach dem IPv6 Support verneinen wir, das ZNC aktuell sowieso keinen IPv6 support mitbringt. Die Frage nach load global modul bejahen wir für die module partyline und webadmin. DAmit können wir unseren Bouncer sowohl über unseren IRC-Cleint als uach über eine Weboberfläche administrtieren.

DAnach sollenw ir schon unseren ersten ZNC-User erstellen, diesem ein Passwort vergeben. Die Frage nach Administrationsrechten bejahen wird für diesen ersten User.  Danach seetzen wir die einstellungen für unseren IRC Nickname. Die Frage nach einem Bind Host lassen wir leer. Die Frage nach dem Server host beantworten wir mit irc.quakenet.org beispielsweise für das quakenet. Alle anderen fragne lassen wir auf Standard und wir laden die Module chansaver, controlpanel und perform.

Danach sollen wir unser erstes network aufsetzen, etwa das quakenet, und dort können wir iweder einige Module laden. Sinnvoll sind keepnick, kickrejoin, nickserv, perform und simple_away.

Ihr werdet fefragt werden, ob der Server SSL nutzt. Die meisten IRc-Server tun das nicht, also im Zweifel einfach verneinen. Am Schluss vejrahen wir, dass wir ZNC starten wollen.

Die Weboberfläche von ZNC ist nun verfügbar über https://<FQDN>:5000

Über euren IRC Client könnt ihr auf euren ZNC connecten über /server <FQDN>:5000 <username>:<passwort>

miRC Client

Jetzt müsst ihr noch Einstellungen auf eurem IRC-Cleint machen, um ZNC nutzen zu können. wir gehen jetzt einfach mal davon aus, ihr wollt über mIRC auf einem Windows-Desktop ins IRC connecten und dabie auf euren ZNC zugreifen.

Als erstes wollen wir SSL-Support für mIRC einrichten. Wir checken, ob mIRC schon SSL-Support mitbringt. Dazu geben wir in ein beliebiuges mirc-Fenster ein

  //echo -ag $sslready

Falls ihr true bekommt, müsst ihr nichts wieter machen. Ansonsten müsst ihr OpenSSL für mIRC installieren.

Danach machen wir ein startup skript, welches automatischa sugeführt wird, wenn wir uns auf ein beliebiges IRC Network connecten. Damit wird dann automatisch unser ZNC anggesprochen. Um dieses einzurichten,m gehen wir in mIRC auf Tools / Options / connect / Options / Perform…

Wir deaktivieren dort die Checkbox Enable perform on connect und legen folgendes skript für alle Netzwerke an:

on *:start: {
server -m <FQDN>:+5000 <ZNC-Username>/quakenet:<ZNC-userpasswort>
}

Jetzt verbinden wir uns jedesmal automatisch über unseren Bouncer in das Netzwerk und die darin befindlichen Channels, die wir angegeben haben. Mit diesem User sind wir aber noch nicht mit Q geauthed, weshalb wir für unseren normalen Chat-User jetzt auch noch einen Q-Account erstellen wollen.

Jetzt reservieren wir uns diesen Namen, mti dem wir permanent online sind, durch einen Q-Account

/msg Q HELLo <deine e-mail adresse> <wiederholung e-mail adresse>

ihr erhaltet per E-Mail eine Linkn Link, auf den ihr klicken müsst. Danach bekommt ihr ein passwort. Führ das folgende Komamdno aus, um euch bei Q zu authen

/auth <username> <passwort>
#oder
/msg Q@CServe.quaketnet.org AUTH <username> <passwort>

wenn ihr wollt, könnt ihr jetzt noch euer apsswrot ändern

/msg Q@CServe.quakenet.org NEWPASS oldpassword newpassword newpassword (for example, /msg Q@CServe.quakenet.org NEWPASS john notjohn notjohn).

Jetzt pflegen wir noch im mIRC  ein Skript, mit dem wir uns immer, wenn wir über unseren Bouncer in das Quakenet connecten, uns automatisch mit unserem Chataccount bei Q authen.

Geht dazu wieder auf mIRC Tools / Options / Connect / Options / Perform…

Diesmal stellen wir als Server Quakenet ein (zuvor auf den Button Add drücken und das quakenet hinzufügen) und geben dort den Befhel zum authen bie Q ein, also

/msg Q@CServe.quaketnet.org AUTH <username> <passwort>

Zum Schluss wollen Sie natürlich noch, dass der Bouncer bei jedem Server-Neustart automatisch gestaretet wird. Dazu müssen wir erst das Tool daemon installieren.

apt-get install daemon

Nun bewerkstelligen wir das über /etc/init.d/znc Skript mit folgendem inhalt

daemon --user=znc-admin /usr/local/bin/znc &>/dev/null &

ausführbar machen der Datei

chmod +x znc

und verlinken

ln -s /etc/init.d/znc /etc/rc2.d/S99znc

IRC Eggdrop

Installation

apt-get update
apt-get install eggdrop

Wir downloaden uns die simple.conf von http://www.egghelp.org/files/conf/simple.conf.gz und entpacken sie

wget http://www.egghlep.org/files/simple.conf.gz
gunzip simple.conf.gz

wir editieren die simple.conf mit einem Editor unserer wahl

set username "<username auf dem betriebssystem, unter dem der bot später läuft>"
set my-hostname "<FQDN>"
logfile mcobxs * "<username>.log"
logfile jkp #<channelname "#<channelname>.log"
set protect-telnet 1
set require-p 1
set stealth-telnets 1
set dcc-flood-thr 10
set hourly-updates 37
set owner "<euer chat-Nickname (nicht bot-Nickname) im IRC>"
set notify-newusers "<euer chat-nickname (nicht Bot-nickname) im IRC>"
set nick "<nickname des bots im IRC>"
set altnick "<alternativer nickname des bots im IRC>"
set network "QuakeNet"
set remote-boots 0 
set must-be-owner 2
set use-ison 1
set learn-users 0
set trigger-on-ignore 0
set strict-host 0
set dcc-block 1024
loadmodule uptime
unbind msg - hello *msg:hello
bind msg - griasde *msg:hello
unbind msg - ident *msg:ident
bind msg - servas *msg:ident
unbind msg - addhost *msg:addhost
set servers {
irc.quakenet.org:6667
}
channel add #<channelname> {
chanmode "+tn-k"
idle-kick 0
flood-cahn 10:60
flood-join 5:60
flood-ctcp 3:60
flood-deop 3:10
flood-kick 3:10
}

und wir müssen aus der config-Datei sämtliche die-Befehle noch auskommetieren, sonst startet der bot nicht.

wir müssen einige Berechtigungen setzen

chmod 777 /usr/bin/eggdrop -R

Wir führen nun zum ersten mal eggdrop als der User aus, den wir zuvor in der simple conf gesetzt haben.

/usr/bin/eggdrop -m /home/<user>/simple.conf

solltet ihr jetzt noch beim Starten von Eggdrop Fehlermeldungen bekommen, wo ganz unten steht * CONFIG FILE NOT LOADED (NOT FOUND, OR ERROR), dann scahut, ob die Module wie beispeilsweie ctcp.so, irc.so usw. geladen werden konnten. Eventuell habt ihr eggdrop als user root installiert und die module liegen nicht wie erwartet unter /home/<username>/modules oder /usr/share/modules sondern unter /usr/lib/eggdrop/modules. Diesen Fehelr behben Sie mit einer relativen fpadangabe, etwa

chown -R <username>.users /usr/lib/eggdrop/modules

und müsst in der simple.conf bei loadmodule den Pfad zu diesen Modulen folgendermaßen angaben

laodmodule ../../../usr/lib/eggdrop/modules/notes

ändern Sie den pfad für alle loadmodule und alle checkmodule angaben in der simple.conf. Wichtig: Der relative Pfad ist immer abhängig von dem Pfad, in dem Sie sich gerade befinden, wenn Sie das eggdrop über eggdrop -m <confidatei> starten. Bevor Sie das eggdrop also starten, sollten Sie in den ordenr /home/<username> gehen.

Alternativ können  Sie auch den inhalt von des modules-Ordner einfach nach /home/<username>/modules kopieren, dann geht es auch. Hierbei müssen sie eggdrop aber trotzdem noch vom Ordner /home/<username> aus starten.

Wenn Sie es nun erneut probieren,s oltlen dei module geladen werdne. es kann außerdem sein, dass sie noch einen Fehelr bekommen, weil Sie vergessen haben, die channel set angaben in der simple.conf zu editieren und nur channel add beabreitet haben.

Deswieterne kann es noch Fehler mit Skripten wie alltools.tcl oder action.fix.tcl geben. Hier müssen Sie in der simple.conf noch den korrekten Pfad zu den entsprechenden Skritpen angeben, wenn Sei eggdrop als root installiert haben, liegen diese unter /usr/sahre/eggdrop/scripts/alltools.tcl.

Spätestens jetzt sollten Sie Eggdrop starten können. Der bot sollte nun in die channels gejoint kommen, die Sie in der Konfigurationsdatei angegeben haben.

Bevor Sie irgendetwas anderes machen, sollten Sie sich beim Eggdrop-Bot als dessen Besizter ausgeben. das geht, wenn Sie sich an die Anleitugn zur Kofniguration der simple.conf gehalten haben, über

/msg <botnick> griasde

Nun müssen Sie sich zur Verwendung des Bots en Passwort setzen. das geht über

/msg <botnick> pass <passwort>

 

ES sollte Ihnen jedoch auffallen, dass der Eggdrop-Bot im moment noch nutzlos ist, da er 1. aktuell nicht geopt ist. als erstes müssen Sie einen Q-Account für den Eggdrop-Bot erzeugen. Stoppen Sie dazu wieder das eggdrop. Dazu holen Sie sich über ps -ef | grep eggdropi die prozess-id des eggdrops und stoppen den rpozess über kill <prozessnummer>. Nun öffnen Sie ienen IRC-Client ihrer Wahl und loggen sich mit dem Nicknamen des Eggdrop-Bots ins Quakenet. Sie erstellen nun wie bereits aus dem obigen Kapitel bekannt einen Q-Account für den Eggdrop-Bot.

Nachdem ihr den Q-Account erstellt habt, loggt euch wieder mit dem Account des Eggdrop-Bots aus dem IRc aus. Nun ladet ihr euch das Skript eggdrop-quakenet-auth herunter und kopiert die qnet.tcl-Datei in den Skript-Ordner von eggrop, meist /usr/share/eggdrop/scripts oder /home/<username>/scripts. Dann bearbeitet Ihr eure simple.conf und fügt Folgendes hinzu

set qnet(user) "authname"
set qnet(pass) "your-password"
set qnet(usex) 0
set qnet(usechallenge) 0
source <pfad/zur/>qnet.tcl

Nun staret ihr das eggdrop neu über

eggdrop /home/<username>/simple.conf

Sollte das eggdrop her einen Fehler ausgeben, dass das Paket sha1 nicht geladen werdne konnte, dann müsst ihr euch noch die sha1.tcl runterladen und wieder in den skripts ordner einbinden. In der simple conf müsst ihr dann das skript mit einer source-direktive VOR der qnet.tcl einbinden.

source </pfad/zur>sha1.tcl

spätestesns jetzt sollte der Eggdrop-Bot wieder starten und in den channel kommen.

Jetzt müsst ihr als channel-Owner dem eggdrop-Bot Operator geben. Das geht über

/msg Q CHANLEV #<channelname> <username> +oa

Nun ist der Eggdrop-Bot im Cahnnel geoppt und ihr könnt mit ihm sauber arbeiten.

Nun müssen wir sicherstellen, dass der Bot online bleibt. Dafür gibt es das Skript namens botchk. Es prüft in reglemäßigen abständen, ob der bot noich online ist und startet ihn neu, falls dem nicht so ist. Damit das botchk-Skript den Bot reglemäßig checkt, müssen wir einen crontab für das Skript anlegen. Dazu bearbeiten wir als der User, von dem aus unser eggdrop gestartet wird, die Datei /etc/crontab über den Befehl crontab -e und fügen eine Zeile hinzu

0,10,20,30,40,50 * * * * /home/share/eggdrop/scripts/botchk >/dev/null 2>&1

 

Zum Schluss wollen Sie natürlich noch, dass das Eggdrop bei jedem Server-Neustart automatisch gestaretet wird. Dazu müssen wir erst das Tool daemon installieren.

apt-get install daemon

Nun bewerkstelligen wir das über /etc/init.d/znc Skript mit folgendem inhalt

daemon --user=<dein user>/usr/bin/eggdrop &>/dev/null &

ausführbar machen der Datei

chmod +x eggdrop

und verlinken

ln -s /etc/init.d/znc /etc/rc2.d/S99eggdrop

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

DaFRK

Andreas Loibl ist SAP-Berater, Ethical Hacker und Online Marketing Manager und schreibt auf seinem Blog DaFRK Blog über verschiedene Themen in den Sektoren Projektmanagement, Informationstechnik, Persönlichkeitsentwicklung, Finanzen und Zeitmanagement.

Das könnte Dich auch interessieren …

Kommentar verfassen

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.