إعداد خادم InspIRCd IRC على Ubuntu 16.04 LTS

Internet Relay Chat (IRC) هو شيء موجود منذ الأيام الأولى للإنترنت. في هذا الدليل ، سأوضح لك كيفية إعداد خادم IRC باستخدام InspIRCd مع Atheme للحصول على خدمات IRC إضافية. InspIRCd هو واحد من خوادم IRC القليلة المكتوبة من الصفر وواحدًا من عدد قليل من خوادم IRC لتوفير عدد قابل للضبط من الميزات من خلال استخدام نظام وحدة نمطية متقدم.

المتطلبات الأساسية

يجب أن يعمل InspIRCd مع أي حجم مثيل. الحد الأدنى لمتطلبات النظام هي وحدة معالجة مركزية 700 ميجا هرتز و 300 ميجا بايت من ذاكرة الوصول العشوائي.

تحديث النظام

عند تسجيل الدخول كمستخدم sudo ، يمكنك تحديث النظام إلى أحدث حالة مستقرة على النحو التالي:

apt-get update && apt-get upgrade 

تكوين جدار الحماية

دعنا أولاً نصلب VPS قليلاً. سنقوم بتمكين ufwوإضافة بعض القواعد. لنبدأ بتكوين المنافذ:

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

سيطلب جدار الحماية مربع حوار لقبول التغييرات. فقط اضغط Yعلى نعم.

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

تثبيت وتكوين InspIRCd

بعد ذلك يمكننا تثبيت InspIRCd ، بالنسبة إلى Ubuntu 16.04 ، تتوفر هذه الحزمة من خلال المستودع الرئيسي.

apt-get install inspircd 

بمجرد الانتهاء من التثبيت ، يمكننا البدء في تكوين الخدمة. يمكن العثور على التكوين الرئيسي في /etc/inspircd/inspircd.confالملف ولديه تخطيط ملف XML.

nano /etc/inspircd/inspircd.conf

ابحث أولاً عن serverالعلامة. هذه العلامة هي المكان الذي تُدخل فيه تفاصيل الخادم / الشبكة ، وتكون معظم هذه الإعدادات مرئية للمستخدمين.

  • name: Hostname لخادمك. لا يحتاج إلى حل ، ولكن يجب أن يكون بناء الجملة الصحيح (على سبيل المثال:) sub.example.net.
  • description: وصف الخادم.
  • id: SID لاستخدامه لهذا الخادم. لا ينبغي أن يكون هذا دون تعليق ما لم يكن هناك تعارض في SID. يجب أن يتكون هذا من ثلاثة أحرف. يجب أن يكون الحرف الأول رقمًا [0-9] ، وقد يكون الحرفان المتبقيان عبارة عن أحرف [AZ] أو أرقام.
  • network: اسم الشبكة المعطى عند الاتصال بالعملاء. يجب أن تكون هي نفسها على جميع الخوادم على الشبكة ولا تحتوي على مسافات.

في دليلنا سنستخدم ما يلي:

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

استبدل العلامة الأصلية بالعلامة أعلاه.

بعد ذلك ، ابحث عن adminالعلامة. هذه الإعدادات هي التفاصيل الإدارية لخادمك. تظهر عند كتابة /ADMINالأمر.

  • name: الاسم الحقيقي
  • nick: لقب (يفضل ما تستخدمه على الشبكة).
  • email: عنوان البريد الإلكتروني. لا يجب أن يكون صالحًا ولكن هذا العنوان سيكون هو العنوان الذي يجب على المستخدمين الاتصال بك في حالة حدوث مشاكل.

دعنا نستخدم المسؤول Xenial:

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

انتقل الآن إلى bind address. يتم استخدام هذه العلامة لفتح الخدمة. بشكل افتراضي سترى عنوان localhost IP ( 127.0.0.1). هذا يعني أنه لا يمكن الاتصال بالخدمة من قبل العالم الخارجي. دعنا نفتح خدمتنا باستخدام أي عنوان على الإطلاق. سيؤدي ذلك إلى ربط الخدمة بأي واجهة إيثرنت تمتلكها الآلة:

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

العلامة التالية ستكون powerالعلامة. تحدد هذه العلامة كلمتين مرور.

  • diepass: كلمة مرور لمشغلي لاستخدامها إذا كانوا يريدون إيقاف تشغيل الخادم.
  • restartpass: كلمة مرور لمشغلي لاستخدامها إذا كانوا بحاجة إلى إعادة تشغيل الخادم.

من الأفضل تغيير كلمات المرور الافتراضية هذه:

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

الإعدادات الأخيرة التي سنقوم بتغييرها هي operالإعدادات. تحدد هذه معلومات تسجيل دخول عامل التشغيل.

  • name: تسجيل دخول عامل التشغيل المستخدم للتشغيل (مثال:) /oper name password.
  • password: نص غير مجزأ وبسيط
  • host: ما هي أسماء المضيفات / IP المسموح بتشغيلها. يمكن فصل خيارات متعددة بمسافات ، ويسمح CIDR. يمكنك فقط استخدام *أو @لهذا القسم.
  • type: ما هو نوع العملية هذا. كتلة يجب أن يكون فوق ثلاث فئات محددة بالفعل: NetAdmin، GlobalOpو Helper. هذا NetAdminهو الذي سنستخدمه.

