Daniel Ostkamp Referat: IRC-Server unter Linux - WinFuture
Transcription
Daniel Ostkamp Referat: IRC-Server unter Linux - WinFuture
Referat: IRC-Server unter Linux Seite 1 von 11 19.4.2005 Referat: IRC-Server unter Linux Seite 2 von 11 Inhaltsverzeichnis - Seite 1: Deckblatt - Seite 2: Inhaltsverzeichnis - Seite 3: Was ist IRC? - Seite 4 - 5: Konfigurieren und starten des Servers - Seite 6: Connecten zum Server - Seite 6: Datenaustausch per DCC - Seite 7 - 10: Welche Bots gibt es und wie installiert man diese? - Seite 11: Aufgabe - Seite 11: Quellen 19.4.2005 Referat: IRC-Server unter Linux Seite 3 von 11 19.4.2005 Was ist IRC ? IRC ( Internet Relay Chat) ist ein Netzwerk mit Servern und Clients, welche untereinander per Chat kommunizieren können und ggf. Daten austauschen können. Bekannte Clients unter Windows sind mIRC, Chatzilla, Trillian, Gamers IRC. Es gibt noch viele weitere, diese sind nur die bekanntesten, unter Linux wird am meisten der standardmäßig installierte Gaim oder Kopete verwendet. Ein Server, welcher unter vielen Linuxdistributationen standardmäßig mitinstalliert wird ist „ircd“. Es gibt auch noch weitere z.B. ngircd, unrealircd, dancer ircd. In diesem Referat werde ich den „ircd“ –Server verwenden, da die anderen Server auch nur Erweiterungen von dem ircd sind und nur noch mehr Optionen bieten, was hier aber den Rahmen sprengen würde. Damit man mit anderen kommunizieren kann, muss man nicht direkt auf den Server connecten, sondern auf das Netz, welches der Server erstellt. Das bekannteste und größte im Internet ist das Quakenet, gefolgt von EFnet, IRCnet und vielen kleineren Netzen. In so genannten Channels, welcher der Server erstellen kann, welche thematisch organisiert sind, können die verschiedenen Clients connecten, damit nicht alle Clients sich in einem einzigen Chatroom befinden und dieser dann durch die große Clientanzahl sehr unübersichtlich wird. In den verschiedenen Channels gibt es Owner und Manager ( werden auch als Admins bezeichnet ), welche den Channel verwalten können und z.B. den Titel des Channels ändern, Clients kicken und bannen können, uvm.. Besitzer eines Channels wird man, wenn man dort einen so genannten Bot installiert. Diese sind auch dazu da, den Channel zu überwachen, sobald der Besitzer offline ist. Erst durch ihm kann man Leute aus seinen Channel kicken, bannen, usw. Später in diesem Referat wird noch erläutert, wie dieser installiert wird und wie man die verschiedenen Befehle anwenden kann. Das Quakenet biete die 3 bekannten L, Q und S Bots an. Der bekannteste unter den gesamten Netzwerken ist der Eggdrop-Bot. Es gibt auch noch unzählige Erweiterungen für das IRC, z.B. Quizbot. Diese werde ich aber nicht vorstellen, da dies den Rahmen nochmals sprengen würde. Referat: IRC-Server unter Linux Seite 4 von 11 19.4.2005 Konfigurieren und starten des Servers Damit der Server unter Linux gestartet wird, tippt man folgenden Befehl in den Terminal: rcircd start Vorher muss man aber die Konfigurationsdatei (ircd.conf) ändern, welche sich im Verzeichnis /etc/ircd/ befindet. In diesem Verzeichnis findet man auch meistens eine example.conf, wo genau erläutert wird, was man alles umstellen kann und wie dies funktioniert. Im folgenden Abschnitt befinden sich die wichtigsten Zeilen der Konfigurationsdatei um das Starten des Servers gewährleisten zu können. Die Zeilen, wo ein # vorangestellt ist, sind immer nur Kommentare, wo erklärt wird, wie die Zeile ohne # geändert werden muss. # M:<Server Name>:<Meine Internet IP>:<Geografischer Standort>:<Port>: # # Server Name = Es muß der Name des Rechners sein, der aufgelöst werden kann # Internet IP = IP auf dem sich Clients einloggen können # Geo. Standort = Standort des Rechners # Port = Port auf den andere Server connecten können # ------------------------------------------------# Beispiel: M:speed.speed-dns.de::Stadt, Bundesland, Land:6667: # A:<Name/Standort>:<eMail>:<andere Beschreibungen>: # # Name/Standort = Name des Administrators # eMail = eMail Adresse des Admin # a. Beschreibung = Irgendwelche nützliche Infos # ------------------------------------------------# Beispiel: A:Rainer Budde:eMail speed@pro-linux.de::: # P:<Internet IP>:<*>:<Internet IP Mask>:<Port>: # # Internet IP = IP auf dem sich die Clients connecten können # Internet IP Mask = Aus diesem Netz werden Verbindungen akzeptiert # Port = Auf diesem Port dürfen sich Clients einloggen # ------------------------------------------------# Beispiel: P:192.168.100.5::192.168.100.*:6667: Referat: IRC-Server unter Linux Seite 5 von 11 19.4.2005 # Y:<Klasse>:<Pingrate>:<Verbindungsrate>:<Max. Verbindungen>:<SendQ>:<Lokales Limit(x.y)>:<Globales Limit(x.y)>: # # Klasse = Klassennummer # Pingrate = Der Server pingt in diesen Abständen, um zu prüfen ob # die Verbindung noch besteht # Verbindungsrate = Unser Server prüft wann er sich mit einem anderen Server # verbinden kann. # Max. Verbindungen = Max. zugelassene Verbindungen # SendQ = SendQ Wert der Klasse # Lokales Limit (x.y) = Wieviele gleichzeitige Lokale Verbindungen möglich sind # x bedeutet wieviele Clients von dem selben Host zugelassen sind # y bedeutet wieviele Clients von dem selben user@host zugelassen sind # Globales Limit (x.y) = Bedeutet das selbe wie Lokales Limit mit dem Unterschied das # es jetzt das ganze Netz betrifft # ------------------------------------------------# Beispiel: Y:1:60::50:10000:3:3: # I:<Ziel Hostadresse>:<Passwort>:<Ziel Hostname>:<Port>:<Klasse>: # # Ziel Hostadresse = Alle Rechner aus diesem Netz oder von der IP dürfen # zugreifen # Passwort = Passwort für diese Verbindung # Ziel Hostname = Spezifiziert die Hostname der Rechner, die zugreifen # dürfen # Port = Auf diesem Port, trifft diese Konfiguration zu # Klasse = Auf diese Klasse trifft die Konfiguration zu # ------------------------------------------------# Beispiel: I:192.168.100.*::::1: Nachdem man die Datei erfolgreich abgeändert hat, kann man nun den Server starten. Referat: IRC-Server unter Linux Seite 6 von 11 19.4.2005 Connecten zum Server Da der Server ja jetzt gestartet ist, kann man nun per Client zu diesem connecten. In den Clientprogrammen muss man dazu die IP des Servers eintragen und sich einen Nicknamen aussuchen, damit auch jeder weiß, wer man ist. Der Standardport des IRC-Servers ist 6667, welchen man auch meistens mit angeben muss. Hat der Server jedoch einen anderen Port gewählt, muss dies entsprechend abgeändert werden. Datenaustausch per DCC DCC ist das Protokoll im IRC-Server, welches es ermöglicht, Daten zwischen 2 Clients auszutauschen. DCC stellt auch z.B. die Privaten Chats bereit, indem sich nur bestimmte Personen unterhalten wollen. In den meisten Fällen der Clients ist es so, dass man, wenn man sich in einem Channel befindet, man einfach einen Rechtsklick auf einen anderen Client vollführt und damit das Kontextmenü aufgerufen wird. Dort steht dann z.B. „DCC“ oder „Datenaustausch“ o.ä. Wenn dieses nun angeklickt wird, öffnet sich ein neues Fenster (Explorerähnlich), wo man eine Datei auswählen kann. Klickt man anschließend auf „Senden“ oder „OK“, dann muss der Client auf der anderen Seite nur noch bestätigen, dass er die Datei auch wirklich erhalten will und der Dateitransfer beginnt. Referat: IRC-Server unter Linux Seite 7 von 11 19.4.2005 Welche Bots gibt es und wie installiert man diese ? Jetzt kommen wir zum wahrscheinlich komplexesten und größten Thema des IRCs. Es gibt eine unzählbar große Menge an verschiedenen Bots im IRC-Netzwerk, welche alle anders Konfiguriert werden und andere Dinge machen können. Man muss dabei unterscheiden, dass es Bots gibt, welche im Channel erstellt werden können, wie es im Quakenet der Fall ist oder welche die man auf seinen PC installieren und konfigurieren muss und diese sich dann zum dementsprechenden Channel verbinden. Das Problem hierbei ist, man braucht selber einen Server, der den Bot auch dauerhaft online leben lässt. Das Quakenet stellt umsonst Server bereit. Die bekanntesten sind: - L - Q - S - Eggdrop Die L, Q und S Bots können nur im Quakenet verwendet werden und sie werden im Channel und auf der Quakenetwebseite konfiguriert. Der Eggdrop-Bot kann sich auch in andere Netzwerke einklinken und dort den Channel administrieren. Installation und Konfiguration der Q-, L- und S-Bots Um einen dieser Bots benutzen zu können, muss man sich erst im IRC registrieren. Dazu geht man zuerst auf einen Quakenetserver und tippt folgenden Befehl: /msg Q hello user@gmx.de user@gmx.de ( user@gmx.de muss durch die eigene E-Mailadresse ersetzt werden ) Jetzt wird eine automatisch kreierte E-Mail an die angegebene E-Mailadresse geschickt. Diese enthält einen Link, der zu einer Websiete führt, wo man zunächst einen Sicherheitsalgorithmus durchwandern muss, um dann an sein automatisch kreiertes Passwort zu gelangen. Damit nun Q auch weiss, dass man auch derjenige ist, dem der Username zusteht, tippt man folgendes in das Quakenet: /msg Q@CServe.quakenet.org AUTH username passwort Tippt man „/msg Q whois username“ ein, sollte von Q folgende Antwort kommen: Q(Qbot@beipsiel.org) – username is authed as username Referat: IRC-Server unter Linux Seite 8 von 11 19.4.2005 Wenn diese Nachricht erscheint, ist der Benutzername erfolgreich registriert worden. Um jetzt das Passwort zu ändern tippt man „/msg Q newpass altespasswort neuespasswort neuespasswort“ ein. Daraufhin antwortet Q wieder. Am Anfang jeden neuen Channels kann man zuerst nur L bekommen, da, wie später noch erklärt wird, es verschiedenen Anforderungen für die Bots gibt. Der Unterschied zwischen Q und L ist, dass Q wesentlich mehr Funktionen bietet, aber da L nur in kleinen Channels genutzt wird, genügen auch die Optionen von L um einen kleinen Channel vernünftig zu administrieren. Um genau zu erfahren, welche Unterschiede es gibt, geht man am besten auf www.quakenet.org und schaut dort in den entsprechenden FAQs nach. Um Q anfordern zu können benötigt man im Durchschnitt mindestens 50 Benutzer in seinem Channel, welcher in einem Zeitraum von 14 Tagen gemessen wird. Damit man L benutzen kann, muss man zusammen mit 3 anderen Benutzern sich 2 Std lang in dem gewünschten Channel aufhalten. Man muss sich auch unter den Top5 der bekanntesten Channel Operatoren ( OP ) befinden. Je länger man sich im Channel befindet, desto mehr Punkte bekommt man als OP gutgeschrieben. Um L dann auch in dem gewünschten Channel zu bekommen, muss man folgenden Befehl eintippen: /msg o requestl #channel (#channel muss durch den gewünschten Channelnamen ersetzt werden ) Um Q anzufordern tippen sie „/msg o requestq #channel“ im IRC ein. S ist der sogenannte Anti-Spam Channelservice. Er bestraft User, welche spammen, flooden und anderes. Er arbeitet autonom und benötigt keine Befehle von den OPs. Um S zu bekommen muss man Owner (+n) von L oder Q in dem Channel sein, für den man S beanträgt und der Channel muss im Durchschnitt über 120 User haben. Um S zu bekommen, muss man auf www.quakenet.org gehen, links auf den Services Bereich klicken und dann den Anweisungen folgen. Befehle für L: /msg L chanlev #channel nickname +/-flags (z.B.: /msg L chanlev #is2b daniel +op ) Wenn der User nicht online sein sollte, kann er mit Hilfe des Präfixes # die Flags zugeteilt bekommen. ( z.B. /msg L chanlev #is2b #daniel +op ) /msg L WELCOME #channel Hi, willkommen in meinem Channel Setzt eine Welcomemessage auf den enstprechenden Channel. (für Q funktionieren diese Befehle genau so, nur dass das L durch ein Q ersetzt werden muss.) Referat: IRC-Server unter Linux Seite 9 von 11 19.4.2005 Installation und Konfiguration des Eggdrop-Bots Zuerst muss der Eggdrop-Bot herunter geladen werden, da auf keiner Linux CD/DVD zu finden ist. Nach dem herunterladen muss zuerst das tar.gz-Archiv entpackt werden und anschließend muss das Programm kompiliert werden, wie es immer unter Linux der Fall ist. Anschließend wechselt man in das Verzeichnis, wo man das Programm hininstalliert hat und erstellt dort eine Konfigurationsdatei mit einen Editor der Wahl und nennen diese Datei am besten so, wie der Bot später im Channel heißen soll. Anschließend muss die Datei ausführbar gemacht werden, welches meistens mit „chmod a+x Dateiname“ geschieht. In der ersten Zeile der Datei tippt man den Pfad zum Interpreter der Datei an (z.B.: #!etc/eggdrop/eggdrop ) Danach folgende Zeilen in die Datei tippen/kopieren: set mod-path "modules/" loadmodule dns loadmodule channels loadmodule server loadmodule ctcp loadmodule irc loadmodule notes loadmodule console checkmodule blowfish Darauf folgend kommt der Befehl zum Bestimmen des Botnamens: set nick „ia2b“ und zusätzlich set altnick „ia2b2“, damit der bot auch genutzt werden kann, falls er unglücklicherweise doch schon im IRC existieren sollte. Mit set servers { irc.de.quakenet.eu.org irc.uk.quakenet.eu.org irc.fi.quakenet.eu.org } Wird dem Bot mitgeteilt auf welchen Server er sich verbinden soll. Ist der erste mal nicht erreichbar, wird der 2te genommen. channel add #ia2b{ Chanmode „+nt-ikm“ ……………. ………….. } Referat: IRC-Server unter Linux Seite 10 von 11 19.4.2005 Mit diesen Zeilen weiß der Bot auf welchen Channel er connecten soll. Für die Pünktchen können auch noch andere Befehle eingetippt werden, welcher der Bot als Voreinstellung für den Channel laden soll. Ans Ende der Konfigurationsdatei müssen noch folgende Zeilen getippt werden: source scripts/alltools.tcl source scripts/action.fix.tcl source scripts/compat.tcl source scripts/userinfo1.0.tcl loadhelp userinfo.help Speichern und fertig ist die Konfigurationsdatei. Mit dem Befehl „ia2b –m“ kann man nun den Bot starten. Bei weiteren Starts des Bots kann man das –m weglassen. Nun ist es wichtig den Bot anzusprechen, damit der Bot auch weiss, dass man der Owner des Channels ist. Mit „/MSG ia2b hello“ grüßt man den Bot und er wird höflich zurückgrüßen und einige Infos erzählen. Nun will er ein Passwort wissen, damit er den Owner auch später wieder identifizieren kann. Das geschieht mit „/msg ia2b PASS ihrpasswort“. Wenn man dann später wieder in den Channel kommt, muss man den Bot einfach nur mit „/msg ia2b OP ihrpasswort“ ansprechen und er weiß, wer man ist. Um Befehle mit dem Bot anzuwenden muss man sich auf die so genannte Party-Line verbinden. Dies geschieht mit dem DCC Chat über den Befehl „/DCC Chat ia2b“. Eine Liste der etlichen Befehle findet man in der Dokumentation des Eggdrop-Bots auf der Konfigurationswebseite ( http://www.pl-berichte.de/t_netzwerk/eggdrop.html ). Referat: IRC-Server unter Linux Seite 11 von 11 19.4.2005 Aufgabe Jede Tischgruppe muss einen IRC-Server konfigurieren und starten. Wenn dieser Aufgabenteil erledigt ist, connecten 2 Clients auf den Server und tauschen per DCC Daten aus. Quellen http://www.irc-befehle.de/ http://www.irc-board.de/wbboard/main.php http://www.it-helpnet.de/Dokumente/Linux/IRC%20Server%20unter%20Linux.html http://www.quakenet.org http://www.irchelp.org/ http://de.wikipedia.org/wiki/Internet_Relay_Chat http://www.pl-berichte.de/t_netzwerk/eggdrop.html