WikiMiNET

La documentation technique et administrative

Outils pour utilisateurs

Outils du site


wiki:services:znc

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
wiki:services:znc [2017/06/08 15:51]
manwefm
— (Version actuelle)
Ligne 1: Ligne 1:
-====== ZNC ====== 
-Sur IRC, on ne peut pas rester connecté 24h/24h et cela peut être agaçant car nous perdons tout les élements des discussions... 
  
-ZNC est un bouncer irc qui n’est rien d’autre qu’un proxy irc. Celui-ci sera connecté en permanence à vos salons de discussions et fera office de passerelle entre votre client et vos serveurs irc. Vous pourrez par exemple consultez des messages diffusés en votre absence ou masquer votre identité. 
- 
-===== À MiNET ===== 
- 
-Minet possède un serveur ZNC actuellement en beta sur la dev. 
- 
-Deja, il vous faudra maitriser [[:wiki:guide_du_debutant:irc | les bases d'IRC]]. 
- 
-<WRAP info> Par défaut, seules 3 connexions depuis la même IP sont tolérées, mais des exceptions peuvent être accordées par les operateurs Rezosup, il y en a 1 par bureau MiNET chaque année. Cette limite a été augmenté à 20 connections sur 157.159.40.33 le 08/16/17 </WRAP> 
- 
- 
-===== Connexion ===== 
- 
-Vous vous y connectez comme à un serveur classique, avec votre client IRC préféré : 
-<code> 
-IP: 157.159.40.133 
-Port: 443 
-SSL: oui 
-</code> 
- 
-Par exemple sur irssi : 
-<code> 
-/network add minet 
-/server add -net minet -auto -ssl 157.159.40.133 443 
-/save 
-/connect minet 
-</code> 
- 
-<WRAP info> Le service znc écoute bien sur le port 2223 mais une redirection iptable du 443 vers le 2223 est configuré pour que le bouncer soit accessible depuis eduroam. </WRAP> 
- 
-Une fois connecté vous devez vous authentifier à l'aide de vos identifiants du LDAP, à l'aide de la commande <code>/quote PASS login:password</code> 
-Attention, le mot de passe apparaîtra en clair, il suffit d'ajouter la ligne suivante dans le fichier de conf ~/.irssi/config 
-<code> 
-address = "157.159.40.133"; 
-chatnet = "minet"; 
-port = "443"; 
-password = "login:password"; 
-use_ssl = "yes"; 
-ssl_verify = "no"; 
-autoconnect = "yes"; 
-</code> 
- 
-Comme le mot de passe par défaut est le mot de passe de votre compte LDAP, vous pouvez le changer via l'interface web. 
- 
-===== Configuration ===== 
- 
-Pour configurer votre compte, deux solution sont possibles : 
-  * L'interface WEB 
-  * Le client IRC 
- 
-Pour des raisons de simplicité nous parlerons ici de la configuration via l'interface web. 
-Dans votre navigateur web préféré aller à l'URL : https://157.159.40.133 
- 
-Loggez-vous avec votre compte du Ldap. 
-Dans l'onglet "Your settings" reglez vos informations perso. 
-Puis faire Add dans Network, et dans "Servers of this IRC network:" ajouter l'ip du serveur irc minet : 157.159.40.49 +6697 
-Finalement validez, retournez sur irssi et c'est gagné ! 
- 
-Depuis la version 1.6, il est nécessaire d'ajouter l'empreinte digitale (fingerprint) du certificat utilisé par le réseau : Dans "Your settings", éditez le réseau ajouté et remplissez le champ "fingerprint" avec celle indiqué par votre client irc si il a râlé à la première connexion.   
- 
-Vous pouvez ensuite ajouter les Channels auxquels vous souhaitez être connectés automatiquement : 
-#MiNETChill, #MiNET, #int etc. 
- 
-Quand vous vous connecterez, vous pourrez lire le buffer qui contient ce qui a été dit pendant votre absence : 
-<code> 
-18:35 -!- Irssi: #MiNETChill: Total of 12 nicks [1 ops, 0 halfops, 0 voices, 11 normal] 
-18:35 < ***> Buffer Playback... 
-18:35 < manwefm> test pour le wiki 
-18:35 < manwefm> test pour le wiki 
-18:35 < manwefm> test pour le wiki 
-18:35 < manwefm> test pour le wiki 
-18:35 < ***> Playback Complete. 
-</code> 
- 
-Pour quitter, vous pouvez quit, mais grâce au bouncer, vous resterez connecté. 
-<code> 
-/quit 
-</code> 
- 
-===== Redirection de port ===== 
- 
-On utilise iptables-persistent : https://wiki.debian.org/iptables 
- 
-Script exécuté à chaque démarrage : 
-<code> 
-/etc/network/if-pre-up.d/iptables 
-</code> 
-Les règles sont sauvegardées dans : 
-<code> 
-/etc/iptables/rules.v4 
-</code> 
- 
-===== SSL ===== 
- 
-Depuis la version 1.6 ; znc est plus regardant vis à vis du SSL et un certificat auto-signé n'est plus utilisable (impossible de désactiver la vérification du certificat, car, selon les mainteneurs, les gens qui désactivent la vérification du certificat ne devraient simplement pas utiliser SSL). 
- 
-Ainsi, nous utilisons [[https://letsencrypt.org/|letsencrypt]] qui permet d'obtenir des certificats d'une autorité de certification simplement, les certificats sont délivrés si l'on est capable de montrer que l'on est bien maître du nom de domaine à certifier. 
- 
-De façon pratique, nous utilisons le client [[https://certbot.eff.org/|certbot]] (CLI).  
-<code BASH> 
-apt install -t jessie-backports certbot 
-</code> 
-Pour faire une nouvelle demande de certificat,  
-<code BASH> 
-certbot certonly --standalone --tls-sni-01-port 2223 -d znc.minet.net 
-</code> 
-Le mode standalone lance un serveur écoutant sur le port 443 (par défaut, modifiable avec --tls-sni-01-port, nécessaire pour le znc à cause du forwarding expliqué dans la section précédente), il faut donc au préalable couper tout autre serveur tournant sur ce port. Enfin, le nom de domaine à certifier suis le -d (il doit être résolvable et l'ip obtenu  routé vers la machine depuis laquelle la commande est lancée). 
- 
-Pour renouveler le certificat (expire tous les 90 jours), certbot propose une commande vérifiant l'état du certificat, on rentre ainsi dans la crontab root :  
-<code CRONTAB> 
-@weekly  /usr/bin/certbot renew --standalone --tls-sni-01-port 2223 --pre-hook "pkill -SIGUSR1 znc && pkill znc" --renew-hook "/home/znc/.znc/znc-ssl-update.sh" --post-hook "sudo -u znc znc" --quiet 
-</code> 
-certbot propose aussi des hooks pour, par exemple, dans le pre-hook, fermer le service pouvant tourner sur le port utilisé par le serveur lancé par certbot en mode standalone, dans le post-hook, relancer le service qui vient d'être arreté, et dans le renew-hook, déployer les certificats qui viennent d'être renouvelés. 
- 
-Pour déployer les certificats sur le znc, on utilise le script suivant (celui du renew-hook) :  
-<code BASH> 
-#!/bin/bash 
-cat /etc/letsencrypt/live/znc.minet.net/{privkey,cert,chain}.pem > /home/znc/.znc/znc.pem 
-chown znc:znc /home/znc/.znc/znc.pem 
-</code> 
wiki/services/znc.1496929880.txt.gz · Dernière modification: 2020/06/27 18:15 (modification externe)