Bip: un proxy IRC per rimanere sempre connessi
Bip è un proxy IRC, ovvero un demone che rimane collegato ai server IRC anche quando tu non lo sei. Quando poi ti ricolleghi a Bip ritrovi lo storico dei messaggi dalla tua ultima connessione.
Configurare il demone
Il demone può essere lanciato su un sever con un semplice:
~$ bip
Immediatamente il processo entra in background e rimane attivo finchè non lo si uccide. La configurazione è nel file ~/.bip/bip.conf, di seguito un esempio:
ip = "0.0.0.0"; # Allow connections from all IPs
port = 12345;
client_side_ssl = true; # only SSL connections, unses ~/.bip/bip.pem
log_level = 0;
backlog = false; # enable backlog
backlog_lines = 0; # number of lines in backlog, 0 means no limit
backlog_always = false; # backlog even lines already backlogged
blreset_on_talk = false;
backlog_msg_only = true;
network {
name = "FreeNode";
server { host = "irc.freenode.net"; port = 6667; };
server { host = "irc.eu.freenode.net"; port = 6667; };
server { host = "irc.us.freenode.net"; port = 6667; };
server { host = "irc.au.freenode.net"; port = 6667; };
};
network {
name = "GimpNet";
server { host = "irc.gimp.org"; port=6667; };
server { host = "irc.us.gimp.org"; port=6667; };
server { host = "irc.au.gimp.org"; port=6667; };
};
user {
name = "tommyblue";
password = "4249b078bbe9292a2e1be97fd0fff08a5c1fcee1"; # "s3cr3t" password, generated by bipmkpw
ssl_check_mode = "none";
default_nick = "tommyblue";
default_user = "tommyblue";
default_realname = "Tommaso Visconti";
connection {
name = "freenode";
network = "FreeNode";
password = ":tommyblue MyS3cr3tPassword";
on_connect_send = "PRIVMSG NickServ :IDENTIFY MyS3cr3tPassword";
channel { name = "#ruby"; };
channel { name = "#ruby-it"; };
channel { name = "#ruby-lang"; };
channel { name = "#rubyonrails"; };
channel { name = "#fedora"; };
};
connection {
name = "gimpnet";
network = "GimpNet";
channel { name = "#gnome-it"; };
channel { name = "#gnome-love"; };
channel { name = "#gnome-hackers"; };
channel { name = "#fedora-desktop"; };
};
};
Con questa configurazione Bip si connetterà a FreeNode e GimpNet ai vari canali indicati. Nel caso di FreeNode utilizzerà un utente registrato (per farlo, leggete qui). La password dell’utente tommyblue è stata generata utilizzando il comando bipmkpw, si tratta di un doppio MD5 (della parola “s3cr3t”, in questo esempio).
Poichè ho scelto di connettermi a Bip utilizzando SSL, ho impostato l’opzione client_site_ssl = true;. Affinchè funzioni bisogna avere un certificato SSL valido oppure bisogna crearselo, con:
openssl req -new -x509 -days 365 -nodes -out bip.pem -keyout bip.pem
openssl x509 -subject -dates -fingerprint -noout -in bip.pem
Il primo comando genera il certificato, il secondo toglie la password. Il file bip.pem va messo in ~/.bip/bip.pem a meno di non indicarlo nel file di configurazione.
Connettersi a Bip con XChat
A questo punto dobbiamo aprire XChat (ma funziona con qualsiasi client IRC) e aggiungere le due reti configurate (FreeNode e GimpNet), avendo cura di utilizzare una connessione SSL, accettare un certificato SSL autofirmato, impostare l’indirizzo del server con il formato
IP-DEL-SERVER/PORTA
ovvero, supponendo che l’IP del nostro server sia 1.2.3.4:
1.2.3.4/12345
Come ultima cosa, la password del server sarà composta da
username:password:nome_della_rete
nel caso di FreeNode:
tommyblue:s3cr3t:freenode
Non è comodissimo inserire tutta la password dato che mentre si digita si vedono solo asterischi, quindi se qualcosa non funziona, per prima cosa mi assicurerei che la password sia corretta. In ogni caso i log di Bip nel server aiutano.
Ci vediamo online :)