Samba 3.6.5

 インストールメモ。

Samba 3.6.5インストール

  1.  portsから。
    cd /usr/ports/net/samba36
    make install

    オプションは次のように指定した。

    LDAP=on "With LDAP support"
    ADS=off "With Active Directory support"
    CUPS=on "With CUPS printing support"
    WINBIND=on "With WinBIND support"
    SWAT=on "With SWAT WebGUI"
    ACL_SUPPORT=on "With ACL support"
    AIO_SUPPORT=off "With Asyncronous IO support"
    FAM_SUPPORT=off "With File Alteration Monitor"
    SYSLOG=on "With Syslog support"
    QUOTAS=off "With Disk quota support"
    UTMP=off "With UTMP accounting support"
    PAM_SMBPASS=on "With PAM authentication vs passdb backends"
    DNSUPDATE=off "With dynamic DNS update(require ADS)"
    AVAHI=off "With Bonjour service discovery support"
    EXP_MODULES=off "With experimental modules"
    POPT=on "With system-wide POPT library"
    IPV6=on "With IPv6 support"
    MAX_DEBUG=on "With maximum debugging"
    SMBTORTURE=off "With smbtorture"
  2. /etc/rc.confに、次の行を追加する。
    samba_enable="YES"
  3. /usr/local/etc/smb.confを作成し、次の内容を記述。
    [global]
            dos charset = UTF-8
            workgroup = workgroup-name
            server string = paix
            log file = /var/log/samba/log.%m
            max log size = 50
            load printers = No
            dns proxy = No
            template homedir = /home/%U
            idmap config * : range =
            idmap config * : backend = tdb
    
            hosts allow = 111.222.333.444/16 \
                          112.222.333.444/16
    
            usershare path = /usr/local/samba/lib/usershares
            usershare max shares = 100
    
    [homes]
            comment = Home Directories
            read only = No
            browseable = No
    

    hosts allowには、クライアント側のIPアドレスやIPアドレス帯を指定。xinetdと違い、ドメイン指定はできない。

  4. /usr/local/samba/lib/usersharesディレクトリを作成。
    mkdir -p /usr/local/samba/lib/usershares
    chown root:wheel /usr/local/samba/lib/usershares
    chmod 01770 /usr/local/samba/lib/usershares
  5. /usr/local/etc/smbusersファイルを作成し、Windowsユーザ名がUNIXユーザ名と異なるユーザがあれば、次のように記述して羅列する。
    unixuser = "windowsuser"
  6. ユーザのSambaパスワードを設定する。初回のみ -a オプションが必要。
    pdbedit -a username
  7. Sambaを起動。
    /usr/local/etc/rc.d/samba start
  8. 共有リソース作成。
    net usershare add web /usr/local/www "" Everyone:f

    本当はwwwという名前で作りたかったけど、wwwというアカウントがすでにあるので共有名を変更せざるを得なかった。smb.confに記述すれば作れるけど。use usershareコマンドで共有リソースを作成した場合には、Sambaを再起動する必要がない。

SWAT設定 (必要なければしなくて良い)

  1.  /usr/local/etc/xinetd.confに次の行を追加する。
    service swat
    {
        flags       = NAMEINARGS
        socket_type = stream
        protocol    = tcp
        wait        = no
        user        = root
        server      = /usr/local/sbin/swat
        server_args = swat
        only_from   += 111.222.333.444 .provider.ne.jp
    }

    only_fromに、SWATを使用するホストのIPアドレスまたはドメイン名を指定する。セキュリティ上、ここで許可するIPは少なければ少ないほど良い。我が家は固定IPサービスを利用していないので、プロバイダのドメインで制限。

  2. xinetdを再起動。
    /usr/local/rc.d/xinetd onestop
    /usr/local/rc.d/xinetd onestart
  3. /usr/local/etc/samba/smb.confをSWATを使って編集する場合、ブラウザで901ポートにアクセスする。ログイン名とパスワードには、rootとそのパスワードを入力する。

ルータ設定

サーバが別ネットワークにある場合、Sambaが使用するポートを解放するようルータの設定を変更する必要がある。ただし、無条件に解放するとセキュリティが低下するため、サーバのIPアドレスに限定して解放する。Sambaが使用するのは、次のポート。

  • 137-138 udp (名前登録、ブラウジングなど)
  • 139, 445 tcp (ファイル/印刷サービスなど)

双方向で解放する必要があるが、139と445を解放しておけばファイルは参照できる。らしい。


cf. 「Sambaサーバ構築、5つのべからず:2008年版」 (@IT)
cf. Samba-JP wiki (日本Sambaユーザー会)