Home > Archive > 2007年 > 4 月

2007-04

今更ながら iPod Shuffle 買いました

  • 2007-04-30 (月)

かなり今更感がありますが、最近 iPod Shuffle を買いました。値段が手頃なのと、通い出したジム用に小さな音楽プレイヤーが欲しかったからです。iTunes は昔から使っていますが、Apple 製品を買うのは初めてでした。月並みな感想ですが、やはり小さいのは良いことですね。運動中に使っても、全然邪魔になりません。

ちなみに、メインの音楽プレイヤーとしては、未だに iriver IFP-799 (2004年5月発売。メモリ1GB、単三電池1本で40時間再生) を使っています。機能的に不足が無いのと、まだ他に買い換えるほど魅力のある機種が無いからです。iPhone like な ipod が出るまで待ってみようかと思います。

安全なネットワーク構成について考える

  • 2007-04-29 (日)

ハードウェア構成 で書いた機器を使用し、サーバを外部公開する際の安全なネットワーク構成について考えます。

サーバ SC430 上で VMWare Server を使った VM を数台動かしており、そのうち一台を外部公開します。サーバをルータとして動かすことも可能ですが、安定性、汎用性などの理由から今回は考えません。(サーバがダウンした際に他の機器もインターネットに接続できなくなってしまうので。) また機器構成が 複眼中心 : ネットワーク構成 の方とほぼ同じで、以前にリンク先記事のコメント欄で相談させていただきました。(その際はありがとうございました。)

なお、ネットワーク図の作成には Passion For The Futureで紹介 されていた Network Notepad Homepage を使用しました。

方法1. ハブにすべての機器を接続

ルータにギガハブを繋げ、その下にその他の機器を接続する方法です。この方法が最もシンプルで簡単なのですが、すべての機器が同じネットワークに属するので、もしサーバが乗っ取られたような場合に LAN 内の機器も危険に晒されてしまいます。

 

方法2. ルータの VLAN 機能でサーバ側のネットワークを分離

 

ルータ(BRL-04FMX) の VLAN 機能を使う方法です。DMZ にサーバを置く、一般的な構成ですね。この方法だと 、ルータのの LAN 側は 100Mbps までしか対応していないため、LAN側 -> サーバ間のネットワークが遅くなってしまいます。サーバはファイルサーバとしても使うので、これでは困ります。ルータ内蔵のハブが Gigabit 対応ならば問題無いのですが。

方法3. サーバに NIC を追加してホスト OS と VM のネットワークを分離 + VLAN

 

 

サーバに NIC を追加し、ホスト OS と外部公開用 VM のネットワークを分離する方法です。サーバのホスト OS はギガハブと接続し、外部公開用の VM はルータと接続。さらにルータの VLAN 機能で、LAN 側と外部公開 VM 側のネットワークを分離します。つまり物理的には上記のような接続ですが、論理的には以下のようになります。

このように、外部公開 VM と LAN 内のネットワークを論理的に分離して安全を確保しつつ、サーバのホストOSと LAN 側機器の Gigabit 接続を確保できます。

まとめ

現在は 方法3 で書いたネットワーク構成で動かしています。追加投資も NIC 一枚 (1000円程度)で済みました。 ルータのLAN側のハブが Gigabit 対応ならばもっとシンプルに組めるのですが、まだ高価で、これといった機種が見つかりませんでした。また BRL-04FMX では、通常 VLAN の異なるグループ間の通信はすべて遮断されてしまいますが、セカンダリ LAN 機能+フィルタ を使い、指定した通信だけ許可することが可能です。SSH などの必要最低限の通信のみ許可しています。

具体的な設定方法などは、後日別の記事で紹介したいと思います。

 

追記1 (2007/04/29)
もしルータの LAN 側ハブが Gigabit 対応でも、サーバに NIC を追加する方法は、ホスト OS と公開用 VM のネットワークを論理的に完全に分離可能という点でメリットがあると思います。その場合は、ルータと別にハブを用意する必要が無くなりますが。

 

自宅サーバ構築 TOP へ戻る

VMWare Server 1.0.3

  • 2007-04-29 (日)

4/26 に VMWare Server 1.0.3 (メンテナンスアップデート版) のがリリースされていたようなので、アップデートしました。

What’s New in Version 1.0.3

Version 1.0.3 is a maintenance bug fix release to address security issues. See Resolved Issues for information on what has been fixed.

 

作業は簡単で、数分で終わります。

  1. VMWareServer をダウンロード (rpm版を利用。)
  2. 仮想 OS をシャットダウン
  3. VMWareServer のインストール (rpm -Uvh VMware-server-1.0.3-44356.i386.rpm など。)
  4. vmware-config.pl を実行 (必要無い?)  コメントで指摘していただきました。再実行が必須なようです。(追記:2007/05/05)
  5. 仮想マシンの vmware-tools のアップデート (追記:2007/05/05)
  6. 仮想マシンを起動

このブログは VMwareServer の仮想OS上で動かしているので、作業中 5 分ほど止まりました。

ハードウェア構成

  • 2007-04-28 (土)

自宅で使用しているハードウェアの構成をメモしておきます。

ルータ BRL-04FMX

プラネックスのBRL-04FMX を使っています。ブロードバンドルータとしての基本機能に加え、豊富なフィルタリング、VLAN、セカンダリLAN機能などがあります。数年使っていますが、安定していて良いルータだと思います。NTTのBA8000Proと中身はほぼ同等で、ファームウェアの入れ替えで、相互に入れ替え(BRL-04FMXのBA8000Pro化、またBA8000ProのBRL-04FMX化) が可能なようです。

 

ギガハブ Buffalo LSW2-GT-8NPR

Buffalo の SW2-GT-8NPR を使っています。8ポートのギガハブです。メインマシンとサーバの NIC は Gigabit 対応なのに、BRL-04FMX の LAN 側のハブは100mbps までしか対応していないので。LAN 側のルータが Gigabit 対応のルータを使えば不要なのですが、まだ高価で手が出ません。スイッチングハブ - wiki@nothing を参考に、8ポート、Vitesse チップで低発熱?、電源内蔵、ファンレスという条件で選びました。(今見ると、Vitesse ではなく、BCM5398/5397? と書かれています。まぁ、実際動けば何でもいいです。) IO-Data の ETG3-SH8N も良さそうだったのですが、SW2-GT-8NPR がちょうど Amazon の在庫にあったので3分で決めました。結構適当です。

 

無線LANルータ Buffalo WHR-HP-G54

Buffalo のWHR-HP-G54 をブリッジモードで使っています。ノート PC 用です。可もなく不可もなく、といった感じでしょうか。

 

サーバ DELL SC430

