クラウドストレージは便利だけど、直接PCで開くのにはやっぱりWindowsファイル共有が便利なんで、お名前.com VPS上にSambaを乗っけてファイル共有サーバに仕立てようかと思う。
と言っても、Sambaを直接設置とかセキュリティ的に非常にアレなので、自宅のIX2025ルータとお名前VPS間にIPSec VPNを張って、VPN上だけファイル共有通信を可能にした。
テスト環境は、お名前2GBプランのデフォルトCentOS6.5導入完了状態とIX2025ルータFW9.0.54、ローカル回線は光コラボのギガスマにフレッツ光対応、固定IPサービス「ZOOT NEXT for フレッツ光」サービスで相互固定IPなので、メインモードIPSecVPNになる。
お名前VPSの初期導入が完了した状態からスタート。
1 2 3 4 5 6 7 8 |
yum install openswan zfs-fuse samba /etc/init.d/zfs-fuse start chkconfig zfs-fuse on vim /etc/fstab umount /dev/vdb zpool create zpool -f /dev/disk/by-path/pci-0000\:00\:05.0-virtio-pci-virtio2 zfs create zpool/public zfs dedup=verify zpool/public |
パッケージ導入、ZFS-fuse起動設定、fstabの/dataのマウント設定を削除、デフォルトの/dataを削除してzpoolを作成し、zpool/publicを重複除外有効にした。 ZFS-fuseではfstabマウントでは無く、ZFS-fuse側の設定でマウントする。
通常、/zpool/zfsの位置にマウントされる(今回なら/zpool/public) マウント位置設定はzfs mountpoint=/data zpool/publicみたいにしてmountpointに設定する。
次にIPSecの設定を行う。 設定ファイルの編集 /etc/ipsec.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
version 2.0 config setup protostack=netkey nat_traversal=yes virtual_private=%v4:192.168.0.0/16 oe=off conn home type=tunnel authby=secret auth=esp keyexchange=ike ike=3des-sha;modp1024 phase2=esp phase2alg=3des-sha;modp1024 pfs=no left=お名前固定IP leftid=お名前固定IP leftsubnet=お名前固定IP/32 right=IX2025外IP rightid=IX2025中IP rightsubnet=192.168.0.0/23 auto=start |
自宅のローカルは192.168.0.0/23でIX2025は192.168.0.1になっている。
NAT_Traversal有効、トンネルタイプIPSecでIKE/ESP、プロポーザル設定等のごくごく基本設定。 今回はPSK認証なので/etc/ipsec.secretに共通シークレットを記述。
1 |
お名前固定IP 192.168.0.1: PSK "共通シークレット" |
あとは、カーネルパラメータを修正する必要があるので、/etc/sysctl.confを編集(上側の修正はipsec verifyコマンドの指示に従っている。 IP_ForwardはOnじゃないとトンネリング出来ない)
1 2 3 4 5 6 7 8 9 10 |
net.ipv4.conf.all.send_redirects = 0 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.default.send_redirects = 0 net.ipv4.conf.default.accept_redirects = 0 net.ipv4.conf.eth0.send_redirects = 0 net.ipv4.conf.eth0.accept_redirects = 0 net.ipv4.conf.lo.send_redirects = 0 net.ipv4.conf.lo.accept_redirects = 0 #net.ipv4.ip_forward = 1 |
編集後に適用
1 |
sysctl -p |
あとは、iptablesに穴開けするため、/etc/sysconfig/iptablesを編集。
1 2 3 4 |
-A INPUT -s 192.168.0.0/23 -j ACCEPT -A INPUT -p udp -s IX2025外IP/32 --dport 500 -j ACCEPT -A INPUT -p udp -s IX2025外IP/32 --dport 4500 -j ACCEPT -A INPUT -p esp -s IX2025外IP/32 -j ACCEPT |
IPSecに関係するUDP500とそのNAT Traversalである4500、そしてESPを許可する。
また、Samba等の為にIPSecトンネルを越えてきた192.168.0.0/23からの接続を全て許可する。
そして、IX2025のコンフィギュレーションに移って・・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
ip route お名前固定IP/32 Tunnel1.0 ip access-list onamae-acl permit ip src any dest any ike nat-traversal ike suppress-dangling ike proposal onamae-ike-prop encryption 3des hash sha group 1024-bit ike policy onamae-ike peer お名前固定IP key 共通シークレット onamae-ike-prop ike keepalive onamae-ike 30 3 ike local-id onamae-ike address 192.168.0.1 ike remote-id onamae-ike address お名前固定IP ipsec autokey-proposal onamae-ipsec-prop esp-3des esp-sha ipsec autokey-map onamae-ipsec onamae-acl peer お名前固定IP onamae-ipsec-prop !pppoeインタフェース上のudp 500, 4500, ESP(Protocol:50)のNAPT設定等は別途設定済み interface Tunnel1.0 tunnel mode ipsec ip unnumbered GigaEthernet0.1 ip tcp adjust-mss auto ipsec poict tunnel onamae-ipsec out no shutdown |
プロポーザル関係の設定が中心。
より強度の高い保護をする場合は、IKEの鍵認証にするとか、プロポーザルをAES/SHAの長いものにするなど、Openswanと共に設定すれば良い。
とりあえず、これで設定完了なので、VPS側でサービスを起動する。
1 2 |
/etc/init.d/ipsec start chkconfig ipsec on |
数秒でネゴシエーションされて、IX2025のshow ike saでph1/ph2を確認する。
VPS上にApacheを起動して、phpinfo()とかを設置したURLをローカルのクライアントから見ると、REMOTE_ADDRにLAN内IP(192.168.0.x)が表示されるので確認出来る。
これで、ルータとVPS間が暗号トンネル上に乗っているので平文通信も気にせず行えるし、FWの穴開けなど気にせずに色々なサービスを動かすことが出来る。
あとは、ごく普通のSamba設定。
/etc/samba/smb.conf、pdbedit等やって/zpool/publicをpublic共有する。
計測では、Samba経由の書き込みでは6MB/s位でZFS-fuseの負荷が1コア100%になって頭打ち。
さすが、リアルタイムにハッシュを計算して照合してと言う処理が挟まるので負荷が高いな。
ハッシュ計算のアクセラレーション命令セットを使わないと厳しそうだ。
Dedup効率の確認は、zpool listを実行すると、DEDUP 3.14Xみたいな感じで表示される。 この数字は、重複除外前/重複除外後のサイズの比率なので、同じデータをコピーすれば2.00X、更にコピーすれば3.00xとなって表示される。
データを入れるにつれて、データのハッシュデータベースが大きくなっていくためメモリ消費の増加と速度低下が発生するが、1.50x位であれば180GBの領域を使い切ってもメモリは大丈夫そうだった。
デイリーで世代を取りつつドキュメントディレクトリをROBOCOPYするとか言うのには便利そうだな(この場合、ドキュメントを丸ごと圧縮するとアライメントずれとかで重複除去効率が低下するため、生ファイルをそのままコピーしておいた方が効率が良い)
(377)
ピンバック: 低価格NASをクラウドバックアップ | お名前.com、さくらVPS等のサーバーでの開発・設定メモ