Ubuntu 16.04 LTS üzerinde InspIRCd IRC Sunucusu Kurma

Internet Relay Chat (IRC), internetin ilk günlerinden beri var olan bir şeydir. Bu kılavuzda, ek IRC hizmetleri için Atheme ile InspIRCd ile bir IRC sunucusunun nasıl kurulacağını göstereceğim. InspIRCd, sıfırdan yazılan birkaç IRC sunucusundan ve gelişmiş bir modül sistemi kullanılarak ayarlanabilir sayıda özellik sağlayan birkaç IRC sunucusundan biridir.

Ön şartlar

InspIRCd herhangi bir örnek boyutu ile çalışmalıdır. Minimum sistem gereksinimleri 700MHz CPU ve 300MB RAM'dir.

Sistemi güncelleyin

Bir sudo kullanıcısı olarak oturum açarken, sistemi aşağıdaki gibi en son kararlı duruma güncelleyebilirsiniz:

apt-get update && apt-get upgrade 

Güvenlik duvarını yapılandırma

Önce VPS'yi biraz sertleştirelim. ufwBirkaç kuralı etkinleştirip ekleyeceğiz. Bağlantı noktalarını yapılandırmaya başlayalım:

ufw allow 22/tcp
ufw allow 6667/tcp
ufw enable

Güvenlik duvarı, iletişim kutusundan değişiklikleri kabul etmesini ister. Sadece Yevet için basın .

Command may disrupt existing ssh connections. Proceed with operation (y|n)?

InspIRCd'yi yükleyin ve yapılandırın

Sonra InspIRCd'yi kurabiliriz, Ubuntu 16.04 için bu paket ana depodan temin edilebilir.

apt-get install inspircd 

Yükleme tamamlandıktan sonra hizmeti yapılandırmaya başlayabiliriz. Ana yapılandırma /etc/inspircd/inspircd.confdosyada bulunabilir ve bir XML dosyası düzenine sahiptir.

nano /etc/inspircd/inspircd.conf

İlk olarak serveretiketi arayın . Bu etiket, sunucunuzun / ağınızın ayrıntılarını girdiğiniz yerdir, bu ayarların çoğu kullanıcılarınız tarafından görülebilir.

  • name: Sunucunuzun ana bilgisayar adı. Çözülmesi gerekmez, ancak doğru sözdizimi olması gerekir (örneğin:) sub.example.net.
  • description: Sunucu açıklaması.
  • id: Bu sunucu için kullanılacak SID. SID çakışması olmadığı sürece bu önerilmemelidir. Bu üç karakter uzunluğunda olmalıdır. İlk karakter bir rakam [0-9], kalan iki karakter harf [AZ] veya rakam olabilir.
  • network: İstemcilere bağlanıldığında verilen ağ adı. Ağdaki tüm sunucularda aynı olmalı ve boşluk içermemelidir.

Rehberimizde aşağıdakileri kullanacağız:

<server name="irc.example.net"
        description="My EXAMPLE.NET server"
        id="5AA"            
        network="ExampleNET">

Orijinal etiketi yukarıdaki etiketle değiştirin.

Ardından, adminetiketi arayın . Bu ayarlar sunucunuzun yönetim detaylarıdır. /ADMINKomutu yazdığınızda gösterilirler .

  • name: Gerçek ad
  • nick: Takma ad (tercihen ağda kullandıklarınız).
  • email: e. Geçerli olması gerekmez, ancak bu adres sorunlarınız olması durumunda kullanıcılarınızın sizinle iletişim kurması gereken adres olacaktır.

Yöneticiyi kullanalım Xenial:

<admin name="Xenial Xerius"
   nick="xenial"
   email="[email protected]">

Şimdi bind address. Bu etiket hizmeti açmak için kullanılır. Varsayılan olarak localhost IP'sini ( 127.0.0.1) görürsünüz . Bu, hizmete dış dünya tarafından ulaşılamayacağı anlamına gelir. Hiç adres kullanmadan hizmetimizi açalım. Bu, hizmetin makinenin sahip olduğu herhangi bir ethernet arabirimine bağlanmasına neden olur:

<bind address="" port="6667" type="clients">

Bir sonraki etiket etiket olacaktır power. Bu etiket iki şifre tanımlar.

  • diepass: Bir sunucuyu kapatmak istedikleri takdirde operatörlerin kullanacağı parola.
  • restartpass: Bir sunucuyu yeniden başlatmaları gerekiyorsa operatörlerin kullanması için parola.

Bu varsayılan şifreleri değiştirmek en iyisidir:

<power diepass="die123" restartpass="restart123" pause="2">

