Eigener IRC – Server

Nach langer Zeit habe ich mal wieder einen IRC – Server aufgesetzt , wie ich das gemacht habe ,

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

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.unixbox.at“; //IRC-Name

info „gehaxelts IRC“; //IRC Info

numeric 2; //Unique-ID im Netzwerk

};

admin {

„unixbox“; //Admindaten pro Information eine Zeile

„irc@unixbox.at“;

};

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 „#login-essen.de“;

channel „#admins“;

};

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 spe3dy {

class clients;

from {

userhost spe3dy@unixbox.at; //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 „Unixbox“;

default-server „irc.unixbox.at“;

services-server „irc.unixbox.at“;

stats-server „irc.unixbox.at“;

help-channel „#help“;

hiddenhost-prefix „unixbox“;

cloak-keys {

„Axxxxx8767sdfA“; //Zufällige Zeichenketten Groß-Kleinbuchstaben und Zahlen ; keine Sonderzeichen

„xxxxHGAxxx“;

„4354xxxxhasxxxxxx“;

};

hosts {

local „irc.unixbox.at“; //Hosts bearbeiten

global „irc.unixbox.at“;

coadmin „irc.unixbox.at“;

admin „irc.unixbox.at“;

servicesadmin „irc.unixbox.at“;

netadmin „irc.unixbox.at“;

host-on-oper-up „no“;

};

};

set {

kline-address „gehaxelt@gehaxelt.in“; // Adminmail

modes-on-connect „+ixw“;

modes-on-oper „+xwgs“;

oper-auto-join „#admin“;

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 

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

Creative Commons Lizenzvertrag
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung – Nicht-kommerziell – Keine Bearbeitung 3.0 Deutschland Lizenz.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.