いこいの森

Think globally, Act locally!
 -Globis、IT、経営力を高める-

サービスの起動と停止(Fedora)

2006-08-14 | サーバ構築・環境設定

■サービスの起動と停止 LAST UPDATE 2006/08/14
------------------------------------------------


■initプロセスとランレベル
◆起動の種類
------------------------------
0 システムの停止
1 シングルユーザーモード(管理者モード)
2 NFSを使わないマルチユーザーモード
3 マルチユーザーモード
4 未使用
5 GUIログインを行えるマルチユーザーモード
6 システムの再起動
------------------------------

システムの再起動(レベル6)と停止(レベル0)を除くレベルがシステムの起動状態を定義している。
ただ、管理者モード(レベル1やレベル2)はメンテナンス時に使うレベル。

レベル4は未使用だからAPPを起動するランレベルは、残るレベル3とレベル5である。

◆起動時のランレベルは『inittab』ファイルで設定
------------------------------
# vi /etc/inittab
------------------------------

id:5:initdefault:

------------------------------
→ランレベル『5』

■デーモンの起動と停止
常デーモンを起動するときには起動スクリプトと呼ばれるシェルスクリプトが使われます。
これらのファイルは/etc/init.dに置かれており、次のようにして使います。

------------------------------
# /etc/init.d/daemon start   (起動)
# /etc/init.d/daemon stop    (終了)
------------------------------

/etc/init.dの中を見てみれば分かりますが、ここにはたくさんの起動スクリプトがあります。
システム管理者はこの中からマシンの用途に合ったデーモンだけを選んで、
Linux起動時に自動的に起動するようにさせる必要がある。

⇒「ntsysv」や「chkconfig」を利用して設定が可能。


■ntsysv
システム起動時に自動起動するサービスを変更することができる。
Red Hat Linux系であればntsysvコマンドでサービスの状態を確認可能。
デフォルトで自動起動されるサービスを停止させセキュリティーを確保できる。
【注意】
言語設定が日本語になっている場合はターミナルで文字化けが起きるので、unset LANGにて言語設定をリセットしましょう。

◆ntsysvは、システム起動時の状態を設定するだけで、起動しているサービスを停止したり、
停止しているサービスを起動したりすることはできない。
その場合は、/etc/rc.d/initd/ディレクトリにある、各デーモンの起動スクリプトを、
「start、stop」などのオプションを付けて手動で実行する。

◆/etc/rd.c階層のサービス起動/停止
(1)「start、stop」などのオプションを付けて手動で実行する。
------------------------------
# /etc/rc.d/init.d/smb start
Starting SMB services:                                     [ OK ]
Starting NMB services:                                     [ OK ]
------------------------------

(2)serviceコマンドより
------------------------------
service httpd stop
service ipchains stop
service iptables stop
service httpd stop
service xinetd restart
------------------------------

補足(GUI設定)
redhat-config-services
------------------------------

■chkconfig
ランレベルごとのサービス設定

※【serviceconf】GUI

chkconfig --list
chkconfig --list anacron   /etc/rc.d配下のサービス
chkconfig --list finger   xinetd配下
⇒chkconfig finger on 実行で即反映

【注意】
chkconfig を使うには, 起動スクリプトが chkconfig で 「on, off」出来るように設定されている必要があります.


サービス一覧はこちら


◆手動による起動ファイルの設置

/etc/rc.d/init.dにスクリプトを用意したら、ランレベル毎にシンボリックリンクを作成する。

ランレベル3で起動
------------------------------
# cd ../rc3.d
# ln -sf ../init.d/httpd S83httpd
------------------------------

ランレベル5で起動
------------------------------
# cd ../rc5.d
# ln -sf ../init.d/httpd S83httpd
------------------------------


■【xinetd】スーパーデーモンによるサービスの起動と停止
※http://www.xinetd.org/

xinetdは、inetdのセキュリティを強化すべく開発されたスーパーデーモンで、
セキュリティ設定のみならず、サービスの提供時間帯を設定できるなど、細かなアクセス制御が可能です。
従来はtcpwrappersで行っていたアクセス制御を、xinetdのみで行うことが出来ます。
RedHatディストリビューションでは、7.0以降はデフォルトでxinetdが使われます。
・IPによるアクセス制御
・ドメインによるアクセス制御
・サービスの提供時間
・接続数の制限
・ログ出力

xinetdは、/etc/xinetd.confファイルでアクセス制御を行います。
RedHatは基本的な設定のみ/etc/xinetd.confファイルを用い、
サービス毎の設定ファイルは/etc/xinetd.dディレクトリに置く方式を取っています。
------------------------------
/etc/xinetd.conf ⇒グローバルな xinetd設定ファイル。
/etc/xinetd.d/  ⇒全てのサービス特有のファイルを含んだディレクトリ。
------------------------------


