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

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


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

こんばんは,うすだです.

私事で申し訳ありませんが,クリエーターズマーケットが, いよいよ来週に迫ってきました.

私の本業はプログラマーで,某社に勤めるしがないサラリーマンですが, クリエーターのふりをして,栗のいろんなものを出展する予定です.
ですので,今まさに,栗グッズをいろいろ作ったり, ディスプレイをどうするか考えたりなど,しています.

技術屋として,がんばるベクトルを間違っているのではないか,という気が, ときどきします.なんでこんなことやってんだ? と疑問に思うこともしばしばですが,普段経験しないことのために脳みそを使う, というのは,決して悪いことではないと思います.
…などと正当化して,がんばろうと思います.

ポートメッセなごやで開催されますので,お近くにお住いで興味のある方は, よろしければお越しください.入場料が必要ですが.
(メルマガ読んでますって言えば,バッジくらいはサービスしますよ!!)

クリエーターズマーケット - 『栗日記』は 6/19 に出展します
http://www.creatorsmarket.com/

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

今週のお題 - tcp_wrapper 完結編

前回宣言した通り,今週は,tcp_wrapper の補足ということで, 実際に設定を行う際の手順について,ご紹介します.

前回,前々回をご存知ない方は,以下をご覧ください.

Vol.13: tcp_wrapper でログをとる
http://www.usupi.org/sysad/013.html
Vol.14: tcp_wrapper でアクセス制御
http://www.usupi.org/sysad/014.html

とっかかりを考える

さあ,これから tcp_wrapper をやったるで! というとき, でもどこから手をつければいいかわからないよー, という方が結構いらっしゃるのではないかと思います.

サーバの役割や環境などによってケースバイケースだとは思いますが, 私が個人的に思っている,手のつけ方をご紹介します.

まず,すでに稼働しているサーバに,tcp_wrapper を導入する場合です.
最初からがちがちに設定して,今まで動いていたサービスが使えなくなると, ものすごくまずいです.ですので,この場合は, 少しずつ制限を加えていくのがよろしいのではないかと思います.
具体的には,あるデーモンに対して,拒否したい条件がはっきりしている場合に, hosts.deny に記述します.例えば,telnet を, 管理者のマシンである 192.168.1.1 からしか許可しないようにするなら,

  in.telnetd : ALL EXCEPT 192.168.1.1

を hosts.deny に追加します.
(192.168.1.1 以外のすべてを拒否する,という意味です.)

逆に,これからサーバを仕立て上げる場合ですと,デフォルトで全部拒否にしておき, 許可したい条件を記述していくのが,よろしいのではないかと思います.
具体的には,まず,hosts.deny の最後に,以下のエントリを加えます.
これがあると,他に該当するエントリがない場合,拒否となります.

  ALL : ALL

それから,許可したい条件を,hosts.allow に記述していきます.
前述と同様,192.168.1.1 からの telnet を許可したいなら,

  in.telnetd : 192.168.1.1

を hosts.allow に追加します.

実際の設定手順

やはり,いきなり /etc/hosts.allow や /etc/hosts.deny に記述する, というのは,リスキーです.できれば, システムに影響のないところで確認を行ってから,実際に反映させたいものです.
(とはいえ,私はいきなりやってました.以後気をつけようと思います.)

実は,確認するためのコマンドが,ちゃんと用意されています.
その名も,tcpdchk と tcpdmatch です.

tcpdchk は,hosts.allow と hosts.deny の記述を確認してくれます.
そのまま実行すると,/etc/hosts.allow と /etc/hosts.deny を確認して, 問題がある場合に指摘してくれます.
-d オプションをつけて実行すると,/etc ではなく, カレントディレクトリにある hosts.allow と hosts.deny を確認してくれます.

そして,設定が期待通りになされているかどうか確認するためのコマンドが, tcpdmatch です.
引数にデーモンとクライアントを指定すると,どのように判断されるのかがわかります.
tcpdchk のときと同様に,-d オプションをつけて実行すると, カレントディレクトリにある hosts.allow と hosts.deny を用いて確認します.
以下に,起動例を示します.

  % tcpdmatch -d sshd 192.168.1.1
  warning: sshd: no such process name in /etc/inetd.conf
  client:   address  192.168.1.1
  server:   process  sshd
  matched:  hosts.allow line 8
  option:   spawn (/usr/bin/logger -i -p auth.info ...略) &
  access:   granted

