目次
- ホストレベルのセキュリティ
- スーパーサーバの設定と管理
- xinetdの設定(/etc/xinetd.confの主なパラメータ、/etc/xinetd.d以下の設定ファイルの主なパラメータ)
- TCP Wrapperによるアクセス制御(/etc/hosts.allowと/etc/hosts.deny)
- 開いているポートの確認
- SUIDが設定されているファイル
ホストレベルのセキュリティ
セキュリティに完璧はありませんが、可能な限りセキュリティを高める努力は必要です。
セキュリティを高めるためには、外部と内部からの侵入に対するセキュリティを高める必要があります。
スーパーサーバの設定と管理
ネットワークを通じてサービスを提供しているサーバは、デーモンと呼ばれる常駐プログラムです。
デーモンは常時メモリ上に待機していて、クライアントからの要求を監視しています。
使用されていない状態の時も、メモリなどのリソースを消費しています。
常駐するデーモンの数が多くなると、待機中のデーモンが消費するシステムリソースもそれだけ大きくなります。
これを解決する為に、サーバプログラムを管理するスーパーサーバーが開発されました。
スーパーサーバは、他のサーバプログラムに代わってサービス要求を監視し、接続が確立した時点で本来のサーバプログラムに要求を引き渡します。
必要な時だけ個々のサーバプログラムを起動することで、メモリなどのシステムリソースを効率的に使うことが出いると言うメリットがあります。
xinetdの設定
xinetdの設定は、全体的な設定を行う/etc/xinetd.confファイルと、xinetd.dディレクトリ(通常は/etc/xinetd.d)以下にあるサービスごとの設定ファイルから構成されます。
/etc/xinetd.confの主なパラメータ
パラメータ | 説明 |
instances | 各サービスの最大デーモン数 |
log_type | ログの出力方法 |
log_on_success | 接続を許可した時にログに記録する内容 |
log_on_failure | 接続を拒否した時にログに記録する内容 |
cps | 1秒間に接続できる最大コネクション数と、限度に達した場合にサービスを休止させる秒数 |
includedir | サービスごとの設定ファイルを収めるディレクトリ |
/etc/xinetd.d以下の設定ファイルの主なパラメータ
パラメータ | 説明 |
disable | サービスの有効/無効(noで有効) |
socket_type | 通信のタイプ(TCPはstream、UDPはdgram) |
wait | ウェイトタイム |
user | サービスを実行するユーザー名 |
server | サーバプログラム(デーモン)へのフルパス |
server_args | サーバプログラム(デーモン)に渡す引数 |
log_on_failure | 接続を拒否した時にログに記録する内容 |
nice | 実行優先度 |
only_from | 接続を許可する接続元 |
no_access | 接続を拒否する接続元 |
access_times | アクセスを許可する時間帯 |
TCP Wrapperによるアクセス制御
ネットワークサービスのアクセス制御を集中的に行うには、TCP Wrapperを使います。
TCP Wrapperデーモンであるtcpdデーモンは、telnetdやftpdなどのサーバプログラムに代わってサービス要求を受け取った後、設定に基づいてチェックを行い、接続が許可された場合はそれぞれのサーバプログラムに処理を引き渡します。
設定ファイルは/etc/hosts.allow及び/etc/hosts.denyです。
/etc/hosts.allowと/etc/hosts.deny
TCP Wrapperはまず、/etc/hosts.allowをチェックし、ファイルに記述された条件に合致すれば、その時点でアクセスを許可します。
この場合、/etc/hosts.denyファイルは参照されません。
/etc/hosts.allowに合致する条件がなければ、次に/etc/hosts.denyをチェックします。
このファイルに記述された条件に合致すれば、その時点でアクセスは拒否します。
条件にマッチしなかったものはアクセスが許可されます。
開いているポートの確認
サーバプロセスを起動すると、そのプロセスは特定のポートを開いて接続を待ち受けます。
攻撃者は、開いているポートが分かれば、外部からそのポートに接続し、情報収集や攻撃を試みることが出来ます。
開いているポートを最小限にとどめることで、セキュリティを高めることが出来ます。
開いているポートを確認するには、netstatコマンドやssコマンド、lsofコマンドを使います。
SUIDが設定されているファイル
所有者がrootユーザーであるプログラムにSUID(Set User ID)を設定すると、一般ユーザーが実行した場合でも、そのプログラムはroot権限で動作します。
最後まで読んで頂き、ありがとうございました。
他の分野へ移動できる全体ページへは下記リンクから移動できます。