Menyiapkan Server IRC InspIRCd pada Ubuntu 16.04 LTS

Chat Relay Internet (IRC) adalah sesuatu yang telah berlaku sejak hari-hari awal internet. Dalam panduan ini, saya akan menunjukkan kepada anda cara menyediakan pelayan IRC dengan InspIRCd dengan Atheme untuk perkhidmatan IRC tambahan. InspIRCd adalah salah satu dari beberapa pelayan IRC yang ditulis dari awal dan satu daripada hanya beberapa pelayan IRC untuk menyediakan beberapa ciri yang dapat disesuaikan melalui penggunaan sistem modul lanjutan.

Prasyarat

  • Contoh pelayan Ubuntu 16.04 LTS x64.
  • Pengguna sudo (atau akaun root) .
  • (Pilihan) Nama DNS untuk contoh anda.

InspIRCd harus berfungsi dengan ukuran instance apa pun. Keperluan sistem minimum adalah CPU 700MHz dan 300MB RAM.

Kemas kini sistem

Semasa log masuk sebagai pengguna sudo, anda boleh mengemas kini sistem ke status stabil terkini seperti berikut:

apt-get update && apt-get upgrade 

Mengkonfigurasi firewall

Pertama mari kita mengeras VPS sedikit. Kami akan membolehkan ufwdan menambah beberapa peraturan. Mari mulakan dengan mengkonfigurasi port:

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

Firewall akan meminta dialog untuk menerima perubahan. Hanya tekan Yuntuk ya.

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

Pasang dan konfigurasikan InspIRCd

Seterusnya kita boleh memasang InspIRCd, untuk Ubuntu 16.04 pakej ini tersedia melalui repositori utama.

apt-get install inspircd 

Sebaik sahaja pemasangan selesai, kita boleh mula mengkonfigurasi perkhidmatan. Konfigurasi utama boleh didapati dalam /etc/inspircd/inspircd.conffail dan mempunyai susun atur fail XML.

nano /etc/inspircd/inspircd.conf

Cari serverteg pertama. Teg ini adalah di mana anda memasukkan butiran pelayan / rangkaian anda, kebanyakan tetapan ini dapat dilihat oleh pengguna anda.

  • name: Nama hos pelayan anda. Ia tidak perlu diselesaikan, tetapi perlu menjadi sintaks yang betul (misalnya:) sub.example.net.
  • description: Penerangan pelayan.
  • id: SID untuk digunakan untuk pelayan ini. Ini tidak boleh dijawab sekiranya terdapat konflik SID. Ini mestilah tiga aksara panjang. Watak pertama mestilah angka [0-9], baki dua aksara mungkin huruf [AZ] atau digit.
  • network: Nama rangkaian yang diberikan pada menyambung kepada pelanggan. Harus sama pada semua pelayan di rangkaian dan tidak mengandungi ruang.

Dalam panduan kami, kami akan menggunakan perkara berikut:

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

Gantikan tag asal dengan yang di atas.

Seterusnya, cari adminteg tersebut. Tetapan ini adalah butiran pentadbiran pelayan anda. Mereka ditunjukkan apabila anda menaip /ADMINarahan.

  • name: Nama sebenar
  • nick: Nama samaran (sebaik-baiknya apa yang anda gunakan di rangkaian).
  • email: alamat emel. Tidak perlu sah tetapi alamat ini akan menjadi pengguna yang harus menghubungi anda dalam kes masalah.

Mari gunakan pentadbir Xenial:

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

Sekarang beralih ke bind address. Teg ini digunakan untuk membuka perkhidmatan. Secara lalai anda akan melihat IP localhost ( 127.0.0.1). Ini bermaksud bahawa perkhidmatan tersebut tidak dapat dihubungi oleh dunia luar. Mari buka perkhidmatan kami dengan tidak menggunakan alamat sama sekali. Ini akan menyebabkan perkhidmatan tersebut terikat pada antara muka ethernet yang dimiliki mesin:

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

Tag seterusnya adalah powertag. Teg ini menentukan dua kata laluan.

  • diepass: Kata laluan untuk digunakan oleh operator sekiranya mereka mahu mematikan pelayan.
  • restartpass: Kata laluan untuk operator digunakan jika mereka perlu memulakan semula pelayan.

Yang terbaik untuk menukar kata laluan lalai ini:

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

Tetapan terakhir yang akan kita ubah adalah opertetapan. Ini menentukan log masuk pengendali.

  • name: log masuk pengendali yang digunakan untuk beroperasi (Contoh:) /oper name password.
  • password: teks yang tidak dibuang dan kosong
  • host: Nama host / IP mana yang dibenarkan untuk dijalankan. Pelbagai pilihan boleh dipisahkan oleh ruang, dan CIDR dibenarkan. Anda hanya boleh menggunakan *atau @untuk bahagian ini.
  • type: Jenis oper apa ini. Blok di atas perlu mempunyai tiga kelas yang telah ditentukan: NetAdmin, GlobalOpdan Helper. Yang NetAdminmerupakan yang akan kita gunakan.

Ubah opertag menggunakan kandungan berikut. Perhatikan bahawa untuk contoh kami, kami akan menggunakan " @" untuk tuan rumah. Dalam persekitaran pengeluaran, tidaklah wajar untuk menggunakannya:

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

Sebelum kita memulakan semula perkhidmatan, edit motddan rulesfail:

nano /etc/inspircd/inspircd.motd

Gantikannya dengan anda sendiri, contohnya:

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

Akhirnya edit fail peraturan.

nano /etc/inspircd/inspircd.rules

Tambah aturan anda sendiri, contohnya:

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! 

