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

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


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

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

昨日、住んでいるマンションで、避難訓練がありました。
警報とともに階段で下まで降りたり、 粉末の薬剤の代わりに水を使用した消火器で試し打ちをしたりしました。

こういうのって、ついつい面倒くさいと思いがちですが、 参加してみると意外と興味深かったりします。今回も、いい(?)経験ができました。

しかし、20世紀末頃に似たような訓練を受けたはずなのに、 これっぽっちも覚えていませんでした。人間の記憶はあまりあてになりません。

何事も、大事なことは定期的にリマインドしないといけないなあ、 なんて思いました。

当たり前のことを言ったところで、今週もはりきってまいりましょう!

今週のお題 - お試しネットワーク環境を作る

システム管理者であれ開発者であれ、 はたまたカスタマサポートなどしている方々であれ、 ちょっとしたお試し環境的クローズドなネットワークがあると、 なにかと便利ですよね。

今や、ネットワークインタフェースも HUB もイーサネットケーブルも、 十数年前と比べると、ありえないくらい安くなりました。 数千円もあればちょちょいと一式が揃ってしまいますね。いい世の中になりました…。

しかし、そのネットワークが、社内 LAN から切り離された、 鉄壁完全なクローズド状態ですと、それはそれで不便です。
社内 LAN からは見えないけれど、社内 LAN へのアクセスはできる、 そのような都合のいいネットワークがあれば、なお便利ではないでしょうか。

というわけで今週は、そんなお試しネットワーク環境を、構築してみたいと思います。


…なんて、だいそれたことを書いてしまいましたが、IP マスカレードを利用すれば、 簡単に実現できます。

ああやっぱりとか、なーんだと思われた貴兄は、宿題まですっ飛んでってください。 (宿題の答えはがんばりましたので、できれば見てください。)

で、今回は、以下のような環境を想定して、話を進めます。
(等幅フォントでご覧ください。)

         社内 LAN                                  お試し LAN
  +------------------+-+                    +-+------------------+
     192.168.1.0/24  |                        |   172.16.0.0/16
                     +-----[Linux マシン]-----+
          192.168.1.55(eth0)            172.16.1.55(eth1)

  <------------------------------------><------------------------>
                既存の部分                  新たに構築する部分

192.168.1.0/24 というネットワークアドレスの社内 LAN があり、 そこに Linux マシンがつながっている、とします。
(このマシンは、あなたが自由気ままにいじくれるマシンです。\(^ε^)/)

今日は、その Linux マシンにネットワークインタフェースを増設して、 お試しネットワーク環境(お試し LAN)を作りたいと思います。
お試し LAN のネットワークアドレスは、172.16.0.0/16 としましょう。

ネットワークインタフェースはなんでもいいですが、 USB など気軽に増設できるものがあると、他の用途にも使い回せるので、 便利だと思います。

まあとにかく、ぷすっと増設して、eth1 で認識されたら、 172.16.1.55 というアドレスを割り振って、使えるようにします。
とりあえずその場でちょこっと確認したいだけなら、 ifconfig コマンドを実行して設定してください。

  # ifconfig eth1 172.16.1.55 up

…というところで、ようやく出発点にたどり着きました。


はい、では、設定方法を淡々とご紹介します。

まず、sysctl コマンドを使って、IP フォワーディングを有効にします。
(でないと、パケットがネットワーク間を行き来しません。)

  # sysctl -w net.ipv4.ip_forward=1
  net.ipv4.ip_forward = 1

恒久的に設定したい場合は、/etc/sysctl.conf に以下を追加しますと、 次回の起動から勝手に設定してくれるようになります。
(net.ipv4.ip_forward = 0 という行があれば、書き換えましょう。)

  net.ipv4.ip_forward = 1

次に、iptables コマンドを使って、IP マスカレードの設定を行います。
以下を実行してみてください。

  # iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -j MASQUERADE

送信元が 172.16.0.0/16 で、外へ出ていくパケットを、IP マスカレードで処理する、 という設定を追加しています。

