====== NAS4Freeで別サーバのCIFSをマウントしFTPで公開する ======
===== 背景 =====
知り合いがWindows 7をファイルサーバにしており、共有フォルダをFTPで公開したいと申す。当初はFileZilla ServerでFTPを立てていたが、英語だし設定が面倒で知人自身に管理させるのは無理がある。そこで、NAS4Freeで共有フォルダをマウントし、ブラウザで簡単に設定が行えるFTP鯖代わり使ってしまおうと思った次第。
仮想マシン上で動かせば環境の復元も簡単だし、何よりセキュリティ面でも安心だし一石二鳥でウマー。
===== 環境 =====
* NAS4Free 9.2.0.1
* Windows 7 Professional
===== 設定 =====
nsmb.confでcharasetsを指定するとマウント時にlibiconv.soが無いと言われるので、シンボリックリンクを張る。
cd /usr/local/lib/
ln -s libiconv.so.3 libiconv.so
マウントポイント作成
mkdir /mnt/FileServer
nsmb.confを作って編集。
[default]
workgroup=WORKGROUP
[SERVERNAME]
addr=192.168.xxx.yyy
charsets=UTF-8:UTF-8
[SERVERNAME:USERNAME]
password=$$cryptedpasswd
注意点
* ワークグループ名(WORKGROUP)、サーバ名(SERVERNAME)、ユーザー名(USERNAME)は全部大文字にしなければならないっぽい。とりあえずユーザー名が小文字だと、パスワードが合っててもマウントされないことは確認。
* $$cryptedpasswdにはsmbutil crypt 平文パスワード
で得られる文字列を指定する。NAS4Freeにsmbutilが含まれていないので、ここだけは別のマシンを用意する必要がある。まぁ、仮想マシンで適当なLiveCDを動かせば済むだろうから、良い時代になったもんだ…。
* 最近のバージョンならcharsetsも正常に機能するっぽい。UTF-8:UTF-8しか試してないけど。
fstabを編集。
-d,-fでファイルとディレクトリのパーミッションを設定してやるのがミソ。
//USERNAME@SERVERNAME/path_to_sharing /mnt/FileServer smbfs rw,-d=777,-f=777 0 0
動作確認
mount /mnt/FileServer
ls /mnt/FileServer
で正しくマウントされればNAS4Free起動時に自動マウントされるハズ。
===== メモ =====
マウントが「Cannot allocate memory」エラーで失敗する場合、共有先のリソースが枯渇しいる可能性が高い。イベントログに「非ページプール割り当ての制限に達したため、サーバーはシステムの非ページプールから割り当てることができませんでした」と出ていたら間違いない。
根本的な解決方法はWindows Serverを使えって事になるが、クライアント版でも以下のレジストリエントリを追加すると回避出来る模様。
^HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters ^^^
|Size|DWORD|3|
|IRPStackSize|DWORD|50|
|MaxMpxCt|DWORD|255|
|MaxWorkItems|DWORD|1024|
===== 感想 =====
思ったより簡単に実現出来た。NAS4Freeが元となるFreeBSDから構造が大きく変わっておらず、ユーザーランド等もほぼそのままで助かった。
用途特化系のディストリビューションって、フットプリントを削減するために必要最低限の機能しかなく、システム領域もカツカツだったりでカスタマイズするのが大変という印象があったが、一概にそうとも言えないんだなーと思いました。まる。
===== 参考サイト =====
* [[http://www3.atwiki.jp/nab/pages/19.html|FreeBSDでデスクトップ&サーバー - mount_smbfs]]
* [[http://d.hatena.ne.jp/akira_you/20110605/|続:FreeBSDのSMB(CIFS)マウント対応状況 mount_smbfsに関する訂正 - akira_youの私見]]
* [[http://d.hatena.ne.jp/kohaku_kageroh/20130303/1362286431|【NAS4Free】日本語に対応する。 - ネットワークエンジニアがインフラエンジニアへなるため軌跡]]
* [[http://fanblogs.jp/macyarounanoka/archive/26/0|Cannot Allocate Memory!? TimeMachine保存先をWindows共有後、新たな問題発生です - mac野郎なのか]]
* [[http://hdd-check.com/pc_118.html|Windows7で共有ファイルの接続が切れる問題]]
~~DISCUSSION~~