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

1.Sambaとは

SambaとはWindowsでよく使用されるファイル共有をfreeBSDでも使用できるようにしたファイル共有サーバーです。
ファイル共有が出来るとファイルサーバーとしてfreeBSDルーターが使用できます。(プリンとサーバーとしても可)
こうすれば後で出て来ますFTPやWWWサーバーのファイルを簡単に追加削除修正が出来ます!
昔は日本語化されておらず、japaneseの下にありましたが、現在は統一されていますので普通にインストールできます。

2.インストール

いつもどおりportsでインストールします。
# cd /usr/ports/net/samba413
# make install clean
でインストール終了です。

3.Sambaの設定

3-1.全体設定

SWATがなくなってしまったのでwebminで設定しましょう。
一応手動で設定する場合の内容を記載します。
ファイルは
/usr/local/etc/smb4.conf
[global]
log file /var/log/log.%m
os level 1台目を大きく、2台目以降は小さく
ntlm auth
unix charset UTF8   BSD内部で使用する文字コード、UTF-8ではなくUTF8と記載すること。
      最近はUTF-8が標準になりつつあるので、コンソールからでもcdやmv,cpなども使える為にUTF-8が良い。
create mask 0775 など
dns proxy No にしておきましょう
hosts allow 192.168.0.0/255.255.255.0 などローカルだけのアクセス可に設定しましょう。
preferred master 1台目はON、2台目以降はOFF
local master 1台目はON、2台目以降はOFF
domain master 1台目はON、2台目以降はOFF
dos charset CP932  Windows相手で日本語なのでこれは決定
unix extensions No にしておきましょう
max log size 最大ログサイズ
server string マシンの説明です(例:Samba-server %v)
netbios name マシン名です(例:server)
directory mask ディレクトリーのマスク、0777など
interfaces イントラ側だけにする場合はイントラ側のインターフェース名を入力(例:fxp0)
socket options TCP_NODELAY
bind interfaces only
workgroup Windowsと同じワークグループです(例:hogehoge)
wins support このマシンをWINSサーバーにする場合はYES、いらない場合はNO,
家庭レベルであればwinsはいらないでしょう
と言うかサブネットあるいはグループが複数有る場合だけですね
でも入れると2台ある場合はmessagesにエラーが沢山出てきますのでwinsにしない方が良いでしょう。
min protocol セキュリティー的に1.0は良くないらしいので、SMB2にしましょう。

とりあえずサンプル
/usr/local/etc/smb4.conf
[global]
        directory mask = 0775
        log file = /var/log/log.%m
        os level = 65
        server string = samba server1
        domain master = no
        dns proxy = No
        hosts allow = 192.168.0.
        map to guest = Bad User
        unix charset = CP932
        workgroup = MIYAKOSHI
        local master = no
        create mask = 0775
        dos charset = CP932
        preferred master = no
        netbios name = server
        interfaces = em0
        max log size = 50
とやって

3-2.共有設定

同じく/usr/local/etc/smb4.confに共有を作成します。
まずはそれぞれの意味から。
comment 文字どおりコメントです。Windowsマシンから共有名の横に出る説明です
path 共有するfreeBSDマシンのディレクトリーを入力(~を入れると「/usr/home/ユーザー名」になります)
read only 読み込みだけにするかですね、書き込みたい時はNoに
ここで気をつけなければならないのはSamba上で設定してもfreeBSDのファイルシステム上でパーミッションで
許可されていなければ弾かれますので注意して下さい。
これを必要なだけ作成し繰り返し作成します。
例としてhomeを作る場合
[home]
        comment = %U's home directory
        path = /usr/home/%U
        read only = No
とやっておけば次回起動時からは自動でたち上がります。

3-3.プリンタ設定

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

3-4.ユーザー登録

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

4.起動

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

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

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

5.逆にWindowsの共有ドライブをFreeBSDにマウント

fstabに記載しても文字コードが上手くいかないのでコマンドラインからマウントする。
# mount_smbfs -E UTF-8:CP932 -N //ユーザー名@マシン名/フォルダ /マウントポイント
UTF-8はFreeBSD側の文字コード。
CP932はWindowsなので、これは固定。
パスワードを聞かれるので、聞かれないようにするためにまず暗号化パスワードを作成
# smbutil crypt パスワード
$$1*****
と$$1で始まるパスワードになるので、これを
/root/.nsmbrc
を作成
中身は
[マシン名:ユーザー名]
$$1*****
と言うファイルを作る。
念のためにパーミッションは400にした。
これでパスワードは聞かれない。
[ ]内はすべて大文字で記載すること。