いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.060 / 読者数:827名

こんばんは、うすだです。

今日、子どもの友だちが、わが家へ遊びに来ていました。

当然なのですが、友だちはみな、子どもを呼ぶときには、 「うすだ」とか「うすだくん」とか言うわけですね。

でも、普段名前を呼ばれることのないわたしは、子どもが呼ばれる度に、 心が反応してしまいます。
一瞬、え? 親のわたしになんの用?? …と思ってから、ワンテンポ遅れて、 子どもを呼んでいるということに気がつきます。

という話をよめにしたのですが、まったく共感されませんでした。
わたしは、自意識過剰なのでしょうか。

外面だけでなく、中身も謙虚にならなければ、と思いました。

それでは、今週も、はりきってまいりましょう!

今週のお題 - tcpdump でネットワークを確認する

さて、先週は、tcpdump の使い方について、ご紹介しました。

Vol.059 - tcpdump でネットワークを盗み見る
http://www.usupi.org/sysad/059.html

今週は、tcpdump の使用例を、少しご紹介したいと思います。
できましたら、実用的なのかどうかという厳しい目で見るのではなく、 生のパケットを見ることに喜びを見出していただけますと、幸いです。


まずは、とあるマシンと通信できないときに、tcpdump を使って、 原因を探ってみたいと思います。

そういうときは、traceroute で確認するのが、王道と言えるでしょう。
traceroute を使いますと、宛先までの経路を調べることができますので、 どこまで届いているかということがわかります。

でも、通信できないマシンがサブネット内にあるときは、 traceroute では原因を突き止められません。
ですので、各所で tcpdump を実行して、 どこまではパケットが届いているのかというのを、地道に確認していきましょう。

ここでは、簡単な例として、以下のような環境を想定してみました。
送信元A が宛先B に ping しても返事がない、という状況だとします。

  送信元A ------------HUB ------------ HUB ------------ 宛先B
                       |                |
                    マシンC          マシンD

まず、送信元A は、宛先B とお話しするために、 宛先B の MAC アドレスを知る必要があります。 そのために、ARP 要求をブロードキャストします。
これが届いていないとなると、物理的な問題の可能性が高そうです。
送信元A が宛先B へ ping しようとしているときに、宛先B 上で、 以下のように tcpdump を実行します。

  宛先B# tcpdump arp
  ...中略...
  23:02:48.234799 arp who-has 宛先B tell 送信元A
  23:02:48.234855 arp reply 宛先B is-at 00:01:02:03:04:05

ping を実行すると、通常は、上記のように、 送信元A からの ARP 要求に宛先B が応答します。 (00:01:02:03:04:05 が MAC アドレスです。)

もし、宛先B に ARP 要求が届いていない場合は、 マシンC やマシンD 上で tcpdump を実行して、 どこまで届いているかを確認します。
たとえば、マシンC には届いていて、マシンD には届いていない場合は、 HUB の間のケーブルやポートが怪しそうです。
そうではなく、マシンC にもマシン D にも届いているなら、 HUB と宛先B との間のケーブルや、HUB のポートが怪しいように思われます。
(しかし、そんなときは、他のマシンとの通信もできないと思いますので、 tcpdump を使わなくても、原因は追求できそうですね…。)

さて、ARP のやりとりはできているのに、ping が通らない場合について、 少し考えてみたいと思います。

たとえば、宛先B が ICMP を無視する設定になっていると、 以下のように ICMP echo request だけが、虚しく空を舞うことになります。

  # tcpdump icmp
  ...中略...
  23:39:23.573873 IP 送信元A > 宛先B: icmp 64: echo request seq 1
  23:39:24.588362 IP 送信元A > 宛先B: icmp 64: echo request seq 2
  23:39:25.588396 IP 送信元A > 宛先B: icmp 64: echo request seq 3
  ...後略...

これは、宛先B が、 パケットフィルタリングで ICMP を受信しない設定になっているときなどに、 起こりえます。

もし、パケットフィルタリングをなにも設定していないなら、 簡単に再現させることができます。
試していいマシン上で以下を設定して、別のマシンから ping します。

  # iptables -A INPUT -p icmp -j DROP

