LoginSignup
0
1

More than 5 years have passed since last update.

QNAP SystemsのNAS TS-220のFTP(proftpd)設定をいじくる場合の覚え書き(危険なのでこのまま試さないでください)

Posted at

DISCLAIMER

まず、officialかつ最新の情報を確認してください。

Running Your Own Application at Startup http://wiki.qnap.com/wiki/Autorun.sh

以下、自分用のメモの散逸を防ぐため、もしくは誰かのヒントになればと文書化しました。
また、実際の設定はセキュリティの問題などがあり、そのまま公開できないので、適当に編集してあるため、 このままでは正しい動作はしない可能性が高いです。

このメモを試したのはQNAP Systems IncのTS-220というNASです。
http://www.qnap.com/jp/index.php?lang=jp&sn=699&c=328&sc=601&t=610&n=18427

ソフトウェアのバージョンはQTS 4.0 (中身はLinuxでuname -rすると2.6.33.2というバージョンが返ってきます。)

そもそも

QNAPのNASのOSは、サービスの設定を再起動の度に初期化してしまうようです(自分はまだ試していないが、次のサイトなどに記載があります。 http://motd.jugem.jp/?eid=188 ただこれは古いバージョンの話かもしれません。)
だからsshやtelnetで接続して設定を変更しても、再起動するとオジャン。逆に考えれば、どんだけいじってめちゃめちゃにしても再起動すればそれなりに動く(かもしれない)というfool proofになっています。(現在のQTS 4.0でもそうかどうかは保証できません)

なので、設定をいじる場合には

  1. 初期化されない領域を確保
  2. 設定ファイルを初期化されない領域にコピー
  3. 設定ファイルのコピーを変更して(バージョン管理しとくべき)、元の設定ファイルに上書きする
  4. サービスを再起動またはreconfigして動作を確認
  5. 設定ファイルを、初期化されない領域にあるものに差し替えるshellスクリプトを作成
  6. NASの起動時に実行されるコマンドをサービス毎に指定できる/etc/config/qpkg.confにftp用の項目を追加する

それでは順を追って

初期化されない領域を確保

mkdir -p /share/MD0_DATA/.dpkg/autorun

設定ファイルを初期化されない領域にコピー

NOW=`date +%Y%m%d-%H%M%S`
cp /etc/config/proftpd.conf /share/MD0_DATA/.dpkg/autorun/proftpd.conf.$NOW.backup
cp /etc/config/proftpd.conf /share/MD0_DATA/.dpkg/autorun/proftpd.conf

設定ファイルのコピーを変更して(バージョン管理しとくべき)、元の設定ファイルに上書きする

vi /share/MD0_DATA/.dpkg/autorun/proftpd.conf
cp /share/MD0_DATA/.dpkg/autorun/proftpd.conf /etc/config/proftpd.conf

サービスを再起動またはreconfigして動作を確認

再起動

/etc/init.d/ftp.sh restart

reconfig (設定のreload)

/etc/init.d/ftp.sh reconfig

設定ファイルを、初期化されない領域にあるものに差し替えるshellスクリプトを作成

vi /share/MD0_DATA/.dpkg/autorun/setupftp.sh

内容

#!/bin/sh
cp /etc/config/proftpd.conf /share/MD0_DATA/.dpkg/autorun/proftpd.conf.`/bin/date +%Y%m%d%H%M%S`.boot.backup
cp /share/MD0_DATA/.dpkg/autorun/proftpd.conf /etc/config/proftpd.conf
/etc/init.d/ftp.sh restart

実行可能なパーミッションの設定

chmod +x /share/MD0_DATA/.dpkg/autorun/setupftp.sh                                                                                                         

NASの起動時に実行されるコマンドをサービス毎に指定できる/etc/config/qpkg.confにftp用の項目を追加する

[autorun]
Name = autorun
Version = 0.1
Author = kgbu
Date = 2014-07-06
Shell = /share/MD0_DATA/.qpkg/autorun/setupftp.sh
Install_Path = /share/MD0_DATA/.qpkg/autorun
QPKG_File = autorun.qpkg
Enable = TRUE

どんなことがしたかったか

注意!)以下の変更は他のサービスとの整合性を考えれば実施すべきではなく、たまたまFTPサーバーとしてだけ運用するケースだったので実施した。

  • Umaskが000なのが気持ち悪かったので、変えたかった。(それをいうならRootLogin onも変えたいですが)ただ、これを変えた場合に、他のサービスとの整合性が保たれるかは疑問です。
  • FTPの特権ユーザー(例えば ftpadmin )が、他のユーザーのディレクトリの内容を読み書きできるようにしつつ、他のユーザーはchroot(proftpdの場合はDefaultRootの設定)されたままにしたかった。これはFTPの特権ユーザーの属するgroupをDefaultRootで独自の設定にして、ホームディレクトリの設定(/etc/passwd)を変更することで実現できる。
DefaultRoot ~ ftpadmin
DefaultRoot /share

ところで、このNASのproftpdでは、chroot(DefaultRootを指定)した場合、ログインしたディレクトリは書き込みができない。ログインディレクトリを/etc/passwdをいじっていろいろ設定してみたがダメだった。
この件については以下のサイトでも指摘されていました。
http://www.big-55.com/2013/02/qnap_ftps%E3%81%A7%E5%A4%96%E9%83%A8%E3%81%8B%E3%82%89%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9_proftpd-conf%E3%82%92%E3%81%84%E3%81%98%E3%82%8B/

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1