Menyiapkan Server IRC InspIRCd di Ubuntu 16.04 LTS

Internet Relay Chat (IRC) adalah sesuatu yang sudah ada sejak awal internet. Dalam panduan ini, saya akan menunjukkan kepada Anda cara mengatur server IRC dengan InspIRCd dengan Atheme untuk layanan IRC tambahan. InspIRCd adalah salah satu dari sedikit server IRC yang ditulis dari awal dan salah satu dari hanya beberapa server IRC yang menyediakan sejumlah fitur yang dapat disesuaikan melalui penggunaan sistem modul canggih.

Prasyarat

InspIRCd harus bekerja dengan ukuran instance apa pun. Persyaratan sistem minimumnya adalah CPU 700MHz dan 300MB RAM.

Perbarui sistem

Saat masuk sebagai pengguna sudo, Anda dapat memperbarui sistem ke status stabil terbaru sebagai berikut:

apt-get update && apt-get upgrade 

Mengkonfigurasi firewall

Pertama mari kita mengeraskan VPS sedikit. Kami akan mengaktifkan ufwdan menambahkan beberapa aturan. Mari kita mulai dengan mengkonfigurasi port:

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

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

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

Instal dan konfigurasikan InspIRCd

Selanjutnya kita dapat menginstal InspIRCd, untuk Ubuntu 16.04 paket ini tersedia melalui repositori utama.

apt-get install inspircd 

Setelah instalasi selesai, kita dapat mulai mengkonfigurasi layanan. Konfigurasi utama dapat ditemukan dalam /etc/inspircd/inspircd.conffile dan memiliki tata letak file XML.

nano /etc/inspircd/inspircd.conf

Pencarian pertama untuk servertag. Tag ini adalah tempat Anda memasukkan rincian server / jaringan Anda, sebagian besar pengaturan ini dapat dilihat oleh pengguna Anda.

  • name: Hostname dari server Anda. Itu tidak perlu diselesaikan, tetapi harus menjadi sintaks yang benar (misalnya:) sub.example.net.
  • description: Deskripsi server.
  • id: SID yang digunakan untuk server ini. Ini tidak boleh diamputasi kecuali ada konflik SID. Ini harus sepanjang tiga karakter. Karakter pertama harus berupa digit [0-9], dua karakter yang tersisa mungkin berupa huruf [AZ] atau digit.
  • network: Nama jaringan diberikan pada terhubung ke klien. Seharusnya sama pada semua server di jaringan dan tidak mengandung spasi.

Dalam panduan kami, kami akan menggunakan yang berikut:

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

Ganti tag asli dengan yang di atas.

Selanjutnya, cari admintag. Pengaturan ini adalah rincian administrasi server Anda. Mereka ditampilkan saat Anda mengetik /ADMINperintah.

  • name: Nama asli
  • nick: Nama panggilan (lebih disukai apa yang Anda gunakan di jaringan).
  • email: alamat email. Tidak harus valid tetapi alamat ini akan menjadi satu yang harus dihubungi oleh pengguna Anda jika ada masalah.

Mari kita gunakan administrator Xenial:

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

Sekarang pindah ke bind address. Tag ini digunakan untuk membuka layanan. Secara default Anda akan melihat IP host lokal ( 127.0.0.1). Ini berarti bahwa layanan tidak dapat dihubungi oleh dunia luar. Mari buka layanan kami dengan tidak menggunakan alamat sama sekali. Ini akan menyebabkan layanan mengikat ke antarmuka ethernet apa pun yang dimiliki mesin:

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

Tag berikutnya akan menjadi powertag. Tag ini mendefinisikan dua kata sandi.

  • diepass: Kata sandi bagi operator untuk digunakan jika mereka ingin mematikan server.
  • restartpass: Kata sandi bagi operator untuk digunakan jika mereka perlu me-restart server.

Cara terbaik untuk mengubah kata sandi default ini:

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

Pengaturan terakhir yang akan kami ubah adalah operpengaturan. Ini menentukan login operator.

  • name: login operator yang digunakan untuk mengoperasikan (Contoh:) /oper name password.
  • password: teks tidak rusak dan polos
  • host: Nama host / IP apa yang diizinkan untuk beroperasi. Banyak pilihan dapat dipisahkan dengan spasi, dan CIDR diizinkan. Anda bisa menggunakan *atau @untuk bagian ini.
  • type: Apa jenis oper ini. Blok di atas harus memiliki tiga kelas yang sudah didefinisikan: NetAdmin, GlobalOpdan Helper. Ini NetAdminyang akan kita gunakan.

Ubah opertag menggunakan konten berikut. Perhatikan bahwa untuk contoh kita, kita akan menggunakan " @" untuk host. Dalam lingkungan produksi, tidak diinginkan untuk menggunakan ini:

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

Sebelum kami memulai kembali layanan, edit file motddan rules:

nano /etc/inspircd/inspircd.motd

Ganti dengan milik Anda sendiri, misalnya:

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 file aturan.

nano /etc/inspircd/inspircd.rules

Tambahkan aturan Anda sendiri, misalnya:

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 semuanya sudah diatur, restart layanan IRC:

service inspircd restart

