BIP : Proxy IRC multi-utilisateurs

Bip est un proxy IRC. Ce logiciel est un serveur qui se connecte à IRC, a priori en permanence (installé sur un serveur dédié, par exemple). Un ou plusieurs clients IRC peuvent se connecter au proxy pour atteindre IRC, le proxy offrant des fonctionnalités de persistances très pratiques. Ainsi, en votre absence (client IRC déconnecté), les discussions sont sauvegardées (log) et pourront être lues (historique) à la reconnexion ; les messages privés non lus seront délivrés à la reconnexion également ; etc.

Bip est multi-utilisateurs, et très configurable. La plupart de ses paramètres peuvent être changés directement grâce à des commandes IRC spéciales, depuis le client IRC.

Il est possible de lancer bip de deux manières différentes :

  • en mode manuel, avec de simples droits utilisateur ;
  • automatiquement en tant que service (ou « démon ») au démarrage d'Ubuntu.

Afin de faciliter la configuration initiale et le test de paramètres, il est conseillé de commencer par générer le fichier de configuration et de tester Bip en mode utilisateur, puis une fois la configuration terminée, de basculer en mode démon. Ce tutoriel est bâti sur cette logique.

Générer automatiquement un fichier de configuration basique

Ouvrez un terminal et tapez la commande :

bipgenconfig

Malheureusement cet outil de configuration est encore intégralement en anglais, mais est assez simple. Configurez en suivant l'ordre affiché et tout se passera bien.

Commencez par les points 1, 2 et 3. Le point 7 est également nécessaire dans le cas où vous souhaitez activer la connexion chiffrée entre bip et le client.

1. Set global options Définir les options globales
2. Add a new network Ajouter un réseau IRC
3. Add a new user Ajouter un utilisateur
4. View global options Voir les options globales
5. View/Edit/Delete networks Voir/Éditer/Effacer réseau
6. View/Edit/Delete users Voir/Éditer/Effacer utilisateurs
7. Generate a server certificate/key pair Générer une clé certificat/client
8. Switch to normal mode Passer en mode expert (ou normal)
10. Exit: store, write configuration and exit Enregistrer la configuration et Quitter
11. Exit without saving Quitter sans enregistrer
12. Store configuration for later use Enregistrer pour plus tard
20. Reset config options Effacer configuration
21. Load stored config Charger ancienne configuration
22. Parse and load current config (todo) (non fonctionnel)

Une fois enregistré et quitté (point 10), il vous faut encore copier le fichier créé avec cette commande:

cp ~/.bip/bip.conf.autogen ~/.bip/bip.conf

Vous pourrez à partir de là modifier le fichier ~/.bip/bip.conf pour changer votre configuration.

Si vous voulez réutiliser l'outil de configuration (qui ne modifie que le fichier ~/.bip/bip.conf.autogen ) n'oubliez pas de le recharger (point 21).

Exemple de fichier de configuration

Voici un exemple de configuration pouvant être utilisée par bip, l'ensemble des 3 parties présentées devant être contenue dans le fichier ~/.bip/bip.conf.

Pour éviter toute confusion dans les termes utilisés, un petit rappel :

  • client = logiciel (client irc) qui se connecte au serveur bip ;
  • bip = proxy acceptant les connexions de la part des clients (logique serveur) et se connectant lui-même aux serveurs irc (logique client) ;
  • serveur irc = machines hébergeant les canaux irc…

Section 1 : paramètres généraux

Cette partie concerne le fonctionnement général de bip.

### Global options
## Activation de l'enregistrement des évènements système (true/false) et du degré de verbosité.
log_system = true;
log_level = 3;

## Activation du chiffrement ssl (true/false) entre bip et le client et l'emplacement du certificat à utiliser (indiquez l'emplacement où vous avez placé le certificat généré).
client_side_ssl = true;
client_side_ssl_pem = "/home/nom_du_user/.bip/bip.pem";

## Port d'écoute sur lequel le client se connecte à bip (veillez à configurer votre firewall / box en conséquence).
port = 8001;

## Emplacement du fichier de pid de bip.
pid_file = "/var/run/bip/bip.pid";

## Activation de l'enregistrement des conversations des canaux irc connectés (true/false), de l'intervalle (seconde), du format et de l'emplacement d'enregistrement.
log = true;
log_sync_interval = 180;
log_format = "%n/%Y-%m/%c.%d.log";
log_root = "/var/log/bip/";

Section 2 : réseaux

Il est possible de configurer plusieurs réseaux, pour cela il suffit de dupliquer cette partie en renseignant pour chacun les paramètres adéquats.

### Networks
network {
	name = "freenode";				## nom d'affichage à associer au réseau irc (arbitraire).
	ssl = true;					## activation du chiffrement ssl entre le serveur irc et bip (true/false).
	server {
		host = "chat.freenode.net";		## adresse du serveur irc.
		port = 7000;				## port de connexion au serveur irc.
  	};
};

Section 3 : utilisateurs

Il est possible de configurer plusieurs utilisateurs, pour cela il suffit de dupliquer cette partie en renseignant pour chacun les paramètres adéquats.

