irssi proxy et tunnel ssh



  • 0_1522746548268_irssi-logo.png
    Une astuce pratique pour ceux qui font de l’irc depuis plusieurs endroits et ne veulent pas se reconnecter à chaque fois : utiliser irssi proxy et un tunnel ssh. Un couple simple et rapide à installer.

    Comment ?

    screen

    Sur la machine cible, celle qui se connectera aux différents serveurs IRC, installez screen :

    apt-get install screen
    

    Screen permet d’avoir plusieurs sessions de terminal dans un seul terminal. Son gros avantage est la persistance.
    Screen se lance via la commande screen. Quelques commandes :

    • CTRL a+c : nouveau terminal.
    • CTRL a+A : donner un nom à ce terminal.
    • CTRL a+" : liste des terminaux.
    • CTRL a+d : détacher screen = sortir de screen.

    Vous pouvez ainsi vous déconnecter de votre machine et retrouver vos terminaux, dans le même état, en tapant :

    screen -r
    

    irssi

    Toujours sur la machine cible, installez irssi et lancez-le :

    apt-get install irssi
    irssi
    

    Pour rajouter votre serveur IRC (je prends l’exemple ici d’un serveur IRC privé avec SSL + mot de passe) :

    /network add MyNet
    /server add -ssl -auto -network MyNet mon.serveur.irc port pass
    /channel add -auto MyChan
    

    En clair :

    • On va créer son propre réseau MyNet. Un réseau est un ensemble de serveurs IRC.
    • On rajoute son serveur IRC avec :
    • -ssl : activer SSL.
    • -network : définir sur quel réseau se trouve votre serveur IRC.
    • On rajoute la connexion automatique au channel MyChan

    Vous pouvez maintenant vous connecter :

    /connect mon.serveur.irc
    

    Si vous quittez irssi (/quit), lors du prochain lancement, vous serez automatiquement connecté au serveur IRC et vous aurez rejoint votre channel.

    irssi dans mon screen

    A partir de là, vous pouvez lancer screen puis irssi à l’intérieur. Tant que votre machine n’aura pas redémarré, vous ne risquez pas de perdre les terminaux exécutés à l’intérieur de screen.

    irssi proxy

    Avec irssi proxy, vous allez pouvoir récupérer vos connexions irc sans avoir à vous reconnecter. Votre client IRC (qui peut être autre chose que irssi) se connectera à votre irssi qui fera office de proxy.

    Configuration :
    La configuration se résume à activer le module proxy d’irssi et de le faire écouter sur un nouveau port. Il vous suffira ensuite de vous connecter à ce port avec votre client IRC.

    /load proxy
    /set irssiproxy_password mon_pass
    /set irssiproxy_ports MyNet:12345
    

    Ce qui se résume en :

    • On charge le module proxy.
    • On défini un nouveau mot de passe qui servira uniquement au mode proxy (rien à voir avec le mot de passe du serveur ou du channel).
    • Le réseau MyNet sera accessible via le proxy sur le port 12345.

    Il vous reste à configurer votre client IRC pour qu’il se connecte au proxy. Le serveur IRC devient le nom d’hôte de votre machine sur lequel se trouve irssi. Le port est 12345 et le mot de passe mon_pass.

    La problématique avec cette solution, si on s’arrête ici, est que cette nouvelle connexion n’est pas cryptée. Les données transitent donc en clair entre votre nouveau lieu de connexion et votre machine qui fourni le irssi proxy. Le SSL n’est qu’entre votre machine irssi et votre serveur IRC.

    Tunnel SSH

    Pour contrer ce problème de connexion en clair, on peut utiliser un tunnel SSH entre votre nouveau lieu de connexion et votre machine irssi proxy. Votre client IRC se connectera ensuite en localhost sur un port local le tout redirigé sur votre machine irssi proxy.

    Configuration :
    En gardant les exemples de configuration vus plus haut :

    ssh -f -N -L6667:localhost:12345 moi@ma_machine
    

    Pour relancer automatiquement votre tunnel en cas de déconnexion :

    autossh -M0 -N -L6667:localhost:12345 moi@ma_machine
    

    C’est fini ! Connectez maintenant votre client IRC sur localhost/6667 avec le mot de passe de votre proxy (mon_pass dans mon exemple) pour profiter de votre IRC.