Von Robert
Ein IRC Bot ist ein Programm, welches rund um die Uhr in einem IRC Channel sitzt und ihn 24 Stunden am Tag offen hält. Es sieht wie ein normaler Benutzer aus, tut aber normal nichts bis eine spezielle Funktion aufgerufen wird. Ein Bot kann sehr zur Sicherheit des Channels beitragen, indem er ihn vor Takovern und Missbrauch schützt und eine zentrale Stelle für die Channel Op Liste darstellt und diesen Benutzern opt wenn sie es wollen. Er kann auch viele andere nützliche Dinge tun. Bots sind besonders für IRC Netze wichtig, in denen es keine Möglichkeit gibt Channels für sich zu registrieren, z.B. IRCNET, EFNET usw. Es gibt einige verschiedene IRC Bots aber nur einer hat über viele Jahre überlebt und wird in sehr vielen Channels benutze, der Eggdrop.
Der Eggdrop wurde im Dezember 1993 programmiert, um die Kriege auf #gayteen zu stoppen. Seit dem ist er der meist benutzte IRC Bot auf der Welt. Eggdrops laufen meist auf Unix / Linux Systemen da Windows viel zu unstabil ist.
Eggdrop ist im Moment der fortschrittlichste, bekannteste und am besten unterstützte IRC Bot. Wenn man nie einen Bot benutzt hat ist man von der Menge an Optionen, Befehlen und Möglichkeiten die Eggdrop hat schnell überwältigt, nach einer gewissen Zeit hat man sich aber mit den wichtigsten Dingen vertraut gemacht und lernt die Vorteile von diesen Dingen kennen. Eggdrop wird in Quell Code Form weitergegeben, so kann jeder mit den entsprechenden Kenntnissen in C eigene Funktionen hinzu fügen.
Einige Haupt Funktionen von Eggdrop beinhalten:
Der Bot ist kostenlos. Er läuft unter der GNU General Public License (GPL).
Die Neuste Linux-Version ist hier erhältlich: http://www.planet-rcs.de , http://www.eggheads.org
Die Neuste Windows-Version ist hier erhältlich: http://www.eggdrops.de
Natürlich heißt die Version, welche unter Windows läuft auch nicht mehr Eggdrop, wäre ja auch zu schön, sondern Windrop. Ist halt ein Lame-Drop. Ich persönlich finde es hat keinen Zweck ihn unter Windows zu installieren. Ist aber meine Meinung.
1.) Man installiert es bei sich zu Hause am PC, am Besten ihr habt Linux, auf einem z.b. Router-PC. Sprich um den Bot im Channel zu behalten und dessen Funktion zu benutzten muss der PC immer im Internet sein. Aber in Zeiten von DSL und Flatrate sollte das, zumindest in Deutschland, nicht das Problem sein.
2.) Man hat einen eigenen Server bzw. eine eigene Shell. Am Idealsten hat man seinen eigenen Root-Server im Internet. Oder eine Shell, also eine Platz und prozessbeschränkten Account auf eine Root-Server. Ein eigener vHost tut es auch, er ist billiger als ein Root-Server und für IRC-Anwendungen wie Eggdrop und BNC reicht er allemale aus.
Ein Root-Server würde ca. 50€ im Monat kosten (mit angemessen Traffic). Da kann man aber dann auch mehr machen als nur den Eggdropbot laufen lassen, z.b. noch einen Game-Server.
Shell Accounts gibt’s aber ca. 1 Euro pro Monat pro Prozess. (Eggdrop "verbraucht" dann eben diesen "Prozess")
Die Windows-Version ist da recht einfach, die ist schon "vorkompiliert", da muss man soweit ich weiß nur noch die eggdrop.conf anpassen.
Die Linux-Version macht es eine schon schwieriger. Hier läd man sich die unkompilierten Source-Codes herunter und muss sie selber kompilieren. Aber das dürfte auch kein Problem darstellen.
Auf keinen Fall als Root einloggen und kompilieren, das ausführen des Eggdrops als Root ist nicht empfehlenswert und beim Start bricht der Eggdrop auch sofort ab.
Eine Konsole öffnen, z.B. X-Term.
1.) Download:
wget http://files.planet-rcs.de/article/e/eggdrop/eggdrop1.6.17.tar.bz2
lynx http://files.planet-rcs.de/article/e/eggdrop/eggdrop1.6.17.tar.bz2
md5sum eggdrop1.6.17.tar.bz2 68e181201483dee398f9904e8652e6ca eggdrop1.6.17.tar.bz2
tar -jxvf eggdrop1.6.17.tar.bz2- das Eggdrop Archiv entpacken
cd eggdrop1.6.17
vi src/eggdrop.h
#define HANDLEN 9 /* valid values 9->NICKMAX */
#define HANDLEN 30 /* valid values 9->NICKMAX */
./configure make config make make install (Pfadangabe)
In der eggdrop.conf stehen alle Einstellungen, die nötig sind. Auf alle werde ich nicht eingehen, sondern nur mal die erklären, welche wichtig für die Funktion des Bots sind. Die hier beschriebene Einrichtung der eggdrop.conf gilt für beide Versionen, die unter Linux und die unter Windows.
Wer Lust hat, kann sich mal die 1300 Zeile lange Datei anschauen
Ich schreib nun die Befehle hin (könnte ihr dann in der Datei suchen) und schreibe was man einstellen soll:
Wir nehmen einen Editor zum Beispiel Vi und bearbeiten die Datei: eggdrop.conf
vi eggdrop.conf
1.) Beim ersten mal starten:
unter Linux: ./eggdrop -m eggdrop.conf
unter Windows: eggdrop -m
2.) Erste Schritte in IRC:
/msg BOT hello - Man wird als Bot-Master erkant
/msg BOT pass <passwort> - Botpasswort festlegen
nun kann man eine DCC- oder Telnet-Verbindung aufbauen
3.) Ab sofort starten:
unter Linux: ./eggdrop
unter Windows: eggdrop
Hier eine Liste der wichtigen Eggdrop-Commands. Eine vollständige Liste findet man hier
### core commands
Kommandos für +p User
who
Gibt an wer alles in der Partyline des Bots ist (User und gelinkte Bots).
away
Mit away kann man sich in der Patyline als away (nicht anwesend) markieren lassen.
quit
Mit quit verlässt man die Partyline.
whom
Gibt an, wer alles in der Partyline des Botnets ist (Nur User).
me
Me ist ungefähr dasselbe wie /me bei mirc, man macht etwas. (* Michael haut seinen Hamster)
whois
Mit whois kann man schauen welche flags ein user hat und mit welchen Hosts er geaddet ist.
match
Match ist mit whois vergleichbar aber man kann mit Jokern (*) und flags/hosts suchen.
motd
motd zeigt die Message of the Day, die normal beim einloggen in die partyline angezeigt wird, nochmal an.
bots
Listet alle gelinkten Bots auf.
addlog
Mit addlog kann ein User Kommentare in die Log-Datei des Bots schreiben.
newpass
Mit newpass kann man sein Passwort ändern.
bottree
Zeigt das Botnet in einer geordneten Form an.
console
Mit console kann man den Channel umstellen, auf den Konsole eingestellt ist und ändern was angezeigt wird.
chat
In der Partyline gibt es 100.000 Channel (0 ist die normale Partyline). Mit .chat kann man den Channel wechseln.
nick
Mit nick kann man seinen Nickname auf dem Bot ändern.
echo
Wenn Echo on ist schickt der Bot alles was man auf der Partyline sagt an einen zurück.
botinfo
Bei botinfo gibt der Bot aus, wie er heißt, seine Version, sein netz und die Channels in denen er ist.
strip
Macht es möglich eingebettete Codes aus einem Text zu entfernen.
su
Mit su kann man den Benutzer wechseln, als der man sich in den Bot eingeloggt hat. Als Owner des Bots muss man kein Passwort angeben.
trace
Mit trace kann man schauen wie die Verbindung zu einem anderen Bot ist.
fixcodes
Fall der bot nicht feststellen kann ob der user per telnet oder dcc chat eingeloggt ist, werden manchmal Kontrollzeichen angzeigt. Dann kann .fixcodes on/off helfen.
page
Page ist ein Flood-Schutz, der Bot sendet nur eine bestimmte Anzahl von Zeilen und wartet auf eine Bestätigung des Users. Wenn der Bot zu viele Zeilen für den Benutzer hat kann es passieren das der Bot die Verbindung trennt.
Kommandos für +t User
+bot
Mit +bot kann man einen Bot in das Botnet hinzufügen.
chnick
Mit chnick kann man den Namen eines Users oder Bots im Bot verändern.
chpass
Mit chpass kann man das Passwort eines Users oder Bots verändern
-bot
Mit -bot löscht man einen Bot.
Kommandos für +m User
chattr
Mit chattr kann man die Flags eines Users/Bots verändern.
save
Mit save speichert man die User und Channel-Files.
backup
Der Bot speichert ein Backup der Userlist auf die Festplatte schreiben.
reload
Läd das user-file neu, ohne davor zu speichern. Die Änderungen die in der letzten Stunde gemacht wurden gehen also verloren.
status
Status zeigt einige Informationen über den Bot an.
+user
Mit +user kann man einen User in den Bot adden.
+ignore
Lässt den Bot einen bestimmten Host ignorieren (z.B. wenn er den Bot floodet).
dccstat
Zeigt Informationen über die Dcc Verbindungen des Bots an.
rehash
Lässt den Bot die Konfigurations Datei und alle Tcl-Scripts neu einlesen (dabei werden alle .set Variablen zurücksetzt). Danach speichert er das Userfile und ließt es danach neu ein.
restart
Startet den Tcl-Interpreter neu, stoppt alle Timer und läd das Config-File neu (dabei werden alle .set Variablen zurücksetzt), es läd alle Tcl-Scripts neu und speichert das Userfile, danach wird es neu eingelesen. restart ist laut Eggdrop help ein risikoreicher Befehl, da er nie richtig funktionierte.
uptime
Zeigt an wie lange der Bot läuft.
clearqueque
Löscht alle Nachrichten aus einer bestimmt Queque (mode/server/help/all).
Kommandos für +n User
die
Der bot "stirbt", beendet sich.
simul
Wenn der Befehl im Config File nicht deaktiviert ist kann man damit vortäuschen ein anderer User in der Partyline hätte einen Befehl ausgeführt.
module
Zeigt die geladenen Module und einige Informationen über sie an.
loadmod
Mit loadmod kann man zusätzliche Module laden.
unloadmod
Mit unloadmod kann man Module entfernen.
set
Mit set kann man viele verschiedenen Dinge einstellen z.B. Name des Bots
tcl
Mit .tcl kann man tcl befehle durch die partyline ausführen.
rehelp
Mit rehelp lässt man den Bot seine Help-Files checken.
modules
Modules zeigt die geladenen Module eines gelinkten Bots an.
### commands for the seen module
seen
Wenn das seen Modul geladen ist kann man schauen wann ein in der Userlist vorhandener User das letzte mal vom Bot gesehen wurden.
### commands for the console module
store
Speichtert die Console Einstellungen ab.
### commands for the notes module
snotes
.notes index zeigt eine Liste aller Notes an, .notes read <Nummer/ALL> zeigt die Note an, .notes erase <Nummer/ALL> löscht eine Note.
+noteign
Fügt einen neuen Note Ignore auf einen User oder eine Maske in die Note Ignore Liste hinzu.
-noteign
Löscht einen Note ignore aus der Liste.
noteigns
Zeigt die Note Ignore Liste an.
note
Mit note kann man einem anderen User des Bot(nets) eine Nachricht hinterlassen.
Note Commands für Master:
fwd
Damit kann man Notes von einem User an einen anderen User@Bot weitersenden lassen.
### commands for the share module
flush
Löscht den Resynch Speicher für einen Share Bot.
### commands for the irc module
IRC Module Befehle für Chan Ops:
resetbans
Entfernt alle Bans aus dem Channel, die nicht in der Bot internen Liste sind und fügt alle Bans hinzu die in der Globalen und in der Bot internen Channel Ban List sind aber nicht in der Ban List des Channels.
act
Lässt den Bot eine /me Aktion ausführen.
channel
Zeigt alles User und Channel Modes des Channels an.
deop
Deopt einen User des Channels.
say
Lässt den Bot etwas im Channel sagen.
invite
Lässt den Bot einen User in den Channel inviten.
kick
Lässt den Bot einen User des Channels kicken.
kickban
Kickt einen User des Channels und bannt ihn.
op
Lässt den Bot einen User des Channels oppen.
topic
Lässt den Bot das Channel Topic anzeigen, oder bei einem Argument ein neues Topic setzen.
resetexempts
Entfernt alle Exempts aus dem Channel, die nicht in der Bot internen Liste sind und fügt alle Exempts hinzu, die in der Globalen und in der Bot internen Channel Exempt List sind aber nicht in der Exempt List des Channels.
resetinvites
Entfernt alle Invites aus dem Channel, die nicht in der Bot internen Liste sind und fügt alle Invites hinzu, die in der Globalen und in der Bot internen Channel Invite List sind aber nicht in der Invite List des Channels.
IRC Module Befehle für Ops:
msg
Lässt den bot eine private MSG senden.
IRC Module Befehle für Chan Master:
adduser
Fügt einen User, der in einem Channel ist, in dem der Bot auch ist, in die Userlist des Bots hinzu und addet gleich die entsprechende Hostmask.
deluser
Löscht einen User, der in einem Channel ist, in dem der Bot auch ist.
IRC Module Befehle für Master:
reset
Lässt den Bot die Informationen über alle Channel neu holen, sinnvoll wenn die Informationen durch einen Bug verfälscht wurden.
### commands for the server module
servers
Zeigt alle Server an, die im Config-file stehen und auf welchem der Bot gerade ist.
### commands for the channels module
Channels Module Befehle für Channel Ops:
+ban
Addet einen global oder Channel Ban in die Ban List des Bots.
-ban
Löscht einen globalen oder Channel Ban aus der Ban List des Bots.
bans
Zeigt die globalen oder Channel Bans der internen Ban List des Bots an.
Channels Module Befehle für Channel Master:
+chrec
Fügt einen Channel Record für den User hinzu, so dass eine Info Line gespeichert werden kann und wann der User zuletzt in dem Channel war.
-chrec
Löscht einen Channel Record eines Users.
chaninfo
Zeigt die Eggdrop internen Channel Modes für den Channel an.
chinfo
Ändert die Info Line eines Users.
Channels Module Befehle für Channel Owner:
chanload
Läd die Channel Einstellungen aus dem dynamischen Channel File.
chansave
Speichert die Channel Einstellungen im dynamischen Channel File.
chanset
Mit chanset kann man die Channel Einstellungen verändern.
Channels Module Befehle für Owner:
+chan
Läßt den Bot einen Channel joinen.
-chan
Der Bot verlässt den angegebenen Channel wieder.