Menu Close
Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
18.4. 設定の例
18.4.1. CVS の設定
この例では、簡単な CVS 設定と、リモートアクセスを可能にする SELinux 設定を説明します。この例では、ホスト 2 台を使用しています。ホスト名が
cvs-srv
で、IP アドレスが 192.168.1.1
の CVS サーバーと、cv s-client
のホスト名と 192.168.1.100
の IP アドレスを持つクライアント。両方のホストが同じサブネット上にあります(192.168.1.0/24)。これは唯一の例であり、cvs および xinetd パッケージがインストールされ、SELinux のターゲットポリシーが使用され、SELinux が強制モードで実行されていることを前提としています。
この例では、完全な DAC パーミッションであっても、SELinux はファイルラベルに基づいてポリシールールを強制でき、CVS によるアクセスにとくにラベル付けされた特定の領域へのアクセスのみを許可することを示しています。
注記
手順 1-9 は、CVS サーバー
cvs-srv
で実行する必要があります。
- この例では、cv パッケージおよび xinetd パッケージが必要です。パッケージがインストールされていることを確認します。
[cvs-srv]$ rpm -q cvs xinetd package cvs is not installed package xinetd is not installed
インストールされていない場合は、root でyum
ユーティリティーを使用してインストールします。[cvs-srv]# yum install cvs xinetd
- root で以下のコマンドを入力し、CVS という名前のグループ
を作成します
。[cvs-srv]# groupadd CVS
これは、system-config-users ユーティリティーを使用して行うこともできます
。 - ユーザー名
cvsuser
でユーザーを作成し、このユーザーを CVS グループのメンバーにします。これは、system-config-users
を使用して実行できます。 /etc/services
ファイルを編集し、CVS サーバーに以下のようなエントリーのコメントを解除していることを確認します。cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operations
- ファイルシステムのルート領域に CVS リポジトリーを作成します。SELinux を使用する場合は、他のサブディレクトリーに影響を与えずに再帰的なラベルを指定できるように root ファイルシステム内にリポジトリーを指定することが推奨されます。たとえば、root で、リポジトリー
を格納する /cvs/
ディレクトリーを作成します。[root@cvs-srv]# mkdir /cvs
- 全ユーザーに対して
/cvs/
ディレクトリーへの完全なパーミッションを付与します。[root@cvs-srv]# chmod -R 777 /cvs
警告これは唯一の例であり、これらのパーミッションは実稼働システムでは使用しないでください。 /etc/xinetd.d/cvs
ファイルを編集し、CVS セクションのコメントが解除され、/cvs/ ディレクトリーを使用するように
設定されていることを確認します。ファイルは以下のようになるはずです。service cvspserver { disable = no port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs env = HOME=/cvs server_args = -f --allow-root=/cvs pserver # bind = 127.0.0.1
xinetd
デーモンを起動します。[cvs-srv]# systemctl start xinetd.service
system-config-firewall
ユーティリティーを使用して、ポート 2401 で TCP 経由の受信接続を許可するルールを追加します。- クライアント側で、cv
suser
ユーザーとして以下のコマンドを入力します。[cvsuser@cvs-client]$ cvs -d /cvs init
- この時点で、CVS は設定されていますが、SELinux はログインおよびファイルのアクセスを拒否します。これを行うには、cv
s-client
に$CVSROOT
変数を設定し、リモートでログインしてみてください。次の手順は、cvs-client
で実行する必要があります。[cvsuser@cvs-client]$ export CVSROOT=:pserver:cvsuser@192.168.1.1:/cvs [cvsuser@cvs-client]$ [cvsuser@cvs-client]$ cvs login Logging in to :pserver:cvsuser@192.168.1.1:2401/cvs CVS password: ******** cvs [login aborted]: unrecognized auth response from 192.168.100.1: cvs pserver: cannot open /cvs/CVSROOT/config: Permission denied
SELinux のアクセスがブロックされています。このアクセスを許可する SELinux を取得するには、cvs-srv で以下の手順を実行
する必要があります。 /cvs/
ディレクトリー内の既存データおよび新しいデータを再帰的にラベル付けするために、/cvs/
ディレクトリーのコンテキストを root として変更し、それにcvs_data_t
タイプを指定します。[root@cvs-srv]# semanage fcontext -a -t cvs_data_t '/cvs(/.*)?' [root@cvs-srv]# restorecon -R -v /cvs
- クライアント
cvs-client
がログインでき、このリポジトリー内のすべての CVS リソースにアクセスできるようになりました。[cvsuser@cvs-client]$ export CVSROOT=:pserver:cvsuser@192.168.1.1:/cvs [cvsuser@cvs-client]$ [cvsuser@cvs-client]$ cvs login Logging in to :pserver:cvsuser@192.168.1.1:2401/cvs CVS password: ******** [cvsuser@cvs-client]$