8.4. 設定例
8.4.1. CVS のセットアップ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
リモートアクセスを許可する SELinux 設定と簡単な CVS セットアップの例を以下に示します。 2 台のホストを使用しています。 ホスト名が
cvs-srv で IP アドレスが 192.168.1.1 の CVS サーバーと、 ホスト名が cvs-client で IP アドレスが 192.168.1.100 のクライアントです。 いずれのホストも同じサブネット上にあります (192.168.1.0/24)。 これは一例に過ぎません。 また、 cvs と xinetd パッケージがインストールされていること、 SELinux targeted ポリシーを使用していること、 SELinux は enforced モードで実行していることを前提としています。
DAC の全パーミッションが許可されている場合であっても、 SELinux ではファイルラベルに応じたポリシールールを施行し、 CVS アクセス用のラベルが明確に付けられている特定領域にしかアクセスを許可しないようにすることができます。
注記
ステップ 1 から 9 は CVS サーバー
cvs-srv で行なってください。
- cvs と xinetd のパッケージが必要になります。
rpm -q cvsを実行して、 cvs パッケージがインストールされているか確認してください。 インストールされていない場合は、 root ユーザーで次のコマンドを実行し、 cvs をインストールします。yum install cvs
# yum install cvsCopy to Clipboard Copied! Toggle word wrap Toggle overflow rpm -q xinetdを実行して、 xinetd パッケージがインストールされているか確認してください。インストールされていない場合は、 root ユーザーで次のコマンドを実行し xinetd をインストールします。yum install xinetd
# yum install xinetdCopy to Clipboard Copied! Toggle word wrap Toggle overflow CVSと言う名前のグループを作成します。 root ユーザーで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
cvspserver 2401/tcp # CVS client/server operations cvspserver 2401/udp # CVS client/server operationsCopy to Clipboard Copied! Toggle word wrap Toggle overflow - CVS リポジトリをファイルシステムの root 領域に作成します。 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 - root ユーザーで
service xinetd startを実行し、xinetdデーモンを起動します。 - 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で行なってください。 - 既存のデータおよび新規のデータすべてに再帰的にラベル付けが行なわれるよう、 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