Untuk memverifikasi bahwa semuanya berjalan, minta netstatalat:

netstat -tulpn | grep -i inspircd

Seharusnya daftar program inspircd, mendengarkan pada port 6666:

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

Untuk menguji server kita dapat menginstal klien terminal IRC. Pada Windows Anda dapat menggunakan program seperti mIRC. Dalam contoh kita, kita akan menggunakan weechat. Ini adalah klien IRC berbasis teks yang dapat digunakan dalam sesi terminal.

Instal aplikasi Weechat melalui repositori:

apt-get install weechat 

Setelah aplikasi ini diinstal, jalankan klien IRC ini:

weechat

Untuk melihat semua perintah yang ditawarkan Weechat, Anda dapat meminta perintah bantuan:

/help

Untuk keluar dari Weechat, Anda dapat mengetik perintah berikut:

/quit    

Tambahkan server lokal kami ke koneksi di Weechat:

/server add local localhost

Sekarang kita dapat terhubung ke profil koneksi bernama 'lokal':

/connect local

Anda akan melihat motd dan aturan kami muncul di jendela terminal.

Untuk mempromosikan diri Anda ke operator, ketikkan yang berikut:

/oper xenial mypassword

Ini akan menunjukkan kepada kami konfirmasi keberhasilan:

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

Itu saja untuk server IRC kami.

Menginstal layanan IRC - Atheme

Atheme adalah seperangkat layanan untuk jaringan IRC yang dirancang untuk jaringan IRC besar dengan persyaratan skalabilitas tinggi. Itu menambahkan layanan tambahan seperti NickServ (Pendaftaran Nama Panggilan) ke jaringan IRC Anda.

Atheme dapat ditemukan di repositori Ubuntu:

apt-get install atheme-services

Setelah binari diinstal, ekstrak contoh file 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

Selanjutnya, edit file konfigurasi ini:

nano /etc/atheme/atheme.conf

Pencarian pertama untuk loadmoduleperintah protokol. Ini harus didefinisikan sebagai berikut:

loadmodule "modules/protocol/charybdis";

Ganti charybdisdengan protokol inspircd:

loadmodule "modules/protocol/inspircd12";

Pencarian selanjutnya untuk layanan ini name:

name = "services.int";

Ubah services.intuntuk mencocokkan nama domain atau alamat IP server IRC Anda:

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

Setelah ini selesai mencari angka:

numeric = "00A";

Sekarang ubah ke nilai yang berbeda dari angka yang digunakan dalam tag server yang digunakan sebelumnya.

numeric = "77C";

Setelah ini selesai, mari kita mengkonfigurasi nama jaringan. Cari untuk netname:

netname = "misconfigured network";

Ubah nilai ini ke parameter jaringan di tag server.

netname = "ExampleNET";

Ubah nilai dari hidehostsuffix:

hidehostsuffix = "users.misconfigured";

Hapus .misconfigured:

hidehostsuffix = "users";

Selanjutnya, ubah nama admin menjadi yang kami gunakan sebelumnya:

adminname = "xenial";

Cocokkan dengan adminemailemail terkait yang digunakan sebelumnya:

adminemail = "[email protected]";

Sekarang ini selesai, kita perlu membuat uplink untuk layanan kami. Temukan dua uplinkblok kode dan beri komentar semuanya. Tambahkan /*sebelum uplink{perintah dan */di akhir kurung kurawal.

Ini akan terlihat seperti berikut:

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

Selanjutnya, tambahkan uplink kami sendiri. Uplink ini hanya akan berjalan di IP localhost kami, dan pada port 7001. Tentukan kata sandi super rahasia (kami akan menggunakannya nanti):

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 layanan kami. Mulailah dengan nickservblok pertama.

Di blok nickserv, cari hosttag dan ubah ke 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>>...

Ubah hostname taguntuk semua layanan 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 keluar dari file konfigurasi.

Untuk menguji semuanya, jalankan atheme-servicesbiner:

atheme-services

Ini akan memberi tahu Anda dengan tepat apakah itu berfungsi atau tidak. Jika Anda tidak menerima output seperti yang ditunjukkan di bawah ini, kembali dan periksa apakah ada kesalahan dalam file 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 layanan dengan mengedit file layanan:

nano /etc/default/atheme-services

Ubah ENABLEDnilainya:

DAEMON_OPTS=""
ENABLED=1

Sekarang kita dapat memulai layanan:

service atheme-services restart

Periksa statusnya:

service atheme-services status

Ini akan menghasilkan 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 kami selesai, kami perlu menambahkan layanan Atheme kami ke InspIRCd:

nano /etc/inspircd/inspircd.conf

Di akhir file tambahkan baris ini:

<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 restart layanan InspIRCd:

service inspircd restart

Pastikan semuanya berjalan dengan baik:

service inspircd status

Sekarang mulai klien weechat kami lagi:

weechat

Terhubung ke server lokal kami:

/connect local

Anda akan segera melihat salah satu layanan Atheme kami muncul: NickServ. Ini akan menyambut Anda dengan informasi tentang dirinya sendiri.

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 dapat meminta NickServ dan mencari perintah yang tersedia dengan yang berikut ini:

/msg NickServ help


Leave a Comment

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut