hemp-patch の概要、機能

06622, Today: 002, Yesterday: 003 Hits

【 hemp-patchについて 】

新機能

スプリットモード [split-mode]

特定のサーバ間のリンクが切れたとき、split-mode というモードに切り替わり、新 しくチャンネルを作成したときにチャンネルオペレータ権限を取得することが出来な くなります。何故このようなモードが出来たかというと、サーバ間のリンクが切れた 時に、各々のサーバが孤立し、今まで存在していたチャンネルに自分自身一人だけし か居ない状態になれば、rejoin することにチャンネルオペレータ権限を取得するこ とが出来ましたが、それが悪用され、チャンネルの乗っ取りに利用されることが有り ました。それを防ぐための機能です。 すなわち、スプリット時に新しくチャンネルを作成したとしても、チャンネルオペレ ータ権限を取得することが出来ません。

スプリットモードに入っている場合、サーバ接続時に以下のようにサーバからのメッ セージがあります。その際、接続しているサーバ名からあなた宛にメッセージが飛ん できたように見えます。また、接続中、スプリットが起こり、スプリットモードに入 った場合も同様です。

Server is currently in split-mode. You will NOT get channel operator status on new channels.

split-mode に入る条件

サーバの設定ファイル config.h に以下の項目があります。その閾値以下になると、 split-modeに入ります。

#define SPLIT_HANDLE

/* defines minimum for GLOBAL channels */

#define SPLIT_SERV  16
#define SPLIT_USERS 24000

また、ユーザが閾値を確認する方法には、stats d というコマンドを使用し、情報取得 することにより、調べることが可能となります。

248 jv:LFsNdD5?MSoIvi Split Servers: 16 (44) Users: 24000

OpenWebProxyチェック [Auth]

詳細は Denied Accessの「オープンプロキシ サーバとして判断されているケース」に詳細を記載しております。そちらをご覧下さ い。

TOPIC を付けた時間とユーザ情報を記録 [TOPICWHOTIME]

チャンネルにJOINすると現在のTOPICだけではなく、何時、誰がトピックを付けたか の情報が得る事が出来るようになりました。

#channel topic was set at 2003/12/01 00:50:39 by nickname!~username@example.com

WHOIS についての詳細情報 [WHOIS_SIGNON_TIME]

hemp-patch が当たっていない状態では、idle timeしか取得出来なかったのですが、 それが拡張され、サーバに接続してからどれだけ時間が経過したかも分かるようにな りました。 単位は秒なので、それを `60` で割ると、分に、 `3600` で割ると時間に変換するこ とが分かります。すなわち、逆算により、接続した日時も分かるようになりました。

118411 1069930016 :seconds idle, signon time

読み方は次の通りです。

idletime(秒) 接続してからの経過時間(秒) :seconds idle, signon time

LUSERS について詳細情報

hemp-patch 以前はネットワーク全体のユーザ数、サーバ数、オペレータ数、チャン ネル数、そのサーバに繋がっているユーザ数しか得ることが出来ませんでしたが、パ ッチが当たることにより、情報が拡張されました。dti の結果を見ていただければ分 かると思いますが、ユーザ数に対しての現在の接続数、接続最大数が表示されるよう になりました。

以下のデータは同時刻に以下の二つのサーバで取得しました。

接続時のユーザ権限 [SEND_ISUPPORT]

IRCサーバに接続したとき、どのような制限があるのか情報が表示される ようになりました。

MAP PREFIX=(ov)@+ MODES=3 CHANTYPES=#&!+ MAXCHANNELS=20 NICKLEN=9 TOPICLEN=160 KICKLEN=160 NETWORK=IRCNet CHANMODES=beI,k,l,imnpstaqr :are supported by this server
+#ifdef SEND_ISUPPORT
+/* 005 */    //{ RPL_ISUPPORT, "MAP PREFIX=(ov)@+ MODES=3 CHANTYPES=#&!+ MAXCHANNELS=%d NICKLEN=%d TOPICLEN=%d KICKLEN=%d NETWORK=%s CHANMODES=beI,k,l,imnpstaqr :are supported by this server" },

