Weekend Prosjekt: Ved hjelp av en IRC Proxy å forbli innlogget fra Anywhere


Hvis du noen gang har gått glipp av en viktig IRC diskusjon fordi du tilfeldigvis mellom hjem og kontor på akkurat feil tidspunkt, eller hvis du jevnlig logger på fra en rekke forskjellige steder og ikke liker å sjonglere flere IRC hakk, så du trenger en IRC proxy. Den ledende åpen kildekode IRC proxy er Bip, en GPLv2 verktøy som er gitt som en standard tilbud av de fleste Linux-distribusjoner. Denne helgen, la oss sette opp Bip og stoppe mangler viktige diskusjoner!

Hva er en IRC proxy, likevel? En IRC proxy er et lite program som du kan la kjører på en maskin med konstant tilgang til Internett, for eksempel en server. Den kobles til IRC-nettverk, og du kobler til proxy – enten fra den lokale maskinen eller over en ekstern tilkobling. Til andre på IRC-kanal, du alltid vises tilgjengelig, og opprettholde navnet nick. I mellomtiden kan du koble fra ett sted, og deretter koble fra en annen, og fullmakten spille alle meldingene du savnet i mellom. La oss sette det opp!

Planen

For å starte, la oss komme i Bip installert. Det er pakket for de fleste Linux-distribusjoner, bare se etter " bip " pakke eller søke etter IRC proxy. Du kan også laste ned pakker fra prosjektets nettsted; den nyeste utgaven er 0.8.7. Bip er kommandolinje-drevet, noe som gjør det til en god løsning for hodeløse servere. Den eneste avhengighet å snakke om er OpenSSL, som er nødvendig for å kunne foreta sikre eksterne tilkoblinger.

Selv om Bip kan
konfigureres til å kjøre som en systemomfattende daemon, vi skal sette det opp i enkeltbrukermodus, siden vi er først og fremst opptatt av å administrere personlig kommunikasjon, ikke støtter en kontor full av uavhengige brukere. Mesteparten av konfigurasjonen gjøres gjennom bip.conf fil, som du bør plassere i en .bip katalogen inne Hjem-mappen. Du kan kopiere prøven bip.conf som følger med Bip pakken; Det vil enten bli plassert på /etc/bip.conf eller annet sted i /usr /share /doc /BIP /eksempler /, avhengig av din distribusjon.

Inne bip.conf, vil vi sette opp en Bip " brukerkonto " for oss selv, og legitimasjonen vi velger vil være hva vi bruker i vår IRC-klient app for å koble til Bip proxy. IRC-kontoer som vi ellers ville logge inn direkte med er også detaljert innenfor bip.conf, med en " nettverks " strofe per IRC server. Bip bruker dem til å logge inn og godkjenne til IRC-servere selv når vi tilfeldigvis kobles

Sette opp bip.conf

bip.conf filen bruker enkle option = verdi.; syntaks, selv om noen verdier må plasseres innenfor anførselstegn – gå av eksempelfilen for veiledning. På toppen av filen, for eksempel, må du sette ip = " 127.0.0.1 "; å fortelle Bip å godta tilkoblinger fra lokale kunder, mens port = 7778; angir TCP-port for å lytte over. Du vil definitivt trenger å endre verdien av client_side_ssl til sant
, da dette er hva som gir vår sikkerhet.

De grunnleggende alternativer å vurdere logger og backlog-replay atferd. Som standard spesifiserer bip.conf /var /log /bip /som logging katalogen — Hvis du ønsker å lagre IRC logger for langtidsarkivering, bør du endre dette til et annet sted, for eksempel /home /dittbrukernavn /logs /irc /. Den log_format strengen kan du angi et wildcard formel som Bip vil bruke for å holde separate logger for hver IRC server og kanal, eventuelt brutt opp i en måneds arkiver. Standard formelen (som du må un-comment å bruke) er% n /% Y% m /% c% d.log &mdash.; som skaper en katalog for hvert nettverk (n), en undermappe for hvert år-måned combo (Ym), og en egen fil per kanal (c) og dag (d). Du må uncomment ordrereserven alternativet for Bip å spille savnet trafikken når du kobler; backlog_lines angir hvor mange linjer å spille (for no limit, velger 0).

Deretter må du definere IRC-nettverk Bip bør vite om. Hvert nettverk delen er en strofe vedlagt i {klammeparentes}. Det må inneholde minst et navn, for eksempel " freenode " og en server definisjon, som består av det vertsnavn og port. Freenode, for eksempel, ville være server {host = " irc.freenode.net "; port = 6667;};. &Quot; navn " som du angir er rent for enkelhets skyld andre steder i filen, men hvis du får serverinnstillingene galt, vil du ikke være i stand til å koble til.

Til slutt, vil du sette opp en Bip brukerkonto. Brukeren strofe er også vedlagt i klammeparentes, men den har flere viktige deler. Først er navnet alternativet Bip brukernavnet du velger — det har ingenting å gjøre med Linux brukernavn eller IRC hakk; det kan bare du kobler til Bip. I passordfeltet, må du åpne en kommandolinje i et annet vindu og kjøre hjelpeprogram bipmkpw. Dette vil be deg om å opprette en konto passord (som du trenger å huske), og vil generere en lang hash streng, for eksempel 742437e63d25d20243e9c3217840ea2a91557504. Skriv inn hash
inn i passordfeltet i bip.conf

Under dette, men likevel inne i din bruker strofe, kan du sette opp en standard nick med default_nick og en standard ". Real navnet " å følge den med default_realname.

