Eggdrop Botnet Kurulumu: Birden Fazla Botu Birbirine Bağlamak
İçindekiler
Tek bir Eggdrop botu bir kanalı rahatça yönetebilir. Ancak bot düştüğünde kanal korumasız kalır, birden fazla kanalı yönetiyorsanız her botu ayrı ayrı yapılandırmak zahmetli hâle gelir. Eggdrop botnet bu sorunları çözer: Birden fazla bot birbirine bağlanır, kullanıcı listelerini paylaşır, birbirine op verir ve bir bot düştüğünde diğerleri kanalı korumaya devam eder.
Buradaki "botnet" kavramı, kötü amaçlı yazılımlarla anılan botnet'lerden tamamen farklıdır. Eggdrop botnet'i, sahibinin kendi kontrolündeki, IRC ağının kurallarına uygun çalışan meşru kanal botlarının birbirine bağlanmasıdır.
Botnet Neden Kullanılır?
- Yedeklilik: Bir bot düşse bile diğerleri kanalda kalır ve op vermeye devam eder.
- Merkezi yönetim: Kullanıcıları tek bir bota eklersiniz, diğerleri otomatik öğrenir.
- Ortak partyline: Bütün botların yöneticileri aynı partyline'da buluşur.
- Yük dağıtımı: Farklı botlar farklı görevleri üstlenebilir.
Botnet Kavramları
| Kavram | Anlamı |
|---|---|
| Botnet nick | Botun botnet içindeki adı (IRC nickinden farklı olabilir) |
| Hub | Diğer botların bağlandığı merkez bot |
| Leaf | Hub'a bağlanan bot |
| Alternate hub | Ana hub ulaşılamazsa bağlanılacak yedek hub |
| Link | İki bot arasındaki bağlantı |
Eggdrop botnet'leri de IRC ağları gibi ağaç yapısındadır; döngüye izin verilmez. Mimari kavramları hub ve leaf yapısı yazımızda IRC sunucuları için anlatmıştık; mantık burada da aynıdır.
1. Hazırlık: listen Portları
Her botun diğer botların bağlanabileceği bir listen portu olmalıdır. eggdrop.conf'ta:
listen 3333 all
set botnet-nick "Hub"
Leaf botta:
listen 3333 all
set botnet-nick "Leaf1"
botnet-nick tanımlanmazsa botun IRC nicki kullanılır. Botnet nicklerinin sabit olması, IRC'de nick değişse bile botnet bağlantılarının bozulmamasını sağlar. Yapılandırma ayrıntıları için eggdrop.conf ayarları yazımıza bakın.
2. Botları Birbirine Tanıtmak
Hub botun partyline'ında leaf botu tanımlayın:
.+bot Leaf1 leaf1.sunucu.net:3333
Leaf botun partyline'ında hub botu tanımlayın:
.+bot Hub hub.sunucu.net:3333
.+bot komutu, botnet nickini ve bağlanılacak adresi kaydeder. Ayrıca karşı botun IRC'deki host maskesini de eklemek, botun IRC'de tanınmasını ve op alabilmesini sağlar:
.+host Leaf1 *!*@leaf1.sunucu.net
3. Bot Bayraklarını Ayarlamak
Botların birbirine nasıl davranacağı .botattr ile belirlenir. Leaf botun partyline'ında hub için:
.botattr Hub +hp
Hub botun partyline'ında leaf için:
.botattr Leaf1 +s
| Bot bayrağı | Anlamı |
|---|---|
| h | Hub: bu bota otomatik bağlan |
| a | Alternate hub: hub'a ulaşılamazsa buna bağlan |
| p | Bu bottan kullanıcı dosyasını pasif olarak paylaş (al) |
| s | Bu bota kullanıcı dosyasını aktif olarak gönder |
| g | Global paylaşım: bütün kanalların bilgilerini paylaş |
| l | Leaf: bu bot başka botları bağlayamaz |
| r | Reject: bu botun bağlanmasını reddet |
Bayrakların tam listesi ve davranışları sürüme göre ayrıntılı farklılıklar gösterebilir; .help botattr ile kendi botunuzdaki güncel açıklamaları okuyun. Kullanıcı dosyası paylaşımının ayrıntıları userfile paylaşımı yazımızda.
4. Bağlantıyı Kurmak
Leaf botun partyline'ında:
.link Hub
İlk bağlantıda botlar birbirlerine parola belirler ve bu parolayı kaydeder. Sonraki bağlantılarda bu parolayla kimlik doğrulaması yapılır. Leaf'te hub için h bayrağı varsa bot, bağlantı koptuğunda otomatik olarak yeniden bağlanmayı dener.
Bağlantıyı görmek için:
.bots
.bottree
.bottree botnet'in ağaç yapısını görsel olarak gösterir.
5. Bağlantıyı Kesmek
.unlink Leaf1
Bir botu botnet'ten tamamen çıkarmak için önce bağlantıyı kesip ardından .-bot ile kaydını silebilirsiniz.
Kanal Paylaşımı
Botların aynı kanalı birlikte korumasını istiyorsanız her botta kanalı ekleyin ve kanal ayarlarında paylaşımı açın:
.+chan #kanal
.chanset #kanal +shared
Böylece kanalın banları ve kanal bazlı kullanıcı bayrakları botlar arasında paylaşılır. Chanset seçenekleri için chanset kanal ayarları yazımıza bakın.
Botnet Güvenliği
Botnet, botlarınızın birbirine güvenmesi demektir. Bir bot ele geçirilirse paylaşım nedeniyle diğer botlar da etkilenebilir. Bu yüzden:
- Bot listesini kısa tutun: Yalnızca kendi kontrolünüzdeki botları botnet'e ekleyin.
- Host maskelerini dar tutun: Botların IRC'deki maskeleri tam IP veya tam hostla sınırlı olsun.
- Paylaşım yönünü bilinçli seçin: Kullanıcı dosyasını yalnızca güvenilir hub'dan alın.
- Leaf bayrağı: Leaf botlara
lbayrağı vererek başka botları bağlamalarını engelleyin. - Şifreli bağlantı: Botlar farklı sunuculardaysa TLS destekli listen portları kullanın. Bkz. SSL bağlantı.
- Ağ kurallarına uyun: Bazı IRC ağları bir kişinin aynı kanalda çalıştırabileceği bot sayısını sınırlar.
Gerçek Bir Senaryo
Bir topluluğun üç kanalını iki botla korumak istediğinizi düşünelim. Botlardan biri Almanya'daki, diğeri Türkiye'deki farklı sağlayıcılara ait sunucularda çalışsın. Almanya'daki bot hub, Türkiye'deki leaf olur. Kullanıcı kayıtları yalnızca hub'a eklenir ve leaf'e paylaşılır. Her iki bot da üç kanalda bulunur ve kanallar +shared olarak işaretlenir. Bir sağlayıcıda kesinti olduğunda diğer bot kanalları korumaya devam eder; kesinti bittiğinde leaf otomatik olarak hub'a yeniden bağlanır ve aradaki değişiklikleri alır. Bu basit düzen, küçük topluluklar için güçlü bir dayanıklılık sağlar.
Sık Karşılaşılan Sorunlar
| Sorun | Olası neden |
|---|---|
| "Bad password" | Botlardan birinde eski parola kayıtlı; bot kaydını silip yeniden ekleyin |
| Bağlantı kurulamıyor | Adres veya port yanlış, güvenlik duvarı kapalı |
| "Already connected" | Döngü oluşacak bir bağlantı deneniyor |
| Kullanıcılar paylaşılmıyor | Paylaşım bayrakları yanlış veya share modülü yüklü değil |
Botnet'i İzlemek
Botnet bir kez kurulduktan sonra da düzenli kontrol ister. Partyline'da .bots ile hangi botların bağlı olduğunu, .whom ile hangi yöneticilerin botnet genelinde çevrimiçi olduğunu görebilirsiniz. Bağlantı kopmaları log dosyalarına kaydedilir; sık kopan bir bağlantı genellikle ağ sorununa veya sunucu kaynaklarının yetersizliğine işaret eder. Botların saatlerinin senkronize olması da önemlidir, çünkü süreli banlar ve paylaşılan kayıtlar zaman bilgisine dayanır. Sunucularınızda saat senkronizasyon hizmetinin çalıştığından emin olun.
Küçük Başlayın
İlk botnet'inizi kurarken iki botla başlayın ve paylaşımın doğru çalıştığından emin olun. Bir kullanıcı ekleyip diğer botta göründüğünü, bir ban koyup her iki botta da uygulandığını test edin. Her şey beklendiği gibi çalıştıktan sonra yeni botlar eklemek çok daha kolay ve güvenlidir.
Sonuç
Botnet, Eggdrop'u tek başına çalışan bir bottan dayanıklı bir koruma ağına dönüştürür. Botları .+bot ile tanıtın, .botattr ile ilişkilerini belirleyin, .link ile bağlayın ve paylaşımı bilinçli bir şekilde yapılandırın. Kullanıcı dosyalarının botlar arasında nasıl paylaşıldığını öğrenmek için sıradaki rehberimiz userfile paylaşımı.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Eggdrop botnet'i kötü amaçlı botnet ile aynı mı?
Hayır. Eggdrop botnet'i, sahibinin kendi kontrolündeki meşru kanal botlarının birbirine bağlanmasıdır; kötü amaçlı yazılımlarla ilgisi yoktur.
Botnet kurmak için botların aynı sunucuda olması gerekir mi?
Hayır. Botlar farklı sunucularda olabilir; birbirlerinin listen portuna ağ üzerinden bağlanırlar.
Bir bot bağlanmıyor, ilk neye bakmalıyım?
Bot kayıtlarındaki adres ve port bilgisini, listen portunun açık olduğunu ve botnet nicklerinin her iki tarafta doğru yazıldığını kontrol edin.


