QNAPのrsyncサーバ

更新日2012-09-10 (月) 18:41:52

Linuxよりフォルダをバックアップ

Linixのbk_dctestがQNAPの/share/MD0_DATA/okadaの下にバックアップ

以下のようにRSYNCサーバのユーザ名、パスワードを設定

qnap_rsync1.png

以下のように設定が変わる

/etc/rsyncd.conf

uid = admin
gid = administrators
pid file = /var/run/rsyncd.pid
read only = false
hosts allow = *
port = 873
rsync user = rsync
rsync pswd = *******
SLimitRate =
RLimitRate =

[Multimedia]
path = /share/MD0_DATA/Multimedia
(略)
[okada]
path = /share/MD0_DATA/okada

Linuxからバックアップ

/home/okada/himitsu/digicom.passに先のQNAPのrsyncサーバのパスワードを指定

digicom.pass

*****
# chowm root.root digicom.pass
# chmod 600 digicom.pass

実行

# rsync -avz --password-file=/home/okada/himitsu/digicom.pass bk_dctest rsync://rsync@180.131.110.210:/okada
sending incremental file list
bk_dctest/
bk_dctest/test1

cronなどで自動の場合は適当なshellスクリプトを作成し、時間内に終了しない場合の処理が必要

rsync.sh

#!/bin/sh
if [ -r /var/run/rsync_client_running_okada ]; then
exit
fi
/usr/bin/touch /var/run/rsync_client_running_okada
/usr/local/bin/rsync --log-file=/var/log/rsync_client.log --recursive --times --compress --archive --delete \
--password-file=/mnt/data/rsync/rsync.pass "/mnt/data/rsync/sync_test" "rsync://rsync@192.168.32.1/okada"
/bin/rm -f /var/run/rsync_client_running_okada

Windowsでrsync(cwRsync)

windowsから使用できるrsyncで以下からDL ただし、何回か再読込みをしないとファイル保存できない。

http://cwrsync.apponic.com/download/

パス指定に注意 c:\usr\ism_sync => /cygdrive/c/usr/ism_sync

C:\>rsync -avz --delete --password- file=/cygdrive/c/usr/cwRsync/sync.pass /cygdrive/c/Usr/ism_sync "rsync://rsync@1 92.168.31.7/okada"
sending incremental file list

sent 67 bytes  received 9 bytes  50.67 bytes/sec
total size is 0  speedup is 0.00

以下のようなバッチを作成

sync.bat

@echo off
c:
cd \Usr\cwRsync
if not exist tmp.pid (
echo 1 > tmp.pid
c:\usr\cwRsync\bin\rsync -avz --delete --password-file=/cygdrive/c/usr\
/cwRsync/sync.pass --log-file=/cygdrive/c/usr/cwRsync/log.txt \
/cygdrive/c/Usr/ism_sync "rsync://rsync@192.168.31.7/okada/sync_okada"
del tmp.pid
)

if exit c:\test( => c:\testファイルが存在したならば ( )を実行
)

if not exit c:\test( => c:\testファイルが存在しなければ ( )を実行
)

このままでは実行時、comanndの窓が開く最小化して実行するにはショートカットで最小化を指定するが、タスクスケジュールではショートカットが登録できない。そこで。以下のようなvbsファイルを作成

rsyn.vbs

Set objWSHShell = CreateObject("WScript.Shell")  
objWSHShell.Run "cmd.exe /c C:\Usr\cwRsync\rsync.bat", 7 

しかし、これだけでは大きなファイルの転送をWindowsから行うとこける。対策はWindowsのMTUを変更する。こちら

Tips

Windows起動後NetWorkドライブに接続できない場合は次を参考にする Windows起動時のネットワークドライブの接続方法


pptpd

CentOS6で利用できるrpmが見つからなかったのでソースからコンパイル

以下からDL 今回は pptpd-1.3.4.tar.gz

http://sourceforge.net/projects/poptop/files/pptpd/

事前にppp,ppp-develをインストール

$ tar zxvf pptpd-1.3.4.tar.gz 
$ cd pptpd-1.3.4

このまま進むと以下のようなエラーが出る

/usr/sbin/pppd: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.5

そこで、pptpd-logwtmp.soを作成するソースファイルのplugins/patchlevel.hのバージョン情報を書き換え

#define VERSION         "2.4.3"
↓
#define VERSION         "2.4.5"

