Ubuntu 16.04 LTSでのInspIRCd IRCサーバーのセットアップ

インターネットリレーチャット(IRC)は、インターネットの黎明期から存在しているものです。このガイドでは、追加のIRCサービスのためにAthemeでInspIRCdを使用してIRCサーバーをセットアップする方法を示します。InspIRCdは、ゼロから作成された数少ないIRCサーバーの1つであり、高度なモジュールシステムを使用して調整可能な数の機能を提供する数少ないIRCサーバーの1つです。

前提条件

InspIRCdは、任意のインスタンスサイズで動作します。最小システム要件は、700MHzのCPUと300MBのRAMです。

システムを更新する

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をインストールできます。Ubuntu16.04の場合、このパッケージはメインリポジトリから入手できます。

apt-get install inspircd 

インストールが完了すると、サービスの構成を開始できます。主な設定は/etc/inspircd/inspircd.confファイル内にあり、XMLファイルのレイアウトがあります。

nano /etc/inspircd/inspircd.conf

最初にserverタグを検索します。このタグには、サーバー/ネットワークの詳細を入力します。これらの設定のほとんどは、ユーザーに表示されます。

  • name:サーバーのホスト名。解決する必要はありませんが、正しい構文である必要があります(例:)sub.example.net
  • description:サーバーの説明。
  • id:このサーバーに使用するSID。SIDの競合がない限り、これをコメント解除しないでください。これは3文字の長さでなければなりません。最初の文字は数字[0-9]である必要があり、残りの2文字は文字[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。このタグは、サービスを開くために使用されます。デフォルトでは、ローカルホストIP(127.0.0.1)が表示されます。これは、外部からサービスにアクセスできないことを意味します。アドレスを一切使わずにサービスを開放しましょう。これにより、サービスはマシンが所有するイーサネットインターフェイスにバインドされます。

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

次のタグはタグになりますpower。このタグは2つのパスワードを定義します。

  • diepass:サーバーをシャットダウンする場合に使用するオペレーターのパスワード。
  • restartpass:サーバーを再始動する必要がある場合にオペレーターが使用するパスワード。

これらのデフォルトのパスワードを変更することをお勧めします。

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

最後に変更するoper設定は設定です。これらは、オペレーターのログインを定義します。

  • name:操作に使用されるオペレーターのログイン(例:)/oper name password
  • password:ハッシュ化されていないプレーンテキスト
  • host:動作を許可されているホスト名/ IP。複数のオプションをスペースで区切ることができ、CIDRを使用できます。このセクションでは*または@を使用できます。
  • type:これはどのオペラの種類です。ブロックは、上記の3つのクラスがすでに定義されている必要がありますNetAdminGlobalOpHelper。これ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

ターミナルウィンドウにmotdとルールがポップアップ表示されます。

オペレーターに昇格するには、次のように入力します。

/oper xenial mypassword

これにより、成功の確認が表示されます。

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

IRCサーバーについては以上です。

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

最初にloadmoduleprotocolコマンドを検索します。これは次のように定義する必要があります。

loadmodule "modules/protocol/charybdis";

charybdisのプロトコルに置き換えますinspircd

loadmodule "modules/protocol/inspircd12";

次にサービスを検索しますname

name = "services.int";

services.intIRCサーバーのドメイン名またはIPアドレスと一致するように変更します。

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

これが完了したら、サービスのアップリンクを作成する必要があります。2つの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 /

次に、servicesファイルを編集してサービスを有効にします。

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サービスの1つである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

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

macOS Catalina 10.15.4サプリメントの更新により、解決するよりも多くの問題が発生しています

最近、Appleは問題を修正するための補足アップデートであるmacOS Catalina 10.15.4をリリースしましたが、このアップデートにより、Macマシンのブリックにつながる問題がさらに発生しているようです。詳細については、この記事をお読みください

原子力が必ずしも悪ではないことを証明する5つの例

原子力が必ずしも悪ではないことを証明する5つの例

原子力は、過去の出来事のために私たちが決して尊重しないことを常に軽蔑していますが、それは必ずしも悪ではありません。詳細については、投稿をお読みください。

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

AIはどのようにしてプロセス自動化を次のレベルに引き上げることができますか?

これを読んで、人工知能が小規模企業の間でどのように人気を博しているか、そして人工知能がどのように成長し、競合他社に優位に立つ可能性を高めているかを理解してください。

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

ジャーナリングファイルシステムとは何ですか、そしてそれはどのように機能しますか?

私たちのコンピューターは、ジャーナリングファイルシステムと呼ばれる組織化された方法ですべてのデータを保存します。これは、検索を押すとすぐにコンピューターがファイルを検索して表示できるようにする効率的な方法です。https://wethegeek.com/?p = 94116&preview = true

ビッグデータは人工知能をどのように変えていますか?

ビッグデータは人工知能をどのように変えていますか?

ビッグデータと人工知能は流行語ですが、それらがどのように相互に関連しているか知っていますか?さて、この記事を最後まで読んで、同じことを知ってください。

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartショッピングカートプラットフォームをUbuntu 16.04にインストールする方法

LiteCartは、PHP、jQuery、およびHTML 5で記述された無料のオープンソースのショッピングカートプラットフォームです。シンプルで軽量、使いやすいeコマースソフトウォー

DebianでNFS共有をセットアップする

DebianでNFS共有をセットアップする

NFSはネットワークベースのファイルシステムであり、コンピューターはコンピューターネットワークを介してファイルにアクセスできます。このガイドでは、NFを介してフォルダーを公開する方法について説明します

Fedora 28にMatomo Analyticsをインストールする方法

Fedora 28にMatomo Analyticsをインストールする方法

別のシステムを使用していますか?Matomo(旧Piwik)は、Google Analyticsのオープンな代替手段であるオープンソースの分析プラットフォームです。Matomoのソースはoでホストされています

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

UbuntuでNginxをセットアップしてライブHLSビデオをストリーミングする

HTTPライブストリーミング(HLS)は、Apple Inc.によって実装された非常に堅牢なストリーミングビデオプロトコルです。HLSは、ファイアウォール、プロキシ、