### Users
user {
	name = "nom_de_connexion_à_bip";	## nom d'utilisateur à utiliser par le client pour se connecter à bip.
	password = "hash_généré_issu_du_mdp";	## s'effectue via la partie 3 ou 6 du menu d'auto-configuration de bip.
	admin = true;				## si vrai : défini si l'utilisateur comme administrateur de bip (permet de le commander par envoi de commandes spécifiques dans le client irc).
	ssl_check_mode = "ca";			## type de certificat ssl (voir chapitre suivant).
	ssl_check_store = "/etc/ssl/certs";	## emplacement du certificat ssl (voir chapitre suivant).
	default_nick = "nick_irc_à_utiliser";	## pseudonyme irc à afficher.
	default_user = "nom_du_user";		## nom d'utilisateur irc à afficher.
	default_realname = "nom_réel_du_user";	## nom réel d'utilisateur irc à afficher.
	backlog = true;				## si vrai : affichage les messages journalisés à la reconnexion du client à bip (nécessite "log = true;" dans la section Paramètres généraux).
	backlog_lines = 0;			## nombre de lignes de journalisation à afficher, si à 0 et 'backlog_always = false;' affiche uniquement et intégralement les messages postés depuis la déconnexion.
	backlog_no_timestamp = false;		## si vrai : désactive l'horodatage dans l'affichage des messages journalisés.
	backlog_msg_only = true;		## si vrai : limite l'affichage de la journalisation aux conversations (ignore les connexions/déconnexion).
	backlog_always = false;			## si vrai : affiche systématiquement le contenu du fichier journalisé (limité au nombre de lignes défini dans backlog_lines), même si aucun nouveau message n'a été posté depuis la dernière déconnexion.
	connection {
		name = "freenode";			## nom du serveur à afficher dans le client.
		network = "freenode";			## nom du serveur auquel l'utilisateur doit se connecter (défini dans le champ 'name' de la partie network).
		password = "mot_de_passe_serveur"	## à renseigner si la connexion au serveur irc nécessite un mot de passe /!\ il est stocké en clair.
		follow_nick = false;			## en rapport avec le changement de pseudo dans le client, mais oublié son fonctionnement.
		ignore_first_nick = true;		## si vrai : si le pseudo défini dans le client est différent de celui défini dans bip, le pseudo bip (celui visible sur irc) ne sera pas automatiquement remplacé par celui du client lors de sa connexion.
		no_client_away_msg = "pas là";		## message à afficher automatiquement lors de la réception d'un message privé alors qu'aucun client n'est connecté.
		on_connect_send = "PRIVMSG NickServ :IDENTIFY mot_de_passe_utilisateur";	## type de commande utilisable pour l'authentification de l'utilisateur bip lors de sa connexion au serveur IRC /!\ il est stocké en clair.
		## liste de canaux à rejoindre :
		channel {
			name = "##tdct";
		};

		channel {
			name = "#ubuntu-fr";
		};
  	};
};

Connexion à un serveur IRC en SSL

Bip peut se connecter à un réseau IRC soit en clair, soit avec une connexion chiffrée en TLS/SSL si le serveur IRC à rejoindre permet ce type de connexion. Toutefois, dans votre fichier de configuration, et pour un réseau donné, vous ne devez pas mélanger les connexions en clair et les connexions TLS/SSL.

Pour vous connecter enSSL, c'est simple : modifiez le fichier ~/.bip/bip.conf et dans la section network passez cette option

  ssl = false;

à

  ssl = true;

De plus, dans la section user, vous pouvez modifier

  ssl_check_mode="none";

pour le passer à ca, afin qu'il vérifie le certificat du serveur à l'aide des autorité de certification, ou à basic, pour qu'il vérifie dans ses dépôts uniquement. Sinon, il ne vérifiera pas la validité du certificat.

Vous avez également cette option:

  ssl_check_store="";

pour indiquer l'emplacement des certificats (indiquez lui /etc/ssl/certs si ça ne marche pas).

Connexion à bip depuis un client IRC en SSL

Vous devez tout d'abord avoir généré le certificat SSL, si vous ne l'avez pas fait, retournez dans le menu de configuration bipgenconfig et sélectionnez l'entrée n°7 du menu. Modifiez ensuite votre fichier de configuration bip afin de le rendre cohérent avec la section 1 : paramètres généraux de la présente documentation.

Lancement manuel

Pour tester, je vous recommande de lancer bip au premier plan dans un terminal avec la commande:

bip -n

Par la suite, afin de lancer bip en arrière plan, dans un terminal lancez la commande :

bip

De cette manière bip ne se relancera pas automatiquement en cas de redémarrage. Pour cela il faut l'utiliser en mode démon (cf. ci-dessous).

Lancement automatique au démarrage

Afin de lancer bip en tant que service, si vous avez suivi le tutoriel depuis le début, deux manipulations sont à effectuer :

Déplacer le fichier de configuration de ~/.bip/bip.conf à /etc/bip.conf

sudo mv ~/.bip/bip.conf /etc/

Éditez le fichier permettant de démarrer bip en tant que service :

sudo nano /etc/default/bip

Modifiez la ligne afin d'activer le script de démarrage :

# Set ENABLED to 1 if you want the init script to start bip.
ENABLED=1

Vous pouvez également protéger le fichier de configuration afin d'empêcher qu'un utilisateur ne puisse l'ouvrir et consulter les mots de passe en clair qui peuvent s'y trouver.

sudo chmod 600 /etc/bip.conf

rendre le fichier lisible par bip

sudo chown bip:bip  /etc/bip.conf

lancer le service par

sudo service bip start

Tous les clients IRC peuvent facilement se connecter à Bip.

Rien de plus facile, il suffit de vous connecter à votre serveur en précisant comme mot de passe de connexion au serveur : user:password:connection

Pidgin

Pidgin nécessite d'ajouter les salons de discussions en favori et d'activer la connexion automatique ainsi que le mode persistant. Sans cela, à chaque fois que vous fermerez une fenêtre de discussion, pidgin vous fait sortir du salon.

Pour supprimer cette application, il suffit de supprimer son paquet. La configuration de l'application sera conservée ou supprimée selon la méthode de désinstallation que vous choisirez.

* Site officiel (en)


YoBoY, spineaker Le 02/12/2010, 19:40

  • bip.txt
  • Dernière modification: Le 11/09/2022, 12:08
  • par moths-art