Değiştireceğimiz son ayarlar operayarlar. Bunlar operatör girişlerini tanımlar.

  • name: işlem yapmak için kullanılan operatör girişi (Örnek:) /oper name password.
  • password: tüysüz ve düz metin
  • host: Hangi ana bilgisayar adlarının / IP'lerinin çalışmasına izin verilir. Birden çok seçenek boşluklarla ayrılabilir ve CIDR'lere izin verilir. Bu bölüm için *veya öğesini kullanabilirsiniz @.
  • type: Bu ne tür bir iştir. Blok yukarıdaki üç sınıfları zaten tanımlanmış olmalıdır: NetAdmin, GlobalOpve Helper. NetAdminKullanacağımız biridir.

operAşağıdaki içeriği kullanarak etiketi değiştirin . Örneğimiz @için ana bilgisayar için " " kullanacağımızı unutmayın . Bir üretim ortamında, bunun kullanılması arzu edilmez:

<oper name="xenial"
   password="mypassword"
   host="*@*"
   type="NetAdmin">

Hizmeti yeniden başlatmadan önce motdve rulesdosyalarını düzenleyin :

nano /etc/inspircd/inspircd.motd

Bunu kendinizle değiştirin, örneğin:

This is the motd of example.net. Here you can list planned outages or information your users need to know about this IRC server.

Son olarak kural dosyalarını düzenleyin.

nano /etc/inspircd/inspircd.rules

Kendi kurallarınızı ekleyin, örneğin:

The first rule of Fight Club is: You do not talk about Fight Club. The second rule of Fight Club is: You DO NOT TALK ABOUT FIGHT CLUB! 

Artık her şey ayarlandı, IRC hizmetini yeniden başlatın:

service inspircd restart

Her şeyin çalıştığını doğrulamak için netstataracı sorgulayın :

netstat -tulpn | grep -i inspircd

inspircdPort üzerinden dinleyerek programı listelemelidir 6666:

tcp6       0      0 :::6667                 :::*                    LISTEN      31313/inspircd
udp        0      0 0.0.0.0:39335           0.0.0.0:*                           31313/inspircd

Sunucuyu test etmek için bir terminal IRC istemcisi kurabiliriz. Windows'ta mIRC gibi bir program kullanabilirsiniz. Örneğimizde weechat kullanacağız. Bu, terminal oturumunda kullanılabilen metin tabanlı bir IRC istemcisidir.

Weechat uygulamasını depolardan yükleyin:

apt-get install weechat 

Bu uygulama yüklendikten sonra, şu IRC istemcisini çalıştırın:

weechat

Sunduğumuz tüm komutları görüntülemek için yardım komutunu isteyebilirsiniz:

/help

Weechat'tan çıkmak için aşağıdaki komutu yazabilirsiniz:

/quit    

Yerel sunucumuzu weechat'taki bir bağlantıya ekleyin:

/server add local localhost

Şimdi 'local' adlı bağlantı profiline bağlanabiliriz:

/connect local

Terminal penceresinde motd ve kurallarımızın açıldığını göreceksiniz.

Kendinizi bir operatöre tanıtmak için aşağıdakileri yazın:

/oper xenial mypassword

Bu bize başarı hakkında bir onay gösterecektir:

22:40:34   local  -- | User mode [+o] by irc.example.net
22:40:34   local  -- | You are now a NetAdmin

IRC sunucumuz için bu kadar.

IRC hizmetlerini yükleme - Atheme

Atheme, yüksek ölçeklenebilirlik gereksinimleri olan büyük IRC ağları için tasarlanmış IRC ağları için bir dizi hizmettir. IRC ağınıza NickServ (Takma Ad Kaydı) gibi ek hizmetler ekler.

Atheme, Ubuntu deposunda bulunabilir:

apt-get install atheme-services

İkili dosyalar yüklendikten sonra, örnek yapılandırma dosyasını ayıklayın ve athemeklasöre kopyalayın:

gunzip /usr/share/doc/atheme-services/examples/atheme.conf.example.gz
cp /usr/share/doc/atheme-services/examples/atheme.conf.example /etc/atheme/atheme.conf

Ardından, bu yapılandırma dosyasını düzenleyin:

nano /etc/atheme/atheme.conf

İlk önce loadmoduleprotokol komutunu arayın . Bu şu şekilde tanımlanmalıdır:

loadmodule "modules/protocol/charybdis";

Aşağıdaki charybdisprotokolle değiştirin inspircd:

loadmodule "modules/protocol/inspircd12";

Hizmet için bir sonraki arama name:

name = "services.int";

services.intIRC sunucunuzun etki alanı adıyla veya IP adresiyle eşleşecek şekilde değiştirin :

name = "services.irc.example.net";

Bu yapıldıktan sonra sayısal olarak arama yapın:

numeric = "00A";

Şimdi bunu daha önce kullanılan sunucu etiketinde kullanılan rakamdan farklı bir değere değiştirin.

numeric = "77C";