Dette er cross-server mislighold. Under dem (og fortsatt
innen bruker) sette deg opp så mange IRC-tilkoblinger som du trenger. Hver tilkobling strofe må referere en av nettverksnavnene du definert ovenfor, pluss liste noen kanaler du ønsker å bli automatisk, og eventuelle nettverksspesifikke tilkoblingsmuligheter, for eksempel en Nickserv IDENTIFY-kommandoen for å autentisere deg selv. En grunnleggende oppsett kan se slik ut:


 forbindelse {name = " freenode "; #this er en intern-bruk navn nettverk = " freenode "; #this må være en referanse til en tidligere definert " nettverk " strofe user = " DoubleOhSeven "; on_connect_send = " PRIVMSG Nickserv: Identifiser whateveryourNickspasswordis "; kanal {name = " # emacs "; }; kanal {name = " # vim "; }; }; 


Noe av dette synes repeterende (for eksempel sammenhengen og Selge nettverksnavn), men det er mer nyttig i komplekse oppsett. Du kan sjekke ut noen flere alternativer, ved å lese mann bip.conf, men dette grunnleggende oppsett vil opprettholde en enkeltbruker forbindelser.

Tilkobling til Bip

Med bip.conf konfigurert, vil du nå må opprette en SSL-sertifikat og nøkkelen til å bruke som ekstern tilkobling legitimasjon. Fra en ledetekst, kjøre openssl req-ny -x509-dager 365 -noder utsjekking bip.pem -keyout bip.pem og kopiere den resulterende bip.pem filen i ~ /.bip katalogen.

Nå , starte Bip søknad med bip &. Bip vil koble til dine konfigurerte IRC-servere og bli med kanalene som er angitt i din bip.conf fil. Men du er fortsatt ikke koblet til Bip, så alle dine nick er tankeløse automater, sitter stille og ikke svarer på dine favorittkanaler. Hvorvidt det slår noen andre som out-of-karakter er forfeilet – forutsatt at du ønsker å snakke, må du konfigurere din IRC klient app for å koble til Bip.

På en lokal maskin, kan du bruke Irssi, XChat, eller hvilken som helst annen IRC-klient som støtter SSL for å koble til Bip . Fordi Bip-tjenesten er ikke en offentlig IRC server, må du legge det til din klient app liste over kjente nettverk. Du kan bruke localhost
som navnet på serveren og 7778
som TCP-port. For serveren passord, kan du bruke Bip passordet du har oppgitt til bipmkpw. Har ikke
bruke hash-verdi som er lagret i bip.conf.

Du må også sørge for at du angir ved hjelp av en sikker SSL-tilkobling for nettverksinnstillinger, og konfigurere den til å godta en " ugyldig " (Eller ubekreftet) SSL-sertifikat. Det er normalt en dårlig idé, men fordi sertifikatet vi skapt utelukkende for vår bruk med Bip, er vi personlig sikret sin autentisitet.

IRC-klienter i disse dager en tendens til å komme forhåndsinstallert med dusinvis av offentlig IRC nettverk, og det ville være en dårlig idé å slette oppføringen for Freenode eller annen offentlig tjeneste, slik at navnet ditt Bip proxy tilknytning noe særegent, som BipProxy. Nå kan du treffe " koble til, " og Bip proxy vil åpne opp IRC-nettverk og kanaler, hver merket med navnet du anga i bip.conf å hjelpe deg å holde dem rett.

Tilkobling til Bip ... Remotely

Koble lokalt er stor, men den virkelige verdien av Bip er at du kan koble fra og koble fra en ikke-lokal maskin, med din IRC kompiser ingen klokere. For dette er alt vi trenger å gjøre en riktig konfigurert IRC-klient på den eksterne maskinen, og SSH.

Start en SSH tunnel fra den eksterne maskinen tilbake til serveren der Bip kjører. Du kan gjøre dette med OpenSSH ved å kjøre ssh -NfL 7778: localhost: 7778 theaddressofyourBipserver.com. L bryteren starter en port-forwarding tunnel mellom TCP port 7778 på localhost og port 7778 på Bip serveren. f Hotell og N
brytere kjøre den resulterende tunnel i bakgrunnen og fortelle det ikke å forvente en ekstern kommando, henholdsvis.

Alt dette betyr at TCP port 7778 på Bip-serveren er nå tunnel direkte til port 7778 på den eksterne maskinen, slik at du kan bruke den samme IRC klient konfigurasjon: en Bip " nettverk " oppsett i listen over IRC-servere, igjen konfigurert til å bruke Bip passordet. Det har fordelen av ikke krever en radikalt annerledes klientkonfigurasjonen for eksterne maskiner.

På den annen side, krever det at Bip serveren være offentlig tilgjengelig av SSH. Selvfølgelig er det en langt gråte bedre enn å ha det være offentlig tilgjengelig som en IRC stafett, men det kan likevel være en begrensning for folk som kjører BIP på hjemmebane ISP tilkoblinger i stedet drevet servere.
< p> den andre ulempen er at du må sette opp SSH tunnel før du starter IRC-klient på den eksterne maskinen. Beste praksis her variere; kanskje den enkleste tingen å gjøre kan være å åpne SSH tunnel ved innlogging — åpenbart det er sikkerhet implikasjoner for at hvis du ikke er forsiktig, men jeg er ikke kjent med noen IRC-klienter som kan gjøre tunnel skritt for deg. Kanskje det er noen; noen kan kjøre skript og plug-ins. Hvis du har råd om dette emnet, kan du fortelle de andre leserne nedenfor.

I mellomtiden blir en allestedsnærværende IRC denizen er sannsynligvis nok fundamental endring for en helg . Du er nødt til å spare litt tid til å lese gjennom alle disse spilles om igjen meldinger, tross alt.