SAMBAのインストールと設定

UNIXのファイルシステムをWindowsから使えるようにする SAMBA のインストール例を紹介します.

ソースアーカイブ名
導入環境FreeBSD 3.0-RELEASE


SAMBAのインストール

FreeBSDには標準でついてきていますが、最新のものを入手してmake するのもそんなに難しくないと思いますので、がんばってください。 詳しい内容はここでは割愛します

設定ファイル

smb.conf
このファイルは /usr/local/etc/ か /usr/local/samba/lib/ に 置かれることが多いようです。このファイルがSAMBAの動作を決めます。 ファイルの指定例を挙げます。
# Global parameters
        workgroup = KTCGROUP
        server string = Samba on Hiagari %v
        security = SHARE
        max mux = 100
        max xmit = 8192
        deadtime = 5
        read prediction = Yes
        read size = 4096
        coding system = euc
        client code page = 932
        os level = 31
        domain master = Yes
        wins support = Yes

[homes]
        comment = User's Home Directory
        path = /home/%S
        read only = No
        browseable = No

[pub]
        comment = shared directory
        path = /samba/pub
        username = nobody
        read only = No
        guest ok = Yes

/etc/services
ここで、ポート番号を指定します。
netbios-ns      137/tcp    #NETBIOS Name Service
netbios-ns      137/udp    #NETBIOS Name Service
netbios-dgm     138/tcp    #NETBIOS Datagram Service
netbios-dgm     138/udp    #NETBIOS Datagram Service
netbios-ssn     139/tcp    #NETBIOS Session Service
netbios-ssn     139/udp    #NETBIOS Session Service
"netbios-ssn 139/tcp"の記述は必ず必要です。

起動

デーモンプロセスを使う場合

デーモンとして使う場合には、以下のように起動してください。
# /usr/sbin/smbd -D
# /usr/sbin/nmbd -D
(注意:pathは環境ごとに異なります)

inetdを使う場合

inetdを使う場合は/etc/inetd.confに以下の記述を追加する
netbios-ssn     stream  tcp     nowait  root    /usr/sbin/tcpd  /usr/sbin/smbd
netbios-ns      dgram   udp     wait    root    /usr/sbin/tcpd  /usr/sbin/nmbd-a
(注意:pathは環境ごとに異なります)

この設定を行ったらinetdを再起動かHUPの送信を忘れずに行ってください。


アクセス制限を行う方法

以下にアクセス制限を行うsmb.confの設定例を示します。
[htdocs]
     comment = FC Lab homepage
     path = /home/www
     valid users = takeshi
     writeable = Yes
     hosts allow = miho.fc-lab.com
この例では /home/www へのアクセスはmiho.fc-lab.comからの 接続のみ許可するように設定しています。 またtakeshiというユーザのみがアクセスできるように許可しています。 ここで利用するIDとパスワードは以下のようにして追加します。
# smbpasswd -a takeshi
これでtakeshiというユーザを追加して、パスワードを設定すると そのアカウントで上記のパスにアクセスできるようになります。

P.S.
私の環境では、"hosts allow = *.fc-lab.com"のように'*'ワイルドカードが 使えないようです。/var/logl/smbでエラーが出ていることを確認した


サブネットを越えるブラウジング

同一のサブネット内でWindowsのファイル共有を使う場合は、 リソースをサービスをしているコンピュータは通常 なにもしなくてもブラウズリスト(ネットワークコンピュータを開いた 時に表示される他のコンピュータのリスト)に表示されます。
詳しくは「Windowsのネットワーク」 のページをご覧ください。

しかし、別のサブネットのマシンをブラウズリストに載せるためには 少し設定が必要です。sambaではブラウズリストの同期をとる(同じもの を持つようにする)ことができます。このためにはglobalパラメータとして 以下のように設定します。

remote browse sync = 192.168.1.255 210.160.116.143

この例では、2つブロードキャストアドレスを指定しています。 このブロードキャストアドレスを使って情報を知らせることのできる マシンがブラウズリストに載ることになります。 しかしこれだけでは十分ではありません。名前からアドレスを得る 必要があるからです。それには WINS サーバを使うのが便利です。

WINS サーバとは

これはnetbios名からアドレスを得るためのサーバです。 ネームサーバ(DNS)のようなものです。違うのはドメインネームを 変換するのではなく、netbios名を変換する点です。 SAMBAを winsサーバとして使うには、smb.confのGlobalパラメータの
       wins support = Yes
このサーバのIPアドレスが 210.160.116.130とすると この wins server を使う側では以下のように指定します。
	wins server = 210.160.116.130
このマシンでは名前の解決に指定された WINS サーバを 使うようになります。

設定例

二つのサブネット上で動いている2つのSAMBAで以下のように設定すると ブラウズリストが双方で見えるようになりました。 注意:210.160.116.143のラインのSAMBAサーバから 192.168.1.0 のラインのSAMBAサーバへIPリーチャブルでなければなりません。 (プライベートアドレスを使っているので注意)
参考:グローバル側からプライベート側へのアクセス


「サーバの構築」のページへ戻る ホームへ戻る