Sekarang bahawa semuanya telah disediakan, mulakan semula perkhidmatan IRC:

service inspircd restart

Untuk mengesahkan bahawa semuanya berjalan, tanya netstatalat:

netstat -tulpn | grep -i inspircd

Ia harus menyenaraikan program ini inspircd, mendengar di pelabuhan 6666:

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

Untuk menguji pelayan kita boleh memasang klien IRC terminal. Di Windows anda boleh menggunakan program seperti mIRC. Dalam contoh kita, kita akan menggunakan weechat. Ini adalah klien IRC berdasarkan teks yang dapat digunakan dalam sesi terminal.

Pasang aplikasi weechat melalui repositori:

apt-get install weechat 

Setelah aplikasi ini dipasang, jalankan klien IRC ini:

weechat

Untuk melihat semua arahan weechat yang ditawarkan, anda boleh meminta arahan bantuan:

/help

Untuk keluar dari weechat anda boleh menaip perintah berikut:

/quit    

Tambah pelayan setempat kami untuk sambungan dalam weechat:

/server add local localhost

Sekarang kita boleh menyambung ke profil sambungan bernama 'local':

/connect local

Anda akan melihat motd dan peraturan kami muncul di tetingkap terminal.

Untuk mempromosikan diri anda kepada pengendali, ketik perkara berikut:

/oper xenial mypassword

Ini akan menunjukkan kepada kami suatu pengesahan kejayaan:

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

Itu sahaja untuk pelayan IRC kami.

Memasang perkhidmatan IRC - Atheme

Atheme adalah satu set perkhidmatan untuk rangkaian IRC yang direka untuk rangkaian IRC yang besar dengan keperluan skalabiliti yang tinggi. Ia menambah perkhidmatan tambahan seperti NickServ (Nickname Pendaftaran) ke rangkaian IRC anda.

Atheme boleh didapati di repositori Ubuntu:

apt-get install atheme-services

Setelah binari dipasang, ekstrak contoh fail konfigurasi dan salin ke athemefolder:

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

Seterusnya, edit fail konfigurasi ini:

nano /etc/atheme/atheme.conf

Cari dahulu loadmodulearahan protokol. Ini harus ditakrifkan sebagai berikut:

loadmodule "modules/protocol/charybdis";

Gantikan charybdisdengan protokol inspircd:

loadmodule "modules/protocol/inspircd12";

Cari perkhidmatan seterusnya name:

name = "services.int";

Tukar services.intagar sesuai dengan nama domain atau alamat IP pelayan IRC anda:

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

Setelah ini dilakukan mencari angka:

numeric = "00A";

Sekarang ubahnya kepada nilai yang berbeza daripada angka yang digunakan dalam tag pelayan yang digunakan sebelum ini.

numeric = "77C";

Setelah ini selesai, mari konfigurasikan nama rangkaian. Carian untuk netname:

netname = "misconfigured network";

Tukar nilai ini kepada parameter rangkaian dalam teg server.

netname = "ExampleNET";

Tukar nilai hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Keluarkan .misconfigured:

hidehostsuffix = "users";

Seterusnya tukar nama pentadbir menjadi yang pernah kita gunakan sebelumnya:

adminname = "xenial";

Padankan dengan adminemaile-mel yang digunakan sebelum ini:

adminemail = "[email protected]";

Setelah ini selesai, kita perlu membuat uplink untuk perkhidmatan kita. Cari dua uplinkblok kod dan hantarkan semuanya. Tambahkan /*sebelum uplink{arahan dan */di hujung pendakap penutup.

Ia akan kelihatan seperti berikut:

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

Seterusnya, tambahkan pautan atas kami sendiri. Pautan atas ini hanya akan dijalankan di IP localhost kami, dan di port 7001. Tentukan kata laluan rahsia super (kami akan menggunakannya kemudian):

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;
 };

Akhirnya cari definisi perkhidmatan kami. Mulakan dengan nickservblok pertama.

Di blok nickserv, cari hostteg dan ubahnya menjadi 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>>...

Tukar hostname taguntuk semua perkhidmatan lain juga:

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

Setelah ini selesai, simpan dan tutup fail konfigurasi.

Untuk menguji semuanya, jalankan atheme-servicesperduaan:

atheme-services

Ini harus memberitahu anda sama ada ia berfungsi atau tidak. Sekiranya anda tidak menerima output seperti yang ditunjukkan di bawah ini, kembalilah dan periksa sebarang kesalahan dalam fail konfigurasi:

[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 /

Sekarang aktifkan perkhidmatan dengan mengedit fail perkhidmatan:

nano /etc/default/atheme-services

Tukar ENABLEDnilai:

DAEMON_OPTS=""
ENABLED=1

Sekarang kita boleh memulakan perkhidmatan:

service atheme-services restart

Semak statusnya:

service atheme-services status

Ini akan memberikan hasil yang serupa:

● 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.

Sebelum kita selesai, kita perlu menambahkan perkhidmatan Atheme kita ke InspIRCd:

nano /etc/inspircd/inspircd.conf

Di akhir fail tambahkan baris berikut:

<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">    

Sekarang mulakan semula perkhidmatan InspIRCd:

service inspircd restart

Pastikan semuanya berjalan dengan baik:

service inspircd status

Sekarang mulakan semula pelanggan weechat kami:

weechat

Sambung ke pelayan tempatan kami:

/connect local

Anda akan melihat salah satu perkhidmatan Atema kami muncul dengan segera: NickServ. Ia akan memberi anda maklumat mengenai dirinya.

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.

Anda boleh bertanya kepada NickServ dan mengetahui arahannya yang tersedia dengan yang berikut:

/msg NickServ help


Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut