IRCD Hybrid est un démon IRC (Internet Relay Chat) léger, gratuit et open source. IRCD-Hybrid est communément connu pour sa rapidité fulgurante et ses hautes performances. Les performances de l'ircd-hybride s'améliorent et se renforcent avec Anope. Anope est un ensemble de services IRC dérivé d'Epona au début de 2003. Depuis lors, anope est devenu un ensemble de services IRC très puissant et en vedette avec des améliorations sur la qualité et la fonctionnalité de celui-ci. Certains des services populaires fournis par Anope sont NickServ, ChanServ, MemoServ, OperServ, BotServ et HostServ. Outre ceux-ci, HelpServ, DevNull et Global sont d'autres services impressionnants proposés par Anope. Ainsi, la combinaison des services IRCD-Hybrid et Anope crée une solution géniale pour un serveur IRC riche en fonctionnalités et hautes performances.
Dans cet article, nous allons apprendre à configurer les services hybrides IRC et Anope sur la distribution Linux Ubuntu 15.04. Voici quelques étapes simples pour y parvenir.
1. Téléchargement de l'IRCD-Hybrid
Tout d'abord, avant de configurer ircd-hybrid dans notre machine Ubuntu, nous devrons le télécharger. Bien que ircd-hybrid soit disponible dans le référentiel officiel d'ubuntu, nous allons le compiler à partir de son code source car la version d'ircd-hybrid dans le référentiel n'est peut-être pas la plus récente. Pour télécharger la dernière version de celui-ci, c'est-à-dire. 8.2.8 depuis le dépôt officiel github c'est-à-dire https://github.com/ircd-hybrid/ircd-hybrid/ . Pour ce faire, nous devrons exécuter la commande suivante.
$ cd /tmp/
$ wget https://github.com/ircd-hybrid/ircd-hybrid/archive/8.2.8.tar.gz
--2015-07-18 08:35:31-- https://github.com/ircd-hybrid/ircd-hybrid/archive/8.2.8.tar.gz
Resolving github.com (github.com)... 192.30.252.129
...
Connecting to codeload.github.com (codeload.github.com)|192.30.252.145|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ‘8.2.8.tar.gz’
8.2.8.tar.gz [ <=> ] 1022K 675KB/s in 1.5s
2015-07-18 08:35:35 (675 KB/s) - ‘8.2.8.tar.gz’ saved [1046078]
Une fois téléchargé, nous allons extraire l'archive à l'aide de la commande tar.
$ tar -xvf 8.2.8.tar.gz
2. Installation d'IRCD-Hybrid
Après avoir fini d'extraire l'archive tar, nous allons maintenant entrer dans le répertoire qui vient d'être extrait. Pour ce faire, nous devrons exécuter la commande suivante.
$ cd ircd-hybrid-8.2.8/
Ensuite, nous allons le configurer afin que Makefile puisse être généré pour ircd-hybrid afin que nous puissions compiler les codes source ircd-hybrid en binaire à l'aide de la commande make. Pour ce faire, nous devrons d'abord installer les dépendances nécessaires à la génération du makefile.
$ sudo apt-get install build-essential
Une fois les dépendances installées, nous allons maintenant exécuter la commande suivante pour générer le makefile.
$ ./configure --prefix="/home/arun/ircd"
Une fois le makefile généré, nous allons compiler le code source en binaire. Pour ce faire, nous devrons exécuter la commande suivante.
$ make
Nous allons maintenant installer notre dernier serveur ircd-hybrid construit en exécutant la commande suivante. Cela installera ircd-hybrid dans notre répertoire personnel sous un répertoire nommé ircd.
$ make install
3. Téléchargement des services Anope
Nous allons maintenant télécharger la dernière version des services anope à partir de leur référentiel github officiel, c'est-à-dire https://github.com/anope/anope/ . La dernière version du service anope est actuellement la 2.0.2. Nous allons télécharger les services anope de la même manière que nous avons téléchargé ircd-hybrid.
$ cd /tmp/
$ wget https://github.com/anope/anope/releases/download/2.0.2/anope-2.0.2-source.tar.gz
--2015-07-18 08:55:14-- https://github.com/anope/anope/releases/download/2.0.2/anope-2.0.2-source.tar.gz
Resolving github.com (github.com)... 192.30.252.128
...
Connecting to s3.amazonaws.com (s3.amazonaws.com)|54.231.244.4|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1775003 (1.7M) [application/octet-stream]
Saving to: ‘anope-2.0.2-source.tar.gz’
anope-2.0.2-source.t 100%[========================>] 1.69M 611KB/s in 2.8s
2015-07-18 08:55:19 (611 KB/s) - ‘anope-2.0.2-source.tar.gz’ saved [1775003/1775003]
Une fois le téléchargement réussi, nous allons extraire l'archive à l'aide de la commande tar.
$ tar -xvf anope-2.0.2-source.tar.gz
4. Installation des services Anope
Une fois l'archive tar extraite, nous allons maintenant installer les services anope dans notre distribution Linux Ubuntu. Pour ce faire, nous devrons d'abord configurer pour générer le makefile afin que nous puissions compiler les codes sources en binaire et que nous puissions l'installer dans notre système. Mais avant cela, nous devrons remplir notre dépendance de package requise pour exécuter le script Config. Pour installer cette dépendance, nous devrons exécuter la commande suivante.
$ sudo apt-get install cmake
Ensuite, nous exécuterons la commande suivante pour générer le makefile.
$ cd anope-2.0.2-source/
$ ./Config
La commande ci-dessus exécutera un programme qui nous posera plusieurs questions concernant l'installation et la configuration de notre service anope. Nous pouvons simplement appuyer sur "Entrée" pour sélectionner les valeurs par défaut, le makefile sera généré dans le répertoire de construction. Nous allons maintenant compiler le code source en binaire. Pour ce faire, nous devrons exécuter la commande suivante.
$ cd build
$ make
Nous allons maintenant installer les services anope en exécutant la commande suivante. Cela installera les services anope dans notre répertoire personnel sous services.
$ make install
5. Correction de la propriété
Comme nous venons d'installer le serveur ircd-hybrid et les services anope dans notre répertoire personnel, nous devrons nous assurer que l'utilisateur que nous exécutons ircd-hybrid et les services anope ont un accès complet en lecture-écriture et la propriété du répertoire. Donc, pour changer la propriété de ces répertoires, nous devrons exécuter la commande suivante.
$ sudo chown -R arun: ~/ircd ~/services
Remarque : Ici, arun est le nom d'utilisateur avec lequel nous allons exécuter notre service anope et notre serveur ircd-hybrid. Veuillez donc le remplacer en fonction de votre système et de votre configuration.
6. Génération d'un mot de passe crypté
Maintenant, nous allons configurer notre ircd-hybrid afin qu'il fonctionne correctement comme prévu. Tout d'abord, nous devrons générer un hachage de mot de passe chiffré à l'aide de mkpasswd qui sera requis pour la configuration des services ircd-hybrid et anope. Le mot de passe en texte brut sera utilisé pour obtenir les droits d'opérateur de notre serveur irc. Pour générer le hachage du mot de passe chiffré, nous devrons exécuter mkpasswd suivi du mot de passe que nous voulons chiffrer. Comme mkpasswd est situé dans le répertoire bin de notre répertoire d'installation ircd-hybrid, nous devrons exécuter la commande suivante.
$ cd ~/ircd/bin/
$ ./mkpasswd
$1$jcKeU1nP$3u.uVI3wxyLswDnw1S5mA/
Remarque : Ce mot de passe crypté généré a par exemple $1$jcKeU1nP$3u.uVI3wxyLswDnw1S5mA/ sera utilisé pour la configuration de ircd-hybride et un mot de passe en clair seront nécessaires pour obtenir le droit d'opérateur. Il est donc fortement recommandé de conserver ce mot de passe en lieu sûr afin que nous puissions l'utiliser ultérieurement.
7. Configurer ircd-hybride
Ici, nous allons maintenant configurer notre serveur ircd-hybrid avec des configurations simples qui suffisent à faire fonctionner un serveur IRC sain. Voici quelques configurations de base que nous devons faire pour que notre serveur IRC fonctionne correctement. Pour ce faire, nous devrons d'abord créer notre nom de fichier de configuration par défaut en tant que ircd.conf dans le répertoire ~/ircd/etc/. Nous pouvons facilement le créer en copiant le reference.conf dans ircd.conf. Pour ce faire, nous allons exécuter la commande suivante.
$ cp ~/ircd/etc/reference.conf ~/ircd/etc/ircd.conf
Ensuite, nous allons éditer le fichier ircd.conf à l'aide de notre éditeur de texte préféré.
$ nano ~/ircd/etc/ircd.conf
Maintenant, nous allons modifier la première section, c'est-à-dire le bloc serverinfo{}, selon les besoins. Ici, nous allons changer les valeurs pour name, description, network_name et network_description comme indiqué ci-dessous.
/* serverinfo {}: Contains information about the server. (OLD M:) */
serverinfo {
name = "irc.linoxide.com";
description = "Linoxide IRC Server";
network_name = "Linoxide";
network_desc = "Linoxide IRC Network";
};
Ensuite, nous apporterons des modifications au bloc admin{}. Ce bloc contient et affiche les informations d'administration sur le serveur. Nous modifierons donc la valeur du nom, de la description et de l'e-mail selon nos besoins.
/* admin {}: contains admin information about the server. (OLD A:) */
admin {
name = "Linoxide Admin";
description = "Linoxide IRC Server Administrator";
email = "<[email protected]>";
};
Ensuite, nous allons commenter l'option d'accueil avec "#" dans le bloc listen{} pour lier au serveur toutes les adresses IP disponibles.
# host = "192.168.0.1";
Après cela, nous allons commenter les flags =need_ident ligne sous le bloc auth{} qui se trouve juste au-dessus du bloc operator{}.
# flags = need_ident
Après cela, nous devrons faire défiler jusqu'au bloc operator{}. Ce bloc définit l'opérateur du serveur. Ici, name définit le nom de l'opérateur, user avec la valeur *@127.0.0.1 définit que tout utilisateur localhost peut se connecter en tant que root. Ensuite, nous ajouterons le hachage du mot de passe crypté dans l'option de mot de passe, comme indiqué ci-dessous.
Opérateur/* operator {}: defines ircd operators. (OLD O:) */
operator {
name = "root";
user = "*@*127.0.0.1";
password = "$1$jcKeU1nP$3u.uVI3wxyLswDnw1S5mA/";
encrypted = yes;
};
Maintenant, nous allons modifier notre bloc connect{} afin de pouvoir définir le serveur ircd-hybrid pour se connecter aux services anope en utilisant la configuration ci-dessous. Cette configuration doit correspondre à la configuration des services anope que nous allons créer à l'étape suivante. Ici, la section name n'est pas le nom du serveur d'ircd-hybrid mais c'est le nom des services anope.
connect {
name = "ircservices.linoxide.com";
host = "127.0.0.1";
send_password = "mypassword";
accept_password = "mypassword";
encrypted = no;
hub_mask = "*";
class = "server";
};
Une fois toutes les configurations souhaitées et requises effectuées, nous allons enregistrer le fichier et quitter.
Ensuite, nous allons démarrer notre serveur ircd-hybrid en exécutant la commande suivante.
$ cd ~/ircd/bin/
$ ./ircd
Cela exécutera notre serveur IRC. Nous pouvons le tester en essayant de nous connecter à notre serveur IRC en utilisant l'adresse IP du serveur ou en utilisant le domaine du serveur irc sans client IRC. Pour se connecter, nous pouvons également exécuter la commande suivante dans notre client IRC.
/server irc.linoxide.com
8. Configuration des services Anope
Nous allons maintenant configurer nos services anope pour se connecter à notre serveur ircd-hybrid. Pour ce faire, nous devons d'abord créer notre fichier de configuration par défaut nommé services.conf dans le répertoire conf du répertoire d'installation des services anope. Il existe un fichier example.conf que nous pouvons modifier pour que les services anope fonctionnent correctement. Nous devrons donc copier example.conf et le coller en tant que services.conf.
$ cd ~/services/conf/
$ cp example.conf services.conf
Nous allons maintenant modifier notre fichier de configuration des services anope à l'aide de notre éditeur préféré.
$ nano services.conf
Maintenant, nous allons apporter des modifications au bloc de liaison montante{}. Ici, l'hôte est conservé en tant que 127.0.0.1 car notre serveur IRC s'exécute sur notre même serveur sous localhost. Comme nous n'utilisons pas ipv6, nous allons simplement le désactiver. Si nous exécutons anope sur un serveur différent, il est recommandé d'activer ssl en gardant la valeur "yes" mais comme nous exécutons à la fois le serveur irc et anope sous le même serveur, nous le désactiverons simplement avec la valeur "no". Comme le port par défaut du serveur irc est 6667, nous le conserverons. L'option password doit définir le mot de passe que nous avons attribué dans le bloc connect{} de la configuration ircd (ircd.conf) c'est-à-dire mypassword dans notre cas.
uplink
{
host = "127.0.0.1"
ipv6 = no
ssl = no
port = 6667
password = "mypassword"
}
Ensuite, nous allons définir le nom de notre service anope et la description de nos services anope qui se trouvent sous le bloc serverinfo{}. La valeur du nom de celui-ci doit correspondre à la valeur que nous avons attribuée dans le bloc connect{} de la configuration d'ircd (ircd.conf), ici nous avons conservé ircservices.linoxide.com .
serverinfo
{
name = "ircservices.linoxide.com"
description = "Services for Linoxide IRC Networks"
pid = "data/services.pid"
motd = "conf/services.motd"
}
Ensuite, comme nous exécutons ircd-hybrid comme serveur irc, nous allons simplement attribuer la valeur de name sous le bloc modue{} comme "hybrid".
name = "hybrid"
Et nous conserverons le nom du réseau en tant que "Linoxide IRC" dans le bloc networkinfo{}.
networkname = "Linoxide IRC"
Une fois que tout est configuré selon nos besoins et nos désirs, nous allons maintenant enregistrer et quitter le fichier.
9. Démarrage des services Anope
Enfin, après avoir terminé la configuration de notre configuration anope, nous allons maintenant démarrer nos services anope. Pour ce faire, nous devrons entrer dans le dossier bin situé dans le répertoire d'installation d'anope. Ensuite, nous exécuterons notre script anoperc comme indiqué ci-dessous.
$ cd ~/services/bin/
$ ./anoperc start
Starting Anope
Anope 2.0.2, build #2, compiled 12:22:26 Jul 18 2015
Using configuration file conf/services.conf
Attempting to connect to uplink #1 127.0.0.1 (127.0.0.1), port 6667
Successfully connected to uplink #1 127.0.0.1:6667
Successfully linked, launching into background...
Cela démarrera nos services Anope. Si, de manière inattendue, nos services anope ne démarrent pas, nous pouvons simplement le réparer en consultant notre journal situé dans le répertoire des journaux. Ici, dans notre installation, c'est sous ~/services/logs/
Maintenant, pour vérifier si notre service anope fonctionne bien ou non, nous pouvons simplement lancer /msg NickServ help dans notre client IRC. Si nous avons vu des options et des drapeaux pour la commande NickServ, nous pouvons alors vérifier que notre service Anope fonctionne parfaitement. Nous devons d'abord obtenir un accès opérateur en utilisant la commande /oper suivie du nom d'utilisateur et du mot de passe que nous avions créés ci-dessus pour l'opérateur.
/oper root password
Après nous être connectés en tant qu'opérateur, nous allons ressasser notre serveur IRC ircd-hybrid.
/rehash
Ensuite, nous testerons enfin notre serveur anope en exécutant la commande ci-dessous.
/msg nickserv help
10. Activation du chiffrement SSL/TLS
Afin d'activer le cryptage SSL, nous devrons installer le package de développement openssl sur notre machine Ubuntu 15.04. Ensuite, nous devrons recompiler notre ircd-hybrid, générer nos propres certificats SSL car nous n'avons pas de certificat de confiance et configurer la configuration d'ircd-hybrid pour activer le port ssl, c'est-à-dire 6697.
Donc, pour installer le package de développement openssl, nous devrons exécuter la commande suivante.
$ sudo apt-get install libssl-dev
Nous pouvons simplement suivre les étapes 1 et 2 pour recompiler ircd-hybrid. Ensuite, nous allons générer nos propres certificats SSL et les conserver dans le répertoire ~/ircd/etc/.
$ cd ~/ircd/etc/
$ openssl genrsa -out rsa.key 2048
$ chmod 600 rsa.key
Une fois la clé RSA générée, nous allons maintenant générer le certificat et le fichier de paramètres DH.
$ openssl req -new -days 365 -x509 -key rsa.key -out cert.pem
$ openssl dhparam -out dhparam.pem 2048
Maintenant, nous allons configurer notre ircd.conf et activer la méthode de cryptage SSL/TLS. Pour ce faire, nous allons ouvrir ircd.conf avec notre éditeur préféré.
$ nano ~/ircd/etc/ircd.conf
Maintenant, nous allons décommenter les lignes suivantes qui se trouvent dans le bloc serverinfo{}.
rsa_private_key_file = "etc/rsa.key";
ssl_certificate_file = "etc/cert.pem";
ssl_dh_param_file = "etc/dhparam.pem";
Enfin, nous allons redémarrer notre serveur ircd-hybrid. Pour redémarrer, nous devrons exécuter les commandes suivantes.
$ killall -9 ircd
$ ~/ircd/bin/ircd
Une fois que notre serveur est en cours d'exécution, nous devrons tester si notre cryptage SSL/TLS fonctionne ou non. Nous pouvons maintenant nous connecter à notre serveur irc avec le cryptage SSL/TLS en exécutant la commande suivante dans notre client IRC.
/server irc.linoxide.com +6697
Conclusion
IRCD-Hybrid est un excellent exemple de serveur IRC léger, rapide et efficace. Bien que les IRC soient considérés comme d'anciennes technologies de communication électronique, il s'agit d'un formidable moyen de communication rapide et sécurisé. Anope ajoute quelques fonctionnalistes et fonctionnalités impressionnants en plus d'ircd-hybrid, ce qui rend notre serveur irc correctement géré. Ainsi, il est toujours recommandé d'utiliser anope en tant que service si vous exécutez ircd-hybrid en tant que démon irc. Pour permettre aux scanners de surveiller notre serveur IRC contre les proxys ouverts, hopm est également un excellent outil développé par les développeurs ircd-hybrid. Si vous avez des questions, des suggestions, des commentaires, veuillez les écrire dans la zone de commentaires ci-dessous afin que nous puissions améliorer ou mettre à jour notre contenu. Merci ! Régalez-vous :-)