◆アクセス制御の書式は次の通りです。
------------------------------
service <サービス名>
 {
  <属性> <オペレータ: =, +=, -=> <値,...>
 }
------------------------------

設定できる主な属性は次のとおり。
◆xinetd設定の属性
------------------------------
属性    説明 
user    実行ユーザの指定. 
group    実行グループの指定. 
only_from   アクセスを許可するクライアントを設定. 
no_access   アクセスを拒否するクライアントを設定. 
disable   サービスを提供するか否かをyes/noで指定.yesの場合サービス停止. 
socket_type   ソケットタイプの設定.次のタイプが指定できる:stream;dgram;raw;seqpacket 
server   サーバプログラムの指定. 
server_args   サーバプログラムの起動オプションを指定. 
instance   サーバプログラムの最大同時起動数を設定. 
nice    nice値の指定. 
log_on_success  サーバプログラムの正常起動時および正常終了時のログ出力要素を指定. 
log_on_failure  サーバプログラムの異常起動時および異常終了時のログ出力要素を指定. 
port    サーバプログラムの接続ポート番号を指定. 
access_times   アクセスできる時間帯を設定. 
------------------------------


オペレータは次の3種類が使用でき、柔軟にアクセス制御を記述できます。
◆xinetd設定のオペレータ
------------------------------
オペレータ  説明 
=  属性の代入 
+=  属性の追加 
-=  属性の削除 
------------------------------

◆具体的な例を使って、
/etc/xinetd.confファイルと/etc/xinetd.dディレクトリ以下のファイルの記述方法を説明します。

次のようなアクセス制御を行うとします。
・localhost(127.0.0.1)からのアクセスは全て許可
・ftpサービスは、ホスト"254.188.149.1"とホスト"earth.solarsystem.net"からのアクセスのみ許可
・telnetサービスは、ネットワーク"254.188.149.0"とドメイン"solarsystem.net"からのアクセスは許可
・それ以外のアクセスは拒否

◆/etc/xinetd.conf
以下にRedHat7.2に付属する/etc/xinetd.confファイルに、新たなアクセス制御属性(9行目)を追加したものを示します。
------------------------------
1 #
2 defaults
3 {
4  instances = 60
5  log_type = SYSLOG authpriv
6  log_on_success = HOST PID
7  log_on_failure = 25 30
8
9  only_from = 127.0.0.1
10
11 }
12
13 includedir /etc/xinetd.d
------------------------------
9行目で、特に設定しない限り、localhost(IPアドレス:127.0.0.1)のみアクセス許可と指定します。
13行目の"includedir"属性で、/etc/xinetd.dディレクトリ以下の、サービス毎の設定ファイルを読み込みます。


◆/etc/xinetd.d/wu-ftpd
これは、FTPサービスのアクセス制御を設定するファイルです。
------------------------------
1 services ftp
2 {
3  socket_type = stream
4  wait  = no
5  user  = root
6  server  = /usr/sbin/in.ftpd
7  server_args = -l -a
8  log_on_success += DURATION
9  log_on_failure += USERID
10  nice  = 10
11  disable  = no
12
13  only_from = 254.188.149.1
14  only_from = earth.solarsystem.net
15
16 }
------------------------------
11行目で、disableをnoとして、FTPサービスが提供可能とします。
13行目、14行目で、ホスト"254.188.149.1"とホスト"earth.solarsystem.net"からのアクセスを許可します。
なお、FTPサービスのアクセス制御は、/etc/ftphostsファイルでの設定も有効となりますので、
/etc/ftphostsファイルの設定も同様に行ってください。

 
◆/etc/xinetd.d/telnet
これは、TELNETサービスのアクセス制御を設定するファイルです。
------------------------------
1 services telnet
2 {
3  flags  = REUSE
4  socket_type = stream
5  wait  = no
6  user  = root
7  server  = /usr/sbin/in.telnetd
8  log_on_failure += USERID
9  disable  = no
10
11  only_from = 254.188.149.0
12  only_from = solarsystem.net
13
14 }
------------------------------
9行目で、disableをnoとして、TELNETサービスが提供可能とします。
11行目、12行目で、ネットワーク"254.188.149.0"とドメイン"solarsystem.net"からのアクセスを許可します。


■接続ポートの検査 
不要なサービスを停止したら、netstatコマンドを使って確実にポートが閉じているか否か、確認をしてみましょう。

------------------------------
# netstat -ln -A inet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN
------------------------------
 



カフェでも!駅でも!海外でも!外出先で快適インターネット!!
無線LANサービス「ホットスポット」


最新の画像もっと見る