Skip to content

Instantly share code, notes, and snippets.

@koi-chan
Last active November 30, 2015 13:09
Show Gist options
  • Save koi-chan/577cac90b40538722772 to your computer and use it in GitHub Desktop.
Save koi-chan/577cac90b40538722772 to your computer and use it in GitHub Desktop.
charybdis3.4 設定ファイル日本語化
/* doc/reference.ja.conf - charybdis Example configuration file
*
* Copyright (C) 2000-2002 Hybrid Development Team
* Copyright (C) 2002-2005 ircd-ratbox development team
* Copyright (C) 2005-2006 charybdis development team
*
* Written by ejb, wcampbel, db, leeh and others
* 日本語訳: koi-chan
*
* $Id: reference.conf 2015-02-05 koi-chan $
*/
/* 重要:
* クラスブロック(class{})は、クラス情報を使用するブロックよりも前に書かな
* ければなりません。これは、認証ブロック(auth{})・接続ブロック(connect{})
* よりも前に定義されていなければいけないということです。
*
* 認証ブロックは、優先度の高い順に記述する必要があります。サーバーに接続
* したクライアントは、条件に一致する最初のものが適用されます。まず最初に
* 接続元アドレスを偽装するものを、次に特殊なものと、一般的な大多数のクラ
* イアントに適用されるものを、最後に制限されたものを、記述します。
*
* この設定ファイルでは、シェルスクリプト(#)とC言語形式の両方のコメントを
* 使うことができます。
*
* 他のファイルを読み込むためには、以下の様に記述します。
* .include "filename"
* .include <filename>
*
* 時間や期間を表記するには、以下のように記述します。
* 12 hours 30 minutes 1 second
*
* 使うことのできる時間の単位は以下の通りです。
* month, week, day, hour, minute, second
*
* 使うことのできるファイル容量の単位は以下の通りです。
* megabyte/mbyte/mb, kilobyte/kbyte/kb, byte
*
* ファイル容量や時間は、単数でも複数でも構いません。
*/
/* クリエイターズネットワーク
* この設定ファイル例は、「irc.cre.jp系IRCサーバ群」で使うために書かれてい
* ます。そのため、オリジナルの example.conf とは設定値が違います。ご了承
* ください。
*/
/* 拡張機能:
*
* Charybdis はたくさんの拡張機能を持っていますが、デフォルトでは有効に
* なっていません。これらの拡張機能を使うときは、以下の設定のコメントを外
* してください。
*
* チャンネルモード +-A (サーバー管理者のみ入室可能) -- chm_adminonly.so
* チャンネルモード +-O (オペレータのみ入室可能) -- chm_operonly.so
* チャンネルモード +-S (SSL接続者のみ入室可能) -- chm_sslonly.so
* チャンネルモード +-O の模倣 (+-iI $o) -- chm_operonly_compat.so
* チャンネルモード +-R の模倣(quiet unreg) (+-q $~a)-- chm_quietunreg_compat.so
* チャンネルモード +-S の模倣(ssl only) (+-b $~z) -- chm_sslonly_compat.so
* ログインしているユーザーにチャンネルの作成を制限 -- createauthonly.so
* アカウントのBAN (+b $a[:mask]) -- extb_account.so
* もう一つのチャンネルからのBAN (+b $j:mask) -- extb_canjoin.so
* 違うチャンネルのBAN (+b $c:mask) -- extb_channel.so
* BANの拡張 (+b $x:mask) -- extb_extgecos.so
* オペレーターのBAN (+b $o) -- extb_oper.so
* リアルネームによるBAN (+b $r:mask) -- extb_realname.so
* サーバーのBAN (+b $s:mask) -- extb_server.so
* SSLのBAN (+b $z) -- extb_ssl.so
* HURT system -- hurt.so
* New host mangling (umode +x) -- ip_cloaking_4.0.so
* Old host mangling (umode +h) -- ip_cloaking.so
* Find channel forwards -- m_findforwards.so
* IRCコマンド /identify のサポート -- m_identify.so
* オペレータを見えなくする (umode +i) -- no_oper_invis.so
* Far connection notices (snomask +F) -- sno_farconnect.so
* Remote k/d/x line active notices -- sno_globalkline.so
* Remote oper up notices -- sno_globaloper.so
* /whois notifications (snomask +W) -- sno_whois.so
* Oper-override (modehacking only) -- override.so
*/
#loadmodule "extensions/chm_adminonly.so";
#loadmodule "extensions/chm_operonly.so";
#loadmodule "extensions/chm_sslonly.so";
#loadmodule "extensions/chm_operonly_compat.so";
#loadmodule "extensions/chm_quietunreg_compat.so";
#loadmodule "extensions/chm_sslonly_compat.so";
#loadmodule "extensions/createauthonly.so";
#loadmodule "extensions/extb_account.so";
#loadmodule "extensions/extb_canjoin.so";
#loadmodule "extensions/extb_channel.so";
#loadmodule "extensions/extb_extgecos.so";
#loadmodule "extensions/extb_oper.so";
#loadmodule "extensions/extb_realname.so";
#loadmodule "extensions/extb_server.so";
#loadmodule "extensions/extb_ssl.so";
#loadmodule "extensions/hurt.so";
#loadmodule "extensions/ip_cloaking_4.0.so";
#loadmodule "extensions/ip_cloaking.so";
#loadmodule "extensions/m_findforwards.so";
#loadmodule "extensions/m_identify.so";
#loadmodule "extensions/no_oper_invis.so";
#loadmodule "extensions/sno_farconnect.so";
#loadmodule "extensions/sno_globalkline.so";
#loadmodule "extensions/sno_globaloper.so";
#loadmodule "extensions/sno_whois.so";
#loadmodule "extensions/override.so";
/* serverinfo {}: このサーバーについての設定 (OLD M:) */
serverinfo {
/* name: サーバー名を指定します */
name = "irc.cre.jp";
/* sid: ネットワークでユニークなIDを指定します。
* これは3文字でなければいけません。
* 最初の文字は数字(0-9)、2・3文字目は数字かアルファベット(A-Z)。
*
* この値は、サーバーを起動するために必要です。
*/
sid = "42X";
/* description: サーバーの説明文を指定します。
* 古いバージョンとの互換性のため、[]は使えません。
*/
description = "Creator's Network IRC Server";
/* network name: 所属するIRCネットワークの名前を指定します。半角空白は
* 使えません。リプライ005などで使用されます。
* network desc: IRCネットワークの説明を記述します。
*/
network_name = "Creator'sNetworkIRC";
network_desc = "This IRC network is management by Creator's Network";
/* hub: このサーバーが、他の複数のサーバーとのリレーするのを許可します。
*/
hub = no;
/* vhost: the IP to bind to when we connect outward to ipv4 servers.
* This should be an ipv4 IP only.
*/
#vhost = "192.169.0.1";
/* vhost6: the IP to bind to when we connect outward to ipv6 servers.
* This should be an ipv6 IP only.
*/
#vhost6 = "3ffe:80e8:546::2";
/* ssl_private_key: SSL秘密鍵を指定します。 */
ssl_private_key = "etc/ssl.key";
/* ssl_cert: SSL証明書を指定します。 */
ssl_cert = "etc/ssl.cert";
/* ssl_dh_params: SSLのDHパラメータです。次のコマンドで作成します。
* $ openssl dhparam -out dh.pem 1024
*/
ssl_dh_params = "etc/dh.pem";
/* ssld_count: number of ssld processes you want to start, if you
* have a really busy server, using N-1 where N is the number of
* cpu/cpu cores you have might be useful. A number greater than one
* can also be useful in case of bugs in ssld and because ssld needs
* two file descriptors per SSL connection.
*/
ssld_count = 1;
/* default max clients: このサーバーに接続できるクライアントの最大数を
* 指定します。IRCサーバーの起動後、この設定の値を変えるには、次のIRC
* コマンドを使用します。
* /set maxclients <limit>
*/
default_max_clients = 1024;
/* nicklen: ニックネームの最大長を指定します。
* ビルド時に指定した値より大きい値にすることはできません。
*/
nicklen = 31;
};
/* admin {}: このサーバーの管理者情報の設定 (OLD A:) */
admin {
name = "koi-chan";
description = "Main Server Administrator";
email = "<koi-chan@cre.ne.jp>";
};
/* log {}: ログファイルについての設定 */
log {
/* logfiles: ログファイルは特定の情報を保存するために使用されます。
* 各ログファイルのパスが設定されていれば、その設定値の通りに保存
* し、そうでなければ出力をしません。
*
* 設定値は以下の通りの順番です。
* - userlog: 接続者の(正常な)切断
* - fuserlog: コネクションの断絶
* - operlog: /oper コマンドの利用状況
* - foperlog: 失敗した /oper コマンドの利用状況
* - serverlog: サーバーリレーの接続・切断
* - glinelog: glines
* - klinelog: klines など
* - killlog: kill について
* - operspylog: operspy の利用状況
* - ioerrorlog: IO エラー
*/
fname_userlog = "logs/userlog";
#fname_fuserlog = "logs/fuserlog";
fname_operlog = "logs/operlog";
#fname_foperlog = "logs/foperlog";
fname_serverlog = "logs/serverlog";
#fname_klinelog = "logs/klinelog";
fname_killlog = "logs/killlog";
fname_operspylog = "logs/operspylog";
#fname_ioerrorlog = "logs/ioerror";
};
/* class {}: クライアントの接続タイプの定義 (OLD Y:) */
class "users" {
/* クラスの名前を上で指定します。 */
/* ping time: どれくらいの間隔でクライアントにPINGを送るか。
* 一定時間たったあとにPONGが帰ってこなかった場合、コネクションを
* 切断します。
*/
ping_time = 2 minutes;
/* number per ident: 同一の"ident"認証を受けたクライアントから
* 受け付ける、接続数の上限を指定します。
* これはネットワーク全体でいくつ許可するかを設定します。
* よくわからないので0(無制限)に。
*/
number_per_ident = 0;
/* number per ip: このサーバーで、同一にIPアドレスからの接続を
* いくつまで受け付けるかを指定します。
*/
number_per_ip = 5;
/* number per ip global: ネットワーク全体で、同一のIPアドレスからの
* 接続をいくつまで受け付けるかを設定します。
* このサーバーで受け入れる接続数を含みます。
*/
number_per_ip_global = 10;
/* cidr_ipv4_bitlen: IPv4を使うクライアントからの接続を数えるとき、
* 同一のIPとしてカウントするサブネットを指定します。
*/
cidr_ipv4_bitlen = 24;
/* cidr_ipv6_bitlen: IPv6を使うクライアントからの接続を数えるとき、
* 同一のIPとしてカウントするサブネットを指定します。
* 一般的には、 /64 が便利らしい。
*/
cidr_ipv6_bitlen = 64;
/* number_per_cidr: 同じサブネットからの接続をいくつまで受け付ける
* かを指定します。4を指定するのが良いらしいですが、0(無制限)にし
* ます。
*/
number_per_cidr = 0;
/* max number: この接続クラスに該当するクライアントをいくつまで受け
* 入れるかを指定します。
*/
max_number = 0;
/* sendq: 一度に送られてきたデータ量が多すぎる場合は、クライアント
* との接続を強制的に切断します。その時、どのくらいのデータ量まで
* 許容するのかの設定です。
* IRCのプロトコルでは、1コマンドは512バイトまでと決まっています。
* hybrid系のデーモンでは、512バイトを超えた分のデータは自動的に
* 破棄します。
*/
sendq = 100 kbytes;
};
class "restricted" {
ping_time = 1 minute 30 seconds;
number_per_ip = 1;
max_number = 100;
sendq = 60kb;
};
class "opers" {
ping_time = 5 minutes;
number_per_ip = 10;
max_number = 100;
sendq = 100kbytes;
};
class "server" {
ping_time = 5 minutes;
/* connectfreq: サーバー用のクラスでのみ設定可能な値です。
* 自動接続が有効になっているとき、接続を試行する間隔を指定します。
*/
connectfreq = 5 minutes;
/* max number: the amount of servers to autoconnect to. if the number
* of servers in the class is or exceeds this, no more servers in the
* class are autoconnected. oper initiated connects are unaffected.
* this should usually be set to either 0 or 1. (autoconnecting from
* hubs to leaves may cause leaves to function as hubs by having
* multiple servers connected to them.)
*/
max_number = 1;
/* sendq: servers need a higher sendq as they are sent more data */
sendq=2 megabytes;
};
/* listen {}: このサーバーで受け付ける接続の定義 (OLD P:) */
listen {
/* defer_accept: wait for clients to send IRC handshake data before
* accepting them. if you intend to use software which depends on the
* server replying first, such as BOPM, you should disable this feature.
* otherwise, you probably want to leave it on.
*/
defer_accept = no;
/* port: このサーバーで開くポート番号を設定します。
* 先にhostで指定されたIPアドレスがなかった場合、可能なすべての接続先
* に対してポートを開きます。
*
* sslport: 同じく、SSL接続を受け入れるために開くポートを設定します。
*
* 値はカンマで区切り、".."を使うことで範囲を指定することもできます。
*/
port = 6665 .. 6669;
sslport = 6697;
/* host: 特定のIPアドレスからの接続のみ許可するポート番号。
* IPv4/IPv6のどちらであっても指定できます。
*/
#host = "1.2.3.4";
#port = 7000, 7001;
#sslport = 9000, 9001;
#host = "3ffe:1234:a:b:c::d";
#port = 7002;
#sslport = 9002;
};
/* auth {}: 許可する接続の定義 (OLD I:) */
auth {
/* user: user@host の形式で指定します。
* IPv4/IPv6の両方で接続する場合は、複数行に分けて記述できます。
*/
user = "*dicebot@192.168.0.0/24";
user = "*dicebot@127.0.0.0/8";
user = "*dicebot@::1";
/* auth_user: This allows specifying a username:password instead of
* just a password in PASS, so that a fixed user@host is not
* necessary for a specific auth{} block.
*/
#auth_user = "SomeUser";
/* password: 接続にパスワードを必要とするよう設定できます。
* デフォルトでは暗号化せずに記述しますが、"encrypted"フラグを下で指定
* することで、パスワードを暗号化できます。
*/
password = "dicebot";
/* spoof: 接続元のアドレスを偽装することができます。
* これは自由に使えますが、濫用するのはあまりいいことではありません。
*/
spoof = "irc.cre.jp";
/* 指定できるフラグ:
*
* encrypted | mkpasswd を使った暗号化
* spoof_notice | ホストを偽装するとき通知します
* exceed_limit (old > flag) | ユーザークラスの制限を超えられます
* kline_exempt (old ^ flag) | k/g/xlines の指定を免除します
* gline_exempt (old _ flag) | glines の指定を免除します
* spambot_exempt | spambot の指定を免除します
* shide_exempt | サーバー隠蔽を無効化します
* jupe_exempt | exempt this user from generating
* warnings joining juped channels
* resv_exempt | exempt this user from resvs
* flood_exempt | 一度に大量の発言をしたときの遅延を
* 免除します。注意して使うこと
* no_tilde (old - flag) | ident認証に失敗してもユーザー名に
* ~ を付加しません
* need_ident (old + flag) | ident認証を強制します
* need_ssl | SSLでの接続を強制します
* need_sasl | SASL認証を強制します
*/
flags = exceed_limit, kline_exempt, shide_exempt, flood_exempt;
/* class: この接続タイプに該当するクライアントのクラスを指定します。 */
class = "opers";
};
#auth {
/* redirect: the server and port to redirect a user to. A user does
* not have to obey the redirection, the ircd just suggests to them
* an alternative server.
*/
# redirserv = "irc.some.domain";
# redirport = 6667;
# user = "*.some.domain";
/* class: a class is required even though it is not used */
# class = "users";
#};
auth {
user = "*@*";
class = "users";
};
/* privset{}: IRCオペレータが持つ権限の定義 */
privset "local_op" {
/* privs: 該当するIRCオペレータが、サーバー上で実行を許可するコマンドを
* 設定します。
*
* 利用可能なオプション:
*
* oper:local_kill: ローカルユーザーへの /KILL コマンド
* oper:global_kill: 全てのサーバーのユーザーへの /KILL コマンド
* oper:routing: 他のサーバーへのリレー接続・切断
* oper:kline: KLINE/DLINE の設定
* oper:unkline: KLINE/DLINE の解除
* snomask:nick_changes: snomask +n を介しての、NICKの変更履歴
* oper:rehash: 設定ファイルの再読み込み
* oper:die: サーバーの終了・再起動
* oper:admin: サーバーの管理者権限の取得。
サーバー管理者はモジュール読み込み・解除や
サーバーが出力するメッセージを受信できます。
* oper:hidden_admin: /WHOIS などから、管理者権限を持っていることを
隠蔽します。
* oper:xline: XLINE/UNXLINE コマンドの実行
* oper:resv: RESV/UNRESV コマンドの実行と、チャンネルモード
+LP の設定
* oper:operwall: IRCオペレータ向けメッセージの送受信
* oper:spy: 'operspy'の利用。
詳しくは /help operspy を参照してください。
* oper:hidden: /stats p (オペレータの参照)からの隠蔽
* oper:remoteban: リモートサーバーの KLINE などの設定
* oper:mass_notice: オペレータメッセージとサーバーメッセージの送信
*/
privs = oper:local_kill, oper:operwall;
};
privset "server_bot" {
/* extends: 継承する定義済みの権限セットを指定します */
extends = "local_op";
privs = oper:kline, oper:remoteban, snomask:nick_changes;
};
privset "global_op" {
extends = "local_op";
privs = oper:global_kill, oper:routing, oper:kline, oper:unkline, oper:xline,
oper:resv, oper:mass_notice, oper:remoteban;
};
privset "admin" {
extends = "global_op";
privs = oper:admin, oper:die, oper:rehash, oper:spy;
};
/* operator {}: IRCオペレータの定義 (OLD O:) */
operator "god" {
/* name: オペレータの名前を上で指定します */
/* user: user@host の形式で、ユーザーマスクを指定します。
* CIDRをサポートしています。複数行指定することも可能です。
*/
user = "*god@*";
user = "*@127.0.0.1";
/* password: IRCオペレータとしてログインするためのパスワードを指定
* します。mkpasswdを使ってMD5に変換するか、下で"encrypted"フラグを
* 解除して、平文で記述します。
*/
password = "etcnjl8juSU1E";
/* rsa key: the public key for this oper when using Challenge.
* A password should not be defined when this is used, see
* doc/challenge.txt for more information.
*/
#rsa_public_key_file = "/usr/local/ircd/etc/oper.pub";
/* fingerprint: if specified, the oper's client certificate
* fingerprint will be checked against the specified fingerprint
* below.
*/
#fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b";
/* umodes: the specific umodes this oper gets when they oper.
* If this is specified an oper will not be given oper_umodes
* These are described above oper_only_umodes in general {};
*/
#umodes = locops, servnotice, operwall, wallop;
/* snomask: specific server notice mask on oper up.
* If this is specified an oper will not be given oper_snomask.
*/
snomask = "+Zbfkrsuy";
/* flags: オペレータが行使できる権限を指定します。
* フラグ名の先頭に ~ をつけることで、デフォルトで設定されています
* フラグを無効化することができます。
*
* デフォルトのフラグは、 encrypted です。
*
* 利用可能なフラグ:
*
* encrypted: パスワードを暗号化して記述します。
* need_ssl: SSL接続を強制します。
*/
flags = encrypted;
/* privset: 適用する権限のセットを指定します。 */
privset = "admin";
};
/* connect {}: 他のサーバーとのリレーの設定 (OLD C:, N:, H:, L:) */
connect "irc.uplink.com" {
/* 相手のサーバー名を上に指定します。DNSで引ける必要はありません。 */
/* host: 相手のサーバーのアドレスを指定します。
* ホスト名でもIPアドレスでも構いません。
*/
host = "192.168.0.1";
/* vhost: the host or IP to bind to for this connection. If this
* is not specified, the default vhost (in serverinfo {}) is used.
*/
#vhost = "192.168.0.50";
/* passwords: 接続に使うパスワードを指定します。
* send (OLD C:)・accept (OLD N:) の2つのパスワードが必要です。
* 相手のサーバーでは、sendとacceptを逆にして設定します。
*/
send_password = "password";
accept_password = "anotherpassword";
/* fingerprint: if specified, the server's client certificate
* fingerprint will be checked against the specified fingerprint
* below.
*/
#fingerprint = "c77106576abf7f9f90cca0f63874a60f2e40a64b";
/* port: リレーに使用するポート番号 */
port = 6666;
/* hub mask: the mask of servers that this server may hub. Multiple
* entries are permitted
*/
hub_mask = "*";
/* leaf mask: the mask of servers this server may not hub. Multiple
* entries are permitted. Useful for forbidding EU -> US -> EU routes.
*/
#leaf_mask = "*.uk";
/* class: サーバーの接続クラスを指定します */
class = "server";
/* flags:相手のサーバーとの接続を制御します
* encrypted - acceptパスワードを暗号化します
* autoconn - 自動的にリレーの確立を試行します
* compressed - zipでデータを圧縮して転送します
* topicburst - リレー時、Topicをバーストモードで転送します
* ssl - 接続経路をSSLで暗号化します
*/
flags = compressed, topicburst;
};
connect "ipv6.some.server" {
/* host にIPv6のアドレスを指定する場合、短縮時には :: を使います。
* その時、コロンで始まるアドレスは、0::1 のように先頭に0を付加します。
*/
host = "3ffd:dead:beef::1";
send_password = "password";
accept_password = "password";
port = 6666;
/* aftype: IPv4/IPv6どちらかの利用を強制させます。デフォルトはIPv4です。
*/
aftype = ipv6;
class = "server";
};
connect "ssl.uplink.com" {
/* サーバーリレーにSSLを使う場合、暗号化時に圧縮されるため、
* "compressed"フラグを指定する必要はありません。
*/
host = "192.168.0.1";
send_password = "password";
accept_password = "anotherpassword";
port = 9999;
hub_mask = "*";
class = "server";
flags = ssl, topicburst;
};
/* cluster {}; 自動的に転送する設定の定義
* NOTE: This does NOT grant them privileges to apply anything locally,
* you must add a seperate shared block for that. Clustering will
* only be done for actions by LOCAL opers, that arent directed
* remotely.
*/
cluster {
/* name: 設定を共有する相手サーバーを指定します。
* ワイルドカードも使用可能です。
*/
/* flags: 共有の対象となる設定を指定します。
*
* kline - share perm klines
* tkline - share temp klines
* unkline - share unklines
* locops - share locops
* xline - share perm xlines
* txline - share temp xlines
* unxline - share unxlines
* resv - share perm resvs
* tresv - share temp resvs
* unresv - share unresvs
* all - share all of the above
*/
/* share klines/unklines/xlines with *.lan */
name = "*.lan";
flags = kline, unkline, xline;
/* share locops with irc.ircd-ratbox.org and ircd.ircd-ratbox.org */
name = "irc.ircd-ratbox.org";
name = "ircd.ircd-ratbox.org";
flags = locops;
};
/* service{}: 特権を持つサーバー・サービスの定義
* ここで指定したサーバーは、umode +S (unkickable) などの特権を持った
* ユーザーを接続させることができます。ここには普通のサーバーを書かないこと。
* またこの節は1つしか書くことができません。
*/
service {
/* name: サーバーの名前を指定します。これらは複数あってもかまいません */
name = "services.int";
};
/* shared {}: このサーバーのBANを他のサーバーから操作することが許可された
* ユーザーを指定します
* これらは上から並べられます。
* user@hostで指定されたユーザーと、接続しているサーバーの名前で指定します。
* ブロックごとに設定され、該当する別のブロックに逆戻りすることはありません。
*/
shared {
/* oper: 1番目に user@host を、2番目にサーバーのアドレスを、
* セットで記述する。これらは複数を列挙することができます。
*/
/* flags: 許可する権限の内容を指定します。
* oper の設定が出てくるまでのすべてが設定項目です。
* この項目は必ず記述しなければなりません。
*
* kline - allow setting perm/temp klines
* tkline - allow setting temp klines
* unkline - allow removing klines
* xline - allow setting perm/temp xlines
* txline - allow setting temp xlines
* unxline - allow removing xlines
* resv - allow setting perm/temp resvs
* tresv - allow setting temp resvs
* unresv - allow removing xlines
* all - allow oper/server to do all of above.
* locops - allow locops - only used for servers who cluster
* rehash - allow rehashing
* dline - allow setting perm/temp dlines
* tdline - allow setting temp dlines
* undline - allow removing dlines
* none - disallow everything
*/
/* allow flame@*.leeh.co.uk on server irc.ircd-ratbox.org and
* allow leeh@*.leeh.co.uk on server ircd.ircd-ratbox.org to kline
*/
oper = "flame@*.leeh.co.uk", "irc.ircd-ratbox.org";
oper = "leeh@*.leeh.co.uk", "ircd.ircd-ratbox.org";
flags = kline;
/* you may forbid certain opers/servers from doing anything */
oper = "irc@vanity.oper", "*";
oper = "*@*", "irc.vanity.server";
oper = "irc@another.vanity.oper", "bigger.vanity.server";
flags = none;
/* or allow everyone to place temp klines */
oper = "*@*";
flags = tkline;
};
/* exempt {}: deny{} やdlineでの指定を無視するIPアドレスの定義 (OLD d:) */
exempt {
ip = "192.168.0.0/16";
/* 列挙することもできます。 */
ip = "127.0.0.1";
ip = "10.0.0.0/8";
};
/* チャンネルについての設定 */
channel {
/* invex: +i チャンネルにおいて、+Iにマスクが
* 登録されたユーザーは、招待なしにJOINできるようにします。
* (+I の有効化)
* +i: 招待された人のみJOINできます
*/
use_invex = yes;
/* except: チャンネルの+b(BAN)が指定されていても、
* +eに登録されている人はBANされないようにします。
* (+e の有効化)
*/
use_except = yes;
/* forward: チャンネルに何らかの理由(+iなど)でJOINできなかった時、
* 他のチャンネルに自動的に転送するように設定できる +f を有効化します。
* +b の場合は、<mask>$<channel> と指定すると、特定のユーザーだけ別の
* チャンネルにJOINさせることができるようになります。
* +f: チャンネルにJOINできなかった時、他のチャンネルに転送します。
*/
use_forward = yes;
/* knock: 何らかの形でJOINできなくなっているチャンネルに対して、
* 外から招待してもらえるように働きかけられようにします。
* +ikl の場合のみで、+p が指定されたチャンネルや +b されている場合は
* ノックは送信されません。
* +k: パスワード付チャンネル
* +l: 入室者上限付きチャンネル
*/
use_knock = yes;
/* knock delay: KNOCKコマンドで遅延処理をする時間を設定します。
*/
knock_delay = 5 minutes;
/* knock channel delay: KNOCKコマンドの頻度を設定します。
*/
knock_delay_channel = 1 minute;
/* max chans: 1ユーザーがJOINできるチャンネル数を設定します。
* デフォルトは15チャンネルまでです。0にしても無制限になりません。
*/
max_chans_per_user = 500;
/* max bans: 各チャンネルの +b/e/I/q リストの最大登録数 */
max_bans = 100;
/* max bans: +L が設定されたチャンネルは、max_bansを置き換えます。 */
max_bans_large = 500;
/* splitcode: サーバースピリットが発生した時の設定。
* split user, split server, 及び no_join_on_split と
* no_create_on_split のどちらかは、スプリットが起こっているか
* 確認するために必要です。
* ユーザー数・サーバー数のどちらかが限界量を超えると
* スプリットモードに切り替わります。
*
* 以下は強制的にスプリットモードに切り替えるIRCコマンドです。
* /set splitmode on
*/
/* split users: ユーザー数がここで設定した値を下回ると、サーバーは
* スプリットモードに切り替わります。この設定は自動切り替えのために
* 必要です。
*/
default_split_user_count = 0;
/* split servers: サーバー数がここで設定した値を下回ると、サーバーは
* スプリットモードに切り替わります。この設定は自動切り替えのために
* 必要です。
*/
default_split_server_count = 0;
/* split: no create: スプリット中は新しくチャンネルを
* 作れないようにします。
*/
no_create_on_split = no;
/* split: no join: スプリット中は新しくチャンネルに
* JOINできないようにします。
*/
no_join_on_split = no;
/* burst topicwho: Topicをバーストモードで転送するとき、
* 設定者も同様に転送します。
*/
burst_topicwho = yes;
/* kick on split riding: サーバースピリット時にユーザーがJOINした
* チャンネルが、+i を設定されていたり、+k が設定されていてなおかつ
* +k に設定された正しいキーワードとは違うキーワードでJOINした場合、
* TSに従って、SJOINコマンドでそのチャンネルにJOINさせる代わりに、
* チャンネルからKICKします。
*
* この設定は、+r/+b/+e/+I を考慮しません。
*/
kick_on_split_riding = no;
/* only ascii channels: ローカルユーザーが、ASCIIコード以外(3-126)を
* 名前に含んでいるチャンネルにJOINできないようにします。
*/
only_ascii_channels = no;
/* resv_forcepart: force any local users to part a channel
* when a RESV is issued.
*/
resv_forcepart = yes;
/* channel target change: ユーザーが単位時間あたりにメッセージを送る
* ことのできるチャンネルの数を制限します。サーバーオペレータ・
* チャンネルオペレータとそのチャンネルで +v になっているユーザーは
* 除きます。
*/
channel_target_change = no;
/* disable local channels: ローカルチャンネル(このサーバーに直接接続
* しているユーザー以外はJOINできないチャンネル)を無効化します。
*/
disable_local_channels = no;
};
/* serverhide {}: linksなどからサーバーを隠すための設定 */
serverhide {
/* flatten links: IRCコマンド /links の応答で、他のすべてのサーバーが
* このサーバーにリレーしているように見せます。
*/
flatten_links = no;
/* links delay: how long to wait before showing splits or new
* servers in a flattened /links output.
*/
links_delay = 5 minutes;
/* hidden: IRCコマンド /links の応答で、このサーバーを隠します。
* 応答する側のサーバーが対応している必要があります。
* ハブサーバーを非表示にしたいときなどに利用します。
*/
hidden = no;
/* disable hidden: IRCコマンド /links の応答で、サーバーを
* 隠さないようにします。
*/
disable_hidden = no;
};
/* blacklist {}: ブラックリストの設定
* DNSBLを使用して接続を拒否することができます。
* 複数のホスト名と拒否理由を設定することができます。
* これらは1つのペアとして設定します。
*
* この設定はほとんどのIRCネットワークで必要となるでしょう。
* 特に、(現時点では)StaticBoxでは必ず必要となります。
*
* 接続を拒否するためにSPEWSのようなブラックリストを使わないでください。
*
* charybdis2.2 からは、以下のキーワードを拒否理由に使用することができます。
*
* ${ip} - 接続者のIPアドレス
* ${host} - 接続者のホスト名
* ${dnsbl-host} - DNSBLで検索されたホスト名
* ${nick} - 接続者のNICK
* ${network-name} - このIRCネットワークの名前
*
* charybdis3.4 からは、type パラメータがサポートされるようになりました。
* IPv4/IPv6が設定値ですが、省略するとIPv4を指定されたものとして解釈します。
*
* AHBL (下記の記述例で、*.ahbl.org というアドレスのブラックリストプロバイダ)
* を使う場合は、先に admins@2mbit.com にブラックリストを使うことを連絡しなけ
* ればなりません。詳しくは http://www.ahbl.org/services.php を参照して下さい。
*/
blacklist {
# host = "rbl.efnetrbl.org";
# type = ipv4;
# reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}";
# host = "ircbl.ahbl.org";
# type = ipv4;
# reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for having an open proxy. In order to protect ${network-name} from abuse, we are not allowing connections with open proxies to connect.";
#
# host = "tor.ahbl.org";
# type = ipv4;
# reject_reason = "${nick}, your IP (${ip}) is listed as a TOR exit node. In order to protect ${network-name} from tor-based abuse, we are not allowing TOR exit nodes to connect to our network.";
#
/* Example of a blacklist that supports both IPv4 and IPv6 */
# host = "foobl.blacklist.invalid";
# type = ipv4, ipv6;
# reject_reason = "${nick}, your IP (${ip}) is listed in ${dnsbl-host} for some reason. In order to protect ${network-name} from abuse, we are not allowing connections listed in ${dnsbl-host} to connect";
};
/* alias {}: コマンドのエイリアスの設定 (OLD m_sshortcut.c)
* このブロックでは、カスタムIRCコマンドを定義することができます。
* 定義したコマンドは対象にPRIVMSGを送信します。ホンモノのコマンドはエイリアス
* より優先されます。
*/
alias "NickServ" {
/* うえでエイリアス(カスタムコマンド)の名前を設定します。 */
/* target: 実際にコマンドを処理する対象を指定します。
* NICK か、user@server の形で記述します。
* server に、このサーバーを指定することはできません。対象のサーバーで
* 解釈するだけなので、代わりに nick@server を使う必要があるかもしれま
* せん。IRCオペレータだけは、確実に"opers"から始まるユーザーを利用する
* ことができます。
*/
target = "NickServ";
};
alias "ChanServ" {
target = "ChanServ";
};
alias "OperServ" {
target = "OperServ";
};
alias "MemoServ" {
target = "MemoServ";
};
alias "NS" {
target = "NickServ";
};
alias "CS" {
target = "ChanServ";
};
alias "OS" {
target = "OperServ";
};
alias "MS" {
target = "MemoServ";
};
/* general {}: 起動時に読み込まれる設定
* ビルド時に config.h で設定したオプションを多く含みます。
*/
general {
/* hide error messages: サーバーからのエラーメッセージを隠す設定です。
* このメッセージはIPアドレスを含む可能性があり、サーバー隠蔽の
* 障害となることがあります。設定値は以下の3つです。
* サーバー管理者は、他のサーバーではオペレータとしてカウントされます。
* yes: サーバー管理者・オペレータの両方に対して隠します。
* opers: サーバーオペレータに対して隠します。
* no: 一般ユーザーに対してのみ隠します。
*/
hide_error_messages = opers;
/* hide spoof ips: IPアドレスを偽装した利用者の、本当のIPアドレスを
* 隠します。無効にした場合、ローカルオペレータはそれを見ることができ
* ます。
* サービスによって設定されるなどのダイナミックな隠蔽設定は、この設定
* 項目に影響されず、ローカル・リモート問わずすべてのオペレータが本当
* のIPアドレスを知ることができます。
* 警告: IRCコマンド /whowas において、IPアドレスが表示されていないと
* き、クライアントの切断時にこの項目がチェックされます。
*/
hide_spoof_ips = yes;
/* default umodes: クライアントの接続時、自動的に設定されるユーザー
* モードを設定します。拡張機能"ip_cloaking"が有効になっているとき、
* または接続時に +h/+x のどちらかが設定されるように設定する場合、
* 下にそれを追加します。
*/
default_umodes = "+i";
/* default operstring: IRCコマンド /whois で応答する、IRCオペレータの
* 情報に付加する文字列を設定します。起動後、以下のIRCコマンドで再設定
* できます。
* /set operstring
*/
default_operstring = "is an IRC Operator";
/* default adminstring: IRCコマンド /whois で応答する、IRCサーバー管理
* 者の情報に付加する文字列を設定します。起動後、以下のIRCコマンドで再
* 設定できます。
* /set adminstring
*/
default_adminstring = "is a Server Administrator";
/* servicestring: IRCコマンド /whois で応答する、IRCオペレータ権を持つ
* サービス(ユーザーモード+S)の情報に付加する文字列を設定します。
* この設定を変更するには、設定ファイルを再読み込みしてください。
*/
servicestring = "is a Network Service";
/* disable fake channels: 文字列装飾付きのチャンネル名を無効化します。
* yesにすると、一部の日本語の文字がチャンネル名に使えなくなります。
*/
disable_fake_channels = no;
/* tkline_expire_notices: tkline の有効期限が切れた時、IRCオペレータに
* 通知する。
*/
tkline_expire_notices = no;
/* floodcount: どこかのチャンネルかクライアントに、1秒以内に送られた
* メッセージを処理する数を設定します。設定値を超えた分に関しては、
* サーバー側で破棄されます。
* 以下のIRCコマンドで一時的に値を変更することができます。
* /set floodcount
*/
default_floodcount = 20;
/* failed oper notice: 誰かがIRCオペレータに昇格するとき、パスワードを
* 間違えた場合、それをサーバー上のすべてのオペレータに通知します。
*/
failed_oper_notice = yes;
/* dots in ident: the amount of '.' characters permitted in an ident
* reply before the user is rejected.
*/
dots_in_ident=2;
/* min nonwildcard: the minimum non wildcard characters in k/d/g lines
* placed via the server. klines hand placed are exempt from limits.
* wildcard chars: '.' '*' '?' '@'
*/
min_nonwildcard = 4;
/* min nonwildcard simple: the minimum non wildcard characters in
* xlines/resvs placed via the server.
* wildcard chars: '*' '?'
*/
min_nonwildcard_simple = 3;
/* max accept: maximum allowed /accept's for +g usermode */
max_accept = 20;
/* max monitor: the maximum amount of nicknames a client may have in
* their monitor (server-side notify) list.
*/
max_monitor = 100;
/* nick flood: enable the nickflood control code */
anti_nick_flood = yes;
/* nick flood: the nick changes allowed in the specified period */
max_nick_time = 20 seconds;
max_nick_changes = 5;
/* anti spam time: ユーザーがサーバーに接続したりチャンネルに
* 入ったりしてから、一定時間を経たないうちにサーバーから切断したり
* チャンネルから出たりした時、クライアントから送られた独自の
* メッセージを使わないようにします。
* ここで設定した時間を超えた場合は、通常通り /quit /part などの
* コマンドで指定したメッセージを使えるようになります。
*/
anti_spam_exit_message_time = 30 seconds;
/* ts delta: サーバー間の時刻の差が大きくなりすぎた時、強制的にリレーを
* 切断します。全てのサーバーは、ntpdate/rdate などを用いて時刻を同期
* してください。
* ts warn delta: 設定値より時刻の差が大きくなった場合、警告を行ないます
* ts max delta: 設定値より時刻の差が大きくなった場合、切断します。
*/
ts_warn_delta = 30 seconds;
ts_max_delta = 5 minutes;
/* client exit: prepend a users quit message with "Client exit: " */
client_exit = yes;
/* collision fnc: NICKが衝突した時、可能ならばクライアントをKICKせず、
* NICKに数字を付加します。ネットワーク上のすべてのサーバーで、
* 数字から始まるNICKを許可しているときだけ、有効にすることができます。
*/
collision_fnc = yes;
/* resv fnc: change a user's nick to a nick they have recently used
* (or their UID, if no such nick can be found) when a resv matching
* them is set by services. Only enable this if all servers on the
* network allow remote nicks to start with a digit.
*/
resv_fnc = yes;
/* global snotices: send out certain snotices (most +b, +f, +y,
* some +s) to other servers via ENCAP SNOTE. Received SNOTEs are
* displayed unconditionally.
*/
global_snotices = yes;
/* dline reason: line に登録されているクライアントが接続してきたとき、
* 登録された理由を表示します。
*/
dline_with_reason = yes;
/* kline delay: 指定した時間まで、 klineのチェックを遅らせます。
* 多くの場合、大きいklineがサーバーがCPUを占有するのを防ぐために、
* 設定されます。
*/
kline_delay = 0 seconds;
/* kline reason: k/d/glineで切断される前に、何故登録されたのかを
* 表示します。
* may give away who set k/dline when set via tcm.
*/
kline_with_reason = yes;
/* kline reason: IRCオペレータによる理由の代わりに、チャンネルでの
* ユーザーが切断されたときのメッセージを設定します。
*/
kline_reason = "Connection closed";
/* サーバー接続時にパスワードを送信した時、自動的にNickServなどのユー
* ザー認証システムに転送します。auth{}ブロックでパスワードを要求しない
* ように設定したユーザーにのみ有効となります。
* サーバーは <identify_service> へPRIVMSGで <identify_command>
* <password> というテキストを送信します。
*/
identify_service = "NickServ@services.int";
identify_command = "IDENTIFY";
/* non redundant klines: flag and ignore redundant klines */
non_redundant_klines = yes;
/* warn no nline: warn opers about servers that try to connect but
* we dont have a connect {} block for. Twits with misconfigured
* servers can get really annoying with this enabled.
*/
warn_no_nline = yes;
/* use propagated bans: KLINE, XLINE and RESV set fully propagated bans.
* That means the bans are part of the netburst and restarted/split
* servers will get them, but they will not apply to 3.2 and older
* servers at all.
*/
use_propagated_bans = yes;
/* stats e disabled: disable stats e. useful if server ips are
* exempted and you dont want them listing on irc.
*/
stats_e_disabled = no;
/* stats c oper only: make stats c (connect {}) oper only */
stats_c_oper_only=no;
/* stats h oper only: make stats h (hub_mask/leaf_mask) oper only */
stats_h_oper_only=no;
/* stats y oper only: make stats y (class {}) oper only */
stats_y_oper_only=no;
/* stats o oper only: make stats o (opers) oper only */
stats_o_oper_only=yes;
/* stats P oper only: make stats P (ports) oper only
* NOTE: users doing stats P will never be given the ips that the
* server listens on, simply the ports.
*/
stats_P_oper_only=no;
/* stats i oper only: make stats i (auth {}) oper only. set to:
* yes: show users no auth blocks, made oper only.
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_i_oper_only=masked;
/* stats k/K oper only: make stats k/K (klines) oper only. set to:
* yes: show users no auth blocks, made oper only
* masked: show users first matching auth block
* no: show users all auth blocks.
*/
stats_k_oper_only=masked;
/* map oper only: IRCコマンド /map を、IRCオペレータだけが
* 実行できるようにします。
*/
map_oper_only = no;
/* operspy admin only: make operspy notices to +Z admin only */
operspy_admin_only = no;
/* operspy dont care user info: treat /who mask as if there was
* an '!' always; do not log or server notice about operspy
* /who mask, /masktrace and /scan. channel information is still
* protected. */
operspy_dont_care_user_info = no;
/* caller id wait: time between notifying a +g user that somebody
* is messaging them.
*/
caller_id_wait = 1 minute;
/* pace wait simple: IRCコマンド /help /whois /whowas を実行できる
* 間隔を設定します。
*/
pace_wait_simple = 1 second;
/* pace wait: のIRCコマンドを実行できる間隔を設定します。
* (ADMIN, INFO, LIST, LUSERS, MOTD, STATS, VERSION)
*/
pace_wait = 10 seconds;
/* short motd: send clients a notice telling them to read the motd
* instead of forcing a motd to clients who may simply ignore it.
*/
short_motd = no;
/* ping cookies: PINGコマンドに対して、正確に応答するよう要求します。
* FTP PASVモードのなりすましなどを防げるようになります。
*/
ping_cookie = no;
/* connect timeout: 接続時に、要求が成功したか確かめるために待機する
* 時間を設定します。
*/
connect_timeout = 30 seconds;
/* ident timeout: ユーザーからident認証が帰ってくるのを待機する時間を
* 設定します。
*/
default_ident_timeout = 5;
/* disable auth: ident認証を無効化します。 */
disable_auth = no;
/* no oper flood: increase flood limits for opers. */
no_oper_flood = yes;
/* i削除してください。この行は、あなたがここまで設定ファイルを
* 読んだか確認するためのものです。
*/
#havent_read_conf = yes;
/* max targets: 1つのIRCコマンド /notice /privmsg で指定できる、
* 発言先の最大数を設定します。0ではなく、999を設定することで、
* 無制限にすることができます。
*/
max_targets = 4;
/* use_whois_actually: send clients requesting a whois a numeric
* giving the real IP of non-spoofed clients to prevent DNS abuse.
*/
use_whois_actually = yes;
/* 設定可能なユーザーモード:
*
* +g - callerid - サーバー側で発言を無視します。
* +D - deaf - Don't see channel messages
* +i - invisible - Not shown in NAMES or WHO unless you share a
* a channel
* +l - locops - See LOCOPS messages
* +Q - noforward - Unaffected by channel forwarding
* +R - regonlymsg - No messages from unindentified
* +s - servnotice - See server notices
* +w - wallop - See oper and server generated WALLOPS
* +z - operwall - See operwalls
*/
/* oper only umodes: オペレータのみが設定可能なユーザーモードを指定し
* ます。
oper_only_umodes = operwall, locops, servnotice;
/* oper umodes: オペレータに昇格した時に自動的に設定するユーザーモード
* を指定します。
oper_umodes = locops, servnotice, operwall, wallop;
/* oper snomask: default snomask opers get when they /oper,
* provided they have umode +s set */
oper_snomask = "+s";
/* use egd: if your system does not have *random devices yet you
* want to use OpenSSL and encrypted links, enable this. Beware -
* EGD is *very* CPU intensive when gathering data for its pool
*/
#use_egd = yes;
/* egdpool path: path to EGD pool. Not necessary for OpenSSL >= 0.9.7
* which automatically finds the path.
*/
#egdpool_path = "/var/run/egd-pool";
/* compression level: サーバー間接続で圧縮通信を行なう場合の
* 圧縮レベルを設定します。
*
* 設定値は 1 (圧縮率は最も低く、処理速度は最も速い)
* から 9 (圧縮率は最も高く、処理速度は最も遅い)
*/
#compression_level = 6;
/* burst_away: This enables bursting away messages to servers.
* With this disabled, we will only propogate AWAY messages
* as users send them, but never burst them. Be warned though
* enabling this could increase the size of a burst significantly
* for a large network, like EFnet.
*/
burst_away = yes;
/* nick delay: This locks nicks of split clients for the given time
* or until a remote client uses the nick. This significantly
* reduces nick collisions on short splits but it can be annoying.
* To make things as fair as possible, this should be the same on
* all servers. If you enable this, the suggested value is 15 minutes.
*/
nick_delay = 0 seconds;
/* reject time: the amount of rejections through klines/dlines etc
* allowed in the given time before the rejection is cached and
* a pseudo temp dline is placed
*/
reject_ban_time = 1 minute;
reject_after_count = 3;
/* reject duration: the amount of time to cache the rejection */
reject_duration = 5 minutes;
/* throttle_duration: 同じIPアドレスからの接続を制限するとき、どのくら
* いの時間を単位として制限するかを設定します。
*/
throttle_duration = 60;
/* throttle_count: throttle_duration で設定した単位時間あたり、いくつ
* までの接続を許可するかを設定します。
*/
throttle_count = 4;
/* client flood_max_lines: maximum number of lines in a clients queue before
* they are dropped for flooding.
*/
client_flood_max_lines = 20;
/* Flood control settings. DO NOT CHANGE THESE without extensive discussion
* and testing by someone who knows exactly what they do.
*
* These settings replicate charybdis-3.3 behaviour.
*/
client_flood_burst_rate = 40;
client_flood_burst_max = 5;
client_flood_message_time = 1;
client_flood_message_num = 2;
/* max_ratelimit_tokens: the maximum number of ratelimit tokens that one
* user can accumulate. This attempts to limit the amount of outbound
* bandwidth one user can consume. Do not change unless you know what
* you're doing.
*/
max_ratelimit_tokens = 30;
/* away_interval: IRCコマンド /away を使うことのできる間隔を設定します。
*
he minimum interval between AWAY commands. One
* additional AWAY command is allowed, and only marking as away
* counts.
*/
away_interval = 30;
};
modules {
/* module path: モジュールを検索するパスを設定します。 */
path = "/usr/local/ircd/modules";
path = "/usr/local/ircd/modules/autoload";
/* module: 起動時・設定再適用時に読み込むモジュールの名前を指定します。
*/
#module = "some_module.so";
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment