UnrealIRCd listen Bloğu: Portlar, TLS ve Sunucu Bağlantı Noktaları
İçindekiler
Sunucunuz kimliğini ve kapı kurallarını belirledi; şimdi kapıların nerede olduğunu tanımlama zamanı. UnrealIRCd listen bloğu, sunucunun hangi IP adresi ve port üzerinden bağlantı kabul edeceğini, bu bağlantıların şifreli olup olmayacağını ve kimler tarafından kullanılabileceğini belirler.
En Basit listen Bloğu
listen {
ip *;
port 6667;
}
ip *;sunucunun tüm ağ arayüzlerinde dinleyeceğini söyler.port 6667;dinlenecek portu belirler.
Bu blok şifresiz bir bağlantı noktası açar. Günümüzde ise asıl önemli olan şifreli bağlantıdır.
TLS Portu
listen {
ip *;
port 6697;
options { tls; }
}
options { tls; } satırı, bu porta yapılan bağlantıların TLS ile şifrelenmesini zorunlu kılar. Kullanıcı mIRC'de bağlanırken portun başına + koyarak TLS kullanmak istediğini belirtir:
/server irc.ornekagi.net +6697
TLS bağlantıları için geçerli bir sertifikaya ihtiyaç vardır. Kurulum sırasında oluşturulan kendinden imzalı sertifika test için yeterlidir; ama gerçek kullanıcılar için Let's Encrypt sertifikası kullanmalısınız.
Hangi Portları Açmalı?
| Port | Kullanım | Öneri |
|---|---|---|
| 6697 | TLS istemci bağlantıları | Mutlaka açık olmalı |
| 6667 | Şifresiz istemci bağlantıları | Mümkünse kapatın veya sınırlayın |
| 6900 / 7000 | Sunucu ve services bağlantıları | Yalnızca sunuculara açın |
| 443 / 8443 | WebSocket veya güvenlik duvarı arkasındaki kullanıcılar | İhtiyaca göre |
Bazı kurumsal ağlar ve okul ağları 6667 ve 6697 gibi portları engeller. Bu kullanıcıların bağlanabilmesi için 443 gibi genellikle açık olan bir portta da TLS dinlemesi yapabilirsiniz; ancak bu portu sunucuda başka bir hizmet (örneğin web sunucusu) kullanıyorsa çakışma olur. Bu durumda ayrı bir IP adresi kullanmak gerekir.
Şifresiz Port Tartışması
Şifresiz 6667 portu, bağlantının içeriğini (parolalar dahil) ağ üzerinde düz metin olarak taşır. Kullanıcı NickServ'e şifresiz bir bağlantıdan IDENTIFY gönderdiğinde, aradaki herhangi biri bu parolayı görebilir. Bu nedenle pek çok ağ:
- 6667 portunu tamamen kapatıyor,
- ya da şifresiz bağlananlara TLS'e geçmeleri gerektiğini bildiren bir mesaj gösteriyor.
UnrealIRCd'de, şifresiz bağlantılara uyarı gösteren veya onları kısıtlayan ayarlar bulunur. Yeni kurulan bir ağda en temiz yaklaşım baştan yalnızca TLS kabul etmektir.
Sunucu ve Services İçin Ayrı Port
Diğer sunucuların ve services paketinin bağlanacağı portu, normal kullanıcıların kullanamayacağı şekilde ayırmak iyi bir pratiktir:
listen {
ip *;
port 6900;
options { tls; serversonly; }
}
serversonly seçeneği, bu porta yalnızca sunucu bağlantılarının yapılabileceğini belirtir. Services aynı makinede çalışıyorsa services portunu yalnızca yerel adreste dinletmek daha da güvenlidir:
listen {
ip 127.0.0.1;
port 7000;
options { serversonly; }
}
Bu durumda services ile UnrealIRCd arasındaki trafik makinenin dışına hiç çıkmaz; bu yüzden TLS'siz kullanmak kabul edilebilir. Ayrıntılar için Anope ve UnrealIRCd bağlantısı ve link bloğu yazılarımıza bakabilirsiniz.
Belirli Bir IP'yi Dinlemek
Sunucunuzda birden fazla IP adresi varsa her birinde farklı portlar dinleyebilirsiniz:
listen {
ip 203.0.113.5;
port 6697;
options { tls; }
}
Bu yöntem, örneğin bir IP'yi IRC'ye, diğerini web sunucusuna ayırmak istediğinizde kullanışlıdır.
IPv6 Desteği
UnrealIRCd IPv6'yı destekler. Sunucunuzun IPv6 adresi varsa ip * hem IPv4 hem IPv6 adreslerinde dinlemeyi kapsayabilir; sisteme ve yapılandırmaya bağlı olarak IPv6 için ayrı bir blok tanımlamanız gerekebilir:
listen {
ip 2001:db8::5;
port 6697;
options { tls; }
}
IPv6 kullanıcıları için allow bloklarınızdaki maske ve maxperip ayarlarının da IPv6 adreslerini dikkate aldığından emin olun.
TLS Seçeneklerini Port Bazında Ayarlamak
Belirli bir port için farklı bir sertifika veya farklı TLS ayarları kullanmak isterseniz listen bloğunun içinde tls-options alt bloğu tanımlayabilirsiniz. Bu, örneğin tek sunucunun iki farklı alan adına hizmet verdiği durumlarda işe yarar. Çoğu kurulumda ise tüm portlar için set bloğundaki ortak TLS ayarları yeterlidir.
Değişiklikleri Uygulamak
Yeni bir listen bloğu eklediğinizde rehash ile uygulayabilirsiniz. Mevcut bir portu kaldırdığınızda o porta bağlı kullanıcılar bağlı kalmaya devam eder; yeni bağlantılar ise kabul edilmez.
Değişiklikten sonra portun gerçekten dinlendiğini kontrol etmek için Linux'ta şu komutu kullanabilirsiniz:
ss -tlnp | grep unrealircd
Güvenlik duvarında yeni portu açmayı da unutmayın; dinlenen ama güvenlik duvarında kapalı bir porta dışarıdan bağlanılamaz.
Sık Yapılan Hatalar
- Port zaten kullanımda: Aynı portu başka bir program dinliyor.
ss -tlnpile kontrol edin. - 1024'ün altındaki portlar: Root olmayan kullanıcılar Linux'ta bu portları doğrudan dinleyemez. 443 gibi bir port kullanmak istiyorsanız güvenlik duvarı yönlendirmesi veya sistem yetenekleri (capabilities) gibi yöntemler gerekir.
- TLS portuna
+olmadan bağlanmak: İstemci düz metin gönderir, sunucu anlamaz ve bağlantı kopar. - Sunucu portunu herkese açık bırakmak:
serversonlyolmadan bırakılan bir port gereksiz saldırı yüzeyidir.
Kullanıcıları TLS'e Yönlendirmek
Şifresiz portu bir anda kapatmak, eski ayarlarla bağlanan kullanıcılarınızı habersizce dışarıda bırakabilir. Daha yumuşak bir geçiş için önce birkaç hafta boyunca şifresiz bağlananlara TLS portunu kullanmalarını hatırlatan bir bildirim gösterin, MOTD ve web sitenizde duyuru yapın, ardından şifresiz portu kapatın. mIRC kullanıcılarınız için sunucu listesinde portun başına artı işareti koymayı anlatan kısa bir yardım sayfası hazırlamak destek taleplerini büyük ölçüde azaltır.
TLS'in yalnızca şifreleme değil, kimlik doğrulama da sağladığını unutmayın. Geçerli bir sertifika, kullanıcının gerçekten sizin sunucunuza bağlandığını garanti eder. Kendinden imzalı sertifikalarda istemciler uyarı gösterir; kullanıcılarınıza bu uyarıları körü körüne geçmeyi öğretmek yerine baştan geçerli bir sertifika kullanmak, ortadaki adam saldırılarına karşı onları gerçekten korur.
Port Taramalarına Karşı Dikkat
İnternete açık her sunucu sürekli olarak otomatik port taramalarıyla karşılaşır. Gereksiz portları kapalı tutmak, sunucu portlarını serversonly ile işaretlemek ve mümkünse yalnızca bilinen IP'lere açmak bu taramaların işe yaramamasını sağlar. Hangi portların açık olduğunu düzenli aralıklarla dışarıdan kontrol etmek de iyi bir alışkanlıktır.
Hangi Ayar Nerede?
Port tanımlarını ana yapılandırma dosyasında bir arada tutmak, hangi portun neden açık olduğunu bir bakışta görmenizi sağlar. Her listen bloğunun üstüne kısa bir yorum satırı ekleyin.
Sonuç
listen bloğu küçük ama kritik bir bloktur. Yalnızca TLS kabul eden istemci portları, dışarıya kapalı sunucu portları ve doğru güvenlik duvarı kurallarıyla sunucunuzun kapılarını güvenli hâle getirebilirsiniz. Kapılar hazır olduğuna göre, içeride ağı yönetecek kişiyi tanımlamanın zamanı geldi: oper bloğu.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
IRC için standart portlar hangileridir?
Geleneksel olarak 6667 şifresiz, 6697 ise TLS bağlantı için kullanılır. Bunlar zorunlu değildir ama istemciler tarafından yaygın olarak beklenir.
Şifresiz 6667 portunu kapatmalı mıyım?
Pek çok ağ artık yalnızca TLS kabul ediyor. Eski istemcileri desteklemek zorunda değilseniz şifresiz portu kapatmak güvenliği artırır.
Services için ayrı port gerekir mi?
Zorunlu değildir ama önerilir. Sunucu ve services bağlantıları için yalnızca sunuculara açık, dışarıya kapalı bir port kullanmak saldırı yüzeyini azaltır.


