Gehaxelts Blog

IT-Security & Hacking

Unrealircd installieren und konfigurieren

Nachdem ich bei Uberspace nachgefragt habe, ob man den SSH-Zugang komplett ausnutzen darf, und diese Frage mit einem “Ja” beantwortet wurde, habe ich mich gleich rangesetzt und einen IRC Server eingerichtet.

Das möchte ich euch natürlich nicht vorenthalten.

Die Installation

Zunächst loggen wir uns wieder einmal in unserer Shell ein und erstellen einen Ordner, in dem wir dann später den IRC installieren werden.

mkdir irc
cd irc

Danach müssen wir uns den Quellcode herunterladen und entpacken:

wget http://www.unrealircd.com/downloads/Unreal3.2.8.1.tar.gz
tar xfz Unreal3.2.8.1.tar.gz
cd Unreal3.2

Nun sind wir bereits im neuen Ordner, in dem der Code liegt und mit folgendem Befehl starten wir den Konfigurationsprozess:

./Config

Nun startet das Konfigurationsprogramm und wir müssen einige Fragen beantworten:

Ich habe die jeweils richtigen Antworten in Klammern gesetzt.

Do you have an insecure operating system and therefore want to use the server anti-spoof protection? -> [yes]
What directory are all the server configuration files in? -> []
What is the path to the ircd binary including the name of the binary? -> []
Would you like to compile as a hub or as a leaf?
Type Hub to select hub and Leaf to select leaf. -> []
What is the hostname of the server running your IRCd? -> []
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 -> []
Do you want to support SSL (Secure Sockets Layer) connections? -> [yes]
If you know the path to OpenSSL on your system, enter it here. If not leave this blank -> []
Do you want to enable IPv6 support? -> [yes]
Do you want to enable ziplinks support? -> [yes]
If you know the path to zlib on your system, enter it here. If not leave this blank -> []
Do you want to enable remote includes? -> []
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. -> [yes]

Die restlichen Einstellungsabfragen einfach bestätigen, bis ihr zu den SSL-Abfragen kommt. Dort solltet ihr dann eure Daten angeben, damit eure Benutzer wissen, dass das SSL-Zertifikat von euch stammt.

Nachdem das Zertifikat erstellt wurde, können wir zum eigentlich Installationsprozess übergehen.

make

Beim Kompilieren sollten keine weiteren Probleme vorkommen, und es sollte eine Erfolgsmeldung erscheinen.

Danach müsst ihr noch zwei Dateien anlegen, was ihr mit den folgenden Befehlen erledigt:

touch motd.conf
touch rules.conf

Damit ist der Installationsprozess abgeschlossen und nun brauchen wir nur noch eine Konfiguration.

Die Konfiguration

Damit der IRC-Server weiß, was er genau machen soll, braucht ihr noch eine Konfigurationsdatei. Ich werde hier euch meine Beispielkonfiguration posten:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
loadmodule "src/modules/commands.so";
loadmodule "src/modules/cloak.so";
include "help.conf";
include "badwords.channel.conf";
include "badwords.message.conf";
include "badwords.quit.conf";
include "spamfilter.conf";

me
{
name "irc.gehaxelt.in"; //IRC-Name
info "gehaxelts IRC"; //IRC Info
numeric 2; //Unique-ID im Netzwerk
};

admin {
"gehaxelt"; //Admindaten pro Information eine Zeile
"irc@gehaxelt.in";
};

class clients
{
pingfreq 90;
maxclients 100;
sendq 100000;
recvq 8000;
};

class servers
{
pingfreq 90;
maxclients 10;
sendq 1000000;
connfreq 100;
};
allow {
ip *; //Alle IPs und Hostnamen erlauben
hostname *;
class clients;
maxperip 5;
};

allow channel {
channel "#irc"; //Erlaubte Channels pro Zeile einen
channel "#welcome";
channel "#gehaxelt";
channel "#help";
};

deny channel {
channel "#admin"; //Verweigerte Channels ; auch mit * machbar z.B. "*illegal*" würde alle Channels mit dem Wort illegal verweigern
reason "Kein Zugriff";
};
oper gehaxelt {
class clients;
from {
userhost gehaxelt@gehaxelt.in; //Host des Admins
};
password "xxxxx"; //Admin pw
flags
{
netadmin;
can_zline;
can_gzline;
can_gkline;
global;
can_override;
};
};

