ファイル共有サーバーの構築(Samba)

1.Sambaとは

SambaとはWindowsでよく使用されるファイル共有をfreeBSDでも使用できるようにしたファイル共有サーバーです。
ファイル共有が出来るとファイルサーバーとしてfreeBSDルーターが使用できます。(プリンとサーバーとしても可)
こうすれば後で出て来ますFTPやWWWサーバーのファイルを簡単に追加削除修正が出来ます!
当然日本語ファイル名、ディレクトリー名にも対応した「ja-samba」がありますのでそちらを使います。
日本Sambaユーザー会サイトは
http://www.jp.samba.org/
こちらにあります。

2.インストール

本来インストールはportsがお薦めなのですが、会社でトライしたら何かmessagesに
エラーメッセージがたくさん流れてしまったので、まだportsで入れていません。
オプションが確立したらこのページもportsでのインストールに変更したいと思います。
と言うことでパッケージでインストールしてしまいます。
コマンドラインからインストールします
# pkg_add -r ja-samba3
でインストール終了です。

3.SWATを動作させる

Sambaの各種設定はSambaに付属しているSWATを使用すると便利である
SWATとはSambaの各種設定をクライアントマシンからHPで設定できる。
Webminでも出来るが、SWATも便利なのでここで動作させます。

まず、SWATをinetdで走らせる為にinetd.confを編集する
/etc/inetd.confに以下の行を追加する
swat stream tcp nowait.400 root /usr/local/sbin/swat swat

/etc/rc.confに以下の設定がされているか確認、されていなければ編集する
inetd_enable="YES"

設定終了後、inetdを再起動する(下記の83はプロセス番号)
# ps -ax | grep inetd
   83  ??  Is     0:00.00 /usr/sbin/inetd -wW
# kill -HUP 83
これでinetdは再起動されます。
もしくはwebminからでも「システム」-「実行プロセス」で簡単にHUPすることができます。

終わったらアクセスして見ましょう
クライアントマシンから
http://192.168.1.1:901/
で開けるはずです。
ユーザーパスは「root」のユーザーパスを入れて見てください。

4.Sambaの設定

4-1.全体設定

SWATで全体設定を開きます。
それぞれの意味は以下のとおりです
詳しくはSWATで説明を押せばHELPが出ますのでそちらを参照下さい
dos charset CP932  Windows相手で日本語なのでこれは決定
unix charset EUC-JPMS   BSD内部で使用する文字コード
           FTPをirvineなどでDLする事が有る場合はCP932
display charset unix charsetと同じにしましょう
workgroup Windowsと同じワークグループです(例:hogehoge)
netbios name マシン名です(例:server)
server string マシンの説明です(例:Samba-server %v)
interfaces イントラ側だけにする場合はイントラ側のインターフェース名を入力(例:fxp0)
security USERにしておきましょう
encrypt passwords Windowsは基本が暗号化なのでYESに設定
client schannel Auto
hosts deny むやみに入れるとSWATもアクセスできなくなるので入れないほうがいいかもしれません
ipfilterで切りましょう
hosts allow 同上
os level 1台目は31あたりがいいでしょう、2台目以降は小さくして見てください
preferred master 1台目はON、2台目以降はOFF
local master 1台目はON、2台目以降はOFF
domain master 1台目はON、2台目以降はOFF
wins server WINSサーバーが別に有る場合は入力、それ以外は空欄
wins support このマシンをWINSサーバーにする場合はYES、いらない場合はNO,
家庭レベルであればwinsはいらないでしょう
と言うかサブネットあるいはグループが複数有る場合だけですね
設定できたら

を押して更新して下さい。
詳しくはこちらを読んで見てください
理由も良くわかります。

4-2.共有設定

の右に共有名を入れて新規作成しましょう!
comment 文字どおりコメントです。Windowsマシンから共有名の横に出る説明です
path 共有するfreeBSDマシンのディレクトリーを入力(~を入れると「/usr/home/ユーザー名」になります)
read only 読み込みだけにするかですね、書き込みたい時はNoに
browseable とりあえずYES
ここで気をつけなければならないのはSamba上で設定してもfreeBSDのファイルシステム上でパーミッションで
許可されていなければ弾かれますので注意して下さい。
書き込めたら「設定変更ボタンで反映させます。
これを必要なだけ作成し繰り返して下さい。

4-3.プリンタ設定

残念ながら私はやったことないのでHELP参照下さい

4-4.ユーザー登録

これはWebminからやるととても簡単にできます。
「サーバー」「Samba」の中に「UNIXユーザーをSambaユーザーに変換」で一発変換してしまいましょう!
その後の編集もユーザー関係だけはWebminがとても分かりやすく設定しやすいのでお試し下さい。

5.起動

SWATの動作状況から起動できます
smbd起動---Sambaサーバー本体です
nmbd起動---名前解決のデーモンです
この2つを起動すればWindowsマシンからアクセスできるはずです。
これでアクセスできるはずです。
もしくはwebminからでもsambaを起動で起動できます

自動起動させる場合は
/etc/rc.confへ
samba_enable="YES"
とやっておけば次回起動時からは自動でたち上がります。

これを書き込んだ後であれば
# /usr/local/etc/rc.d/samba.sh start
でスタートする事もできます

6.文字化け対応

Samba3から日本語変換はlibiconvを使用するようになりました
しばらく使用していて気がついたのですがftpなどで「~」で入れたはずが「〜」になったりしてうまくいっていません。
FreeBSDとWindowsしか使用しないのであればきっちり変換したいのですが・・・
いろいろ調べたらlibiconvにその手のpatchがありました。
詳細はこちらのページをご覧になってください。
そのままでは、portsで入れる場合簡単にいかなかったので、ファイル指定を
聞いてこないようにだけ編集したのをこちらに置いておきますのでご利用ください。
このファイルを
/usr/ports/converters/libiconv/files/
に置いてあげればそのままportsの「make install clean」で自動的にpatchが当たります。
そもそもportsの場合はこのfilesへ「patch****」というファイルがあれば自動的に当たりますが
ファイル指定はソースの解凍後にファイル名ディレクトリーの下からの相対パスである必要があります。

これでlibiconvを再インストールすればOKです
# cd /usr/ports/converters/libiconv
# make desintall
# make install clean
これでsambaを再起動すればOKです