…再現したでしょうか。
試したら、以下を実行して、もとに戻しましょう。

  # iptables -F

また、送信元A が ICMP を受信しない設定になっていたり、 逆に ICMP を送信しない設定になっているということも、考えられます。

…といったあたりを、tcpdump で追っかけることができるのではないかと思います。


えー、次に、FTP のパケットを tcpdump で眺めてみましょう。
パスワードが生で流れるところを、確認できます。
FTP クライアントか FTP サーバ上で、以下を実行します。

  # tcpdump -x -s 0 port ftp
  ...中略...
  23:55:54.883356 IP クライアント.1042 > サーバ.ftp: P 1:12(11) \
  ack 53 win 5840 <nop,nop,timestamp 189907676 149446765>
    0x0000:  4510 003f 8c1a 4000 4006 2a5a c0a8 01d3  E..?..@.@.*Z....
    0x0010:  c0a8 0111 0412 0015 a496 4e56 bbf5 802b  ..........NV...+
    0x0020:  8018 16d0 d252 0000 0101 080a 0b51 c2dc  .....R.......Q..
    0x0030:  08e8 606d 5553 4552 2074 6573 740d 0a    ..`mUSER.test..
  ...中略...
  23:55:55.883271 IP クライアント.1042 > サーバ.ftp: P 12:24(12) \
  ack 86 win 5840 <nop,nop,timestamp 189907776 149446916>
    0x0000:  4510 0040 8c1c 4000 4006 2a57 c0a8 01d3  E..@..@.@.*W....
    0x0010:  c0a8 0111 0412 0015 a496 4e61 bbf5 804c  ..........Na...L
    0x0020:  8018 16d0 c50d 0000 0101 080a 0b51 c340  .............Q.@
    0x0030:  08e8 6104 5041 5353 2074 6573 7431 0d0a  ..a.PASS.test1..
  ...後略...

TCP の ACK とかが行きかうため、やや見にくいですが、 大事なところだけを抜き出したのが上記です。

1つ目で、ユーザ名が test であること、2つ目で、 パスワードが test1 であることが、おぼろげにわかるのではないかと思います。
(ちなみに、4510 〜 0111 が IP ヘッダ、0412 〜 最後が TCP です。
クライアントとかサーバとか書いていますが、 IP アドレスが丸見えですね…気づかなかったことにしてくださいまし。)

TELNET の場合、1文字毎にサーバへ送信されるため、さらに見づらくなりますが、 やはりパスワードが丸見えであることがわかります。
…が、こちらは、自由課題とさせていただきます。
余力があれば、tcpdump -x -s 0 port telnet を実行してみましょう。


以上、簡単なわりにごちゃごちゃした文章ではございますが、 tcpdump の使用例をご紹介しました。

適当な例だったかと言われますと非常に心が痛みますが、上記を手がかりとして、 何らかの応用につなげていただけますと、幸いです。

ほかにも、いろんなプロトコルを眺めてみると、面白いと思います。
SSH はほんとに暗号化されているのかとか、 IP じゃないプロトコルのものが流れていたら調べてみるとか、 好奇心をそそられそうなネタが、現実の世界にはたくさんありそうですね。(^ε^)

というわけで、ときどきは、tcpdump で生のパケットを眺めて、 ほへぇーなどと感心してみてくださいまし。

宿題の答え

先週の宿題は、

  あなたのアカウントが、tcpdump だけを、パスワードなしで実行できる
  ように、sudo の設定を行ってください。

でした。

visudo コマンドを起動して、以下の設定を追加してください。
(以下では、アカウント名を usu としています。)

  usu ALL=(root) /usr/sbin/tcpdump

はい、それだけです。sudo tcpdump を実行して、実感してください。

sudo に関するネタは、近い過去にやりました。
ご存知ない方は、以下をご覧いただくと、わかるかもしれません。

Vol.052 - 管理者の権限を少しだけ与える
http://www.usupi.org/sysad/052.html
Vol.053 - sudo をカスタマイズする
http://www.usupi.org/sysad/053.html
Vol.054 - /etc/sudoers をすっきりさせる
http://www.usupi.org/sysad/054.html

今週の宿題

今週の宿題は、

  tcpdump を使って、POP3 のパケットを眺めてみましょう。

です。

POP3 といえば、MUA がメールを受信するためのプロトコルですね。
プロトコルは RFC1939 で規定されています。
POP3 は TCP の 110番を使いますので、以下のように実行すれば、 眺めることができます。

  # tcpdump -x -s 0 port 110

ただし、APOP じゃないと、パスワードが見えてしまいます。
間違っても、他人のやりとりを盗み見ないようにしてください。

で、中身の解釈を、宿題にしたいと思います。
詳しくやると本題に匹敵してしまいますので、さららっと流す予定です。

あとがき

すみません、先週のあとがきに、間違いがありました。
先週ご紹介した本の URL が、間違っていました。
(特に誰からも指摘はなかったのですが… orz)

子どもが育つ魔法の言葉
http://www.amazon.co.jp/exec/obidos/ASIN/4569660231/usupiorg-22

ところで、わたしは、usupi.org というドメインを所有しています。
DNS や WWW などのサーバは、友人宅にあるマシンを、 無料で間借りしているのですが、安定性や諸費用を考慮して、移転を検討しています。

いま、最も有力なのが、レンタルサーバへの移管です。

レンタルサーバといっても、いろんな種類があるようです。
大きく分けると、共用と専用があります。

共用は、1台のサーバを何人か(何十人か?)で使います。 DB などさまざまな機能が最初から豊富に用意されていますが、 ログインや root 権限はありませんので、設定変更などは、 WWW を介して行う必要があります。

かたや、専用は、1台のサーバをひとりで自由に使えます。
root 権限が得られますので、SSH でログインして新たにサービスを立ち上げるなど、 オールマイティになんでもできます。

いろいろやりたいわたくしとしましては、専用サーバを選びたいところでありますが、 専用と共用では、値段がぜんぜん違います。
共用では、安いところだと月々300円未満からありますが、専用ですと、 安くても月々7千円近くかかります。
(友人とわりかんですので、実際には半額でいいのですが…。)

Xen を使った仮想専用サーバというのもあり、 こちらは5千円程度で済むようなのですが、 スペック的にやや問題になりそうな予感です。

おそらく、安い専用サーバでなんとか、というところに落ち着きそうですので、 このあたり面白い話になってきましたら、経緯などをご紹介したいと思います。

ここのサーバはいいよとか、ここはやめたほうがいいなど、情報をお持ちでしたら、 ご連絡いただけますと、幸いです。

今週も、ここまで読んでいただき、ありがとうございました。
それでは、また来週に、お会いしましょう!

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−毎日栗の絵を描いています。みんなで栗仲間になろう!
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://www.fumido.co.jp/kuriniki/ (栗日記ぎゃらりー)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 5 をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューションや、Solaris10の例も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora8)
Fedora8のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん





▼ 最近読んだ本

ハリー・ポッターと不死鳥の騎士団 ハリー・ポッターと不死鳥の騎士団
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと炎のゴブレット ハリー・ポッターと炎のゴブレット
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターとアズカバンの囚人 ハリー・ポッターとアズカバンの囚人
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと秘密の部屋 ハリー・ポッターと秘密の部屋
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと賢者の石 ハリー・ポッターと賢者の石
J.K.Rowling
  ハリポ月刊なので読み直してます
アルケミスト アルケミスト
パウロ・コエーリョ
  また読んだ
賢者の書 賢者の書
喜多川 泰
  違った視点から見られてよかった
セキュリティウォリア セキュリティウォリア
Cyrus Peikari, Anton Chuvakin
  やや冗長…ためにはなりました
CORE MEMORY CORE MEMORY
John Alderman, Mark Richards
  この筐体でPC作ってほしい!
新訳 星の王子さま 新訳 星の王子さま
サン=テグジュベリ
倉橋 由美子
  つまらない大人になったのか…
.....

[X]
「センネン画報」 今日 マチ子
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します