Az IRCd, azaz Internet Relay Chat szerverprogram egy olyan program, szerverszoftver, amely az IRC protokollt használja. Ez lehetővé teszi, hogy az emberek az interneten keresztül beszélgessenek egymással. Szöveges üzeneteket cserélnek valós időben.
A kiszolgáló TCP portok egy csoportján fogad kapcsolatokat az IRC kliensektől. Ha a szerver egy IRC-hálózat része, akkor egy vagy több kapcsolatot is tart más szerverekkel/démonokkal.
Az ircd szó valaha egyetlen szoftverre vonatkozott.
Mire szolgál egy IRCd és hogyan működik röviden
Egy IRCd feladata, hogy kezelje a felhasználók kapcsolódását, továbbítsa a csatornákon és privát üzenetekben küldött szövegeket, karbantartsa a felhasználói állapotot (nickek, csatornamódok, jogosultságok) és biztosítsa a szerverek közötti kommunikációt, ha a hálózat több szerverből áll. A működés elemei:
- Kapcsolatkezelés: a kliens TCP/TLS kapcsolatot nyit a szerverrel; a szerver bejelentkezteti a felhasználót (NICK/USER), fogadja és továbbítja az üzeneteket.
- Csatornák: tematikus csoportok (pl. #csatorna), ahol sok felhasználó beszélget egyszerre; a szerver kezeli a csatornák létrehozását, megszüntetését és a belépés-kilépés státuszát.
- Szerverek közötti összekapcsolás: több ircd összekapcsolható egy hálózattá, ilyenkor a szerverek továbbítják egymásnak a felhasználói információkat és üzeneteket.
- Jogosultságok és operátorok: a rendszergazdák és operátorok (IRC op, ircd admin) speciális parancsokkal kezelik a hálózatot (kick, ban, mode, server rehash, stb.).
Protokollok és szabványok
Az IRC eredeti protokollját a RFC 1459 és a későbbi RFC-ek írják le; a valós világban számos kiterjesztés és eltérő implementáció létezik (például IRCv3 kiterjesztések). A szerverek és kliensek közti kommunikáció parancsokon (PRIVMSG, NOTICE, JOIN, PART, MODE, KICK, TOPIC stb.) alapul.
Tipikus szolgáltatások és kiegészítők
- NickServ / ChanServ: külön programok (szolgáltatások), amelyek névvédelmet, csatorna-tulajdonlást és automatikus jogkezelést biztosítanak. Ezek gyakran külön démonként futnak és a hálózathoz kliensként csatlakoznak.
- Logolás és archívum: a szerver vagy külső szolgáltatások naplózhatják a forgalmat.
- Botok és modulok: automatizált feladatokhoz, moderáláshoz és hasznos funkciókhoz csatlakoznak a hálózathoz.
Biztonság és hitelesítés
Az IRCd-k biztonsági szempontjai fontosak, mert a nyílt portok és a valós idejű kommunikáció támadási felületet jelenthetnek. Szokásos intézkedések:
- TLS/SSL: a kapcsolat titkosítása (általában 6697 vagy egyedi portok) megakadályozza a lehallgatást.
- SASL: hitelesítési keretrendszer a biztonságos bejelentkezéshez (pl. PLAIN, EXTERNAL, SCRAM-SHA-1).
- IP-alapú korlátozások és cloaking: az IP-címek elkendőzése és a kapcsolatok korlátozása DDoS és visszaélések ellen.
- Rate-limiting és anti-flood mechanizmusok: megakadályozzák, hogy egy rosszindulatú kliens túlterhelje a szervert.
Gyakori ircd implementációk
A „ircd” kifejezés ma már több különböző szerverprogramcsaládot jelöl; néhány ismert implementáció:
- UnrealIRCd
- InspIRCd
- ircd-hybrid
- ircd-seven, Charybdis, Bahamut (különböző hálózati fejlesztésekhez és filozófiákhoz igazítva)
Tipikus portok és kapcsolódás
Bár a TCP portok egy csoportját használják, a leggyakoribb beállítások: 6667 (nem titkosított), 6697 (TLS), valamint 6660–6669 és 7000-as sorozatok, amelyeket egyes hálózatok használnak. Szerverek közti linkek lehetnek más, konfigurálható portokon is.
Összefoglalás
Az IRCd tehát az IRC-hálózatok központi szoftvere: kapcsolódásokat kezel, üzeneteket továbbít, csatorna- és felhasználóállapotot tart fenn, valamint lehetőséget ad kiterjesztett szolgáltatások (NickServ/ChanServ), biztonsági beállítások és hálózati összekapcsolások használatára. Míg korábban egyetlen eredeti "ircd" létezett, napjainkban több, különböző célokra optimalizált implementáció létezik, amelyek különböző funkciókat és kiterjesztéseket kínálnak.