Services SASL: Ağ Tarafında SASL Kimlik Doğrulamasını Kurmak
İçindekiler
Kullanıcıların bağlandıktan sonra NickServ'e parola göndermesi yıllarca IRC'de kimlik doğrulamanın standart yoluydu. Ancak bu yöntemin bilinen sorunları vardır: Kullanıcı giriş yapmadan önce kanallara girer, cloak geç uygulanır, parola yanlış pencereye yazılabilir. SASL bu sorunları çözer ve modern IRC ağlarında kimlik doğrulamanın tercih edilen yolu hâline gelmiştir. Kullanıcı tarafında SASL'ı nasıl ayarlayacağınızı IRC SASL bağlantı yazımızda anlattık. Bu rehberde ise ağ yöneticisi gözünden services SASL kurulumunu ele alıyoruz.
SASL Ağda Nasıl Çalışır?
SASL'ın ağ tarafındaki işleyişini anlamak, kurulumu ve sorun gidermeyi kolaylaştırır. Süreç şöyle ilerler:
- Kullanıcının istemcisi IRC sunucusuna bağlanır ve IRCv3 yetenek müzakeresi başlatır.
- Sunucu, desteklediği yetenekler arasında
saslolduğunu bildirir. - İstemci
saslyeteneğini talep eder ve kullanacağı mekanizmayı (örneğin PLAIN) bildirir. - IRC sunucusu bu isteği kendisi işlemez; services sunucusuna iletir.
- Services, kimlik bilgilerini kendi veritabanıyla karşılaştırır ve sonucu sunucuya bildirir.
- Sunucu sonucu istemciye iletir. Başarılıysa kullanıcı, bağlantı tamamlanmadan önce hesabına giriş yapmış olur.
Görüldüğü gibi SASL'ın çalışması için hem IRC sunucusunun hem de services'in birlikte yapılandırılması gerekir. IRCv3 yetenek müzakeresi hakkında daha fazla bilgi için IRCv3 özellikleri yazımıza bakın.
1. IRC Sunucusu Tarafı: UnrealIRCd
UnrealIRCd'nin SASL isteklerini services'e iletebilmesi için hangi sunucunun SASL işlerini üstlendiğini bilmesi gerekir. Bu, set bloğundaki SASL sunucusu ayarıyla yapılır:
set {
sasl-server "services.ornekag.net";
}
Buradaki ad, services sunucusunun ağdaki adıyla birebir aynı olmalıdır. Ayrıca services sunucusunun ulines bloğunda tanımlı olduğundan emin olun. Set bloğunun diğer ayarları için UnrealIRCd set bloğu, U-line için UnrealIRCd ulines ve services yazılarımıza bakın.
Değişiklikten sonra sunucuyu rehash edin. Ağınızda birden fazla sunucu varsa bu ayarı bütün sunucularda yapın; kullanıcı hangi sunucuya bağlanırsa bağlansın SASL çalışmalıdır.
2. Services Tarafı: Anope
Anope'ta SASL desteği bir modül olarak gelir. modules.conf içinde SASL modülünü etkinleştirmeniz gerekir. Anope 2.0 serisinde modül adları genellikle m_ önekiyle başlar; daha yeni sürümlerde bu önek kaldırılmış olabilir. Kendi sürümünüzün örnek modules.conf dosyasındaki SASL bölümünü bulun ve yorum işaretlerini kaldırın.
EXTERNAL mekanizması (sertifikayla giriş) için Anope'un TLS modülünün ve sertifika parmak izi desteğinin de etkin olması gerekir. Kullanıcıların sertifika parmak izlerini hesaplarına ekleyebilmesi için NickServ'in CERT komutu da açık olmalıdır. Modül yönetimi için Anope modül yapılandırması yazımıza bakın.
3. Services Tarafı: Atheme
Atheme'de SASL desteği, ana SASL modülü ve her mekanizma için ayrı modüllerden oluşur. atheme.conf içinde SASL ile ilgili loadmodule satırlarını bulun; ana SASL modülünü ve kullanmak istediğiniz mekanizmaların modüllerini (PLAIN, EXTERNAL ve varsa diğerleri) etkinleştirin. Atheme'nin modüler yapısı sayesinde hangi mekanizmaların sunulacağını ayrıntılı olarak seçebilirsiniz.
Mekanizmalar
| Mekanizma | Nasıl çalışır? | Not |
|---|---|---|
| PLAIN | Hesap adı ve parola gönderilir | En yaygın; TLS ile birlikte kullanılmalı |
| EXTERNAL | TLS istemci sertifikasıyla doğrulama | Parola gerektirmez; parmak izi hesaba eklenmeli |
| Challenge-response yöntemleri | Parola ağ üzerinden açıkça gönderilmez | Destek istemciye ve services'e bağlı |
PLAIN mekanizması parolayı gönderdiği için şifresiz bağlantılarda güvensizdir. Bazı ağlar SASL PLAIN'i yalnızca TLS bağlantılarında kabul edecek şekilde yapılandırılır. Ağınızda TLS portlarının açık olduğundan emin olun; bkz. UnrealIRCd listen ve TLS portları.
4. Test Etmek
Yapılandırmayı tamamladıktan sonra SASL destekleyen bir istemciyle test edin:
- İstemcinizde SASL'ı etkinleştirin, hesap adınızı ve parolanızı girin.
- TLS portundan bağlanın.
- Bağlantı sırasında "SASL authentication successful" veya benzeri bir mesaj görmelisiniz.
/whoisçıktınızda hesabınıza giriş yapılmış olduğunu belirten satırı kontrol edin.
Başarısız olursa hem IRC sunucusunun hem de services'in loglarına bakın. Sorunun hangi aşamada yaşandığı genellikle loglarda açıkça görünür.
Sık Karşılaşılan Sorunlar
| Belirti | Olası neden | Çözüm |
|---|---|---|
| Sunucu sasl yeteneğini sunmuyor | SASL sunucusu ayarı yapılmamış veya services bağlı değil | set bloğunu ve services bağlantısını kontrol edin |
| SASL isteği zaman aşımına uğruyor | Sunucu adı services adıyla eşleşmiyor | sasl-server değerini düzeltin |
| Kimlik doğrulama başarısız | Hesap adı veya parola yanlış | Bilgileri NickServ ile manuel test edin |
| EXTERNAL başarısız | Parmak izi hesaba eklenmemiş | Kullanıcı CERT ADD yapmalı |
| Bazı sunucularda çalışıyor, bazılarında çalışmıyor | Ayar bütün sunucularda yapılmamış | Bütün sunucuların yapılandırmasını eşitleyin |
SASL'ı Zorunlu Hâle Getirmek
Bazı ağlar, belirli IP aralıklarından veya bütün bağlantılardan SASL ile kimlik doğrulamasını zorunlu tutar. Bu özellikle istismarın yoğun olduğu kaynaklara (örneğin bazı VPN veya bulut sağlayıcıları) karşı etkili bir önlemdir: Bu kaynaklardan gelen bağlantıların yalnızca kayıtlı ve giriş yapmış hesaplarla mümkün olmasını sağlar. UnrealIRCd'nin güvenlik grupları ve ilgili ayarlar bu tür politikaları uygulamanıza izin verir. Ayrıntılar UnrealIRCd security-group ve reputation yazımızda.
Kullanıcıları Bilgilendirmek
SASL'ı kurduktan sonra kullanıcılarınızı bu özellikten haberdar etmek önemlidir. Ağınızın web sitesine popüler istemciler için kısa SASL kurulum talimatları ekleyin. NickServ'in kayıt sonrası gönderdiği mesaja SASL kullanımını öneren bir satır eklemek de etkili bir yoldur. Kullanıcılar SASL'a geçtikçe parola sızıntıları, nick çakışmaları ve kanal girişinde yaşanan sorunlar belirgin şekilde azalır.
Gerçek Bir Senaryo
Bir topluluk ağı, kullanıcıların sık sık parolalarını yanlışlıkla kanallara yazdığını ve kayıtlı kullanıcılara özel kanallara girişte sorun yaşadığını fark ediyor. Ağ yöneticileri bütün UnrealIRCd sunucularında SASL sunucusu ayarını yapıyor, Anope'ta SASL ve TLS modüllerini etkinleştiriyor ve EXTERNAL için NickServ CERT komutunu açıyor. Ardından web sitesinde mIRC, HexChat ve diğer popüler istemciler için kısa rehberler yayımlıyor. Birkaç ay içinde aktif kullanıcıların büyük kısmı SASL'a geçiyor ve yardım kanalına gelen identify sorunları neredeyse sıfıra iniyor.
Sonuç
Services SASL kurulumu iki tarafın uyumuna dayanır: IRC sunucusunun SASL isteklerini doğru services sunucusuna iletmesi ve services'in gerekli modüllerle bu istekleri işlemesi. Ayarı bütün sunucularda yapın, PLAIN'i TLS ile birlikte kullanın, EXTERNAL'ı etkinleştirin ve kullanıcılarınızı bilgilendirin. Anope'un modül yapısını daha yakından tanımak için sıradaki rehberimiz Anope modül yapılandırması.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
SASL için IRC sunucusunda ayar gerekir mi?
Evet. Sunucunun SASL isteklerini hangi services sunucusuna ileteceğini bilmesi gerekir. UnrealIRCd'de bu set bloğundaki ilgili ayarla yapılır.
Services tarafında SASL için ne yapmalıyım?
Anope'ta SASL modülünü, Atheme'de SASL ile ilgili modülleri yüklemeniz ve istediğiniz mekanizmaları etkinleştirmeniz gerekir.
SASL çalışıyor mu nasıl test ederim?
SASL destekleyen bir istemcide hesap bilgilerinizi girip bağlanın. Bağlantı sırasında başarılı giriş mesajı görmelisiniz.