قم بتغيير operالعلامة باستخدام المحتوى التالي. لاحظ أنه في مثالنا سنستخدم " @" للمضيف. في بيئة الإنتاج ، لا يُفضل استخدام هذا:

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

قبل أن إعادة تشغيل الخدمة، تحرير و motdو rulesالملفات:

nano /etc/inspircd/inspircd.motd

استبدلها بنفسك ، على سبيل المثال:

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

أخيرا قم بتحرير ملفات القواعد.

nano /etc/inspircd/inspircd.rules

أضف قواعدك الخاصة ، على سبيل المثال:

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! 

الآن بعد أن تم إعداد كل شيء ، أعد تشغيل خدمة IRC:

service inspircd restart

للتحقق من تشغيل كل شيء ، استعلم عن netstatالأداة:

netstat -tulpn | grep -i inspircd

يجب أن يسرد البرنامج inspircd، والاستماع على المنفذ 6666:

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

لاختبار الخادم ، يمكننا تثبيت عميل IRC طرفي. في نظام التشغيل Windows ، يمكنك استخدام برنامج مثل mIRC. في مثالنا سنستخدم weechat. هذا هو عميل IRC نصي يمكن استخدامه في جلسة عمل طرفية.

قم بتثبيت تطبيق Weechat من خلال المستودعات:

apt-get install weechat 

بمجرد تثبيت هذا التطبيق ، قم بتشغيل عميل IRC هذا:

weechat

لعرض جميع الأوامر التي نقدمها Weechat ، يمكنك طلب الأمر help:

/help

للخروج من weechat ، يمكنك كتابة الأمر التالي:

/quit    

أضف خادمنا المحلي إلى اتصال في Weechat:

/server add local localhost

الآن يمكننا الاتصال بملف تعريف الاتصال المسمى 'local':

/connect local

سترى منبثقة وقواعدنا في نافذة المحطة الطرفية.

لترقية نفسك إلى عامل ، اكتب ما يلي:

/oper xenial mypassword

سيظهر لنا هذا تأكيدًا على النجاح:

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

هذا كل شيء عن خادم IRC.

تركيب خدمات الايرسي - Atheme

Atheme هي مجموعة من الخدمات لشبكات IRC المصممة لشبكات IRC الكبيرة ذات متطلبات قابلية التوسع العالية. يضيف خدمات إضافية مثل NickServ (تسجيل اللقب) لشبكة IRC الخاصة بك.

يمكن العثور على Atheme في مستودع Ubuntu:

apt-get install atheme-services

بمجرد تثبيت الثنائيات ، قم باستخراج مثال ملف التكوين ونسخه إلى athemeالمجلد:

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

بعد ذلك ، قم بتحرير ملف التكوين هذا:

nano /etc/atheme/atheme.conf

ابحث أولاً عن loadmoduleأمر البروتوكول. يجب تعريف ذلك على النحو التالي:

loadmodule "modules/protocol/charybdis";

استبدال charybdisببروتوكول inspircd:

loadmodule "modules/protocol/inspircd12";

البحث التالي عن الخدمة name:

name = "services.int";

التغيير services.intلمطابقة اسم المجال أو عنوان IP لخادم IRC الخاص بك:

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

بمجرد الانتهاء من ذلك ، ابحث عن الرقم:

numeric = "00A";

الآن قم بتغييره إلى قيمة مختلفة عن القيمة الرقمية المستخدمة في علامة الخادم المستخدمة من قبل.

numeric = "77C";

بمجرد القيام بذلك ، دعنا نقوم بتكوين اسم الشبكة. البحث عن netname:

netname = "misconfigured network";

قم بتغيير هذه القيمة إلى معلمة الشبكة في علامة الخادم.

netname = "ExampleNET";

غيّر قيمة hidehostsuffix:

hidehostsuffix = "users.misconfigured";

قم بإزالة .misconfigured:

hidehostsuffix = "users";

بعد ذلك ، قم بتغيير اسم المسؤول إلى الاسم الذي استخدمناه من قبل:

adminname = "xenial";

مطابقة adminemailالبريد الإلكتروني المرتبط المستخدم من قبل:

adminemail = "[email protected]";

الآن بعد أن تم ذلك ، نحن بحاجة إلى إنشاء ارتباط لأعلى خدماتنا. ابحث عن uplinkمقطعي الكود وقم بالتعليق عليهم جميعًا. أضف /*قبل uplink{الأمر وفي */نهاية قوس الإغلاق.

ستبدو كما يلي:

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

بعد ذلك ، أضف الرابط الخاص بنا. سيتم تشغيل هذا الارتباط فقط على عنوان IP الخاص بالمضيف المحلي وعلى المنفذ 7001. حدد كلمة مرور فائقة السرية (سنستخدمها لاحقًا):

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

