Installation und Konfigurations Anleitung, (Tutorial, Howto) eines UnrealIRCd-Server mit SSL und Zip Unterstützung
Falls die Installation trotzdem nicht klappt und ihr Hilfe benötigt, dann schaut im Chat vorbei. Ein Blick in unsere UnrealIRCd-FAQ könnte euch auch helfen.
1.1 Was wird benötigt?, Um einen IRC-Daemon installieren zu können benötigst du folgendes:
Unix/Linux Shell
Das wär's erstmal und !Achtung! niemals unter root, sondern immer als User installieren!
1.2 Wie erstelle ich einen User auf dem System,um die ganzen IRC-Programme installieren und starten zu können?
Bitte den folgenden Befehl als root ausführen. Dieser Befehl erstellt einen User im System und legt automatisch ein Homeverzeichnis an. Im folgenden Beispiel wird der User unreal und das Homeverzeichnis /home/unreal/ angelegt.
Im two- Befehl ändern wir das Passwort.
server ~ # useradd -m unreal server ~ # passwd unreal
Diese Option schützt dich vor IP spoofing attacks.
Many older operating systems have an insecure TCP/IP stack which may be vulnerable to IP spoofing attacks, if you run an operating system that is vulnerable to such attacks enable this option. This option can also be useful to prevent blind proxies from connecting (eg: HTTP POST proxies).
Do you want to enable the server anti-spoof protection? [No] -> Yes
Hier wird der Pfad bestimmt, wo das Ganze installiert werden soll.
What directory are all the server configuration files in? [/home/unreal/Unreal3.2] -> [Enter drücken]
What is the path to the ircd binary including the name of the binary? [/home/deineshell/Unreal3.2/src/ircd] -> [Enter drücken]
Hub und Leaf kann man mit einem Baum vergleichen. Leaf sind die Äste und Hub der Baumstamm.
Would you like to compile as a hub or as a leaf? Type Hub to select hub and Leaf to select leaf. [Hub] -> [Enter drücken]
What is the hostname of the server running your IRCd? [server] -> [Enter drücken]
What should the default permissions for your configuration files be? (Set this to 0 to disable) It is strongly recommended that you use 0600 to prevent unwanted reading of the file [0600] -> [Enter drücken]
Da wir unseren IRC-Server SSL-fähig machen wollen, so antworte mit Yes. SSL verschlüsselt die Pakete zwischen Client und Server.
Do you want to support SSL (Secure Sockets Layer) connections? [No] -> Yes
Leer lassen, um das Configscript selber danach suchen zu lassen.
If you know the path to OpenSSL on your system, enter it here. If not leave this blank [] -> [Enter drücken]
Das Internet der Zukunft hat sich bis heute noch nicht durchgesetzt, deshalb lassen wir das deaktiviert.
Do you want to enable IPv6 support? [No] -> [Enter drücken]
Ziplinks bedeutet, dass die Verbindung zwischen zwei IRC-Servern, wenn sie miteinander vernetzt wurden, komprimiert wird. Dies spart Traffic.
Do you want to enable ziplinks support? [No] -> [Yes]
Leer lassen, um das Configscript selber danach suchen zu lassen.
If you know the path to zlib on your system, enter it here. If not leave this blank [] ->
Diese Option ermöglicht dir das Channelops Prefixes nochmal zu untergliedern. +q (Founder) -> ~ +a (protectet User [SOP-User] -> & +o (Channelop [AOP] -> @
Do you want to enable prefixes for chanadmin and chanowner? This will give +a the & prefix and ~ for +q (just like +o is @) Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient, PJIRC, etc.) with the notable exceptions of irssi, KVIrc and CGI:IRC. This feature should be enabled/disabled network-wide. [No] -> [Enter drücken]
What listen() backlog value do you wish to use? Some older servers have problems with more than 5, others work fine with many more. [5] -> [Enter drücken]
How far back do you want to keep the nickname history? [2000] -> [Enter drücken]
What is the maximum sendq length you wish to have? [3000000] -> [Enter drücken]
How many buffer pools would you like? This number will be multiplied by MAXSENDQLENGTH. [18] -> [Enter drücken]
How many file descriptors (or sockets) can the IRCd use? [1024] -> [Enter drücken]
Danach müsste der Konfigurationsprozess laufen.
Falls du die Frage "Do you want to support SSL (Secure Sockets Layer) connections?" mit Yes beantwortet hast, dann wird von dir nach dem Konfigurationsprozess verlangt, ein SSL-Zertifikat zu erstellen:
Country Name [US]:DE State/Province [New York]:Bayern Locality Name (eg, city) []:München Organization Name (eg, company) [IRC geeks]:Creavix IRC Organizational Unit Name (eg, section) [IRCd]:Creavix IRC Netzwerk Common Name (Full domain of your server) []:irc.creavix.de Generating self-signed certificate ..
Wir sind fast fertig! Du musst nur noch die unrealircd.conf erstellen bzw. bearbeiten. Entweder du passt die example.conf im /doc Order an oder du kopierst unsere und passt diese an.
Wir öffnen nun die unrealircd.conf
unreal@server ~/Unreal3.2 $ nano unrealircd.conf
und bearbeiten die Konfigurationsdatei. Als Referenz kann unsere Beispielskonfiguration verwendet werden.
############################################################### # Creavix.org IRCD unrealircd.conf by Andre # ############################################################### # Die unterstrichenen Sachen wie z.B. der ME Block sind mit # # einer Erklärung hinterlegt. Klickt einfach mal darauf. # ###############################################################
######################## ME Block #############################
me { name "irc.creavix.de"; info "Creavix IRC Network"; numeric 1; };
######################## Admin Block ########################## # Im Admin Block stehen z.B. deine Opers # ###############################################################
admin { "Creavix.de & Co."; "André - Andre@creavix.de"; "Supporter & Co. finden Sie per /Motd"; "http://www.creavix.de/"; "http://www.chatterportal.de/"; };
####################### Class Block ########################## # Class Blöcke definieren die Verbindungs Klassen # ##############################################################
###################### Allow Block ########################### # In Allow Blöcken wird angegeben, wer zum # # Server connecten darf. # ##############################################################
allow { ip *@*; hostname *@*; class clients; maxperip 5; };
###################### Listen Block ########################## # Mit diesem Block können spezielle Ports # # angegeben werden, auf die der IRCD reagiert # ##############################################################
######################## Oper Block ########################## # Mit dem Oper Block können für den Server # # IRC Operatoren festgelegt werden # ##############################################################
###################### DRpass Block ######################## # Mit den Blöcken drpass::restart und drpass::die # # werden die Passworte für die Befehle "/restart" # # und "/die" festgelegt. # ############################################################
drpass { restart "muster321pw"; die "pw123muster"; };
######################### U Lines ########################## # Mit dem ulines block können bestimmte Server mit # # speziellen Zwecken definiert werden. Das sollte # # ausschließlich für Server wie "services" oder "stats" # # benutzt werden und nicht für normale Server. Jeder # # Eintrag steht für den Namen des Servers mit einem # # besonderen Zweck. # ############################################################
###################### TLD Block ########################### # Mit dem TLD Block kann man eine motd (Messageoftheday), # # rules und channels für User basierend auf deren Host # # festlegen. # ############################################################
############## Including des Aliases Block ################# # Mit Alias können serverseitig bestimmte Befehle # # eingestellt und dadurch vereinfacht werden. So ist es # # z.B. möglich, dass der Befehl "/ns identify blah" # # direkt an Nickserv geleitet und übersetzt wird # #################### Beispiele #################### # aliases/ircservices.conf (IRCServices, Daylight) # # aliases/epona.conf (Epona) # # aliases/anope.conf (Anope) # # aliases/auspice.conf (Auspice) # # aliases/generic.conf (Magick, Sirius, Wrecked) # # aliases/cygnus.conf (Cygnus) # # aliases/operstats.conf (OperStats) # # aliases/genericstats.conf (GeoStats, NeoStats) # ############################################################
include "aliases/ircservices.conf";
##################### Ban Nick Block ####################### # Mit dem Ban Nick Block können bestimmte Nicknamen auf # # dem Server gesperrt werden. # ############################################################
ban nick { mask "*S*e*r*v*"; reason "Gesperrt"; };
####################### Set Block ########################## # Im Set Block werden die Optionen für bestimmte # # Server Funktionen eingestellt. Jeder Eintrag bewirkt # # etwas anderes und deshalb wird jeder einzeln beschrieben.# ############################################################ # network-name [name vom network]; # # Gibt den Namen des Netzwerks an, in dem der Server läuft # # (also den Namen des irc Netzes!) Dieser Eintrag sollte # # auf allen Servern im Netzwerk absolut identisch sein. # ############################################################ # default-server [server-name]; # # Legt den Namen des Servers fest, der den Usern mitteilt, # # wo sie connecten sollen, wenn dieser Server voll ist. # ############################################################ # services-server [server-name]; # # Legt den Namen des Servers fest, zu dem die Services # # Bots verbunden sind. # ############################################################ # stats-server [server-name]; # # Stellt den Namen des Servers ein, # # auf dem die Stats laufen. # ############################################################ # help-channel [network-help-channel>; # # Legt den Namen des Hilfe Raums in diesem Netzwerk fest # ############################################################ # hiddenhost-prefix [prefix-value]; # # Legt die ersten Zeichen eines verdeckten Hosts (+x) fest.# # Üblicherweise nimmt man hier 3 oder 4 Buchstaben, # # die den Netzwerksnamen bezeichnen. # ############################################################ # cloak-keys { ["key1"]; ["key2"]; ["key3"]; }; # # Stellt die Verschlüsselungs Keys ein, die für die # # Erstellung eines +x Host erforderlich sind. Diese # # Einstellung muss auf allen Servern identisch sein, # # ansonsten linken die Server nicht. # ############################################################ # hosts ... # # Legt die Hosts der verschiedenen Operatoren fest. # ############################################################ set { network-name "Creavix"; default-server "irc.creavix.de"; services-server "services.creavix.de"; stats-server "stats.creavix.de"; help-channel "#lobby"; hiddenhost-prefix "Creavix"; cloak-keys { // Die 3 Keys dürfen nicht identisch sein // Bei einem Server Link müssen die gleichen auf // beiden Server sein "aIRgFoAr1HnF5h5sDb7x4YwA6pW"; "P9FdZnR1gl5sJ7hVz4Zb7x4YwpW"; "OI8r1ZnR6gl3sJ7hVz4Zb7x4YnX"; };
hosts { local "locop.creavix.de"; global "ircop.creavix.de"; coadmin "coadmin.creavix.de"; admin "admin.creavix.de"; servicesadmin "csops.creavix.de"; netadmin "netadmin.creavix.de"; host-on-oper-up "no"; }; };
set { ### Zeichensätze/Sprachen, die für Nicks erlaubt sind. allowed-nickchars { latin1; };
### Eine email Adresse, an die Fragen zur K-Line gesandt werden sollen. kline-address "kline@creavix.de";
### Die Modi, die für einen User nach einer Verbindung eingestellt werden. modes-on-connect "+xwG";
### Die Modi, die eingestellt werden, wenn User (berechtigterweise) ### den /oper Befehl verwenden. modes-on-oper "+xwgs";
### Die User-Modi, die User wählen können werden auf die hier angegebenen ### Modi eingeschränkt. (kein + oder - angeben!). restrict-usermodes "G";
### Die Channel-Modi, die User wählen können werden auf die hier angegebenen ### Modi eingeschränkt. (kein + oder - angeben!). restrict-channelmodes "G";
### Die Modi, die für einen Channel eingestellt werden, wenn er das erste ### mal (durch /join) erstellt wird. modes-on-join "+ntG";
### Der oder die Channel(s), in den/die User bei /oper automatisch geforwardet ### werden. oper-auto-join "#admin";
dns { nameserver 127.0.0.1; timeout 2s; retries 2; }; options { ### Wenn dies eingestellt ist, werden Ulined Server bei /links von Nicht-Opers ### nicht angezeigt. hide-ulines;
### Falls eingestellt, werden dem User beim Connect Notices wie "ident request", ### "hostname lookup", etc. angezeigt. show-connect-info;
### Falls eingestellt wird die opermotd den Usern angezeigt, die erfolgreich ### /oper benutzen. show-opermotd;
### Erlaubt es Usern, auf die ein /shun gesetzt ist, den /part Befehl zu benutzen. allow-part-if-shunned;
### Wenn dies eingestellt ist, werden alle Server bei /map und /links als direkt ### gelinkt angezeigt. Dadurch kann man nicht mehr erkennen, welcher Server mit ### welchem gelinkt ist. flat-map;
### Falls gesetzt, wird ein User benachrichtigt, dass ein fehlgeschlagener Oper ### Zugriff geloggt wurde. fail-oper-warn; };
### Einstellung, in wie vielen Channels ein User gleichzeitig sein darf. maxchannelsperuser 30;
### Eine Zeitangabe, in der festgelegt wird, wie lange ein User verbunden ### gewesen sein muss, bevor eine /quit Meldung angezeigt wird. anti-spam-quit-message-time 10s;
### Hiermit kann eine feste Quit Meldung eingestellt werden, die immer angezeigt ### wird, wenn ein Client ausloggt. static-quit "Client hat die Verbindung getrennt";
### Definiert eine Liste von Stats-Flags, die nur von Opers benutzt werden können. oper-only-stats "*";
### Schutz vor Connectionflood throttle {
### Wie oft muss ein User mit demselben Host verbinden, bevor er temporär ### gesperrt wird connections 3;
### Wie lange muss ein User zum erneuten Connecten warten, wenn er häufiger, als ### unter 'throttle::connections' eingestellt, verbunden war. period 60s; }; anti-flood { nick-flood 3:60; }; spamfilter { ban-time 1d; ban-reason "Spam/Advertising"; virus-help-channel "#hilfe"; }; default-bantime "0";
};
##### Laden benötigter Module und Konfigurationen #####
include "help.conf"; include "badwords.channel.conf"; include "badwords.message.conf"; include "badwords.quit.conf"; include "spamfilter.conf"; loadmodule "src/modules/commands.so"; loadmodule "src/modules/cloak.so";
##################### Log Block ####################### # Mit dem Log Block kann man verschiedene Logfiles # # zu den unterschiedlichsten Zwecken erstellen lassen.# #######################################################