Bir IRCd , kısa Internet Relay Chat cini , uygulayan bir uygulamadır IRC protokolü bir başlatılır sunucuya bu sunucu bir hale IRC sunucusu . Farklı kişilerin gerçek zamanlı olarak metin mesajları alışverişi yaparak İnternet üzerinden birbirleriyle iletişim kurmasına olanak tanır . Diğer istemciler gibi bir IRC sunucusuna bağlanan bir program olan IRC Robot ile karıştırılmamalıdır .
Sunucu gelen bağlantılara dinler IRC istemcileri bir dizi TCP bağlantı noktalarına . Sunucu bir IRC ağının üyesi olduğunda, diğer sunucular / arka plan yordamları ile bir veya daha fazla bağlantıyı da korur.
İrcd
terimi başlangıçta tek bir yazılım parçasına atıfta bulundu, ancak sonunda bir IRC arka plan programının herhangi bir uygulaması için genel bir terim haline geldi.
Bu sunucuların çoğu Linux kullanan makinelere kurulur . Böyle bir cihazın kurulumu hızlı ve kolaydır. Ancak yapılandırma daha fazla zaman gerektirir. Birçok web sitesi bir IRCD kurmak için eğitimler sunar.
En çok kullanılan IRCD'ler:
Çok sayıda IRCD, ana IRCD'lerin (özellikle IRCu ve Bahamut ) değiştirilmiş versiyonlarıdır .
Bu sunucuların büyük bir kısmı ücretsiz ve Açık Kaynaklıdır (açık kaynak), bu da mevcut sürümlerin çok sayıda olduğunu açıklamaktadır.
Buna ek olarak, IRC sunucularına genellikle takma adların ve kanalların rezervasyonu gibi işlevler ekleyen hizmetler (Nickserv, Chanserv ...) eşlik eder.
Bir O-hat (Operatörler Hattı) veri bloğudur IRC Sunucu yapılandırma dosyası (ircd.conf, unrealircd.conf ... bağlı IRCd ). Sisteme ağın operatörlerinin kim olduğunu, yani sunucu (lar) üzerinde global düzeyde kontrolü ele alabilecekleri belirtmek için kullanılır. O-hatları genellikle sunucu / ağ yöneticisi veya IRC sunucusu yapılandırma dosyalarına doğrudan erişimi olan bir yönetici tarafından oluşturulur. Bir O-line'ın bir kullanıcıya sistem üzerinde belirli sayıda yetki vermesi gerçeğini ifade eden bir O-line atfedilmesi, kişinin kesinlikle güvenilir olmasını ve ayrıca eylemleri bireysel kanalın ötesinde bir düzeyde yönetebilmesini sağlamak gerekir. yönetimi.
O-line örneğiYapılandırma türü bir IRCd türünden diğerine değişir.
Aşağıdaki örnek, UnrealIRCd altındaki O-line için bir yapılandırma bloğunu gösterir . Belirli bir IrcOp'un tüm bilgilerini ve erişim yetkilerini toplar ve gerektiği kadar operatör bloğu içerebilir. Blok her zaman "Oper <operatör adı>" satırıyla başlar ve ardından açık bir küme ayracı gelir ve her zaman kapalı küme ayracı ve noktalı virgül ile biter. Genellikle noktalı virgül, bir bloğun veya bir yapılandırma satırının sonunu gösterir. Şuna benziyor:
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; };Bloğun içeriğini detaylandırırsak, farklı unsurları fark ederiz:
Operatör Bloğu için, bir işlemden sonra kullanıcı modlarının atanması gibi başka isteğe bağlı parametreler vardır ...
Geçici o-lineHizmet Yöneticisi düzeyinde erişime sahip IrcOps (Hizmet Yöneticileri veya SA), OperServ aracılığıyla O-hatlarını tanımlayabilir . Sunucu yapılandırma dosyasında tanımlananlarla karşılaştırıldığında, bu O-hatları geçici olarak kabul edilebilir çünkü onları kurmak ve kaldırmak çok kolaydır. Ek olarak, yapılandırmanın aktif olması için herhangi bir yeniden okuma gerektirmez ve bundan yararlanan kullanıcı, takma adını (NickServ'e kayıtlı) ve NickServ kimlik şifresini kullanarak bir Oper-up gerçekleştirebilir. Ancak merkezi yapılandırmanın aksine, "can_kline" veya "global" türündeki Oper-flag'leri kullanmak mümkün değildir, ancak + oaAWst .. gibi "eski moda" bayraklar kullanır (bu modlar, UnrealIRCd belgelerinde yeni Oper işaretlerinde yazışmalarıyla belirtilir). Örneğin, bir kullanıcı üzerinde geçici bir O-hattı tanımlamak için, yönetici aşağıdaki komutu girecek ve uygun bayrakları orada ayarlayacaktır:
/MSG OperServ OLINE <pseudonyme> <flags>
Misal: /MSG OperServ OLINE Nickoperateur +owghasW
Bu örnekte, aşağıdaki bayrakları ( + ) ekledik : IrcOps'a ( w ) ve ağdaki herhangi birine ( g ) gönderilen servis mesajlarını görebilen bir operatör ( o ). Ayrıca / helpop ( h ) komutuyla Operatörlerin özel yardımına erişebilir , aynı zamanda hizmetlerin ( a ) yöneticisidir , sunucunun bildirim ( ler ) ini gören ve başka bir kullanıcının a / WHOIS ( W ). Bayraklar büyük / küçük harfe duyarlıdır. Farklı ayrıcalıklar verirler: a , A'dan farklıdır (Sunucu Yöneticisi anlamına gelir).
Geçici O-hattını çıkarmak çok kolaydır. Bunu yapmak için, öncekiyle aynı komutu girin, ancak takma adı eksi simgesiyle ( - ) takip edin .
Misal: /MSG OperServ OLINE Nickoperateur -
Kullanıcı O-line ve geçici operatör haklarını kaybeder.
Bir D-hattı (ya da D: hattı ) 'den inkar doğrultusunda , bir terimdir IRC dille . Gibi K-line , D-çizgi bir IRC ağı üzerinde belirli bir sunucuyu kullanarak bir kullanıcıyı önleyecektir. D-line'ın özelliği, etkilenen kullanıcının sunucuya bağlanamayacak olması (bu, yasaklanmış IP adresiyle olan bağlantıyı hemen kaldıracak), K-line ise kullanıcının bağlantısını bir kez kesecek ( öldürecek ) olmasıdır . sunucu ile bağlantısı kesildiğinde (muhtemelen engellemenin nedenini belirten bir bildirimle MOTD'yi görüntüledikten sonra ). D-hattı genellikle kalıcı saldırganlardan gelen bağlantıları engellemek için kullanılır .
Kill çizgisinden bir K-satırı (veya K: satırı), IRC ağ jargonundaki bir terimdir . K-line'dan etkilenen bir kullanıcının ağdaki belirli bir sunucuya erişimi geçici veya kalıcı olarak reddedilir .
Genel olarak, bir K-hattı bir seferde yalnızca bir sunucu için geçerlidir: yasaklanmış kullanıcı bu nedenle başka bir sunucu üzerinden IRC ağına bağlanabilir. Bununla birlikte, K-çizgisine yakın çok sayıda başka " çizgi " ( G-çizgisi , Z-çizgisi , vb.) Vardır. Örneğin, bir G-hattı, K-hattı ile aynı şekilde hareket eder, ancak bu, bir IRC ağının tüm sunucuları için geçerlidir.
Modern IRC cinleri de izin verebilir IRCops Daemon konfigürasyon dosyalarını (normalde yöneticiler için ayrılmış bir şey) değiştirmeye gerek kalmadan K-çizgileri kurmak. Bazı IRC hizmetleri , örneğin OperServ gibi bu hatları yönetmeye de yardımcı olabilir .
Modlar, kanalları ve kullanıcıları koruma, ayrıcalıklar atama, seçenekleri etkinleştirme araçlarıdır ... Modlar, sunucunun yönetiminden, kanalların ve ayrıca kullanıcıların yönetimine kadar değişen çeşitli seviyelere sahiptir.
Yalnızca bir kanalda veya bir sunucuda ayrıcalıklara sahip bir kullanıcı, bu son ve diğer kullanıcıların modlarını değiştirebilir (erişim düzeyine göre, IrcOp , Admin Services, Kanal operatörü, Half-Op ...). Komutun kullanımı /modetamamen kullanıcı tarafından seçilen IRC istemcisine bağlıdır, sözdizimi aşağıdaki gibidir:
/mode <cible> <mode> [paramètres]Hedef, bir irc kanalı, örneğin #plop veya bir kullanıcının takma adı ( takma adı ) olabilir. Mod, modu tanımlamak veya kaldırmak isteyip istemediğinize bağlı olarak, önünde + veya a - bulunan büyük veya küçük harf biçimindedir. Bazı modlar, özellikle kullanıcı haklarını yönetmek için kullanılanlar olmak üzere parametreler gerektirir.
Örneğin, yalnızca konuk kullanıcıların #plop kanalına girmesine izin vermek için bir operatör aşağıdakileri yapacaktır:
/mode #plop +iAynı kanalda, takma adı "JeanClaude" olan bir kullanıcının operatör haklarını geri çekmek için:
/mode #plop -o JeanClaudeJeanClaude, IP adresini herkese açık olarak göstermek istemiyorsa , şunları yapacak:
/mode JeanClaude +xO, v, l, b ve k modları bir parametre alır.
Bunlar, RFC tarafından tanımlanan en yaygın modlardır , her IRC sunucusu istediği kadar mod eklemekte özgürdür.
Kullanıcılara belirli ayrıcalıklar veren bir kanalın modları aşağıdaki gibidir:
IRC ağlarına yapılan çoğu bağlantı genellikle temiz ve şifresizdir. Genellikle, kullanıcılar buna gerçekten dikkat etmezler, ancak IRC hizmetlerine giriş yapmak için bir parola kullanılması gerektiğinde sorun ortaya çıkar . Şifreler, tüm bağlantı verileri gibi açık olarak iletildiklerinden, ağ trafiğini dinleyen üçüncü bir taraf tarafından potansiyel olarak ele geçirilebilirler.
Bu nedenle çözüm, bilgileri (konuşmalar, parolalar, IrcOp oturum açma bilgileri, vb.) Korumak için verilerin şifrelenmesini içerir . Böylece, sunucuya giren ve çıkan trafik yalnızca yasal alıcı makineler tarafından okunabilir olacaktır. Genel olarak, bir ağın güvenliğini sağlamak için operatörler, koklamayı ve dolayısıyla şifrelerinin çalınmasını önlemek için sistematik olarak güvenli bağlantılar kullanmalıdır .
Bir IRC bağlantısının şifreleme / güvenliği, diğer protokol türleriyle (örneğin HTTPS gibi) kullanılan standart bir süreci takip eder . IRC istemcisi ilk veri (doğrulama ve kamu anahtarların ve sertifikaların alışverişi yapılarak) akacak olan (özel port üzerinden) bir güvenlik tüneli oluşturmak için sunucu ile görüşecek. IRC oturumu ancak bu tünel hazır olduktan sonra başlar. Güvenli bir IRC bağlantısı kullanmak, normal bir bağlantı kullanmaktan farklı değildir, ancak istemcinin bazen sertifika eksik göründüğünde bir uyarı mesajı görüntüleyebilmesi (örneğin, kendi kendine imzalanan sertifikalar).
Genel olarak, sunucu, MOTD'den önce bağlantının özelliklerini görüntüleyerek müşteriye verilerin şifrelendiğini bildirir, örneğin:
-irc.serveur.com- *** You are connected to irc.serveur.com with TLSv1-AES256-SHA-256bits
TLSv1 güvenlik sisteminin versiyonu gösterir, AES 256 bitlik bir anahtar uzunluğu hatdır, SHA 256 olan karma . Bu bilgiler, açık bir şekilde, sunucu veya istemcide kullanılan ve / veya mevcut olan şifreleme protokollerine ve anahtar uzunluklarına bağlı olarak değişir.
Ve daha sonra, Usermode + z istemciye uygulanır ve güvenli olarak işaretlenir. Bu mod aynı zamanda kullanıcının, yöneticiler / operatörler veya diğerleri için ayrılmış kanallar gibi veri şifreleme gerektiren kanallara katılmasına da izin verir.
Bu arada, kullanıcı bir sunucuya bağlandığında ve ikincisinin güvenli bağlantıları destekleyip desteklemediğini öğrenmek istediğinde, sunucuda kullanılabilecek modların listesini gözden geçirmeniz yeterli. Bu bilgi her zaman bağlantı kurulur kurulmaz, MOTD'den önce şu şekilde görüntülenir:
Welcome to the MyServer IRC Network [email protected]
Mod listelerinde (" iowghra ... "), " z " modu görünürse, bu, şifrelemenin sunucu tarafından desteklendiği anlamına gelir. Güvenli bağlantıyı kullanmak için, ayrılmış bağlantı noktasının numarasını bulmak için bir IRCOp veya bir Yönetici ile görüşmeniz gerekir.
Bu teknik her zaman doğru değildir. Ağ serbest modundaki gibi bazı sunucular farklı bir mod kullanır ve diğer IRC'lerde böyle bir mod uygulanmaz.
Çoğu modern IRC istemcisi , güvenli oturumlara ayrılmış bir veya daha fazla bağlantı noktasına sahip bir IRC sunucusuna bağlanmak için işlevler uygular . Bazı istemciler bu işlevleri yerel olarak yönetir ( KVIrc , XChat veya hatta SSL desteği ile derlenmişse Irssi gibi), burada mIRC gibi diğer istemciler OpenSSL gibi şifreleme kitaplıklarının ( örneğin libeay32 .dll ve ssleay32.dll ) eklenmesini gerektirir. . Bu nedenle, güvenli bağlantılara ayrılmış bağlantı noktası aracılığıyla sunucuya bağlanmak yeterlidir; örneğin: 6667 yerine 7000 (Kongre olarak, resmi olmayan).
Bazı müşteriler için, şifreleme kullanmanız gerekeceğini belirtmek için bazen bağlantı komutuna bir parametre eklemek gerekebilir. MIRC altında , port numarasının hemen önüne bir " + " yerleştirmek yeterlidir (örnek :) /server irc.server.com:+6668veya bazen anahtar " -ssl " da kullanılabilir. Müşteriden müşteriye değişir.
Şifreleme sisteminin bir sunucuda uygulanması, derleme hazırlığı sırasında yapılır ( Linux / UNIX veya FreeBSD sistemi çalıştıran bir sunucu için ). Sunucuya bağlı olarak ( UnrealIRCd , Bahamut , vb.), Betik, derleme gerçekleştirilirken şifreleme modüllerini entegre edecek şekilde yapılandırılmalıdır. Bu bazen, kullanıcının sunucunun SSL tipi bağlantıları desteklemesini isteyip istemediğini soran bir soruyu içerir. Cevap evet ise, sistem şifreleme desteğini yüklemek ve sunucu anahtarını ve sertifikayı oluşturmak için OpenSSL veya diğer tip modülleri arayacaktır (bu durumda, resmi bir makam tarafından verilmiş sertifikanız yoksa otomatik olarak imzalanmıştır). Sertifikayı oluşturmak için komut dosyası, kullanıcıya site adı, coğrafi konum vb. Gibi bir dizi soru sorar. Bu adım geçildikten sonra derleme başlatılabilir.
Sonraki adım, güvenli bağlantılara izin veren bağlantı noktalarını belirlemek için sunucuyu doğru şekilde yapılandırmaktır. Bu yapılandırma genellikle dosyada yapılır ircd.confveya unrealircd.confiçinde Block dinle “veya : Sınırı P ”. Güvenli olmayan standart bağlantı noktası numaralarını (çoğunlukla 6667) ve ardından güvenli bağlantı noktalarını belirtir ve sunucuya bu belirli bağlantı noktaları için şifreleme kullanmasını söyleyen gerekli parametreleri ve seçenekleri ekler. Ayrıca, genel anahtarı ve sertifikayı içeren dosyaların tam yolları , IRC sunucusunun ana yapılandırmasına dahil edilmelidir. Genellikle bu dosyalar, yürütülebilir sunucunun bulunduğu klasörde bulunur.
IRC, iletilen verilerin doğruluğunun doğrulanmasını gerektiren bir protokol olduğundan, bu nedenle TCP aktarım modeline dayanır . Bu nedenle bu, bağlantı çok yüksek gecikme, senkronizasyon çözme veya kurtarılamayan paket kaybı yaşarsa, oturumun boş kabul edileceği ve istemci veya sunucu tarafından otomatik olarak sonlandırıldığı anlamına gelir. Bu nedenle, güvenlik tünelinin de aynı kurallara göre çalıştığını söylemeye gerek yok. Bir tarafta veya diğerinde yanıt eksikliği, şifreleme anahtarlarının senkronizasyonunun kaybı veya sadece Ping Zaman Aşımı (aşırı gecikme) tünelin kapanmasına ve bununla birlikte IRC oturumunun sona ermesine neden olur. Bu şekilde veriler, sistem tarafından doğrulanmadan rastgele iletilmez. Güvenli oturum, istemci yeniden bağlandığında sıfırlanır.