En IRCd , forkortelse for Internet Relay Chat- dæmon , er et program, der implementerer IRC- protokollen, som vi kører på en server , hvilket gør denne server til en IRC-server . Det giver forskellige mennesker mulighed for at kommunikere med hinanden på tværs af Internettet ved at udveksle tekstbeskeder i realtid. Ikke forveksles med en IRC-robot, som er et program, der opretter forbindelse til en IRC-server som enhver anden klient .
Serveren lytter til forbindelser fra IRC-klienter på et sæt TCP- porte . Når serveren er medlem af et IRC-netværk, beholder den også en eller flere forbindelser med andre servere / dæmoner.
Udtrykket ircd henviste oprindeligt til et enkelt stykke software, men det blev til sidst et generisk udtryk for enhver implementering af en IRC-dæmon.
De fleste af disse servere er installeret på maskiner, der bruger Linux . Installationen af en sådan enhed er hurtig og nem. Konfigurationen kræver dog mere tid. Mange websteder tilbyder tutorials til installation af en IRCD.
De mest anvendte IRCD'er er:
Et stort antal IRCD'er er modificerede versioner af de vigtigste IRCD'er (især IRCu og Bahamut ).
En stor del af disse servere er gratis og Open Source (open source), hvilket forklarer det store antal eksisterende versioner.
Derudover ledsages IRC-servere ofte af tjenester (Nickserv, Chanserv ...), der tilføjer funktioner såsom reservation af pseudonymer og kanaler.
En O-line (Operators Line) er en datablok på IRC-serverkonfigurationsfilen (ircd.conf, unrealircd.conf ... afhængigt af IRCd ). Det bruges til at angive over for systemet, hvem der er operatører af netværket, det vil sige dem, der kan tage kontrol på globalt niveau på serveren / serverne. O-linjer oprettes normalt af serveren / netværksadministratoren eller af en administrator med direkte adgang til IRC-serverens konfigurationsfiler. Tildelingen af en O-linje til en bruger, der betyder, at han giver ham et vist antal beføjelser over systemet, det er nødvendigt at sikre, at personen er absolut pålidelig og også i stand til at styre handlinger på et niveau ud over den enkelte kanal ledelse.
O-line eksempelKonfigurationstypen varierer fra en type IRCd til en anden.
Følgende eksempel viser en konfigurationsblok for en O-linje under UnrealIRCd . Den samler al information og adgangsgodkendelser for en given IrcOp og kan indeholde så mange operatører blokere som nødvendigt. Blokken begynder altid med linjen "Oper <operatørnavn>" efterfulgt af en åben bøjle og slutter altid med en lukket bøjle og et semikolon. Normalt angiver semikolon slutningen af en blok eller en konfigurationslinje. Det ser sådan ud:
oper UserName { class clients; from { userhost *@InternetServiceProvider.com; }; password "motdepasse"; flags { netadmin; global; get_umodew; get_host; can_gkline; can_gzline; can_zline; can_restart; can_die; can_override; }; maxlogins 1; };Hvis vi detaljerer indholdet af blokken, bemærker vi forskellige elementer:
Der er andre valgfrie parametre til operatørblokken, såsom tildelingen af brugertilstande efter en operation ...
Midlertidig o-lineIrcOps med serviceadministratorniveauadgang (Services Admins eller SA) kan definere O-linjer gennem OperServ . Sammenlignet med dem, der er defineret i serverkonfigurationsfilen, kan disse O-linjer betragtes som midlertidige, fordi det er meget let at konfigurere dem og fjerne dem. Derudover kræver det ingen genlæsning af konfigurationen for at være aktiv, og den bruger, der drager fordel af den, kan udføre en oper-up ved hjælp af sit kaldenavn (registreret med NickServ) og hans NickServ-identifikationsadgangskode. Men i modsætning til den centrale konfiguration er det ikke muligt at bruge Oper-flag af typen "can_kline" eller "global", men det bruger såkaldte "gammeldags" flag, såsom + oaAWst .. (disse tilstande er angivet med deres korrespondancer i nye Oper-flag i UnrealIRCd-dokumentationen). For eksempel for at definere en midlertidig O-linje på en bruger, ville administratoren indtaste følgende kommando og sætte de relevante flag der:
/MSG OperServ OLINE <pseudonyme> <flags>
Eksempel: /MSG OperServ OLINE Nickoperateur +owghasW
I dette eksempel har vi tilføjet ( + ) følgende flag: en operatør ( o ), der kan se servicemeddelelser sendt til IrcOps ( w ) og dem, der sendes til alle på netværket ( g ). Han har også adgang til den særlige hjælp fra Operators gennem kommando / helpop ( h ), han er også en administrator af de tjenester ( en ), der ser bekendtgørelserne server ( s ) og som modtager en meddelelse, når en anden bruger gør en / WHOIS på ham ( W ). Flag er store og små bogstaver. De giver forskellige privilegier: a er forskellig fra A (som står for Serveradministrator).
Det er meget let at fjerne den midlertidige O-linje. For at gøre dette skal du blot indtaste den samme kommando som før, men blot følge kaldenavnet med minus-symbolet ( - ).
Eksempel: /MSG OperServ OLINE Nickoperateur -
Brugeren mister sin O-line og sine midlertidige operatørrettigheder.
En D-linje (eller D: linje ) fra benægtelseslinje er et udtryk i IRC- jargon . Ligesom K-linjen forhindrer en D-linje en bruger i at bruge en bestemt server på et IRC-netværk. D-linjens ejendommelighed er, at den berørte bruger ikke engang kan oprette forbindelse til serveren (denne fjerner straks forbindelsen med den forbudte IP-adresse), mens K-linjen afbryder ( dræber ) brugeren en gang når forbindelsen til serveren er afsluttet (muligvis efter at have vist MOTD med en meddelelse, der angiver årsagen til forbuddet). En D-line bruges generelt til at blokere forbindelser fra vedvarende angribere .
En K-linje (eller K: linje) fra kill line er et udtryk i IRC- netværksjargon . En bruger, der er påvirket af en K-linje, nægtes adgang til en bestemt server på netværket, enten midlertidigt eller permanent.
Generelt gælder en K-linje kun for én server ad gangen: Den forbudte bruger kan derfor oprette forbindelse til IRC-netværket via en anden server. Der er dog et stort antal andre “ linjer ” ( G-line , Z-line osv.), Som er tæt på K-line. For eksempel fungerer en G-linje på samme måde som K-linjen, men det gælder for alle serverne i et IRC-netværk.
Moderne IRC- dæmoner kan også give IrcOps mulighed for at opsætte K-linjer uden at skulle ændre daemon-konfigurationsfilerne (noget, der normalt er forbeholdt administratorer). Nogle IRC-tjenester kan også hjælpe med at administrere disse linjer , som f.eks. OperServ .
Tilstandene er midler til at beskytte kanalerne og brugerne, tildele privilegier, til at aktivere indstillinger ... Tilstandene har flere niveauer lige fra styring af serveren, gennem kanalerne og også brugerne.
Kun en bruger med privilegier på en kanal eller på en server kan ændre tilstande for denne sidste og for de andre brugere (alt efter hans adgangsniveau, IrcOp , Admin Services, Channel operator, Half-Op ...). Brug af kommandoen /modeafhænger helt af den IRC-klient, som brugeren har valgt, dens syntaks er som følger:
/mode <cible> <mode> [paramètres]Målet kan være en irc-kanal, f.eks. #Plop, eller brugerens kaldenavn (hans kaldenavn ). Tilstanden er i form af store eller små bogstaver forud for et + eller a - afhængigt af om du vil definere eller fjerne tilstanden. Nogle tilstande kræver parametre, især dem der bruges til at styre brugerrettigheder.
For eksempel for kun at tillade gæstebrugere at komme ind i #plop-kanalen, vil en operatør gøre følgende:
/mode #plop +iFor at trække operatørrettigheder fra en bruger, hvis kaldenavn er "JeanClaude", på samme kanal:
/mode #plop -o JeanClaudeHvis JeanClaude ikke ønsker at vise sin IP-adresse offentligt, vil han:
/mode JeanClaude +xO-, v-, l-, b- og k-funktionerne tager en parameter.
Dette er de mest almindelige tilstande defineret af RFC , hver IRC-server er fri til at tilføje så mange tilstande, som den vil.
Tilstandene for en kanal, der giver visse privilegier til brugerne, er som følger:
De fleste forbindelser til IRC- netværk er ofte klare, ukrypterede. Normalt er brugerne ikke rigtig opmærksomme på dette, men problemet bliver tydeligt, når det er nødvendigt at bruge en adgangskode til at logge ind på IRC-tjenester . Da adgangskoder transmitteres i det fri, som alle forbindelsesdata, kan de potentielt opfanges af en tredjepart, der lytter til netværkstrafik.
Løsningen består derfor i at kryptere data for at beskytte information (samtaler, adgangskoder, IrcOp- login osv.). Således kan trafikken, der kommer ind og ud af serveren, kun læses af de legitime modtagermaskiner. Generelt skal operatører systematisk bruge sikre forbindelser for at forhindre sniffing og dermed tyveri af deres adgangskoder for at sikre et netværks sikkerhed .
Krypteringen / sikkerheden af en IRC-forbindelse følger en standardproces, der bruges sammen med andre typer protokoller (f.eks. HTTPS ). Den IRC klient vil først forhandle med serveren for at skabe en sikkerhed tunnel (via en dedikeret port), hvor data vil flyde (ved verifikation og udveksling af offentlige nøgler og certifikater). Det er først efter denne tunnel er klar, at IRC-sessionen starter. Brug af en sikker IRC-forbindelse er ikke forskellig fra at bruge en normal forbindelse, bortset fra at klienten undertiden kan vise en advarselsmeddelelse, hvis certifikatet synes ufuldstændigt (f.eks. Selvsignerede certifikater).
Generelt signalerer serveren til klienten, at dataene krypteres ved at vise forbindelsens karakteristika før MOTD, for eksempel:
-irc.serveur.com- *** You are connected to irc.serveur.com with TLSv1-AES256-SHA-256bits
TLSv1 angiver versionen af sikkerhedssystemet, AES er krypteringsprotokollen med en nøgellængde på 256 bit, SHA256 er hash . Disse oplysninger varierer naturligvis afhængigt af krypteringsprotokollerne og de anvendte nøgellængder og / eller tilgængelige på serveren eller klienten.
Og derefter anvendes Usermode + z på klienten og markerer det som sikkert. Denne tilstand giver også brugeren mulighed for at deltage i kanaler, der kræver datakryptering, såsom kanaler reserveret til administratorer / operatører eller andre.
Forresten, når brugeren opretter forbindelse til en server og ønsker at vide, om sidstnævnte understøtter sikre forbindelser, skal du bare gennemgå listen over tilstande, der kan bruges på serveren. Disse oplysninger vises altid, så snart forbindelsen er oprettet, før MOTD, sådan:
Welcome to the MyServer IRC Network [email protected]
På listerne over tilstande (" iowghra ... ") betyder det, hvis " z " -tilstanden vises, at krypteringen understøttes af serveren. For at bruge den sikre forbindelse skal du derfor kontakte en IRCOp eller en administrator for at finde ud af nummeret på den dedikerede port.
Denne teknik er ikke altid sand. Nogle servere, som på netværket, bruger freenode en anden tilstand, og andre IRC'er har simpelthen ikke en sådan tilstand implementeret.
De fleste moderne IRC-klienter implementerer funktioner til at oprette forbindelse til en IRC-server, der har en eller flere porte dedikeret til sikre sessioner. Nogle kunder styre disse funktioner indbygget (ligesom kvirc , XChat , eller endda irssi hvis den er kompileret med SSL understøttelse ), hvor andre klienter som mIRC for eksempel kræver tilsætning af kryptering biblioteker ligesom OpenSSL ( libeay32 Dll og ssleay32.dll for eksempel) . Det er derfor tilstrækkeligt at oprette forbindelse til serveren via den port, der er dedikeret til sikre forbindelser; for eksempel: 7000 (Som konvention, uofficiel) i stedet for 6667.
For nogle kunder er det undertiden nødvendigt at tilføje en parameter til forbindelseskommandoen for at indikere, at du bliver nødt til at bruge kryptering. Under mIRC er det tilstrækkeligt at placere et " + " lige før portnummeret (eksempel :) /server irc.server.com:+6668, eller nogle gange kan kontakten " -ssl " også bruges. Det varierer fra klient til klient.
Implementeringen af krypteringssystemet på en server sker under forberedelse af kompilering (til en server, der kører et Linux / UNIX- eller FreeBSD-system ). Afhængigt af serveren ( UnrealIRCd , Bahamut osv.) Skal scriptet konfigureres, så det integrerer krypteringsmodulerne, når kompileringen udføres. Dette involverer undertiden et spørgsmål, der spørger, om brugeren ønsker, at serveren understøtter SSL-type forbindelser. Hvis svaret er ja, søger systemet efter OpenSSL eller andre typer moduler for at installere krypteringsunderstøttelse og generere servernøglen og certifikatet (selvsigneret i dette tilfælde, hvis du ikke har et certifikat udstedt af en officiel myndighed). For at oprette certifikatet beder scriptet brugeren om en række spørgsmål såsom: webstedsnavn, geografisk placering osv. Når dette trin er bestået, kan kompileringen startes.
Det næste trin er at konfigurere serveren korrekt til at bestemme port (er), der tillader sikre forbindelser. Denne konfiguration udføres normalt i filen ircd.confeller unrealircd.confi Listen Block eller " P: Line ". Det specificerer de usikre standardportnumre (oftest 6667) og derefter de sikre port (er) og tilføjer de nødvendige parametre og muligheder, der fortæller serveren at bruge kryptering til disse specifikke porte. Derudover skal de nøjagtige stier til filerne, der indeholder den offentlige nøgle og certifikatet , medtages i IRC-serverens hovedkonfiguration. Disse filer er typisk placeret i den mappe, der indeholder den eksekverbare server.
Da IRC er en protokol, der kræver verificering af nøjagtigheden af de transmitterede data, er den derfor baseret på TCP- transmissionsmodellen . Dette betyder derfor, at hvis forbindelsen oplever for høj latens, desynkronisering eller uopretteligt pakketab, betragtes sessionen som nul og afsluttes automatisk af klienten eller serveren. Det siger sig selv, at sikkerhedstunnelen også fungerer efter de samme regler. Manglende respons på den ene eller den anden side, tab af synkronisering af krypteringsnøglerne eller simpelthen en Ping Timeout (overdreven latenstid) vil få tunnelen til at lukke og dermed slutningen af IRC-sessionen. På denne måde overføres dataene ikke tilfældigt uden verifikation af systemet. Den sikre session nulstilles, når klienten opretter forbindelse igen.