أخيرا ابحث عن تعريفات خدمتنا. ابدأ nickservبالحظر أولاً.

في كتلة nickserv ، ابحث عن hostالعلامة وقم بتغييرها إلى 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>>...

قم بتغيير hostname tagجميع الخدمات الأخرى أيضًا:

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

بمجرد القيام بذلك ، قم بحفظ ملف التكوين وإنهائه.

لاختبار كل شيء ، قم بتشغيل atheme-servicesثنائي:

atheme-services

يجب أن يخبرك هذا بالضبط ما إذا كان يعمل أم لا. إذا كنت لا تتلقى مخرجات مثل ما هو موضح أدناه ، فارجع وتحقق من وجود أي أخطاء في ملف التكوين:

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

الآن قم بتمكين الخدمة عن طريق تحرير ملف الخدمات:

nano /etc/default/atheme-services

قم بتغيير ENABLEDالقيمة:

DAEMON_OPTS=""
ENABLED=1

الآن يمكننا بدء الخدمة:

service atheme-services restart

تحقق من حالتها:

service atheme-services status

سيؤدي ذلك إلى عرض نتائج مماثلة:

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

قبل أن ننتهي ، نحتاج إلى إضافة خدمات Atheme إلى InspIRCd:

nano /etc/inspircd/inspircd.conf

في نهاية الملف أضف الأسطر التالية:

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

أعد تشغيل خدمة InspIRCd الآن:

service inspircd restart

تأكد من أن كل شيء يسير على ما يرام:

service inspircd status

ابدأ الآن عميلنا Weechat مرة أخرى:

weechat

الاتصال بخادمنا المحلي:

/connect local

ستظهر لك واحدة من خدمات Atheme المنبثقة على الفور: NickServ. سوف يرحب بك بمعلومات عن نفسه.

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 ومعرفة أوامرها المتاحة مع ما يلي:

/msg NickServ help


Leave a Comment

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

نظرة ثاقبة على 26 أسلوبًا لتحليل البيانات الضخمة: الجزء الأول

6 أشياء شديدة الجنون حول نينتندو سويتش

6 أشياء شديدة الجنون حول نينتندو سويتش

يعرف الكثير منكم أن Switch سيصدر في مارس 2017 وميزاته الجديدة. بالنسبة لأولئك الذين لا يعرفون ، قمنا بإعداد قائمة بالميزات التي تجعل "التبديل" "أداة لا غنى عنها".

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

وعود التكنولوجيا التي لم يتم الوفاء بها بعد

هل تنتظر عمالقة التكنولوجيا للوفاء بوعودهم؟ تحقق من ما تبقى دون تسليم.

وظائف طبقات معمارية مرجعية للبيانات الضخمة

وظائف طبقات معمارية مرجعية للبيانات الضخمة

اقرأ المدونة لمعرفة الطبقات المختلفة في بنية البيانات الضخمة ووظائفها بأبسط طريقة.

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

كيف يمكن للذكاء الاصطناعي نقل أتمتة العمليات إلى المستوى التالي؟

اقرأ هذا لمعرفة مدى انتشار الذكاء الاصطناعي بين الشركات الصغيرة وكيف أنه يزيد من احتمالات نموها ومنح منافسيها القدرة على التفوق.

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

CAPTCHA: ما هي المدة التي يمكن أن تظل تقنية قابلة للتطبيق للتميز بين الإنسان والذكاء الاصطناعي؟

لقد أصبح حل CAPTCHA صعبًا جدًا على المستخدمين في السنوات القليلة الماضية. هل ستكون قادرة على أن تظل فعالة في اكتشاف البريد العشوائي والروبوتات في المستقبل القريب؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

التفرد التكنولوجي: مستقبل بعيد للحضارة الإنسانية؟

مع تطور العلم بمعدل سريع ، واستلام الكثير من جهودنا ، تزداد أيضًا مخاطر تعريض أنفسنا إلى تفرد غير قابل للتفسير. اقرأ ، ماذا يمكن أن يعني التفرد بالنسبة لنا.

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

التطبيب عن بعد والرعاية الصحية عن بعد: المستقبل هنا

ما هو التطبيب عن بعد والرعاية الصحية عن بعد وأثره على الأجيال القادمة؟ هل هو مكان جيد أم لا في حالة الوباء؟ اقرأ المدونة لتجد طريقة عرض!

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

هل تساءلت يومًا كيف يربح المتسللون الأموال؟

ربما سمعت أن المتسللين يكسبون الكثير من المال ، لكن هل تساءلت يومًا كيف يجنون هذا النوع من المال؟ دعنا نناقش.

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

يتسبب التحديث الإضافي لنظام macOS Catalina 10.15.4 في حدوث مشكلات أكثر من حلها

أصدرت Apple مؤخرًا macOS Catalina 10.15.4 تحديثًا تكميليًا لإصلاح المشكلات ولكن يبدو أن التحديث يتسبب في المزيد من المشكلات التي تؤدي إلى إنشاء أجهزة macOS. قراءة هذه المادة لمعرفة المزيد