From owner-freebsd-users-jp@freebsd.org Sat May 14 12:43:04 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 EFB9CB393E5 for ; Sat, 14 May 2016 12:43:04 +0000 (UTC) (envelope-from delmonta@dennougedougakkai-ndd.org) Received: from sodans3.funini.com (160.16.67.47.v6.sakura.ne.jp [IPv6:2001:e42:102:1509:160:16:67:47]) by mx1.freebsd.org (Postfix) with ESMTP id BA6A21E50 for ; Sat, 14 May 2016 12:43:04 +0000 (UTC) (envelope-from delmonta@dennougedougakkai-ndd.org) Received: from FMV (OFSfx-04p2-142.ppp11.odn.ad.jp [143.90.177.142]) by sodans3.funini.com (Postfix) with ESMTPSA id 7E80B56F3819 for ; Sat, 14 May 2016 21:42:56 +0900 (JST) Message-ID: <88EC40C7E4214C63885ED7F7B67B817F@FMV> From: "IIJIMA Hiromitsu" To: Date: Sat, 14 May 2016 21:42:55 +0900 Organization: DENNOU GEDOU GAKKAI, N.D.D. MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-2022-jp"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (sodans3.funini.com); Sat, 14 May 2016 21:42:56 +0900 (JST) X-Mailman-Approved-At: Sat, 14 May 2016 13:14:15 +0000 Subject: [FreeBSD-users-jp 95807] =?iso-2022-jp?b?bmMoMSkbJEIkcjtIJEMkRiVHITwlPyRyQXc/LiQ3JEYbKEI=?= =?iso-2022-jp?b?GyRCJGI0ME47JEskSiRpJEokJBsoQg==?= 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 12:43:05 -0000 いいじま@東京・綾瀬です。 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/ ========================================================================