基本的には、これで設定は完了です。
では、お試し LAN に、適当なマシンを接続して、試してみましょう。
適当なマシンには、172.16.0.0/16 に属する適当なアドレスを割り振ってください。 そして、デフォルトルートには、172.16.1.55 を忘れずに指定してください。
適当マシンが Linux で、その場で刹那的に設定するなら、 以下のように実行します。(以下では、172.16.1.101 を割り振っています。)

  # ifconfig eth0 172.16.1.101 up
  # route add default gw 172.16.1.55

そして、192.168.1.0/24 上のマシンにアクセスします。
うまくつながらない場合は、tcpdump などを使って、パケットが来ているかどうか、 パケットの中身が正しいかどうかを確認してください。
あるいは、 それぞれのマシンの syslog やアプリケーションのログを確認してみてください。
(それでもだめなら、一度ご連絡ください。)

上記の動作確認がうまくいって、この設定を恒久的に残したいなら、 以下を実行しましょう。

  # /etc/init.d/iptables save

今の設定が、 そっくりそのまま /etc/sysconfig/iptables というファイルに記録されます。 そして、次回起動時には、このファイルの設定を戻してくれます。おー便利!


以上、IP マスカレードでお試しネットワーク環境を作る方法を、 ご紹介しました。

IP マスカレードでは、経路制御などで悩む必要がないので、気軽に接続できます。 ニーズがなくても、お暇でしたら、是非やってみてください。
ネットワークをつなぐ喜びを、感じることができる…と思います。
(わたしはそうでした。暇さえあれば、いろんなネットワークをつなぎ、 喜んでいた時期がありました。みなさまもそうなりますように…。)

上記の通りにやって、一発で動いてしまいますと、それで終ってしまうのですが、 打ち間違えたりなどしますと、いろいろ悩むことができます。
そんなときのために、少々補足させていただきます。

今の状態を知りたいときは、iptables コマンドを -L オプションつきで実行します。

  # iptables -t nat -L
  Chain PREROUTING (policy ACCEPT)
  target     prot opt source               destination

  Chain POSTROUTING (policy ACCEPT)
  target     prot opt source               destination
  MASQUERADE  all  --  172.16.0.0/16        anywhere

  Chain OUTPUT (policy ACCEPT)
  target     prot opt source               destination

また、設定をそっくり全部消したい場合は、-F オプションを使います。

  # iptables -t nat -F

他に設定があって、全部消すのはまずいという貴兄は、-D オプションを使って、 条件に合うものだけを消すことができます。

  # iptables -t nat -D POSTROUTING -s 172.16.0.0/16 -j MASQUERADE

これだけ知っていれば、そこそこ試行錯誤できると思います。(^ε^)

宿題の答え

先週の宿題は、

  root のパスワードを入力しなくても、一般ユーザがシステム管理ツール
  を実行できるようにしてみましょう。

でした。

まずは、ありがちな sudo を使う方法ですね。
visudo を実行し、以下のエントリを追加しましょう。

  ALL ALL=(root) NOPASSWD:/usr/sbin/tcpdump

そして、sudo 経由で tcpdump を実行します。

  % sudo /usr/sbin/tcpdump

次にありがちなのが、setuid を用いる方法です。

  # ls -l /usr/sbin/tcpdump
  -rwxr-xr-x  1 root   root   393176 Jun 13  2004 /usr/sbin/tcpdump
  # chmod u+s /usr/sbin/tcpdump
  # ls -l /usr/sbin/tcpdump
  -rwsr-xr-x  1 root   root   393176 Jun 13  2004 /usr/sbin/tcpdump

setuid をつけると、そのコマンドの所有者の権限で、 コマンドを実行することができます。

  % /usr/sbin/tcpdump

…試しおわって、特に必要なければ、以下を実行して元に戻しましょう。

  # chmod u-s /usr/sbin/tcpdump

それから、inetd 経由で起動する、という方法も考えられます。
/etc/inetd.conf に以下を追加して、

  12345  stream  tcp   nowait  root    /usr/sbin/tcpdump tcpdump -l

