rsyncのインストールとxinetd経由での起動設定方法。

§1 インストール

# インストールされているか確認
rpm -qi rsync

# インストールされていなければ、インストール
yum install rsync

§2 xinetd経由でrsyncを起動する場合の設定

xinetd経由でrsyncデーモンを起動させるための設定方法。 ここではローカルネットワーク内からのアクセスのみを許可する条件で設定を行う。

まず、デーモンに渡す設定ファイル/etc/rsyncd.confを作成する。

/etc/rsyncd.conf
hosts allow = 192.168.0.0/24 127.0.0.1
hosts deny = *
use chroot = yes
max connections = 1

[home]
    comment = smdn's home
    path = /home/smdn/
    uid = smdn
    gid = smdn
    read only = yes

設定項目の意味は次の通り。

hosts allow
接続を許可するホスト。 ここではローカルネットワーク内からの接続のみに制限するため、192.168.0.0/24と127.0.0.1を指定する。
hosts deny
接続を拒否するホスト。 ここではhosts allowで指定したもの以外すべてを拒否するため、*を指定する。
use chroot
yesを指定すると、以下で設定するpathより上位のパスへのアクセスを禁止する。
max connections
同時にアクセスできる接続数を設定する。 ここでは第三者からの接続を考慮しないため、1を設定する。
[home]
大括弧の中に任意の名前を指定してセクションを作成する。 ここではhomeというセクションを作成する。 セクションは複数作成することができる。
comment
クライアントから接続されたときに表示するコメントを設定する。
path
このセクションでアクセスするパスを指定する。
uid
アクセスの際に使用するユーザIDを指定する。
gid
アクセスの際に使用するグループIDを指定する。
read only
yesを指定すると、読み取り専用になる。 書き込みも許可する場合は、noを指定する。

なお、yes/noの変わりに、true/falseを指定することもできる。

続いて、xinetdの設定をするために/etc/xinetd.d/配下にrsyncというファイルを作成し、下記の内容を書き込む。

/etc/xinetd.d/rsync
service rsync
{
       disable         = no
       socket_type     = stream
       protocol        = tcp
       wait            = no
       user            = root
       server          = /usr/bin/rsync
       server_args     = --daemon --config=/etc/rsyncd.conf
       log_on_failure  += USERID
       only_from       = 192.168.0.0/24 127.0.0.1
}

設定項目の意味は次の通り。

user
rsyncを実行するユーザ。
server
rsyncへのフルパス。
server_args
rsyncに渡す引数。 「--daemon」でデーモンとして起動するように設定し、--configで設定ファイルへのパスを指定している。
log_on_failure
接続に失敗した場合、ユーザ名をログに記録する。
only_from
ローカルネットワーク内からの接続のみを許可するように、192.168.0.0/24と127.0.0.1を指定している。

/etc/hosts.allowに下記の内容を追記し、内部ネットワークからの接続のみを許可する。

/etc/hosts.allow
rsync : 192.168.0. 127.0.0.1

/etc/servicesを編集して、rsyncのサービス名と使用ポート番号が記述されているか確認する。 なければ追記する。

/etc/services
               :
               :
            (中略)
rsync           873/tcp                         # rsync
rsync           873/udp                         # rsync
               :
               :

また、iptablesなどを使ってファイヤーウォールの設定をしている場合は、873番のポートを忘れずに空けること。

続いて、chkconfigコマンドを使ってrsyncのデーモンを起動できるようにする。

# rsyncを起動できるようにする
chkconfig --add rsync

# 設定が反映されているか確認する
chkconfig --list rsync

上記のコマンドを打ったあと、次のように表示されればOK。

rsync           on

起動設定が整ったところで、xinetdを再起動して設定を反映する。

service xinetd restart

最後に、rsyncコマンドを使って、/etc/rsyncd.confのpathで指定したディレクトリ以下の内容が表示されればOK(homeの部分には、/etc/rsyncd.confで記述したセクション名を指定する)。

rsync rsync://localhost/home/*