Bu yapıldıktan sonra, ağ adını yapılandıralım. Aramak netname:

netname = "misconfigured network";

Bu değeri sunucu etiketindeki ağ parametresiyle değiştirin.

netname = "ExampleNET";

Şunun değerini değiştirin hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Şunları kaldırın .misconfigured:

hidehostsuffix = "users";

Ardından yönetici adını daha önce kullandığımız adla değiştirin:

adminname = "xenial";

İle daha adminemailönce kullanılan ilişkili e-postayı eşleştirin:

adminemail = "[email protected]";

Bu yapıldığına göre, hizmetlerimiz için bir yukarı bağlantı oluşturmamız gerekiyor. İki uplinkkod bloğunu bulun ve hepsini yorumlayın. Komuttan /*önce uplink{ve */kapanış ayracı sonuna ekleyin .

Aşağıdaki gibi görünecektir:

/* this is an example for using an IPv6 address as an uplink */
/*
uplink "irc6.example.net" {
        host = "::1";
        password = "linkage";
        port = 6667;
};
*/

Ardından, kendi uplink'imizi ekleyin. Bu yukarı bağlantı yalnızca localhost'umuzun IP'sinde ve bağlantı noktasında çalışır 7001. Süper gizli bir şifre belirtin (daha sonra kullanacağız):

uplink "services.irc.example.net" {
    host = "127.0.0.1";

    // password
    // If you want to have same send_password and accept_password, you
    // can specify both using 'password' instead of individually.
    password = "SuperSecret123456";

    port = 7001;
 };

Son olarak servis tanımlarımızı arayın. nickservÖnce blokla başlayın .

Nickserv bloğunda hostetiketi arayın ve şu şekilde değiştirin ExampleNet/services/NickServ:

nickserv {

    ...<<truncated>>...

    /* (*)host
     * The hostname we want NickServ to have.
     */
    host = "ExampleNet/services/NickServ";

    /* (*)real
     * The realname (gecos) information we want NickServ to have.
     */
    real = "Nickname Services";

    ...<<truncated>>...

Değiştir hostname tagde diğer tüm hizmetleri için:

nickserv:  ExampleNet/services/NickServ
chanserv:  ExampleNet/services/ChanServ
global:    ExampleNet/services/Global
infoserv:  ExampleNet/services/InfoServ
operserv:  ExampleNet/services/OperServ
saslserv:  ExampleNet/services/SaslServ
memoserv:  ExampleNet/services/MemoServ
gameserv:  ExampleNet/services/GameServ
botserv:   ExampleNet/services/BotServ
groupserv: ExampleNet/services/GroupServ
hostserv:  ExampleNet/services/HostServ
helpserv:  ExampleNet/services/HelpServ
alis:      ExampleNet/services/ALIS

Bu yapıldıktan sonra, yapılandırma dosyasını kaydedin ve çıkın.

Hepsini test etmek için atheme-servicesikili dosyayı çalıştırın :

atheme-services

Bu size tam olarak çalışıp çalışmadığını söylemelidir. Aşağıda gösterildiği gibi çıktı almıyorsanız, geri dönün ve yapılandırma dosyasında herhangi bir hata olup olmadığını kontrol edin:

[19/02/2018 23:06:24] db-open-read: database '/var/lib/atheme/services.db' does not yet exist; a new one will be created.
[19/02/2018 23:06:24] pid 1929
[19/02/2018 23:06:24] running in background mode from /

Şimdi hizmetler dosyasını düzenleyerek hizmeti etkinleştirin:

nano /etc/default/atheme-services

ENABLEDDeğeri değiştirin :

DAEMON_OPTS=""
ENABLED=1

Şimdi hizmeti başlatabiliriz:

service atheme-services restart

Durumunu kontrol edin:

service atheme-services status

Bu, benzer sonuçlar döndürür:

● atheme-services.service - LSB: Atheme-services daemon init.d script
   Loaded: loaded (/etc/init.d/atheme-services; bad; vendor preset: enabled)
   Active: active (running) since Wed 2018-02-19 23:45:05 UTC; 8s ago
     Docs: man:systemd-sysv-generator(8)

Feb 19 23:45:05 vultr.guest atheme-services[2810]: Starting Atheme IRC Services: atheme-service
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] atheme 6.0.11 is start
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] Module operserv/sgline
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] module_load(): module
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] /etc/atheme/atheme.con
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] db-open-read: database
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] pid 2824
Feb 19 23:45:05 vultr.guest atheme-services[2810]: [19/02/2018 23:45:05] running in background
Feb 19 23:45:05 vultr.guest atheme-services[2810]: .
Feb 19 23:45:05 vultr.guest systemd[1]: Started LSB: Atheme-services daemon init.d script.

Tamamlanmadan önce, Atheme hizmetlerimizi InspIRCd'ye eklememiz gerekiyor:

nano /etc/inspircd/inspircd.conf

Dosyanın sonuna şu satırları ekleyin:

<bind address="127.0.0.1" port="7001" type="servers">

<uline server="services.irc.example.net">

<link name="services.irc.example.net"
  ipaddr="127.0.0.1"
  port="7001"
  allowmask="127.0.0.1"
  sendpass="SuperSecret123456"
  recvpass="SuperSecret123456">

<chanprotect noservices="no"
         qprefix="~"
         aprefix="&">

# Modules needed for services to function
<module name="m_chanprotect.so">
<module name="m_halfop.so">
<module name="m_services_account.so">
<module name="m_deaf.so">
<module name="m_spanningtree.so">
<module name="m_globops.so">
<module name="m_cban.so">
<module name="m_svshold.so">
<module name="m_hidechans.so">
<module name="m_servprotect.so">
<module name="m_chghost.so">
<module name="m_namesx.so">
<module name="m_uhnames.so">    

Şimdi InspIRCd hizmetini yeniden başlatın:

service inspircd restart

Her şeyin düzgün çalıştığından emin olun:

service inspircd status

Şimdi weechat istemcimizi tekrar başlatın:

weechat

Yerel sunucumuza bağlanın:

/connect local

Atheme hizmetlerimizden birinin hemen açıldığını göreceksiniz: NickServ. Sizi kendisi hakkında bilgi ile karşılayacaktır.

23:12:48   local  -- | NickServ (NickServ@ExampleNet/services/NickServ): Welcome to ExampleNet,
                 | root! Here on ExampleNet, we provide services to enable the registration of
                 | nicknames and channels! For details, type /msg NickServ help and /msg
                 | ChanServ help.

NickServ'i sorgulayabilir ve kullanılabilir komutlarını aşağıdakilerle öğrenebilirsiniz:

/msg NickServ help


Leave a Comment

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

26 Büyük Veri Analitik Tekniğine Bir Bakış: 1. Bölüm

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Nintendo Switch Hakkında Son Derece Çılgın 6 Şey

Birçoğunuz Switch'in Mart 2017'de çıkacağını ve yeni özelliklerini biliyorsunuz. Bilmeyenler için, 'Switch'i 'olmazsa olmaz bir gadget' yapan özelliklerin bir listesini hazırladık.

Hala Teslim Edilmeyen Teknoloji Sözleri

Hala Teslim Edilmeyen Teknoloji Sözleri

Teknoloji devlerinin sözlerini yerine getirmesini mi bekliyorsunuz? teslim edilmeyenleri kontrol edin.

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Referans Mimarisi Katmanlarının İşlevleri

Büyük Veri Mimarisindeki farklı katmanları ve işlevlerini en basit şekilde öğrenmek için blogu okuyun.

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zeka Süreç Otomasyonunu Nasıl Bir Sonraki Seviyeye Taşıyabilir?

Yapay Zekanın küçük ölçekli şirketler arasında nasıl popüler hale geldiğini ve onları büyütme ve rakiplerine üstünlük sağlama olasılıklarını nasıl artırdığını öğrenmek için bunu okuyun.

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA: İnsan-AI Ayrımı İçin Ne Kadar Geçerli Bir Teknik Kalabilir?

CAPTCHA, son birkaç yılda kullanıcıların çözmesi oldukça zorlaştı. Gelecekte spam ve bot tespitinde etkili kalabilecek mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Teknolojik Tekillik: İnsan Uygarlığının Uzak Bir Geleceği mi?

Bilim hızla gelişip birçok çabamızı üstlendikçe, kendimizi açıklanamaz bir Tekilliğe maruz bırakmanın riskleri de artıyor. Okuyun, tekillik bizim için ne anlama gelebilir.

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp ve Uzaktan Sağlık Hizmeti: Gelecek Burada

Teletıp, uzaktan sağlık hizmetleri ve gelecek nesiller üzerindeki etkisi nedir? Pandemi durumunda iyi bir yer mi değil mi? Bir görünüm bulmak için blogu okuyun!

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Hackerların Nasıl Para Kazandığını Hiç Merak Ettiniz mi?

Bilgisayar korsanlarının çok para kazandığını duymuş olabilirsiniz, ancak bu kadar parayı nasıl kazandıklarını hiç merak ettiniz mi? Hadi tartışalım.

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

macOS Catalina 10.15.4 Ek Güncellemesi Çözmekten Daha Fazla Soruna Neden Oluyor

Son zamanlarda Apple, sorunları gidermek için macOS Catalina 10.15.4'ü ek bir güncelleme yayınladı, ancak güncelleme, mac makinelerinde tuğla oluşmasına neden olan daha fazla soruna neden oluyor gibi görünüyor. Daha fazla bilgi edinmek için bu makaleyi okuyun