18.4. 設定の例
18.4.1. CDK の設定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
この例では、簡単な CVS 設定と、リモートアクセスを可能にする SELinux 設定を説明します。ここでは、ホスト名が
192.168.1.1 の cvs-srv の CVS サーバーと、ホスト名が cvs-client で IP アドレスが 192.168.1.100 のクライアント の 2 つのホストが使用されます。両方のホストが同じサブネット (192.168.1.0/24) にあります。これは一例で、cvs パッケージと xinetd パッケージがインストールされ、SELinux targeted ポリシーが使用され、SELinux が実施モードで実行されていることを前提としています。
この例では、完全な DAC パーミッションを使用しても、SELinux はファイルラベルに基づくポリシールールを強制でき、CVS によるアクセスのラベルが付けられた特定の領域へのアクセスのみを許可することを示しています。
注記
手順 1-9 は、CVS サーバー
cvs-srv 上で実行されているはずです。
- この例では、cvs パッケージと xinetd パッケージが必要です。パッケージがインストールされていることを確認します。
rpm -q cvs xinetd
[cvs-srv]$ rpm -q cvs xinetd package cvs is not installed package xinetd is not installedCopy to Clipboard Copied! Toggle word wrap Toggle overflow インストールされていない場合は、root でyumユーティリティーを使用してインストールします。yum install cvs xinetd
[cvs-srv]# yum install cvs xinetdCopy to Clipboard Copied! Toggle word wrap Toggle overflow - root で次のコマンドを実行して、
CVSという名前のグループを作成します。groupadd CVS
[cvs-srv]# groupadd CVSCopy to Clipboard Copied! Toggle word wrap Toggle overflow これは、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
cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルシステムの root 領域に CVS リポジトリーを作成します。SELinux を使用する場合は、root ファイルシステムにリポジトリーを置いて、他のサブディレクトリーに影響を及ぼさずに再帰的なラベルを付けられるようにすることが最善の方法です。たとえば、root で、リポジトリーを格納する
/cvs/ディレクトリーを作成します。mkdir /cvs
[root@cvs-srv]# mkdir /cvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - すべてのユーザーに、
/cvs/ディレクトリーの完全なパーミッションを付与します。chmod -R 777 /cvs
[root@cvs-srv]# chmod -R 777 /cvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 警告これは単なる例で、このような権限は実稼働システムでは使用できません。 /etc/xinetd.d/cvsファイルを編集し、CVS セクションがコメント解除されており、/cvs/ディレクトリーを使用するように設定されていることを確認します。ファイルは以下のようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow xinetdデーモンを起動します。systemctl start xinetd.service
[cvs-srv]# systemctl start xinetd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow system-config-firewallユーティリティーを使用して、ポート 2401 で TCP 経由での着信接続を許可する規則を追加します。- クライアントで、
cvsuserユーザーとして以下のコマンドを実行します。cvs -d /cvs init
[cvsuser@cvs-client]$ cvs -d /cvs initCopy to Clipboard Copied! Toggle word wrap Toggle overflow - この時点で、CVS は設定されていますが、SELinux はログインとファイルアクセスを拒否します。これを実証するには、
cvs-clientで$CVSROOT変数を設定し、リモートでログインを試みます。cvs-clientでは、以下の手順を行う必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow SELinux がアクセスをブロックしました。SELinux にこのアクセスを許可させるために、次のステップはcvs-srvで実行されることになっています。 /cvs/ディレクトリーのコンテキストを root 権限で変更し、/cvs/ディレクトリーの既存データーおよび新規データーに再帰的にラベル付けするcvs_data_tタイプを指定します。semanage fcontext -a -t cvs_data_t '/cvs(/.*)?' restorecon -R -v /cvs
[root@cvs-srv]# semanage fcontext -a -t cvs_data_t '/cvs(/.*)?' [root@cvs-srv]# restorecon -R -v /cvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - クライアント
cvs-clientは、このリポジトリーにログインし、すべての CVS リソースにアクセスできるようになります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow