Eggdrop SASL Ayarları: Bağlanırken Otomatik Kimlik Doğrulama
İçindekiler
Bir botun services hesabına giriş yapmasının klasik yolu, bağlandıktan sonra NickServ'e parola içeren bir mesaj göndermektir. Bu yöntem çalışır ama bazı sorunları vardır: Bot, giriş yapmadan önce kanallara girebilir; kayıtlı kullanıcılara özel kanallara giremez; cloak (gizli host) giriş yapılana kadar uygulanmaz ve botun gerçek IP adresi kısa bir süre görünür. Eggdrop SASL bu sorunları çözer: Kimlik doğrulama, bağlantı tamamlanmadan, IRCv3'ün yetenek müzakeresi aşamasında yapılır.
SASL Nedir?
SASL (Simple Authentication and Security Layer), farklı protokollerde kullanılan genel bir kimlik doğrulama çerçevesidir. IRC'de IRCv3 kapsamında sasl yeteneği olarak uygulanır. İstemci sunucuya bağlanırken bu yeteneği talep eder, ardından seçtiği yöntemle kimlik bilgilerini gönderir; services hesabı doğrularsa bağlantı tamamlanır. IRCv3'ün diğer özellikleri için IRCv3 özellikleri yazımıza, services tarafındaki işleyiş için services SASL yazımıza bakabilirsiniz.
SASL'ın Avantajları
- Kanallara girmeden önce giriş: Bot, kayıtlı kullanıcılara özel kanallara sorunsuz girer.
- Erken cloak: Ağ kayıtlı kullanıcılara host gizleme uyguluyorsa, cloak bağlantı anında uygulanır.
- Zamanlama sorunu yok: NickServ'in geç cevap vermesi veya mesajın kaybolması gibi sorunlar ortadan kalkar.
- Sertifikalı giriş: EXTERNAL mekanizmasıyla parola göndermeden giriş yapılabilir.
Desteklenen Mekanizmalar
| Mekanizma | Nasıl çalışır? | Ne zaman kullanılır? |
|---|---|---|
| PLAIN | Hesap adı ve parola gönderilir | Genel kullanım; mutlaka TLS ile birlikte |
| EXTERNAL | İstemci sertifikasıyla doğrulama | Sertifika parmak izi hesaba eklenmişse |
| ECDSA tabanlı yöntemler | Anahtar çiftiyle imza | Bazı ağlarda ve services yazılımlarında |
PLAIN mekanizması parolayı sunucuya gönderir. Bağlantı şifreli değilse parola düz metin olarak gider. Bu yüzden PLAIN'i yalnızca TLS bağlantıyla birlikte kullanın; ayrıntılar SSL bağlantı yazımızda.
Ayarlar
Güncel Eggdrop sürümlerinde SASL ayarları eggdrop.conf'ta yer alır. Tipik bir PLAIN yapılandırması şöyledir:
set sasl 1
set sasl-mechanism 0
set sasl-username "BotHesabi"
set sasl-password "guclu-bir-parola"
set sasl-continue 0
Ayarların anlamları:
- sasl: SASL'ı açar veya kapatır.
- sasl-mechanism: Kullanılacak yöntem. Değerlerin hangi mekanizmaya karşılık geldiği sürüm belgesinde açıklanır.
- sasl-username / sasl-password: Services hesap adı ve parolası.
- sasl-continue: SASL başarısız olursa bağlantıya devam edilip edilmeyeceği. Sıfır olduğunda bot giriş yapamazsa bağlantıyı keser.
Ayar adları ve değerleri sürümden sürüme değişebilir; kendi sürümünüzle gelen eggdrop.conf örneğindeki SASL bölümünü mutlaka okuyun. Eggdrop yapılandırmasıyla ilgili genel bilgiler eggdrop.conf ayarları yazımızda.
Parolayı Korumak
eggdrop.conf dosyasında parola düz metin olarak durur. Bu nedenle dosyanın izinlerini yalnızca botu çalıştıran kullanıcının okuyabileceği şekilde ayarlayın:
chmod 600 eggdrop.conf
Yapılandırma dosyasını başkalarıyla paylaşırken veya yardım isterken parola satırlarını mutlaka silin. Bot hesabı için kişisel hesabınızdan farklı, yalnızca bota ait bir parola kullanın. Böylece parola sızarsa yalnızca botun hesabı etkilenir.
EXTERNAL: Sertifikayla Parolasız Giriş
EXTERNAL mekanizması, botun TLS istemci sertifikasını kimlik olarak kullanır. Kurulum üç adımdan oluşur:
- Bot için bir istemci sertifikası oluşturun ve eggdrop.conf'ta tanımlayın.
- Bot TLS ile bağlandıktan sonra sertifikanın parmak izini services hesabına ekleyin. Anope'ta bu iş genellikle
NickServ CERT ADD, Atheme'de ise benzer bir CERT komutuyla yapılır. sasl-mechanismayarını EXTERNAL'a karşılık gelen değere çekin.
Bu yöntemin en büyük avantajı yapılandırma dosyasında parola tutulmamasıdır. Sertifika dosyası çalınmadığı sürece hesap güvende kalır. Services tarafındaki komutlar için NickServ komutları yazımıza bakın.
Sık Karşılaşılan SASL Hataları
| Mesaj veya belirti | Olası neden | Çözüm |
|---|---|---|
| SASL authentication failed | Hesap adı veya parola yanlış | Bilgileri services üzerinde manuel deneyin |
| Sunucu SASL desteklemiyor | Ağda SASL kapalı veya services bağlı değil | Ağın yardım kanalına danışın |
| Bot bağlantıyı kesiyor | sasl-continue sıfır ve giriş başarısız | Önce hatayı düzeltin, geçici olarak 1 yapın |
| EXTERNAL başarısız | Parmak izi hesaba eklenmemiş | Parmak izini hesaba ekleyin |
| Hesap adı yerine nick kullanılmış | Gruplanmış nickte ana hesap farklı | Ana hesap adını kullanın |
Hata mesajları, botun log dosyasında ve partyline'da görünür. IRC'nin sayısal cevap kodlarını tanımak hata ayıklamayı hızlandırır; IRC hata numerikleri yazımıza bakabilirsiniz.
Gerçek Bir Senaryo
Bir ağdaki destek kanalı yalnızca kayıtlı kullanıcıların girebileceği şekilde kısıtlanmış. Kanalın botu her yeniden bağlantıda bu kanala giremiyor, çünkü NickServ'e identify olmadan kanala girmeye çalışıyor. Botun sahibi önce botu TLS ile bağlanacak şekilde ayarlıyor, ardından SASL PLAIN'i yapılandırıyor. Artık bot sunucuya bağlandığında hesabına zaten giriş yapmış oluyor ve kanala sorunsuz giriyor. Bir sonraki adımda bot için bir sertifika oluşturup EXTERNAL'a geçiyor ve yapılandırma dosyasındaki parolayı tamamen kaldırıyor.
SASL Akışı Adım Adım
SASL'ın arka planda nasıl işlediğini bilmek, hata ayıklarken çok işe yarar. Bot sunucuya bağlanır bağlanmaz önce sunucudan desteklediği yeteneklerin listesini ister. Listede sasl varsa bu yeteneği talep eder. Sunucu talebi kabul ettiğinde bot hangi mekanizmayı kullanacağını bildirir. Sunucu "devam et" anlamına gelen bir cevap verir ve bot kimlik bilgilerini kodlanmış biçimde gönderir. Services bu bilgileri kontrol eder ve sonucu sunucu üzerinden bota iletir. Başarılı olursa bot yetenek müzakeresini bitirir ve bağlantı normal şekilde tamamlanır. Bütün bu süreç birkaç saniyeden kısa sürer. Herhangi bir adımda bir sorun olursa sunucu belirli bir sayısal kodla cevap verir; bu kodlar log dosyasında görülür ve sorunun hangi aşamada yaşandığını gösterir.
Ağın SASL Desteğini Kontrol Etmek
Botu yapılandırmadan önce ağın SASL destekleyip desteklemediğini kendi IRC istemcinizle kontrol edebilirsiniz. Modern istemcilerin çoğu bağlantı sırasında sunucunun sunduğu yetenekleri gösterir. Ayrıca kendi hesabınızla istemcide SASL'ı deneyip başarılı olduğunu görmek, bot tarafındaki sorunları ağ tarafındaki sorunlardan ayırmanızı sağlar. Kendi istemcinizde çalışan bir ayar botta çalışmıyorsa, sorun büyük olasılıkla botun yapılandırmasındadır.
Birden Fazla Ağ
Bir botu farklı ağlarda çalıştırıyorsanız her ağ için ayrı bir bot süreci ve ayrı bir yapılandırma dosyası kullanılır. Her ağda farklı hesap adı ve parola olabileceğini unutmayın; hesap bilgilerini ağdan ağa kopyalamak yerine her biri için bağımsız güçlü parolalar oluşturun.
Sonuç
SASL, botların ağa güvenli ve güvenilir şekilde giriş yapmasının modern yoludur. TLS ile birlikte PLAIN kullanın, mümkünse sertifikayla EXTERNAL'a geçin, yapılandırma dosyasının izinlerini sıkı tutun ve hataları log üzerinden takip edin. SASL desteklemeyen ağlar için klasik yöntem NickServ identify rehberimizde.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
SASL ile NickServ identify arasındaki fark nedir?
SASL, kimlik doğrulamayı bağlantı tamamlanmadan önce yapar. Bot kanallara girdiğinde zaten giriş yapmış olur. NickServ identify ise bağlantıdan sonra mesajla yapılır.
SASL için hangi Eggdrop sürümü gerekir?
Yerleşik SASL desteği güncel 1.9 ve sonrası sürümlerde bulunur. Eski sürümlerde ek scriptler gerekir.
EXTERNAL mekanizması ne zaman kullanılır?
Botunuz bir istemci sertifikası kullanıyorsa ve bu sertifikanın parmak izi services hesabınıza eklenmişse EXTERNAL ile parola göndermeden giriş yapabilirsiniz.


