検索

22.4. 設定の例

download PDF

22.4.1. デーモンとしての Rsync

Red Hat Enterprise Linux を使用する場合は、rsync をデーモンとして使用できるため、複数のクライアントが中央サーバーとして直接通信し、集中ファイルを格納して同期を維持できます。以下の例は、正しいドメインのネットワークソケットで rsync をデーモンとして実行し、SELinux がこのデーモンを事前定義済み (SELinux ポリシー) の TCP ポートで実行する方法を示しています。次に、rsync デーモンが標準以外のポートで通常どおり実行できるように SELinux ポリシーを変更する方法を示します。
この例は、1 つのシステムで実行し、SELinux ポリシーと、そのローカルデーモンおよびプロセスに対する制御を示します。これは単なる例で、SELinux が rsync に与える影響を示していることに注意してください。rsync の包括的なドキュメントは、このドキュメントの範囲外です。詳細は、公式の rsync のドキュメント を参照してください。この例では、rsyncsetroubleshoot-server、および audit パッケージがインストールされ、SELinux Targeted ポリシーが使用され、SELinux が Enforcing モードで実行されていることを前提としています。

手順22.1 rsync を rsync_t として起動させる

  1. getenforce コマンドを実行して、SELinux が Enforcing モードで実行されていることを確認します。
    ~]$ getenforce
    Enforcing
    
    SELinux が Enforcing モードで実行されていると、このコマンドは Enforcing を返します。
  2. which コマンドを実行して、rsync バイナリーがシステムパスにあることを確認します。
    ~]$ which rsync
    /usr/bin/rsync
    
  3. rsync をデーモンとして実行する場合は、設定ファイルを使用して、/etc/rsyncd.conf として保存する必要があります。この例で使用されている以下の設定ファイルは非常に単純であり、使用可能なすべてのオプションを示しているわけではなく、rsync デーモンを示すだけで十分であることに注意してください。
    log file = /var/log/rsync.log
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    [files]
    	path = /srv/rsync
            comment = file area
            read only = false
            timeout = 300
    
  4. rsync がデーモンモードで動作するための簡単な設定ファイルが存在するようになったため、以下のコマンドを実行して起動できます。
    ~]# systemctl start rsyncd.service
    rsyncd が正常に起動したことを確認します (出力は以下のようになります。タイムスタンプのみが異なります)。
    ~]# systemctl status rsyncd.service
    rsyncd.service - fast remote file copy program daemon
       Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled)
       Active: active (running) since Thu 2014-02-27 09:46:24 CET; 2s ago
     Main PID: 3220 (rsync)
       CGroup: /system.slice/rsyncd.service
               └─3220 /usr/bin/rsync --daemon --no-detach
    
    SELinux は、rsync_t ドメインで実行しているときに、rsync デーモンにプロテクションメカニズムを適用できるようになりました。
    ~]$ ps -eZ | grep rsync
    system_u:system_r:rsync_t:s0     3220 ?        00:00:00 rsync
    
この例は、rsync_t ドメインで実行しているrsyncdを取得する方法を示しています。Rsync は、ソケットが有効なサービスとして実行することもできます。これにより、クライアントがサービスへの接続を試行するまで、rsyncdが実行されません。rsyncd がソケットにより起動したサービスとして実行できるようにするには、上記の手順を行います。rsyncd をソケット起動サービスとして起動するには、root で以下のコマンドを実行します。
~]# systemctl start rsyncd.socket
以下の例は、デフォルト以外のポートでこのデーモンを正常に実行する方法を示しています。次の例では、TCP ポート 10000 が使用されています。

手順22.2 デフォルト以外のポートでの rsync デーモンの実行

  1. /etc/rsyncd.conf ファイルを変更し、グローバル設定領域 (つまりファイル領域が定義する前) のファイルの一番上にある port = 10000 行を追加します。新しい設定ファイルは以下のようになります。
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    port = 10000
    [files]
            path = /srv/rsync
            comment = file area
            read only = false
    	timeout = 300
    
  2. この新しい設定で rsync デーモンを起動すると、次のような拒否メッセージが SELinux によりログに記録されます。
    Jul 22 10:46:59 localhost setroubleshoot: SELinux is preventing the rsync (rsync_t) from binding to port 10000. For complete SELinux messages, run sealert -l c371ab34-639e-45ae-9e42-18855b5c2de8
    
  3. semanage ユーティリティーを使用して、rsync_port_t の SELinux ポリシーに TCP ポート 10000 を追加します。
    ~]# semanage port -a -t rsync_port_t -p tcp 10000
  4. rsync_port_t の SELinux ポリシーに TCP ポート 10000 が追加され、rsyncd はこのポートで通常どおり起動して動作するようになりました。
    ~]# systemctl start rsyncd.service
    ~]# netstat -lnp | grep 10000
    tcp        0      0 0.0.0.0:10000   0.0.0.0:*      LISTEN      9910/rsync
    
SELinux ではポリシーが変更され、rsyncd の TCP ポート 10000 での動作が許可されるようになりました。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.