(warning がありますが,私の環境では,sshd を inetd から起動するように設定していないので,気にしないでください.)

この場合,granted と出力されていますので,『許可』です.
denied と出力される場合は,『拒否』です.

というわけで,変更する手順としては,以下のようになるのではないかと思います.

  1. どこかのディレクトリに,/etc/hosts.allow と /etc/hosts.deny をコピーする. (もちろん,/etc はだめですよ.)
  2. コピーした hosts.allow と hosts.deny を編集する.
  3. tcpdchk -d を実行して,記述に間違いがないか確認する.
  4. tcpdmatch -d を実行して,期待通りであることを確認する.
    追加・編集したエントリの確認だけでなく,既存のエントリや記述していないデーモンの確認も,行うべきです.
  5. 編集した hosts.allow と hosts.deny を,/etc にコピーする.
    問題が発生した時にすぐにもとに戻せるよう,コピー前のファイルを, 別名で保存しておくべきです.rcs などを用いると,楽になれるかもしれません.

以上,あまり『実践』という感じではありませんでしたが, 実際に設定を行う際の手順について,ご紹介しました.
tcpdmatch で確認するところは,シェルスクリプトにしておくと, 確認もれがなくなってよろしいのではないかと思います.

宿題の答え

先週の問題は,

  SSH に対して,192.168.1.0〜255 からのアクセスは許可してその旨を
  syslog に記録し,それ以外からのアクセスは拒否して管理者宛にメール
  する設定を,行ってください

でした.

hosts.allow に以下を追加して,

  sshd : 192.168.1. : \
    spawn (/usr/bin/logger -i -p auth.info %d\: connected from %h) &

hosts.deny に以下を追加すれば,OK です.

  sshd : ALL : \
    spawn (echo "%d\: connected from %h" | \
      /usr/bin/Mail -s "[notice] %d" 宛先メールアドレス) &

いろいろ変えて,遊んでみてください.

今週の宿題

今週の宿題は,こちらです.

  tcp_wrapper とパケットフィルタリングの違いはなんでしょうか?

ちなみに,私は,明確な答を知っているわけではありません.
お互い,いい機会だと思って,少し考えてみましょう.
(玄人さんからのつっこみがこわいですが…えいやー!)

あとがき

Tech総研に,おもしろいレポートが載っていました.
上司や同僚との関係から,残業時間の方程式を導き出しています.

残業時間は「上司との関係」の絶対値に反比例する
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03500.jsp?p=lwb009
残業時間は「技術職の同僚」と「部署の女性」との親密度に反比例する
http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03500.jsp?p=lwb010

私が今勤めている場所には,私を含めて3人しかいませんし,上司は本社にいるので, なかなか当てはめられません. まあそれでも,統計をきちんととって導き出しているだけあって, なるほどなあと思わせられるところが,結構ありました.

みなさんの場合は,いかがでしょうか?
当てはまらない箇所について考えてみるのも,面白いかもしれません.

私は,別に転職しようとは思って読んでいるわけではありませんが, このレポートに限らず,Tech総研は,業界の動向や, 他の会社の実体などがおぼろげにわかるので,暇な時に見ています.
ご存知ない方は,一度見てみてください.

さて,最初に書きましたが,来週はクリエーターズマーケットですので, お休みをいただきたいと思います.申し訳ありません.
こんなメルマガですが,1つ書くのに,結構時間を費やしています.いや, 単に文章を書くのに慣れていないだけなのですが.
なにはともあれ,準備がかなり間に合っていませんので,そんな時間も, 栗の製作に割り当てさせていただきたいと思います.

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

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

バックナンバーは,こちらにごそっとあります.
http://www.usupi.org/sysad/backno.html

「栗日記」−毎日毎日毎日栗の絵を描いて更新中!
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)

クリエーターズマーケット - 『栗日記』 の場所は D-20 です
http://www.creatorsmarket.com/


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

トップ

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

プロフィール

▼ リンク

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

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本