From owner-freebsd-users-jp@freebsd.org Sat May 14 14:00:21 2016 Return-Path: Delivered-To: freebsd-users-jp@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E89CAB393FE for ; Sat, 14 May 2016 14:00:21 +0000 (UTC) (envelope-from nao@enuenu.org) Received: from mail.tee-n.com (32.161.192.61.east.global.crust-r.net [61.192.161.32]) by mx1.freebsd.org (Postfix) with ESMTP id AF8911E58 for ; Sat, 14 May 2016 14:00:20 +0000 (UTC) (envelope-from nao@enuenu.org) Received: from melon.enuenu.site (melon.enuenu.site [192.168.30.10]) by mail.tee-n.com (Postfix) with ESMTP id D1C29B1F29; Sat, 14 May 2016 22:54:46 +0900 (JST) Received: from [192.168.30.136] (dhcp30136.enuenu.site [192.168.30.136]) by melon.enuenu.site (Postfix) with ESMTP id BCEF157B33; Sat, 14 May 2016 22:54:46 +0900 (JST) To: freebsd-users-jp@freebsd.org References: <88EC40C7E4214C63885ED7F7B67B817F@FMV> From: Naomichi Nonaka Message-ID: <6645a122-d5b9-2ded-647d-1cedd94ae44c@enuenu.org> Date: Sat, 14 May 2016 22:54:41 +0900 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <88EC40C7E4214C63885ED7F7B67B817F@FMV> Content-Type: text/plain; charset=iso-2022-jp; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit Subject: [FreeBSD-users-jp 95808] Re: =?utf-8?b?bmMoMSnjgpLkvb/jgaPjgabjg4fjg7zjgr/jgpLpgIHkv6E=?= =?utf-8?b?44GX44Gm44KC5a6M5LqG44Gr44Gq44KJ44Gq44GE?= X-BeenThere: freebsd-users-jp@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Discussion relevant to FreeBSD communities in Japan List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 14 May 2016 14:00:22 -0000 野中です。 ncは使ったことが無いのですが、manを見た範囲ではクライアント側に -Nオプションを付けるとうまくいくかもしれません。 野中 On 2016/05/14 21:42, IIJIMA Hiromitsu wrote: > いいじま@東京・綾瀬です。 > > ImageMagickの脆弱性検証スクリプトを調べていて発見したのですが、 > nc(1) で立てたサーバとクライアントの間で通信を行おうとすると、 > いつまで経っても送信終了と認識してくれないようです。 > > ☆ ☆ ☆ > > 環境1(FreeBSD): > sodans3:~> uname -a > FreeBSD sodans3.funini.com 9.3-RELEASE-p24 FreeBSD 9.3-RELEASE-p24 #0: > Sat Aug 22 01:54:44 UTC 2015 > root@amd64-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC amd64 > > 環境2(Linux、ディストリビューション不明): > m2:~$ uname -a > Linux m2.valueserver.jp 2.6.32-573.18.1.el6.x86_64 #1 SMP Tue Feb 9 > 22:46:17 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux > > ☆ ☆ ☆ > > FreeBSDのホストで次のように操作すると、stdinからの入力が既に終わって > いるのに、サーバが接続を切ってくれません。 > > sodans3:~> nc -l 8086 & > [1] 55594 > sodans3:~> echo ok | nc localhost 8086 > ok > (Ctrl+Cで停めるまでずっと入力待ちになる。Ctrl+Dを打ってもダメ。) > ^C > [1] + 中断(tty入力) nc -l 8086 > sodans3:~> kill %1 > [1] 終了 nc -l 8086 > > あるいは、クライアント側にncではなくtelnetを使うと、次のようになります。 > > sodans3:~> nc -l 8086 & > [2] 55900 > sodans3:~> telnet localhost 8086 > Trying 127.0.0.1... > Connected to localhost. > Escape character is '^]'. > ^C?? ←PuTTYの場合、半角の'?'が全角にひきのばされた文字が2つ表示される > ^D > (別のコンソールから killall telnet する) > 終了 > [2] + 中断(tty入力) nc -l 8086 > sodans3:~> fg > nc -l 8086 > (↑上記の1行が表示されたあと、すぐにシェルプロンプトに戻る) > sodans3:~> ps | grep nc > (何も出てこない) > > ☆ ☆ ☆ > > 同じことをLinuxで実行すると、きちんと終わってくれます。 > > m2:~$ nc -l 8086 & > [1] 23568 > m2:~$ echo ok | nc localhost 8086 > ok > [1] + Done nc -l 8086 > > 同じくtelnetの場合。 > > m2:~$ nc -l 8086 & > [1] 24707 > m2:~$ telnet localhost 8086 > Trying ::1... > telnet: connect to address ::1: Connection refused > Trying 127.0.0.1... > Connected to localhost. > Escape character is '^]'. > ^C?? ←これも半角の '?' が全角幅にひきのばされた文字 > (killall telnet) > Terminated > [1] + Suspended (tty input) nc -l 8086 > m2:~$ fg > nc -l 8086 > ^C ←こちらはCtrl+CかCtrl+Dを打つまで待っている > > ☆ ☆ ☆ > > FreeBSDでも、クライアント側を nc -z にすればきちんと終わります。 > > sodans3:~> nc -l 8086 & > [1] 55728 > sodans3:~> nc -z localhost 8086 > Connection to localhost 8086 port [tcp/*] succeeded! > sodans3:~> > [1] 終了 nc -l 8086 > > ☆ ☆ ☆ > > サーバがFreeBSD、クライアントがLinuxの場合はきちんと終わります。 > > sodans3:~> nc -l 8086 > > m2:~$ echo ok | nc sodans3.funini.com 8086 > > ☆ ☆ ☆ > > 逆に、サーバがLinux、クライアントがFreeBSDだと、今度は nc -z を使っても > 終わってくれません。 > > m2:~$ nc -l 8086 > > sodans3:~> echo ok | nc m2.valueserver.jp 8086 > (Linux側のコンソールには何も表示されない。) > ^C > sodans3:~> nc -z m2.valueserver.jp 8086 > (これでもやはりサーバは終わってくれない。) > ^C > > ☆ ☆ ☆ > > はてさて、どこから手をつければいいのでしょうか…。 > 私はTCPの原理を全く理解していないので、ソースを読もうにもお手上げです。 > > ☆ ☆ ☆ > > PS > マニュアルの日本語訳もぜんぜん日本語になっていませんね…英語の原文を > 読まないと全く意味が取れません。 > http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&lc=1&cmd=&man=nc&dir=jpman-9.3.2%2Fman§=0 > > > Linux JM Projectのほうにはnc(1)の日本語訳はないようです。 > https://linuxjm.osdn.jp/ > > ======================================================================== > (Mr.) IIJIMA Hiromitsu aka Delmonta > 飯嶋 浩光 / でるもんた・いいじま ; (任同)電脳外道学会 代表取締役椅子人 > ------------------------------------------------------------------------ > Web (Japanese): http://www.dennougedougakkai-ndd.org/ >   Twitter: @delmonta_iijima, @kabu_agare, #放送大学, #OUJ > Yahoo! Japan: delmonta_iijima > ------------------------------------------------------------------------ > マニアツクで綾しいクイヅbot、運用開始!現在、購読者・出題者とも募集中。 >     ※購読はこちらから → https://twitter.com/AyaC_KaltQ >     ※出題希望のかたは → http://kaltq.wicurio.com/ > ======================================================================== > > _______________________________________________ > freebsd-users-jp@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp > To unsubscribe, send any mail to "freebsd-users-jp-unsubscribe@freebsd.org"