Eggdrop installieren [v1.6.x]

eggdrop_logo

Ein Eggdrop ist einer der beliebtesten Open-Source IRC Bots und für viele nützliche Sachen zu gebrauchen. Sei es z.B. die Administration von Bouncern oder einfach nur die Ausgabe von News. Scripte gibt es massig im Netz und nahezu für jeden Geschmack ist etwas dabei.

 

Zur Installation auf Debian (als root per SSH):

Wir überlegen uns zu allererst gleich einen Benutzernamen für unseren Eggdrop.

Ich wähle für diesen Fall den Namen ''Overlord''

 

1. Einen neuen Benutzer für unseren Eggdrop anlegen:

adduser overlord

Die Fragen beantworten und ein Passwort vergeben. Nicht vergessen, das Passwort zu notieren ;)

 

Optional und sofern noch nicht installiert:

apt-get install tcl tcl-dev

 

2. Auf den neu angelegten Benutzer wechseln. Wir wollen den Eggdrop ja nicht unter ''root' laufen lassen:

su overlord

 

3. Zum home-Verzeichnis vom Eggdrop wechseln:

cd /home/overlord/

 

4. aktuelles Eggdrop-Paket herunterladen:

wget ftp://ftp.eggheads.org/pub/eggdrop/source/1.6/eggdrop1.6.21.tar.gz

 

5. Archiv entpacken:

tar xfvz eggdrop1.6.21.tar.gz

 

6. in das Verzeichnis vom Eggdrop wechseln:

cd eggdrop1.6.21/

 

7. Bevor wir richtig mit der Installation starten, ändern wir noch eine Kleinigkeit.

Dazu geht man in den Unterordner 'src' und bearbeitet die Datei 'eggdrop.h':

  1. #define HANDLEN 32 /* valid values 32->NICKMAX */
  2. #define NICKMAX 32 /* valid values HANDLEN->32 */

 

Diese Änderung bewirkt, dass auch Benutzernamen (z.B. Master, User) mit einer maximalen Länge von 32 Zeichen in die Benutzerdatei vom Eggdrop geschrieben werden. Ansonsten wird ab 8 Zeichen abgetrennt.

 

8. Installation starten:

  1. ./configure
  2. make config && make && make install

 

9. ins eggdrop-Verzeichnis wechseln:

  1. cd ..
  2. cd eggdrop/

 

10. Die Konfigurationsdatei 'eggdrop.conf' bearbeiten, dafür ist WinSCP ganz nützlich. Hier gibt es eine Menge Zeilen. Wichtige Sachen sind z.B.:

  1. ##### BASIC SETTINGS #####
  2. set username "Overlord"
  3. set admin "Benutzername <.email: admin@domain.tld>" (Name des Admins)
  4. set network "IceStarIRC"
  5. set timezone "CET"
  6. set offset "-1"
  7. set my-ip "1.2.3.4" (bei der Verwendung einer bestimmten IP vom Server)
  8. addlang "german"

  1. ##### LOG FILES #####
  2. logfile mco * "logs/status.log" (für alle Channels eine 'globale' Log-File für Fehler etc.)
  3. logfile jpk #Channel1 "logs/Channel1.log" (für die Log-File eines bestimmten Channels)
  4. set quiet-save 1 (unrelevante Informationen aus der Log ausschliessen)

  1. ##### FILES AND DIRECTORIES #####
  2. set userfile "Overlord.user"
  3. set pidfile "Overlord.pid"
  4. set userfile-perm 0600

 

Sofern man Telnet nicht nutzt oder kein Botnet aufbaut, kann man diese Optionen getrost ausklammern.

  1. ##### BOTNET/DCC/TELNET #####
  2. set botnet-nick "Overlord"
  3. #listen 3333 all
  4. set remote-boots 0

  1. ##### MORE ADVANCED SETTINGS #####
  2. set owner "Benutzername" (Name des Admins)
  3. #die "Please make sure you edit your config file completely." (kommentieren nicht vergessen ^^)

 

Im folgenden Block kann man sich feste Channels einrichten.

Die Einstellungen bei 'set global-chanset' ggf. anpassen, Erklärungen stehen dabei:

  1. #### CHANNELS MODULE ####
  2. loadmodule channels
  3. set chanfile "Overlord.chan"
  4. channel add #Channel

  1. #### SERVER MODULE ####
  2. loadmodule server
  3. set net-type 5 (natürlich den zutreffenden Typ auswählen)
  4. set nick "Overlord"
  5. set altnick "_Overlord_"
  6. set realname "Lord"
  7. set default-port 6667
  8. set servers { irc.icestarirc.org:6667 }
  9. set keep-nick 1

  1. ### SERVER MODULE - OTHER NETWORKS (net-type 5) ###
  2. set nick-len 32

 

Zum Identifizieren als Owner des Bots, ein 'Kontakt-Wort' ausdenken und die Zeilen aktivieren:

  1. #### IRC MODULE ####
  2. unbind msg - hello *msg:hello
  3. bind msg - mein_kontakt_wort *msg:hello
  4. set opchars "@"

 

Wieder nicht vergessen, die Zeile zu kommentieren:

  1. #### NOTES MODULE ####
  2. #die "You didn't edit your config file completely like you were told, did you?"

 

Möchte man noch, dass der Bot sich bei NickServ identifiziert, fügt man folgende Zeilen der Konfiguration hinzu:

  1. ######## IDENTIFY ###########
  2. proc evnt:init_server {type} {
  3. global botnick
  4. putquick "MODE $botnick +B"
  5. putquick "PRIVMSG nickserv :identify hier_das_nick_passwort"
  6. }

 

Das wars soweit zur Konfiguration. Andere Sachen kann man später noch anpassen bzw. aktiveren.

 

Es folgt der Start des Eggdrops:

./eggdrop -m eggdrop.conf

 

Wurde alles richtig konfiguriert, so verbindet der Eggdrop mit dem IRC-Netzwerk und wir können uns als Owner des Bots anmelden. Dazu nutzen wir unser 'Kontakt-Wort' und geben folgenden Befehl im IRC-Clienten ein:

/msg Overlord mein_kontakt_wort

Manchmal braucht der Eggdrop auch erst 2 Minuten nach dem 1. Start, bis sich da eine Antwort ergibt ^^

 

Hat der Bot alles richtig erkannt, antwortet dieser mit einer Passwort-Anfrage. Wir setzen ein Passwort und sind nun der Owner des Bots. Jetzt kann man sich per DCC Chat mit dem Bot verbinden und Befehle auf der Partyline ausführen:

  1. /dcc chat Overlord
  2. Passwort (das von eben)
  3. .help (zur Übersicht)
  4. .quit (Ausloggen)

 

Klappt der DCC-Chat nicht, kann es entweder daran liegen, dass die Ports im mIRC nicht geöffnet sind und sich so keine Verbindung aufbauen lässt oder der Bot keine Verbindung zulässt. In beiden Fällen sollten die Einstellungen überprüft werden.

Hat doch alles geklappt, kann man den Eggdrop beenden, die Config anpassen und neustarten:

.die (im DCC-Chat)

 

Beide Zeilen in der 'eggdrop.conf' kommentieren, da wir ja nun Owner sind und den Befehl nicht mehr benötigen und damit keine 'fremden' Benutzer Zugriff haben:

  1. #### IRC MODULE ####
  2. #unbind msg - hello *msg:hello
  3. #bind msg - mein_kontakt_wort *msg:hello

 

Den Eggdrop starten:

./eggdrop (im SSH, diesmal ohne '-m eggdrop.conf', da die Benutzerdatei bereits erstellt wurde)

 

Nun kann man sich daran machen, den Bot für seine Zwecke zu ändern. Dazu gibt es im Netz jede Menge Scripte, die man im Eggdrop lädt und konfiguriert. Eine sehr gute Seite dafür ist das Eggdrop TCL Archive.

 

Das entsprechende Script wird in den 'scripts' Ordner vom Eggdrop kopiert und die 'eggdrop.conf' wird um eine Zeile erweitert (bis ans Ende der Datei scrollen, da stehen bereits Beispiele dabei):

source scripts/script-datei.tcl

 

Dann per DCC-Chat:

.rehash

 

Sofern keine Fehler auftreten, ist das Script geladen. Manche Scripte verlangen zusätzliche Pakete oder gar einen '.restart' des Bots, um einwandfrei zu funktionieren. Nachzulesen ist das in der entsprechenden Readme.

Vorteilhaft wäre natürlich, sich ein paar Grundlagen von Eggdrop anzulesen. Auch dazu gibts es wieder jede Menge Hilfeseiten im Netz wie z.B.: Eggdrop Hilfeseite.

 

Den Eggdrop automatisch starten lassen und ggf. neustarten, wenn der Dienst beendet wurde (alle 15 Minuten):

1. Im Ordner scripts/ die Datei 'botchk' anpassen:

  1. botdir="/home/overlord/eggdrop"
  2. botscript="eggdrop"
  3. botname="Overlord"
  4. userfile="Overlord.user"
  5. pidfile="Overlord.PID"

 

2. Rechte zum Ausführen setzen (Rechte 0755):

chmod a+x scripts/botchk

 

3. Den Crontab hinzufügen:

  1. crontab -e
  2. */15 * * * * /home/overlord/eggdrop/scripts/botchk >/dev/null 2>&1

 

Wer das Problem hat, dass der Eggdrop in einem Channel die gesetzen Modes eines Users wieder entfernt, gibt in der Partyline einfach folgenden Befehl ein:

.chanset #Channel +nodesynch

 

Somit ist das Rechte-Problem auch erledigt und der Eggdrop komplett fertig.