以下項目の説明

MAP PREFIX
MODES
同時にMODEを発行出来る最大数です。ソースを見る限り、値を固定されているため、 絶対値。
例えば、mode +ooo nick1 nick2 nick3 の様な使い方をするときの mode +/- の同時 に発行出来る個数です。
CHANTYPES
利用出来るチャンネルの種類。値を固定されているため、絶対値。
'#' で始まるチャンネルはグローバルチャンネルであり、IRCネットワークに接続す るすべてのサーバに対して公開されているチャンネルです。
'&' で始めるチャンネルはローカルチャンネルであり、同じIRCサーバに繋いでいる 人に対して公開されるチャンネルです。
'!' で始まるチャンネルはセーフチャンネルであり、チャンネルオペレータ権限を全 員失った場合、サーバがランダムの人にオペレータ権限をあたえます。その与えるま での時間はサーバの設定によります。詳細は RFC2811の3.2 セーフチャンネル をご 覧下さい。
'+' は RFC2811より、「プレフィックスとして'+'がついているチャンネルは、チャ ンネルモードをサポートしません。つまり、チャンネルフラグ't' を除いてすべての モードがセットされません。」と有ります。
すなわち、チャンネルモードをサポートしないので、どのメンバーもチャンネルオペ レータになることが出来ません。
MAXCHANNELS
1接続当たり同時にチャンネルに参加することの上限数です。IRCNet-JP では 20チャ ンネルとなっています。irc.huie.hokudai.ac.jp のみ 30チャンネル同時に参加する ことが出来ます。
NICKLEN
自分自身のニックネームに付けることの出来る最大文字数。RFC2818 で規定されてお り、最大、原則9文字(9byte)となっています。
TOPICLEN
TOPICの付けられる最大文字数(単位byte)
KICKLEN
特定の人をチャンネルから追い出すときのメッセージの最大文字数
NETWORK
所属するIRCNetWorkのグループ名、ネットワーク名
CHANMODES
チャンネルに付加することの出来るチャンネルモード一覧

サーバマップの表示 [SERVER_MAP]

IRCサーバに向かって MAP というコマンドを送ることにより、サーバのリンク図がテ キストでわかりやすく表示されます。殆どのクライアントはコマンドの prefix が '/' でしょうから、 '/map' と入力することにより、表示出来るでしょう。

変更点

TOPICの長さの変更

hemp.diff のソースを読むと、以下のようになっており、TOPIC の長さの最大が 80byte から 160byte に変更され拡張されています。hemp-patch の当たっていない 場合は TOPIC の長さが 80byte までの為、hemp-patch の当たっていないサーバから 見ると、後ろがきれた TOPIC になる事があります。また、80byte 未満の TOPIC で あれば問題なく表示できます。

diff -ur --new-file irc2.10.3p3/common/struct_def.h irc2.10.3p3+hemp/common/struct_def.h
--- irc2.10.3p3/common/struct_def.h    Mon May 14 14:02:08 2001
+++ irc2.10.3p3+hemp/common/struct_def.h    Sat Nov 24 14:57:01 2001
@@ -47,7 +47,7 @@
                  */
 #define    USERLEN     10
 #define    REALLEN     50
-#define    TOPICLEN    80
+#define    TOPICLEN    160
 #define    CHANNELLEN  50
 #define    PASSWDLEN   20
 #define    KEYLEN      23

IRCサーバから ポートスキャン (portscan) される

2002.11.01 現在 hemp-patch のあたったバージョンのIRCサーバが使用されておりま す。このホスト群から「 PortScan される/された 」という話をよく聞きますが、 hemp-patch の仕様として、open proxy のチェックを試みるという機能が有り、現在 の設定では、ユーザがIRCサーバに接続を試みたとき、port 80, 3128, 8080, 10080 をチェックするようになっています。 詳細は Denied Accessの「オープンプロキシ サーバとして判断されていませんか?」を参照してください。 hemp-patch が適用される前から socks proxy チェックのため 1080/TCP はチェック されていました。

Copyright (C) 2003 tomocha
Last update: 2003-12-16
tomo@tomocha.net