inetd に通知します。

  # kill -HUP `cat /var/run/inetd.pid`

そして、localhost に接続します。

  % telnet localhost 12345

うっかり eth0 経由でつなぎにいくと、自身のパケットをキャプチャしてしまい、 怒涛のごとく出力される恐怖に苛まれます。ご注意ください。

あ、xinetd の場合は、/etc/services に以下を登録してから、

  tcpdump     12345/tcp

以下の内容の /etc/xinetd.d/tcpdump というファイルを作成し、

  # default: off
  # description: tcpdump
  service tcpdump
  {
      disable = yes
      socket_type = stream
      wait = no
      user = root
      server = /usr/sbin/tcpdump
      server_args = -l
  }

chkconfig コマンドで有効にする必要があります。

  # chkconfig tcpdump on

あと、ちょっと邪道ですが、consolehelper でも、 パスワードなしで起動することができます。
たとえば、VineLinux 3.2 で、/etc/pam.d/tcpdump が以下の内容だったとします。

  #%PAM-1.0
  auth       sufficient   pam_rootok.so
  auth       sufficient   pam_timestamp.so
  auth       required     pam_stack.so service=system-auth
  session    required     pam_permit.so
  session    optional     pam_xauth.so
  session    optional     pam_timestamp.so
  account    required     pam_permit.so

この場合、4行目の auth required のところを、

  auth       required     pam_permit.so

などパスワード不要のモノに差し替えれば、聞かれなくなります。
(すみませんが、他のディストリビューションでは試していません。)

…わたしが思いついたのは、以上です。
他に、もっと面白い裏技があったら、ぜひ教えてください! (^ε^)

今週の宿題

今週の宿題は、

  IP マスカレードを使用したときの、お試し LAN 上のパケットと、社内
  LAN 上のパケットを、見比べてみましょう。

です。

書籍などを斜め読めば、IP マスカレードの仕組みはなんとなくわかると思いますが、 tcpdump などを用いて、実際に確かめてみましょう、ということです。
(百聞は一見にしかず、ってことですね。)

あとがき

で、消火器のことをいろいろ教えてもらいましたので、ご紹介します。

  • ホースの先端を持ち、安全栓を引っ張り抜き、レバーを握ると使える。
    規格で決まっているので、この操作でどれでも使えるそうです。
    ホースの先端を持った方がいいのは、勢いでぶれるのを防ぐためです。
  • 3〜6メートルくらい離れたところで、避難路を背にして使う。
    避難路を背にするのは、すぐ逃げられるようにするためですね。 当たり前っぽいですが、焦っているときにはうっかりやってしまいそうです。
  • レバーは一度握ると、中の薬剤がなくなるまで、勝手に出続ける。
    レバーを握ると、ガスを格納している容器が破れ、消火器の中にガスが充満して、 薬剤がどばっと出る仕組みになっているからです。ちなみに15秒くらい出続けます。
  • 腐食している消化器は使わない方がいい。
    ガスの圧力に消火器が耐え切れず、爆発することがあるそうです。
  • 使用後の掃除はけっこう大変らしい。
    液体じゃなく粉末なので、掃除機で吸えます。ただ、粒子が細かいですので、 じゅうたんの場合、そうとう叩かないと取れないそうです。
    まあ、後処理のことまでは考えられてない、ということですね。

最後のは、住人のひとが質問してわかったことです。 まさに、主婦の視点って感じですね。わたしでは、そういう疑問は思いつきません。

消火器を使う機会は、一生に一度あるかないかくらいじゃないか、 という気もしますが、もしものための知識は、必要ではないかと思いました。

さて、来週は三連休。専用サーバへの移行など、 いろいろやるべきことがありますので、個人的な理由で申し訳ありませんが、 来週は、おやすみをいただきたいと思います。

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

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

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

「栗日記」−いつの間にか検索で1位じゃなくなってるけどまあいいや。
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・チャルディーニ
  思わず納得します