PowerEdge SC430 です。PentiumD820(2.8GHz)、メモリ256*2、HDD 80GB、OS無し といった構成で、キャンペーンの際に2万円台で購入したものです。CPU代だけで元が取れてしまうような値段だったので、思わず衝動買いしました。現在は、メモリ トランセンドTS1GDL370 (1GB、DDR2 Memory240Pin Long-DIMMDDR2-533ECC Unbuffer Memory) * 2、HDD 320GB(HGST Deskstar T7K500シリーズのHDT725032VLA360) *2、HDD 500GB((HGST Deskstar T7K500シリーズのHDT725050VLA360) * 1、 玄人志向 GigabitEthernet Board » GbE-PCI2 を追加して、以下のような構成で動いています。

CPU: PentiumD820 (2.8GHz)

Memory: 2.5GB

HDD: 320GB * 2 (RAID1)、500GB *1

有線LANポート(Gigabit) * 2

 

メインマシン DELL Dimension9200

WindowsXP、Core2DuoE6400、メモリ3GB、HDD320GB*2 (RAID0) + 250GB、GeForce7900GS という構成です。RAIND1(ストライピング) で運用しているため、特にデータのバックアップが重要です。サーバに毎晩自動バックアップしています。

 

自宅サーバ構築 TOP へ戻る

Apache の suEXEC について

  • 2007-04-27 (金)

少し調べたので、まとめておきます。 

suEXECって何?

Apache のモジュールの一つです。CGIプログラムなどを web サーバの実行ユーザとは異なるユーザIDで動作させることができるようになります。各ユーザの ホームディレクトリ/public_html 以下に置かれた cgi を各ユーザ権限で実行したり、またディレクトリごとに cgi の実行ユーザを指定することもできます。

公式ドキュメント: suEXEC サポート - Apache HTTP サーバ 

メリット

・suEXEC 環境では CGI はユーザ権限で実行されるため、CGIに問題があった場合にも、他のユーザやシステムに影響が及ぶのを防ぐことができます。

・suECEXを使用しない場合、CGI は web サーバのユーザ(apache、nobodyなど)で実行され、それによって生成されるファイルのオーナは 、web サーバのオーナとなります。そのため一般ユーザ権限では削除出来ずに管理者の頼む必要があるなど、管理が煩雑になる場合があります。suecex によって、各ユーザに管理を任せられるようになります。

・CGI ファイルのパーミッションを絞ることができます。suECEX 環境では CGI はオーナ権限で実行されるため、オーナのみに実行権限を与えれば大丈夫です。(逆に権限を与えすぎると動かない。詳細は後述。)

 

制限

suEXEC の実体は、setuidされたrootのプログラムです。 Permission復習 でも書いたように、setuid されたプログラムは、使い方を誤ると大変危険です。そのため、suecex には多くの制限がかかっており、そのチェックに引っ掛かると動作しないようになっています。例として、以下ような制限があります。

・suecex 経由で実行されるcgiのオーナは、suexec で実行されるユーザでなければなりません。(ApacheSuexec - TachTrac - Trac で言及されているように、この制限は簡単に回避可能ですが、使用はできるだけ控えるべきです。)

・CGIファイルとそのディレクトリに対し、他人の書き込みが許可されいる場合(777など)、CGIは実行されません。

私は以下のようなパーミッション設定にしています。

CGIファイル: 700

ディレクトリ: 701

HTML、CSS、その他のファイル: 604

 

 利用方法 (CentOS4.4環境)

CentOS4.4 では、suecec がデフォルトで有効になっているので簡単です。suecec の設定は、 `suexec -V` で確認できます。

# suexec -V
-D AP_DOC_ROOT=”/var/www”                       #ユーザディレクトリを除き、 suEXEC が動作で使用する唯一のディレクトリ
-D AP_GID_MIN=100                                     #suEXEC の対象グループとして許される GID の最小値
-D AP_HTTPD_USER=”apache”                         #suexec の実行を許可されたユーザ。apacheを動作させるユーザ名を指定
-D AP_LOG_EXEC=”/var/log/httpd/suexec.log”   #suEXEC の処理とエラーが記録されるファイル名
-D AP_SAFE_PATH=”/usr/local/bin:/usr/bin:/bin”
-D AP_UID_MIN=500                                     #suEXEC の対象ユーザとして許される UID の最小値
-D AP_USERDIR_SUFFIX=”public_html”               #suEXEC がアクセスを許されるユーザホームディレクトリ配下の サブディレクトリ

基本的に、各ユーザのホームディレクトリ配下の USERDIR_SUFFIX で指定されたディレクトリと、AP_DOC_ROOT で指定されたディレクトリ以外では、suexec は動作しません。

各ユーザのホームディレクトリ配下の USERDIR_SUFFIX で指定されたディレクトリ(この場合は public_html )に置かれた cgi ファイルは、該当のユーザ権限で実行されます。CetnOS4.4 では、apacheのユーザディレクトリの設定(設定例) を行うだけで、public_html に置かれた cgi ファイルは各ユーザ権限で動作します。

AP_DOC_ROOT で指定されたディレクトリ(この場合は/var/www) 以下では、指定しない限り、cgi は AP_HTTPD_USER で指定されたユーザ (この場合は apache ) で実行されます。特定のユーザで実行したい場合は、httpd.conf で SuexecUserGroup ディレクティブを使って指定します。このブログでは、以下のように設定しています。

設定例 (このブログ)

  • /var/wwwに juyama.net というディレクトリを作成し、オーナを web とする
  • 各ファイルのパーミッションを設定する (CGIファイル: 700、ディレクトリ: 701、 HTMLやCSSなどのその他ファイル: 604)

 httpd.conf に以下のように記述。

<VirtualHost *:80>
    ServerName juyama.net
    DocumentRoot /var/www/juyama.net

    SuexecUserGroup web web

    <Directory “/var/www/juyama.net”>
        Options FollowSymLinks Includes ExecCGI
        AllowOverride All
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

 

動作確認

以下のスクリプトを whoami.cgi などの名前で保存してブラウザから実行することで、suexec の動作を確認することが出来ます。suexec により一般ユーザ権限で実行されている場合、そのユーザ名表示されます。そうでない場合は、web サーバの実行ユーザ (apache、nobodyなど) が表示されます。

#!/usr/bin/perl
print “Content-type: text/plain\n\n”
print `whoami`;

module版PHPとsuexec

module版PHPは、suexec環境でもwebサーバの実行ユーザで実行されるため、それによって操作されるディレクトリには適所権限を与えなければなりません。このブログで使用しているMovableType3.3 のダイナミックパブリッシング機能は、module版PHP によって実現されています。そのため、template_c ディレクトリのパーミッションは707にしています。(軽くハマりました。) FreshReader の db ディレクトリなども同様です。

参考

 

自宅サーバ構築 TOP へ戻る

MT 自宅サーバへの移転と各種設定

  • 2007-04-26 (木)

このブログはMT(MovableType)で構築しています。以前はレンタルサーバ (xrea) に設置していましたが、自宅サーバへ移転しました。その際に行った作業、またこのページで利用している Tips、サービスなどを紹介します。

mt.Vicunaテンプレート

以前はMTのデフォルトテンプレートに手を加えて使っていましたが、(自分で書いた)汚いソースにうんざりしていました。そこで、移転に併せて Movable Type テンプレート - Vicuna を使わせていただくことにしました。これは 3ping.org の wu さんが作られている MT 用のテンプレートです。構造がとても綺麗で、カスタマイズも簡単です。すばらしいテンプレートを無料(クリエイティブ・コモンズ・ライセンス)で提供してくださっている wu さんに感謝です。MT 以外にも、WordPress、Nucleus、Serene Bach への移植作業が行われているようです。

ダイナミック・パブリッシングで面倒な再構築を不要に

MT は、デフォルトの設定では記事を更新するたびに毎回再構築しなければならなく、とても面倒です。ダイナミック・パブリッシング機能を使うと、動的に記事を生成することができ、面倒な再構築が不要になります。 設定方法は 小粋空間: Movable Type の再構築を不要にする「ダイナミック・パブリッシング」(その2:設定方法) で分かりやすく解説されています。

MT のバージョン3.32から現在のバージョン(3.35) には、ダイナミック・パブリッシングを使うと月別アーカイブで次ぎの月へのリンクが全部最新月へのリンクになってしまうバグ があるので注意が必要です。リンク先で修正方法が紹介されています。(感謝!) かなり以前からあるバクにも関わらず、なぜ先日リリースされたバージョン3.35でも直ってないのか疑問です。

WindwosLiveWriter でブラウザからのログインすら不要に

ブログの更新は、ブラウザ上で行うのが一般的だと思います。ですがブラウザ上での記事編集機能は、あまり使いやすくありません。MTには記事の編集機能を強化する WYSIWYG プラグインなどもありますが、操作性はローカルで動かすソフトにはかないません。そこで Windows Live Writer の出番です。これを使うと、ワープロソフトを使っているような感覚で記事の編集を行うことができます。上記のダイナミック・パブリッシング機能と併用することで、ブラウザからのログインすら不要になります。使うには、MTのログインパスワードではなく、Webサービス用のパスワードを別途設定する必要があるので注意が必要です。MTの ”メイン・メニュー > システム・メニュー > 投稿者別の設定” から設定できます。

WindowsLiveWriter(beta 1.0.1)からTrackbaskを送信する際は、多重送信に注意 (追記 2007/05/04)

Windows Live Writer について (追記: 2007/05/06)

URL構造の見直し

以前はエントリー ID を含めた URL を使っていましたが、このブログではエントリー ID はとくに意味を持たないこともあり、URL 構造を見直すことにしました。

以前のURL

http://juyama.net/年/月/エントリーID

変更後

http://juyama.net                                         #トップページ

http://juyama.net/archives/                           #アーカイブページ

http://juyama.net/archives/年/月/                   #月別アーカイブ

http://juyama.net/archives/年/月/更新時間        #エントリーアーカイブ

過去の記事は、数が少なかったこともあり、すべてmod_rewrite を使って新 URL へ転送しています。シンプルにするため、カテゴリー分けやタグなどは使っていません。

FeedBurner

FeedBurner は、RSS フィードの購読者数の統計を取ってくれたり、複数の RSS リーダに対応出来るようにフィードを自動変換してくれたりと、RSS フィードをパワーアップしてくれます。RSS リーダ別の購読者数なども見られるのでおもしろいです。ページ右上に表示されているボックスにフィード購読者数を表示していますが、これも FeedBurner の機能の一つです。現在の購読者を見てみると、、なんと 0 ですっ!>< 記事数も少なく、数ヶ月も更新をさぼっていれば当然ですね。これから頑張ります!!(自分のRSSリーダに確認用に登録しているので最低でも 1 と表示されるはずですが、設置したばかりででまだ反映されていないようです。)  以前のフィード(rss2.0、atom)を購読して下さっていた方がいらっしゃるかどうか定かではありませんが、一応 FeedBurner の新フィードの方へ転送しています。

アクセス解析

Google Analytics  Google が提供するアクセス解析です。

リンクが張られた瞬時にRSSで通知するアクセス解析ツール - トラックフィード  記事がリンクされると教えてくれます。

なかのひと ベータ版 - 公共機関や会社、学校など組織からのアクセスに特化したアクセス解析  面白そうだったので設置してみました。

Sitemap

小粋空間: Sitemaps 0.90 用テンプレート を参考にさせていただきながら Sitemap ファイルを作成し、Google SitemapsYahoo! Site Explorer に登録しています。さらに 秋元@サイボウズラボ・プログラマー・ブログ: Sitemapsの通知にrobots.txtが使えるようになった を参考にさせていただきながら、 robots.txt で Sitemap の URL を指定しています。Sitemap についての詳細は、sitemaps.org を参照して下さい。 (追記: 2007/05/06)

その他

このブログで利用しているその他のサービス、Tips です。

ブックマーク数を画像で取得する API 

はてなブックマーク数を表示させることができます。まずは アーカイブページ に設置してみました。 カイ氏伝 さんを参考にさせていただきました。感謝! (追記 2007/05/04)

SimpleAPI - ウェブサイト・サムネイル化ツール 

サイトのサムネイル画像を生成してくれます。Trackback をいただいたサイト用に使っています。 設置には DesignWalkerさん を参考にさせていただきました。感謝! (追記 2007/05/04)

 

#Operaで表示が崩れるのは仕様です。

自宅サーバ構築 TOP へ戻る

Permission復習

  • 2007-04-13 (金)

理解が甘いので、復習しておくことにしました。 

・パーミッションの基本 rwxrwxrwx

まずは基本。user、group、other それぞれの Read,Write,execution 権について。 これは多くのサイトで解説されているので説明は省きます。UNIXの部屋 検索:chmod の説明が分かりやすいです。 

・umask

新規ファイル・ディレクトリを作成した際のパーミッションを決めるため値です。ディレクトリは777から、ファイルは666からumaskの値を引いたものが、新規ファイル・ディレクトリを作成した際のパーミッションとなります。umaskが022の場合、新規作成したディレクトリのパーミッションは777-022 =755、ファイルのパーミッションは 666-022 - 644 となります。

・現在のumaskの表示

%umask

22

・umaskの設定

%umask `設定したい値`

参考: UNIXの部屋 検索:umask

・setuid、setgid、sticky bit

この辺りから少しややこしくなります。404 Blog Not Found:unix - permissionあれこれ の説明が分かりやすくて参考になります。ではそれぞれの意味を確認していきます。

・setuid(SUID、4000)

SUID がセットされると、user 実行権限の表示が x から s に変わります。そして実行された際に、実行したuserではなく、ファイルの所有userの権限で実行されるようになります。(EUID がファイルの所有ユーザの EUID となります。) /usr/bin/passwd が代表的な例です。/usr/bin/passwd はパスワードの変更を行うコマンドですが、パスワード情報が誰からでも読み書き可能な状態ではまずいですね。 /usr/bin/passwdのパーミッションは、以下のようになっています。

% ls -l /usr/bin/passwd
-r-s–x–x 1 root root

所有 user、所有 group 共に root ですが、SUID がセットされ、所有者のパーミッションが、(r- s) となっています。またothersにも実行権限(–x)が付加されています。これにより、others で実行した場合にも、実際には root 権限で実行されるため、スーパーユーザしか読み書きする権限を持たないパスワードファイルの書き換えが出来るわけです。 UNIXシステム管理 第3版 VOLUME 1 にも書かれていますが、setuidは使い方を誤るとかなり危険です。特にrootに用いるのは、、言うまでもないですね。

 

・setgid(SGID、2000)

SGIDがセットされると、group 実行権限の表示が x から s に変わります。そして実行された際に、実行した user のデフォル group ではなく、ファイルの所有groupの権限で実行されます。(EGIDが、ファイルの所有グループのEGIDになります。) またファイルを作成した際に、作成したファイルの group が、ディレクトリと同じ group になります。

ウノウラボ Unoh Labs: ウェブ開発の共同作業でパーミッションを有効活用する では、グループで開発を行う際に、SGIDを活用する方法が紹介されてます。手順はこんな感じ。

  1. 共通グループを作成し、権限を与えたいメンバを追加
  2. 各ユーザの umask を 0002 に設定
  3. 共通作業ディレクトリの所有グループを共通グループにし、SGID をセット(rwxrwsr-x)

 

・Sticky Bit

Sticky Bitがディレクトリにセットされると、others実行権限の表示が x から t に変わります。そして、ファイルとディレクトリの所有者のみが、ファイルの削除と名前変更ができるようになります。全ユーザがアクセス権をもつような /tmp ディレクトリで使われています。

 

※SUID、SGID、Sticky Bit は、実行ビットが立っていなければ無意味な点に注意です。その場合、rwSrwSrwT のように、表示が大文字になって教えてくれます。

 

自宅サーバ構築 TOP へ戻る

必要ないパッケージはインストールせず、不要なサービスは停止する

  • 2007-04-13 (金)

必要ないサービスを動かしている場合、それはシステムのリソースを奪うだけでなく、セキュリティホールになる可能性もあります。以下の点に気をつけます。

1.必要無いパッケージはインストールしない

Apache や Sendmail などのサーバアプリケーションを動かすだけなら X Window は必要ありませんし、Windows マシンとファイル共有を行わないなら Samba も要りません。最近では FTP、Telnet なども必要無い場合が多いと思います。インストール時には最小構成を選択して不必要なソフトウェアはインストールせず、必要なものは後から自分で追加するのが得策です。

2.不要なサービスの停止

Linuxのサービス起動の流れを確認し、必要のないサービスは停止します。また、最小構成でインストールしても、以下のように用途によっては不要なサービスもあります。

・sendmail

多くのLinuxディストリビューションでは、最小構成でインストールしても sendmail がデフォルトで有効になっています。ですが、root宛てのメッセージを送信するだけなど、メールサーバとして使わない(他のホストからメールを受け取らない)場合は、デーモンとして動かす必要はありません。sendmail -q を cron ジョブに登録することで、キュー(/var/spool/mqueue)に貯まったメールを定期的に送信することが出来ます。

・inetd/xinetd (インターネットデーモン)

インターネットデーモン経由で起動されるサービスが無ければ、必要ありません。例えばwebサーバならば、webサーバのデーモン (apacheなど) は常に動いているでしょうし。

 

    その他停止したサービス。
  • gpm: マウスドライバ
  • cups: 印刷システム
  • kudzu: ハードウェアの自動認識を支援するツール
  • acpid: ACPIによる電源管理。電源を切らないので必要無し
  • apmd: APMによる電源管理。
  • pcmcia: pcカード用
  • iiim: 入力メソッドIIIMSFのサービス
  • isdn: isdnサービス
  • mdmonitor: ソフトウェアRAIDのモニター
  • canna: 日本語入力システム
  • smartd: ハードディスク状態監視。VMには必要なし。
  • xfs: xフォントサーバ
  • nfs: ネットワークファイルシステム。使わないなら無効に。
  • nfslock: nfsを使わないなら無効に。
  • rawdevices:
  • messagebus: アプリケーション間のメッセージを送るD-BUSを利用可能
  • microcode_ctl
  • netfs
  • atd: atコマンドにより、指定された時刻に指定されたコマンドを実行する
  • portmap: NFSなどRPC接続をするプログラムを利用する場合はON
  • openibd: InfiniBandのデーモンサービス
  • irqbalance: マルチCPU環境で2nd CPU移行も割り込み処理を行なう事が出来るようにするためのサービス。1cpuなら不要。
  • rpcgssd
  • rpcidmapd
  • autofs

動いているサービスは、ディストリビューションによって異なり、また必要なサービスは人によってそれぞれ違います。自分の環境に合わせて判断してください。上記の例は私の環境(CentOS4.4)のものです。

 

 

自宅サーバ構築 TOP へ戻る

サービス起動の流れと管理

  • 2007-04-11 (水)

Linuxにはサービス開始の起点が3つあります。

1. /etc/inittab

 ここでは以下のように、システムのランレベルが指定されています。3が一般的にサーバで利用されるフルマルチユーザモード、5がxwindowsモードです。サーバ機なので、3を指定してあります。また、ランレベルはrootで telinit 3 などと実行することで、システム起動中に切り替えることも可能です。

# Default runlevel. The runlevels used by RHS are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:3:initdefault:

また/etc/inittabには、以下のように各ランレベルの初期化シーケンスを開始するコマンドが書かれています。

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

 2. /etc/rc.d/rc?.d

 /etc/rc.d/ には rc?.d(?は0から6までの数字) というディレクトリがあり、それぞれ各ランレベルと対応しています。各ディレクトリの中をのぞいてみると分かりますが、中には起動するサービスへのシンボリックリンクになっています。各ランレベルに入る際には S(Start) で始まるリンクが、また抜ける際は K(Kill) で始まるリンクが実行されます。S,K に続く数字は、実行されるスクリプトの優先順位です。oreilly.co.jp — Online Catalog: Linuxサーバ Hacks 2 では、Disabled というディレクトリを作り、そこへ実行したくないスクリプトへのシンボリックリンクを移動させることによってサービスを無効化する方法が紹介されていました。

3.xinetd (インターネットデーモン)

 xinetd はポートを監視し、リクエストに応じてサービスの起動を行います。これによって、使用頻度が低いサービスなどを常駐させておく必要がなくなります。

設定ファイルは /etc/xinetd.conf、また各サービスの制御スクリプトは /etc/inetd.d/ 以下にあります。xinetd で起動される各サービスを無効にする場合は、/etc/inetd.d/ 以下にある該当サービスのスクリプトを編集し、disable = yes とします。

/etc/xinetd.conf

defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

includedir /etc/xinetd.d

例 /etc/inetd.d/echo

service echo
{
type = INTERNAL
id = echo-stream
socket_type = stream
protocol = tcp
user = root
wait = no
disable = yes
}

 

サービス起動の管理

サービス起動の管理には、chkconfigコマンドを利用します。

起動スクリプトを一覧表示

chkconfig –list

サービスの状態を確認(例sendmail)

chkconfig –list sendmail

サービスの開始

chkconfig sendmail on

サービスの停止

chkconfig sendmail off

 

自宅サーバ構築 TOP へ戻る

自宅サーバ構築

  • 2007-04-10 (火)

自宅サーバを構築することにしました。

    理由
  • サーバ(DELL SC430)が安くて衝動買いした!(そして放置してあった。)
  • VMWareServerが無償化され、安定した仮想OS環境を簡単に構築できるようになった。楽しそう!
  • レンタルサーバだと制限が多い。 もっと自由に遊びたい!

はい、遊びです。本当は理由なんていいんです。楽しければいいんです。 私は今までlinuxには多少触れたことはありますが、長期間に渡って自分のサーバを運用した経験はありません。せっかくやるので、今まで何となくやり過ごしていたきた問題、あやふやになっている知識を、一つ一つ整理しながら進めていきたいと思います。このページを中心にまとめていきます。

※技術的に未熟なため、何か間違ったことを書いているかもしれません。その場合はご指摘いただけると幸いです。

 

  

 

  

 

    サーバ監視
  • munin

 

 

 

    サーバセキュリティ
  • Tripwire

 

Home > Archives > 2007-04

Search
Feed
Others

track feed
ブログSEO対策:track word

Return to page top