Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[討論] 具有帳號/密碼的 innbbsd ?!

0 views
Skip to first unread message

獅子男

unread,
Jul 4, 2003, 5:57:05 AM7/4/03
to
板上有不少前輩也有架設過 inn 的經驗.

inn 從很早就支援帳號密碼認證的方式來讀取/發送新聞群組文章,
但是 innbbsd 多次演進以來, 尚未將此機能加入.

而小弟因見識淺薄, 似乎也還沒看到有 BBS 系統自行修改 innbbsd (或是 bbsnnrp
與 bbslink) 讓其支援以帳號密碼認證的方式進行轉信.

小弟想, 這個機制的加入將可以讓浮動 IP 的 BBS 轉信 BBS 有比較好的方式來取得
一些 news 的權限開放支援, 而 news 在權限上的控管也多了一種管道.

而多了這種管道, 一些開放的 news 或許也可以將原本全部開放的權限做管制,
以減少廣告信於轉信群組上流通的可能性.

不知道板上的前輩們對此機制有何看法?!
或是在這種機制上面已經有達成的實例?!

煩請不吝賜教, 謝謝. :)

--
[1;33mLeo [joehorn]:~> make love
[1;32mmake: don't know how to make love. Stop
[1;33mLeo [joehorn]:~> why?
[1;32mwhy?: No match. [m

--
[1;32m※Origin: [33m星 情 小 築 [37m< Star.leobbs.net >
[1;31m※From: [1;36m 52.c218-184-166.ethome.net.tw [m

bbs.ats.idv.tw

unread,
Jul 4, 2003, 8:28:12 AM7/4/03
to
※ 引述《JoeHo...@Star.leobbs.net (獅子男)》之銘言:
: 而小弟因見識淺薄, 似乎也還沒看到有 BBS 系統自行修改 innbbsd (或是 bbsnnrp
: 與 bbslink) 讓其支援以帳號密碼認證的方式進行轉信.
如果用明碼的方式記錄那些主機需密碼確認 並執行帳號登錄並不難 不過考量到餵抓
信的來源 可能是 News 主機 或是 BBS 主機 故最好的狀況是能以現有 inn 的方式來
因應 也可避免相容性的問題

如果相同的 innbbsd 版本修改是還好 重要的是要能辯識對方支不支援與溝通的協議
但不同版本間就麻煩了 有個統一的存取方法較好宣示 大家一起動手改 這時就看誰先
抽空去 trace inn 的 source 或是知道有那些現有的函式或函式庫可以抓 :p

--
說到 News/Standard 專門我就想到 P 兄 XD (有標準程式碼得以照本宣科最好 ~_~)

--
[mOrigin: [1;32;40mAtlantis [m DN: [1;31;40mbbs.ats.idv.tw [m IP : [1;36;40m203.73.231.195 [m ST: [1;33;40matlantis [m

獅子男

unread,
Jul 4, 2003, 9:24:43 AM7/4/03
to
※ 引述《Dopi...@203.73.231.195 (bbs.ats.idv.tw)》之銘言:
: ※ 引述《JoeHo...@Star.leobbs.net (獅子男)》之銘言:

: : 而小弟因見識淺薄, 似乎也還沒看到有 BBS 系統自行修改 innbbsd (或是 bbsnnrp
: : 與 bbslink) 讓其支援以帳號密碼認證的方式進行轉信.
: 如果用明碼的方式記錄那些主機需密碼確認 並執行帳號登錄並不難 不過考量到餵抓
: 信的來源 可能是 News 主機 或是 BBS 主機 故最好的狀況是能以現有 inn 的方式來
: 因應 也可避免相容性的問題
: 如果相同的 innbbsd 版本修改是還好 重要的是要能辯識對方支不支援與溝通的協議
: 但不同版本間就麻煩了 有個統一的存取方法較好宣示 大家一起動手改 這時就看誰先
: 抽空去 trace inn 的 source 或是知道有那些現有的函式或函式庫可以抓 :p
inn 已經支援此種類型的認證方式來控制群組存取權,
Outlook Express 上面就可以做這類型的設定,
目前要改的目標應該是在 bbsnnrp 與 bbslink (與 bbslink2) 這些程式.

提供一些資料做參考, 這是剛剛用封包監聽軟體在我自己的電腦上攔截本機端的
Outlook Express 對 News Server 傳送的封包解讀:

client 連上 News Server nntp port 之後將會產生以下的封包傳遞步驟:

Step Client <-> Server 傳送的封包資料
=========================================================
1 <-- 200 [News Server 相關資訊]
2 --> "MODE READER"
3 <-- 200 [News Server 相關資訊]
4 --> "AUTHINFO USER [username]"
5 <-- 381 PASS required
6 --> "AUTHINFO PASS [password]"
7 <-- 281 Ok!
8 --> GROUP [groupname]
9... <-> [group 間的通訊]

沒有帳號與密碼的話就會跳過 4~7 步!

剛剛 trace 過 bbsnnrp, bbslink, bbslink2 的 source,
也的確有 "MODE READER" 這個字串存在,
可是小弟嘗試改過 source 之後測試失敗! T_T

Yen-Ming Lee

unread,
Jul 5, 2003, 1:27:11 PM7/5/03
to
※ 引述《JoeHo...@Star.leobbs.net》之銘言:

[deleted]

: 沒有帳號與密碼的話就會跳過 4~7 步!


: 剛剛 trace 過 bbsnnrp, bbslink, bbslink2 的 source,
: 也的確有 "MODE READER" 這個字串存在,
: 可是小弟嘗試改過 source 之後測試失敗! T_T

char AuthinfoUser[MAXBUFLEN];
char AuthinfoPass[MAXBUFLEN];

while ((c = getopt(argc, argv, "(ALL_OLD_ARGS_HERE)U:P:")) != -1)

case 'U':
strcpy(AuthinfoUser, optarg);
break;
case 'P':
strcpy(AuthinfoPass, optarg);
break;

bbslink.c:

else if (USEPOST)
{
tcpcommand("MODE READER");
status = tcpcommand("POST");
if (status == 480) /* Authentication required for command */
{
tcpcommand("AUTHINFO USER %s", AuthinfoUser);
tcpcommand("AUTHINFO PASS %s", AuthinfoPass);
status = tcpcommand("POST");
}
if (status == 340)
{
returnstatus = post_article(node, site, sover, textline);
}


bbsnnrp.c:

fputs("MODE READER\r\n", bbsnnrp->nnrpout);
fflush(bbsnnrp->nnrpout);
verboselog("nnrpPut: MODE READER\n");
fgets(buffer, sizeof buffer, bbsnnrp->nnrpin);
verboselog("nnrpGet: %s", buffer);

fputs("GROUP junk\r\n", bbsnnrp->nnrpout);
fflush(bbsnnrp->nnrpout);
verboselog("nnrpPut: GROUP junk\n");
fgets(buffer, sizeof buffer, bbsnnrp->nnrpin);
verboselog("nnrpGet: %s", buffer);

if (atoi(buffer) == 480)
{
fprintf(bbsnnrp->nnrpout, "AUTHINFO USER %s\r\n", AuthinfoUser);
fflush(bbsnnrp->nnrpout);
verboselog("nnrpPut: AUTHINFO USER %s\n", AuthinfoUser);
fgets(buffer, sizeof buffer, bbsnnrp->nnrpin);
verboselog("nnrpGet: %s", buffer);

fprintf(bbsnnrp->nnrpout, "AUTHINFO PASS %s\r\n", AuthinfoPass);
fflush(bbsnnrp->nnrpout);
verboselog("nnrpPut: AUTHINFO PASS %s\n", AuthinfoPass);
fgets(buffer, sizeof buffer, bbsnnrp->nnrpin);
verboselog("nnrpGet: %s", buffer);

if (buffer[0] != '2')
{
fprintf(stderr, "NNRP server AUTH failed\n");
return;
}

}

if (DefaultNntpProtocol == NntpPostProtocol)
{
fputs("MODE READER\r\n", bbsnnrp->innbbsout);
fflush(bbsnnrp->innbbsout);
verboselog("innbbsPut: MODE READER\n");
fgets(buffer, sizeof buffer, bbsnnrp->innbbsin);
verboselog("innbbsGet: %s", buffer);
}

-
大概這樣, 看的懂得自己玩..
--
Yen-Ming Lee [李彥明] | http://www.leeym.com/
--
※ From: utopia.leeym.com

Yen-Ming Lee

unread,
Jul 6, 2003, 12:30:35 AM7/6/03
to
※ 引述《JoeHo...@Star.leobbs.net》之銘言:

[deleted]

bbslink.c:


bbsnnrp.c:

}

-
大概這樣, 看得懂的自己玩..

0 new messages