Questa volta parleremo di Internet Relay Chat, o semplicemente di IRC. Nella prima parte di questo articolo esamineremo questo protocollo, come utilizzare Irssi o XChat per connettersi su Freenode e altre reti IRC, entrare nei canali e parlare con le persone. Successivamente, vedrai come avviare il tuo servizio IRC con UnrealIRCd.
Indice
- Introduzione
- Connessione su IRC
- Comandi IRC di base
- Servire IRC con UnrealIRCd
Introduzione
Potresti ricordare le chat IRC, quando non esistevano Facebook Google+ o LinkedIn e i nostri social network erano canali di chat IRC. Oggi abbiamo molte alternative per parlare con qualcuno su Internet, insieme ai social network abbiamo molti servizi di messaggistica popolari, come Whatsapp, Skype, Hangouts e così via.
Tuttavia, nonostante IRC non sia il principale programma di comunicazione su Internet, è ancora vivo e rappresenta un ottimo strumento. È un protocollo leggero, ampiamente distribuito e standardizzato, originariamente creato nel 1988 dagli utenti di BBS in sostituzione e miglioramento del programma di conversazione e che, per le sue caratteristiche, ha visto la nascita e la morte di molti altri sistemi di messaggistica.
Connessione su IRC
Per connetterti a una rete IRC, avrai bisogno del software client. Ecco alcuni buoni client per Linux.
Irsi
Irssi è un client IRC basato su curses, è piuttosto eccezionale, personalizzabile, consente l'uso di script e ignora la necessità di un server X.
Installa
yum install irssi
Connettiti a una rete con il flag -c,
irssi -c irc.freenode.org
Per passare da una finestra di Irssi a un'altra può essere un po' complicato la prima volta, puoi usare [Ctrl+n] per passare alla finestra successiva e [Ctrl+p] per il precedente. il comando /window.
/window [ next | previous ]
Utilizzare il parametro list per visualizzare un elenco con le finestre aperte
/window list
Puoi quindi passare al numero della finestra elencato con [Alt+#] , dove # è il numero della finestra compreso tra 1 e 9. Un altro modo per farlo è con il parametro goto
Puoi anche trovare buoni consigli su come usare Irssi sul sito web di quadpoint.
/window goto [1-9]
XChat
XChat semplifica il processo per i nuovi arrivati offrendoti opzioni punta e fai clic sui comandi e sulla maggior parte delle azioni.
Puoi installare XChat con yum
yum install xchat
Collegati alle reti IRC, usando la finestra di dialogo che ti viene presentata appena avvii XChat, accessibile anche dal menu XChat->Elenco reti [Ctrl+s]
Quando ti connetti correttamente alla rete, puoi selezionare una delle opzioni per unirti ai canali. Puoi anche utilizzare il menu Server->Elenco canali.
Comandi IRC di base
Ora che hai un client, ecco alcuni comandi che puoi usare su IRC. Quando ti connetti per la prima volta a una rete, ti verrà assegnato un soprannome basato sul tuo accesso al sistema dal client e, ad esempio, per cambiare il tuo soprannome in Tuxman, prova questo.
/nick Tuxman
Con un nuovo, potresti voler entrare in un canale. Per elencare canali relativi alla prova di sviluppo
/list #devel*
Una volta trovato il canale che ti interessa, prova a unirti con /unisciti a #nomecanale.
/join #linux
OK, sei su un canale, puoi iniziare a parlare ora, per sapere chi è sul canale, fallo con nomi
/names
Forse vuoi saperne di più su chi è qualcuno sulla rete, prova whois.
/whois MrRobot
Vuoi una finestra di chat con qualcuno? interroga.
/query MrRobot
Registrati il tuo nick
Non è necessario creare un account per chattare su reti IRC. Tuttavia, se vuoi evitare che il tuo nickname venga utilizzato da qualcun altro, devi registrare il tuo nickname sulla rete. Questo ti darà anche accesso a risorse che richiedono soprannomi registrati, come cloaking e accesso a più canali.
Supponiamo che tu voglia registrare il nickname di Tuxman su Freenode. Chiedi al NickServ di REGISTRARE il tuo nickname
/msg NickServ REGISTER password [email protected]
Dopodiché devi ottenere il codice di verifica che è stato inviato all'e-mail che hai fornito e inviarlo a NickServ
/msg NickServ VERIFY REGISTER nickname verifycode
Hai registrato il tuo nickname, ora puoi identificarti nella rete
/msg NickServ IDENTIFY password
Connettiti e identifica all'avvio di Irssi con i flag -n e -w.
irssi -c irc.freenode.net -n nickname -w password
Dovresti anche cambiare la tua password di tanto in tanto, usa il seguente comando
/msg nickserv set password newpassword
Installazione di UnrealIRCd
Tra le altre implementazioni di Ircd, c'è UnrealIRCd. È completo, modulare e altamente documentato, è anche il server IRC più implementato al giorno d'oggi, corrispondente a oltre il 50% dei server IRC attualmente in esecuzione.
Requisiti aggiuntivi
Ecco alcuni requisiti per ottenere il meglio dal tuo UnrealIRCd, nonostante non sia richiesto, è fortemente raccomandato come vedrai.
Ntp - Devi avere l'ora e la data corrette, ntp è la scelta migliore per mantenere l'ora e la data corrette.
Installa ntp
yum install ntp
Abilita ntpd
chkconfig ntpd on
OpenSSL - Anche questo è facoltativo, verrà utilizzato se desideri il supporto SSL/TLS.
yum install openssl
Zlib - Ciò ti consentirà di comprimere i pacchetti di rete e ridurre il carico sui collegamenti.
yum install zlib
Ottieni UnrealIRCd
Scarica Unrealrcd.
wget --no-check-certificate https://www.unrealircd.org/downloads/Unreal3.2.10.5.tar.gz
Estrai il tarball
tar zxvf Unreal3.2.10.5.tar.gz
Entra nell'albero delle fonti
cd Unreal*
Abilita utente chroot irc e gruppo irc (consigliato)
Questo passaggio è facoltativo ma fortemente raccomandato in quanto ti consentirà di eliminare i diritti di superutente ed eseguire UnreadIRCd con un account utente senza privilegi, all'interno di un ambiente chroot, e quindi renderà l'intera configurazione molto più sicura.
Per fare ciò devi modificare include/config.h file all'interno della directory delle sorgenti.
La funzionalità dell'ambiente Chroot è definita dalla seguente direttiva
/* #define CHROOTDIR */
Definisci la costante IRC_USER
/* #define IRC_USER "<user name>" */
Definisci la costante IRC_GROUP
/* #define IRC_GROUP "<group name>" */
Crea gruppo per ircd
groupadd ircd
Crea un utente ircd e aggiungilo al gruppo ircd.
useradd ircd -s /bin/false -g ircd
Imposta la password per l'utente ircd per assicurarti che nessuno possa entrare.
passwd ircd
Configura la build
A questo punto segui le domande sullo schermo e puoi utilizzare le impostazioni predefinite per la maggior parte, tuttavia, ti consiglio di rispondere Sì quando ti viene chiesto di abilitare il supporto ssl.
./config
Costruisci le fonti
make
Installa i file
make install
Se hai abilitato le funzionalità utente, gruppo e chroot di ircd, ora dovresti cambiare la proprietà della directory UnrealIRCd.
chown -R ircd:ircd /home/ircd/UnrealIRCd
Configura
È ora di far funzionare il tuo demone IRC. Per questa modifica il unrealircd.conf , il file di configurazione per UnrealIRCd. Puoi trovare il file ben documentato doc/sample.conf sotto il tuo albero di directory UnrealIRCD, potrebbe aiutarti nel tuo viaggio. Ho creato questo snippet funzionante con una breve descrizione.
io - Questo blocco imposta alcune impostazioni di base del server, nome , informazioni di base e il numero valore che deve essere univoco tra i server sulla stessa rete.
me {
nome "irc.localhost"; info "Il mio server"; numerico 1;
};
amministratore - Qui puoi impostare chi è l'amministratore del server, il suo nome, nickname e email.
admin {
"Giorgio Jedi"; /* Nome */ "geroge";/* Soprannome */ "[email protected]"; /* E-mail */
};
Clienti/server di classe - Questo imposta come i client e gli altri server vengono gestiti rispettivamente dal nostro server. frequenza di ping, numero massimo di connessioni client, frequenza di tentativi di riconnessione, code di ricezione e invio.
class clients {
frequenza ping 90; maxclient 500; inviaq 100000; recvq 8000;
};' server di classe {
frequenza ping 90; maxclient 10; /* Numero massimo di server che possiamo collegare alla volta */ sendq 1000000; frequenza di connessione 100; /* Quanti secondi tra ogni tentativo di connessione */
};
consenti - Definisci chi può connettersi al server e come. Il primo blocco consente connessioni utente da qualsiasi IP o nome host e limita le connessioni a 5 per IP. Il secondo blocco consente solo una connessione autenticata alle persone da ugly.people.com
allow {
IP*; Nome host *; clienti di classe; maxperip 5;
}; consenti {
ip **@*; nome host *@*.ugly.people.com; clienti di classe; password "jayajaya"; max perip 1;
};
ascolta - Quali porte ascoltare per le connessioni. Nel blocco stiamo ascoltando sulla porta 6697 i client utente che si connettono tramite Secure Socket Layer (SSL). Nota anche l'istruzione line simple per le connessioni in chiaro alla porta 6667
listen *:6697 {
opzioni {
ssl; solo clienti;
};
}; #ascolta *:8067; ascolta *:6667; #ascolta *:6660-6669;
aperto - Attributi dell'operatore, in questo esempio utilizziamo un operatore soprannominato george che può connettersi da qualsiasi luogo con la password "fuba"
oper george {clienti di classe; da { userhost **@*; };
password "fuba"; flag {
amministratore di rete; can_gkline; can_kline; can_unkline; can_gzline; can_zline; può_riavviare; può_morire; può_rehash; globale;
};
swhois "Esempio di maschera whois"; maschera da neve cFfkoSsqNG;
};
modulo di carico - Carica moduli, questi sono i minimi consigliati
loadmodule "modules/commands.so";
loadmodule "modules/cloak.so";
registro - Come verranno scritti i file di registro, nell'esempio registriamo gli eventi contrassegnati come errori, kill e così via
log ircd.log {
dimensione massima 5 MB; flag {
errori; uccide; opera; tkl;
};
};
imposta - Puoi impostare molte altre cose qui, nel nostro esempio abbiamo una rete al dominio gaia.net chiamata gaianet, che collega le persone al canale #welcome, impostiamo 3 chiavi di cloak alfanumeriche diverse, impostiamo gli host sulla rete, creiamo un #help channel e altre opzioni dettagliate su nrealircd.org.
set {
kline-indirizzo [email protected]; adesione automatica #benvenuto; op
opzioni {
nascondigli;
};
maxchannelsperuser 10; servizi-server "services.gaia.net"; server predefinito "localhost"; nome di rete "gaianet"; canale di aiuto "#help"; hiddenhost-prefisso "gaia";
chiavi del mantello {
"aoAr1O6fh3Q6w4Hnl3J7hVz4Zb7x4YwpW"; "andaoAr1HnR6gl3sJ7uhVzO6fh3Q6w4oN3"; "a2Ja2JO6fh3Q6w4oNs7O6fh3Q6w4oN3s7";
};
ospita {
locale "locop.gaia.net"; globale "ircop.gaia.net"; coadmin "coadmin.gaia.net"; amministratore "admin.gaia.net"; servicesadmin "csops.gaia.net"; netadmin "netadmin.gaia.net"; host-on-oper-up "no";
};
};
Avvia UnrealIRCd
Con tutte le cose a posto, puoi avviare il tuo demone IRC ora. Aggiungi il seguente comando su rc.local per avviare UnrealIRCd all'avvio del sistema.
/home/ircd/UnrealIRCd/unreal start
Dovrebbe funzionare senza problemi, tuttavia se dovessi riscontrare problemi durante l'avvio, leggi i messaggi di errore sul terminale e anche sul file ircd.log per capire cosa c'è che non va.
Conclusione
Per ora hai finito, il tuo client e server dovrebbero essere in esecuzione ora, puoi parlare con persone in tutto il mondo usando alcune delle reti globali o usando la tua rete. Tuttavia, è una buona idea saperne di più sul protocollo IRC, su come gestire reti, canali e utenti, ecc. I seguenti documenti dovrebbero aiutarti.
Documenti RFC
La seguente RFC definisce gli standard per il protocollo IRC. Dovresti leggere questo prima di poter ottenere il meglio da IRC.
RFC-1459, RFC-2810, RFC-2811, RFC-2812, RFC-2813, RFC-7194
Supporto e documenti per UnrealIRCd
Fare riferimento alla documentazione ufficiale di UnrealIRCd per acquisire maggiori informazioni. Contiene tutti i dettagli che non sono descritti in questo documento. Puoi anche ottenere aiuto da IRC collegandoti su irc.unrealircd.org:6667 sul canale #unreal-support. Grazie per aver letto!