インストールメモ。
Samba 3.6.5インストール
- 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"
- /etc/rc.confに、次の行を追加する。
samba_enable="YES"
- /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と違い、ドメイン指定はできない。
- /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
- /usr/local/etc/smbusersファイルを作成し、Windowsユーザ名がUNIXユーザ名と異なるユーザがあれば、次のように記述して羅列する。
unixuser = "windowsuser"
- ユーザのSambaパスワードを設定する。初回のみ -a オプションが必要。
pdbedit -a username
- Sambaを起動。
/usr/local/etc/rc.d/samba start
- 共有リソース作成。
net usershare add web /usr/local/www "" Everyone:f
本当はwwwという名前で作りたかったけど、wwwというアカウントがすでにあるので共有名を変更せざるを得なかった。smb.confに記述すれば作れるけど。use usershareコマンドで共有リソースを作成した場合には、Sambaを再起動する必要がない。
SWAT設定 (必要なければしなくて良い)
- /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サービスを利用していないので、プロバイダのドメインで制限。
- xinetdを再起動。
/usr/local/rc.d/xinetd onestop /usr/local/rc.d/xinetd onestart
- /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ユーザー会)