UnrealIRCd Üçüncü Parti Modüller: Modül Yöneticisiyle Güvenli Kurulum
İçindekiler
UnrealIRCd'nin kendi modülleri çoğu ağın ihtiyacını fazlasıyla karşılar. Ancak bazen çok özel bir özellik istersiniz: farklı bir istatistik komutu, ağınıza özgü bir kanal modu, bir web servisiyle entegrasyon ya da belirli bir saldırı türüne karşı özel bir koruma. Bu noktada topluluk tarafından geliştirilen UnrealIRCd üçüncü parti modül dünyası devreye girer.
Bu rehberde üçüncü parti modülleri nasıl bulacağınızı, UnrealIRCd'nin yerleşik modül yöneticisiyle nasıl kuracağınızı ve en önemlisi bu süreçte hangi güvenlik kurallarına dikkat etmeniz gerektiğini anlatıyoruz.
Üçüncü Parti Modül Nedir?
Üçüncü parti modül, UnrealIRCd'nin çekirdek ekibi dışındaki geliştiriciler tarafından yazılmış modüllerdir. Bunlar genellikle C dilinde yazılır ve UnrealIRCd'nin modül arayüzünü kullanarak yeni komutlar, modlar veya davranışlar ekler. Yapılandırma dosyasında third/ önekiyle yüklenirler; bu önek, modülün resmî dağıtımın parçası olmadığını açıkça gösterir.
Modüllerin yönetimi hakkında genel bilgi için önce modül yönetimi yazımızı okumanızı öneririz.
Modül Yöneticisi
UnrealIRCd, topluluk modüllerini kolayca kurmanızı sağlayan yerleşik bir modül yöneticisi sunar. Modül yöneticisi, topluluk modüllerinin toplandığı resmî bir depoyla çalışır ve modülleri sizin sunucunuzda kaynak koddan derleyerek kurar.
Mevcut modülleri listelemek için sunucu dizininde şu komutu çalıştırın:
./unrealircd module list
Komut, kurulabilecek modülleri kısa açıklamalarıyla birlikte gösterir. Bir modül hakkında daha fazla bilgi almak için:
./unrealircd module info third/modul-adi
Modül Kurmak
Kurmak istediğiniz modülü seçtikten sonra:
./unrealircd module install third/modul-adi
Modül yöneticisi kaynak kodunu indirir, sunucunuzdaki UnrealIRCd sürümüne göre derler ve modül dizinine yerleştirir. Kurulum bittiğinde size yapılandırmaya eklemeniz gereken satırı söyler. Genellikle bu bir loadmodule satırıdır:
loadmodule "third/modul-adi";
Bazı modüllerin kendi ayarları vardır; bu ayarları modülün açıklamasında veya kaynak kodunun başındaki belgelerde bulabilirsiniz. Satırı ekledikten sonra yapılandırmayı test edip rehash yapın:
./unrealircd configtest
./unrealircd rehash
Modül Güncellemek ve Kaldırmak
Kurulu modüllerin yeni sürümlerini almak için modül yöneticisinin güncelleme komutunu kullanabilirsiniz. Bir modülü kaldırmak istediğinizde önce yapılandırmadaki loadmodule satırını silip rehash yapın, ardından modül yöneticisiyle dosyayı kaldırın. Sırayı tersine çevirirseniz, yani önce dosyayı silip satırı bırakırsanız, bir sonraki rehash'te yapılandırma hatası alırsınız.
UnrealIRCd Yükseltmelerinde Modüller
Modüller, belirli bir UnrealIRCd sürümüne göre derlenir. UnrealIRCd'yi yeni bir sürüme yükselttiğinizde eski derlenmiş modül dosyaları yeni sürümle çalışmayabilir. Modül yöneticisiyle kurulan modüller, yükseltme işlemi sırasında genellikle otomatik olarak yeniden derlenir. Elle kurduğunuz modüller için bu işi sizin yapmanız gerekir. Yükseltme sürecinin tamamı için sürüm yükseltme rehberimize bakın.
Bir modül yeni sürümle uyumlu değilse sunucu onu yüklemeyi reddeder ve bir hata mesajı gösterir. Bu durumda modülün güncellenmesini beklemeniz veya geçici olarak devre dışı bırakmanız gerekir.
Elle Kurulum ve Riskleri
İnternette, modül yöneticisinin deposunda bulunmayan modüllere de rastlarsınız: forumlarda paylaşılan dosyalar, kişisel kod depoları veya eski sürümler için yazılmış modüller. Bunları elle kurmak mümkündür; ama ciddi riskler taşır.
Modüller sunucu sürecinin içinde, sunucunun bütün yetkileriyle çalışır. Kötü niyetli bir modül şunları yapabilir:
- Kullanıcıların parolalarını ve özel mesajlarını kaydedebilir,
- Oper parolalarını ve cloak anahtarlarını dışarıya sızdırabilir,
- Sunucuya uzaktan erişim sağlayan bir arka kapı açabilir,
- Ağdaki diğer sunuculara zarar verecek komutlar gönderebilir.
Kötü niyetli olmasa bile özensiz yazılmış bir modül, sunucunun çökmesine veya bellek sızıntılarına yol açabilir. Bu yüzden şu kurallara uyun:
- Önce modül yöneticisinin deposuna bakın. Aradığınız özellik orada varsa başka kaynak kullanmayın.
- Kaynak kodunu okuyun. Derlenmiş, kaynağı olmayan modül dosyalarını asla kullanmayın.
- Yazarı araştırın. Modülün kim tarafından, ne zaman yazıldığını ve hâlâ bakımının yapılıp yapılmadığını kontrol edin.
- Önce test sunucusunda deneyin. Canlı ağınıza eklemeden önce bir test ortamında çalıştırın.
- Gereksiz modül yüklemeyin. Her ek modül, sunucunuzun saldırı yüzeyini genişletir.
Popüler Modül Türleri
Topluluk modülleri çok çeşitlidir. Genel olarak şu kategorilerde yoğunlaşırlar:
| Tür | Örnek kullanım |
|---|---|
| Ek kanal modları | Kanala özel kısıtlamalar, otomatik davranışlar |
| Ek komutlar | Oper'lar için istatistik veya yönetim komutları |
| Güvenlik | Belirli saldırı türlerine özel korumalar |
| Entegrasyon | Web servisleri, dış veri kaynakları |
| Bilgi | Ek WHOIS satırları, kullanıcı bilgileri |
Bir modülü kurmadan önce aynı işi UnrealIRCd'nin kendi özellikleriyle yapıp yapamayacağınızı düşünün. Örneğin pek çok koruma ihtiyacı spamfilter, güvenlik grupları veya flood koruması ile karşılanabilir.
Ağ Genelinde Tutarlılık
Bir modül kullanıcıların gördüğü bir özelliği (örneğin yeni bir kanal modu) ekliyorsa ağdaki bütün sunucularda yüklü olmalıdır. Aksi hâlde o modu kullanan kanallar sunucular arasında tutarsız davranır. Yalnızca yerel bir oper komutu ekleyen modüller ise tek bir sunucuda bulunabilir. Modülün belgelerinde bu konuda bir not yoksa güvenli tarafta kalıp bütün sunuculara kurun.
Kendi Modülünüzü Yazmak
C bilgisi olan yöneticiler kendi modüllerini de yazabilir. UnrealIRCd'nin modül arayüzü belgelenmiştir ve topluluk deposundaki mevcut modüller iyi birer örnektir. Kendi modülünüzü yazarken bile aynı güvenlik ilkeleri geçerlidir: Kullanıcıdan gelen her veriyi dikkatle doğrulayın, bellek yönetimine özen gösterin ve modülü canlıya almadan önce test edin. Yazdığınız modül başkalarının da işine yarayacaksa topluluk deposuna katkıda bulunmayı düşünebilirsiniz.
Sorun Giderme
| Sorun | Olası neden |
|---|---|
| Modül derlenmiyor | Eksik geliştirme paketi veya sürüm uyumsuzluğu |
| "Module is not compatible" | Modül eski bir UnrealIRCd sürümü için yazılmış |
| Rehash sonrası hata | loadmodule satırında yazım hatası veya eksik ayar |
| Sunucu çöküyor | Modülde hata var; hemen devre dışı bırakın ve log'ları inceleyin |
Bir modül sunucunun çökmesine yol açıyorsa önce loadmodule satırını kaldırıp sunucuyu yeniden başlatın, ardından hatayı modülün geliştiricisine bildirin.
Kurduğunuz Modülleri Kayıt Altında Tutun
Zamanla birkaç üçüncü parti modül kurduğunuzda hangisinin neden kurulduğunu unutmak çok kolaydır. Yapılandırma dosyanızda her loadmodule satırının üstüne kısa bir açıklama yazın: modülün ne işe yaradığı, hangi ihtiyaçtan dolayı kurulduğu ve kurulum tarihi. Ayrıca kurulu modüllerin listesini ve sürümlerini ekip içinde paylaşılan bir notta tutun. Bir güvenlik duyurusu yayımlandığında veya UnrealIRCd'yi yükseltmeden önce bu liste, hangi modüllerin kontrol edilmesi gerektiğini dakikalar içinde görmenizi sağlar. Artık kullanılmayan modülleri düzenli aralıklarla kaldırmak da sunucunuzu sade ve güvenli tutar.
Sonuç
Üçüncü parti modüller UnrealIRCd'yi neredeyse sınırsız biçimde genişletmenizi sağlar; ancak bu güç sorumluluk getirir. Modülleri mümkün olduğunca resmî topluluk deposundan, modül yöneticisiyle kurun, kaynağını bilmediğiniz dosyalardan uzak durun ve her yeni modülü önce test ortamında deneyin. Ağınızı izlemek ve yönetmek için modern araçlar arıyorsanız sıradaki rehberimiz JSON-RPC ve web paneli.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Üçüncü parti modüller güvenli mi?
Modül yöneticisinin kullandığı resmî topluluk deposundaki modüller belirli bir inceleme sürecinden geçer. Bilinmeyen kaynaklardan gelen modüller ise sunucunuzun tüm yetkilerine sahip olacağı için risklidir.
Modül yöneticisi nasıl kullanılır?
Sunucu dizininde ./unrealircd module list, ./unrealircd module install third/modul-adi gibi komutlarla kullanılır.
UnrealIRCd güncelleyince modüllerim çalışmaz mı?
Modüllerin yeni sürüme göre yeniden derlenmesi gerekir. Modül yöneticisiyle kurulan modüller yükseltme sırasında genellikle otomatik olarak yeniden derlenir.


