Sysena

Tag: serveur irc

Installer un serveur irc : ircd-hybrid / anope

by on mar.10, 2010, under Systeme

C’est pas tous les jours qu’on install un serveur irc, c’est pourquoi un petit article pour se souvenir de 2/3 petites choses ne peut pas faire de mal ;)

Serveur IRC

D’abord les différents daemons qui existent (du moins les plus courants) :
- IRCD, le daemon de IRCNet. (ircd-irc2 sous lenny)
- IRCU, le daemon de Undernet. (ircd-ircu sous lenny)
- IRCD-Hybrid, le daemon de EFNet. (ircd-hybrid sous lenny)
- Bahamut, le daemon de DALnet.
… et d’autres, pas trop connu, donc on s’en fout ;) Une belle liste est dispo ici.
Ils sont tous basés sur ircd, les changements dans le fond sont donc relativement mineurs. (un petit coup d’oeil ici pour les curieux)

Bref, mon choix s’est porté sur IRCD-Hybrid qui n’est pas forcement le choix le plus simple, mais qui me paraissait assez robuste.

apt-get install ircd-hybrid

Il faut ensuite éditer le fichier /etc/ircd-hybrid/ircd.conf

Dans la section listen {}, changer l'host sur lequel le serveur est disponible.
Dans les differentes section auth {}, ajouter les ip ayant des droits particuliers. Laisser la section users accessible à tout le monde "*".
Changer le mot de passe de la section operator {} en générant un pass md5 via "mkpasswd -Hmd5"

A ce stade la, on a déjà un serveur irc fonctionnel accessible autrement qu’en localhost et sans gros trou de secu. Il faut évidement creuser un peu pour les permissions des différents types d’utilisateurs etc… Vous découvrirez ça plus tard si nécessaire (il suffit de lire en détail les commentaires de ircd.conf et comme ça vous pourrez découvrir cette petite ligne : havent_read_conf = 1)

Services IRC

Apres l’installation du serveur, il est intéressant d’avoir un petit ChanServ/NickServ/OpenServ. Les autres services … c’est pour faire mumuse. A la limite, un BotServ, et HelpServ pour les utilisateurs. Une belle liste de service IRC est dispo ici, et il faut encore faire un choix.
Parmi tous ces services, on retiendra Anope, qui propose tous ces services, et qui est relativement standart (on le retrouve sur beaucoup de chan irc).
Notez que quelque chose semble etre en train de naitre, pour uniformiser tous les services, qui peuvent différer selon les daemons : un coup d’oeil ici.

Pour l’installation des services ircs, on va se servir de l’utilisateur créé par ircd-hybrid.

sudo mkdir /srv/ircd-services/ ; chown irc:irc /srv/ircd-services/
su irc
cd /srv/ircd-services/
wget http://downloads.sourceforge.net/project/anope/anope-stable/Anope%201.8.3/anope-1.8.3.tar.gz?use_mirror=freefr
tar xvzf anope-1.8.3.tar.gz
./anope-1.8.3/Config

Changer le path vers /srv/ircd-services/ puis yes yes yes yes ;) (bien vérifier que config a détecté mysql ou non).
make ; make install

Voila, après ça les services sont installés, mais pas vraiment fonctionnels

Copier exemple.conf en services.conf et editez les champs ci dessous :

IRCDModule "hybrid"
EncModule "enc_md5"
#(attention à l'ip et au mot de pass)
RemoteServer xxx.xxx.xxx.xxx 6666 "password"
ServerName "sysena.com"
ServerDesc "blabla"
ServicesRoot "admin"

Comme pour le ircd.conf, vous verrez plus tard comment approfondir la configuration.
Note : si vous avez choisis une installation avec mysql, renseignez les champs MysqlHost etc…, importez le contenu de table.sql dans mysql avec les infos correspondantes et faites moi un petit retour ici.

Il faut ensuite éditer le fichier ircd.conf afin d’autoriser nos services à se connecter :

connect {
name = "sysena.com";
host = "xxx.xxx.xxx.xxx";
send_password = "password";
accept_password = "password";
port = 6666;
compressed = no;
hub_mask = "*";
class = "server";
};
shared {
name = "sysena.com";
user = "root@sysena.com";
};

Pour finir, on install un petit cron qui se charge de vérifier que notre service tourne bien et le relance si nécessaire.

cp example.chk services.chk
On change le ANOPATH en /srv/ircd-services/

On créé ensuite un cron (notez quand même que c’est un peu goret d’exécuter services en root).

crontab -e
*/5 * * * * /srv/ircd-services/services.chk >/dev/null 2>

Et voila, ça marche :)

Bon, et pour finir, un serveur IRC, ça sert à quoi pour chez soi ? … A rien ? Dans beaucoup de cas, je pense que ça sert effectivement à rien ;o)
Perso, je m’en sers pour mon nabaztag et pour mes petits outils de domotique ! (sale g33k !)

2 Comments :, more...