listen *:8822 //Listeningport
{
options
{
ssl; //SSl aktivieren
clientsonly;
};
};

drpass {
restart "xxxxx"; //Restart und DIE-Passwort
die "xxxxx";
};

log "ircd.log" {
maxsize 2097152; //Nach 2 MB neue Logdatei
flags {
oper;
kline;
connects;
server-connects;
kills;
errors;
sadmin-commands;
chg-commands;
oper-override;
spamfilter;
};
};

deny dcc {
filename "*exe"; //*.exe Dateien verbieten
reason "Möglicherweise Virus";
};

set {
network-name "Gehaxelt";
default-server "irc.gehaxelt.in";
services-server "irc.gehaxelt.in";
stats-server "irc.gehaxelt.in";
help-channel "#help";
hiddenhost-prefix "gehaxelt";

cloak-keys {
"Axxxxx8767sdfA"; //Zufällige Zeichenketten Groß-Kleinbuchstaben und Zahlen ; keine Sonderzeichen
"xxxxHGAS6";
"4354xxxxhasdASD5g57";
};

hosts {
local "irc.gehaxelt.in"; //Hosts bearbeiten
global "irc.gehaxelt.in";
coadmin "irc.gehaxelt.in";
admin "irc.gehaxelt.in";
servicesadmin "irc.gehaxelt.in";
netadmin "irc.gehaxelt.in";
host-on-oper-up "no";
};

};

set {
kline-address "gehaxelt@gehaxelt.in"; // Adminmail
modes-on-connect "+ixw";
modes-on-oper "+xwgs";
oper-auto-join "#irc";
auto-join #irc; //Autojoin channel
dns {
nameserver 8.8.8.8;
timeout 2s;
retries 2;
};
options {
hide-ulines;
show-connect-info;
};
maxchannelsperuser 20;
anti-spam-quit-message-time 15s;
oper-only-stats "okfGsMRUEelLCXzdD";
throttle {
connections 3;
period 60s;
};
anti-flood {
nick-flood 3:60;
};
spamfilter {
ban-time 1h;
ban-reason "Spam/Belästigung";
virus-help-channel "#help";
};
};

Nachdem ihr diese Einstellungen als “unrealircd.conf” abgespeichert habt, was u.a mit dem Editor nano geht:

nano unrealircd.conf

Und dann mit Rechtsklick die Konfiguration einfügen und mit Strg+X -> yes -> Enter abspeichern.

Nun ist der Server soweit konfiguriert. Beachtet, dass ihr die Daten da oben noch bearbeiten müsst, und auf eure Einstellungen anpassen müsst.

Das Start-/Stop-Script

Um das Starten und das Stoppen des IRC-Servers zu vereinfachen könnt ihr das von mir geschriebene Start- bzw. Stop-Script nutzen.

Dazu erstellt ihr unter “~/etc/irc.sh” eine neue Datei mit folgendem Inhalt:

if [ $# -eq 1 ]
then
        /home/$USER/irc/Unreal3.2/unreal $1
else
        echo "No parameter set"
fi

Dann müsst ihr die Datei nur noch ins ~/bin linken und ausführbar machen:

chmod +x ~/etc/irc.sh
ln -sf ~/etc/irc.sh ~/bin/irc

Nun könnt ihr von überall in der Shell aus, mit den folgenden Befehlen den IRC Server starten bzw. stoppen:

irc start
irc stop

Abschluss

Zum Ende müsst ihr nur noch, falls ihr bei Uberspace hostet, dem Ubernautenteam bescheid geben, dass ihr einen Port freigeschaltet haben wollt.

Ihr müsst einfach eine Email an hallo[at] uberspace.de schreiben und dort euren Port bzw. Server, auf dem ihr seid, angeben und euch wird der Port freigeschaltet, damit man auch von außerhalb des Servers auf den IRC-Server verbinden kann.

Ich hoffe, ich konnte es kurz erklären, und ihr erfreut euch an eurem eigenen IRC-Server!

Gruß

gehaxelt

Quelle: http://irc-guide.de/wiki/Main/UnrealIRCdInstallationUndKonfigurationMitSSLUndZIP

Texttutorials

« CamStudio Flackern beheben Htop - ein etwas anderes top »