CentOS6のpppのバージョンが2.4.5なため

$ ./configure
$ make
$ su
# make install
# cp plugins/pptpd-logwtmp.so /usr/lib/pptpd/
( # ln -s /usr/local/lib/pptpd/pptpd-logwtmp.so /usr/lib/pptpd/pptpd-logwtmp.so
/usr/local/lib/にコピーされるので、リンクでいいかも)
# cp samples/pptpd.conf /etc/
# cp samples/chap-secrets /etc/ppp/
# cp samples/options.pptpd /etc/ppp/

/etc/pptpd.conf

(略)
# TAG: option
#       Specifies the location of the PPP options file.
#       By default PPP looks in '/etc/ppp/options'
#
option /etc/ppp/options.pptpd

#debug
debug
(略)
localip 192.168.31.1
remoteip 192.168.31.121-150

eth0側のIPが192.168.31.1になっているので192.168.31.0のネットワークとコミュニケーションがとれる。

''/etc/ppp/chap-secrets''
# client        server  secret                  IP addresses
okada           pptpd   ****                    192.168.31.101
                ^^^^^(1)
okada-p         pptpd   ****                    *

IPを指定するとそのアドレスがユーザに割り振られる。pptpd.conf内のremoteipで指定された範囲を指定するようなページもあったが、そうするとIPの重複が生じた。
remoteip範囲外でも割り振れたのでこれでいいかな?

/etc/ppp/options.pptpd

# Authentication

# Name of the local system for authentication purposes
# (must match the second field in /etc/ppp/chap-secrets entries)
name pptpd
     ^^^^^ (1)と合わせる
(略)
 Logging
 
# Enable connection debugging facilities.
# (see your syslog configuration for where pppd sends to)
#debug
debug

# Print out all the option values which have been set.
# (often requested by mailing list to verify options)
#dump
dump

起動

-f -d でフォアグランドで確認
# /usr/local/sbin/pptpd -f -d

通常は

# /usr/local/sbin/pptpd

iptableの使用時

iptableを使用時は//etc/sysconfig/iptablesにtcpのpptp(1723)とgre(47)プロトコルを許可しておく。ただし、GUIでファイアウォールを変更すると消えるので再度記入する必要あり

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport pptp -j ACCEP
-A RH-Firewall-1-INPUT -p gre -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT

接続時の経路情報の追加

pptpで接続されたとき新しい経路情報を作成。サーバ側で設定時はサーバ側で、クライアント側で設定時はクライアント側でrouteが追加される。

/etc/ppp/ip-up

route add -net 192.168.10.0 gw 192.168.31.101 netmask 255.255.255.0 metric 1 <==追加

exit 0

接続前

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
182.236.42.16   0.0.0.0         255.255.255.240 U         0 0          0 eth0
192.168.31.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         182.236.42.30   0.0.0.0         UG        0 0          0 eth0

接続後

# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.31.101  0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
182.236.42.16   0.0.0.0         255.255.255.240 U         0 0          0 eth0
192.168.31.0    0.0.0.0         255.255.255.0   U         0 0          0 eth0
192.168.10.0    192.168.31.101  255.255.255.0   UG        0 0          0 ppp0
^^^^^^^^追加されている(経路情報)
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         182.236.42.30   0.0.0.0         UG        0 0          0 eth0

Buffalo BHR-4GRV

Linuxのpptpdサーバにネットワークとして接続する以下のような構成時WindowsからFreeNASにアクセス可になる(逆は不可)GWが192.168.10.xをNATして投げるようだ。

------------                  --------------- 
| Windows  |192.168.10.x      | GW BHR-4GRV | 
|          |------------------|             |
------------                  ---------------
                                     |pptp(192.168.31.101)
                                     |
                                     |(インターネット)
                                     |
                                     |pptpd
                              ----------------
                              | CentOS 6     |
                              | pptpd        |
                              -----------------
                                     | LAN (192.168.31.1)
                                     |
 ---------------                     |
 | FreeNAS     | 192.168.31.7        |
 |             |----------------------
 ---------------

freenas_rsync3.png

iptableの例(参考)

/etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1723 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -i eth0:1 -j ACCEPT
-A FORWARD -o eth0 -j ACCEPT
-A FORWARD -p tcp -j ACCEPT   (pptpで内部LANにtcp許可)
-A FORWARD -p icmp -j ACCEPT  (pptpで内部LANにicmp許可)
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS