# Bouncer (informatique)

Un BNC (abréviation de Bounced Network Connection) ou bouncer, est un logiciel utilisé pour relayer le trafic et les connexions dans les réseaux informatiques, un peu comme un proxy. L'utilisation d'un BNC permet à un utilisateur de masquer la source d'origine de sa connexion, garantissant ainsi sa confidentialité ainsi que la possibilité d'acheminer le trafic vers un emplacement spécifique. Un BNC peut également être utilisé pour masquer la véritable cible à laquelle un utilisateur se connecte.

## IRC

Une utilisation courante consiste à se connecter à un serveur IRC via un BNC exécuté sur des serveurs distants. Dans un tel environnement, où il est très facile de déterminer l'adresse IP d'un utilisateur, un BNC peut aider à masquer la source de connexion d'origine, tout en offrant la possibilité d'avoir des « vhosts » ou « hôtes virtuels ». L'utilisation d'un vhost ne masque pas mieux la connexion mais ajoute simplement une déclaration comme nom d'hôte.
De nombreux BNC restent connectés à un serveur IRC au cas où le client se déconnecterait d'Internet. Souvent, les changements d'état sont suivis afin qu'ils puissent être relayés au client lors de la reconnexion. Certaines implémentations choisissent de stocker tous les messages envoyés sur le réseau que le client aurait normalement reçus et de les envoyer lors de la reconnexion du client ; cela est souvent considéré comme beaucoup trop gourmand en ressources pour être fourni par des services d'hébergement commerciaux. D'autres fonctionnalités de journalisation et fonctions de type bot peuvent être incluses dans diverses implémentations mais ne sont pas standard.

### Exemple

    L'utilisateur A se connecte directement à IRC et apparaît sous le nom USER!user@users.reverse.dns
    L'utilisateur A se connecte indirectement à IRC via un BNC et apparaît sous le nom USER!user@bnc.net

### Logiciel

Une liste de bouncers.
* Bip IRC Proxy maintient une connexion persistante et affiche un journal d’historique lors de la reconnexion.
* bnc est le premier bouncer IRC.
* ezbounce inclut des fonctionnalités telles que la protection par mot de passe, l'administration à distance, la journalisation et l'écoute sur plusieurs ports.
* JBouncer pour IRC, écrit en Java. Prend en charge la journalisation.
* muh bnc est un outil de rebond irc intelligent et polyvalent qui se connectera au serveur dès son lancement, gardant ou tentant d'obtenir le pseudo de l’utilisateur.
* psyBNC est considéré comme le bouncer IRC le plus ancien et le plus connu. Il est facile à utiliser, fonctionne sous Linux et est devenu populaire sur FreeBSD, prend en charge IPv4, IPv6, SSL, la journalisation, plusieurs utilisateurs et réseaux, etc. Malgré sa nature de proxy IRC tout à fait classique, psyBNC est souvent installé sur des systèmes compromis par des pirates.
* shroudBNC (IRC) prend en charge les connexions SSL et propose une interface Web.
* ZNC (IRC) est facile à utiliser, prend en charge les connexions SSL, IPv6 et la journalisation et offre une interface Web. Il est extensible par des modules et des scripts en C++, Python, Perl et Tcl.
* Bouncer écrit en Java est un bouncer/proxy générique. Il prend en charge le tunneling SSL, le basculement et la répartition de charge des destinations.
* The Lounge agit à la fois comme un bouncer et un client d’application Web progressive (PWA). Il est open source.
* soju est un bouncer IRC simple et facile à configurer. Le projet est hébergé sur Codeberg.

### Services commerciaux

Plusieurs sociétés proposent des bouncers IRC hébergés :
* IRCCloud est un bouncer IRC s'appuyant sur un logiciel propriétaire. Plusieurs interfaces web et mobiles sont spécifiquement adaptées pour le service. Adapté à une clientèle professionnelle, il peut s'interfacer avec Slack (plateforme).
* IRC Today est un bouncer IRC commercial utilisant le logiciel libre soju. Il offre une interface de configuration web intuitive, et permet de téléverser des images et des fichiers sans quitter le client IRC.
* chat.sr.ht est un autre bouncer IRC commercial utilisant le logiciel libre soju. Il fait partie d'une plus grande offre de services minimalistes à destination des développeurs informatiques.

## FTP

Les BNC sont également souvent utilisés pour le protocole de transfert de fichiers (FTP), encore une fois pour cacher l'utilisateur et le serveur l'un de l'autre et pour acheminer le trafic via un emplacement spécifique. Les bouncers FTP peuvent être divisés en deux catégories différentes : entrée et trafic.
Un videur d’entrée agit comme une passerelle vers le serveur, mais il ne cache pas l’existence du serveur réel. Les videurs d'entrée, comme cubnc, peuvent être utilisés dans une configuration multiserveur pour un accès facile à chaque serveur et une répartition de charge. Cela supprime le besoin de sélectionner le serveur FTP auquel se connecter lorsque vous essayez d'accéder à la baies de serveurs.
Les bouncers relaient le trafic via l'hôte sur lequel ils sont installés et se présentent comme s'il s'agissait du serveur FTP, cachant ainsi complètement l'emplacement réel du serveur. Plusieurs bouncers peuvent être installés en parallèle afin d'équilibrer la charge de trafic sur différents liens. Les BNC les plus élaborés peuvent même renvoyer des connexions SSL/TLS sécurisées.

## Voir également

* Proxy