Setup SMB/CIFS on OpenBSD
Introduction
I actually have been using AFS to access by OpenBSD servers from MacOS. But the latest release of MacOS (Lion) does not support the Netatalk version supported in OpenBSD (OpenBSD community is currently working on an upgrade).
Meanwhile I will setup Samba to enable access from my Mac. Hopefully I will be able to play my music again and perform time machine backups.
Setup Samba
This setup is performed using OpenBSD 4.9 but with minor changes this should also work in other releases.
Install Samba. There are different flavors to choose from, but I want the basic samba flavor. During install there is a note that password database backend has changed, but this does not matter to me because I do a fresh install with no existing passwords in the database.
pkg_add samba-4.7.6
Take a look at the install documentation provided by OpenBSD.
less /usr/local/share/doc/pkg-readmes/samba-4.7.6
Edit ´/etc/samba/smb.conf´ to suit your needs. Test smb.conf
with the following.
/usr/local/bin/testparm -s
Add UNIX users and corresponding SMB users. Samba keeps a shadow user database that is managed through smbpasswd
utility.
adduser john
pdbedit -a -u john OR smbpasswd -a john
Start service. Check that services has started using ps
.
rcctl start samba
ps -auwxx | egrep '[sn]mbd'
Access the service from a local machine. If you get NT_STATUS_LOGON_FAILURE
something is wrong. Most likely access restrictions in smb.conf
prohibit access or the user has not been setup correctly.
smbclient -U john \\\\localhost\\john
Enter WORKGROUP\peter's password:
Try "help" to get a list of possible commands.
smb: \> dir
. D 0 Wed Sep 29 17:06:12 2010
.. D 0 Sun Oct 30 20:36:21 2011
.ssh DH 0 Sun May 24 19:34:08 2009
...
quit
Try to access the service from a remote machine
smbclient -U john \\\\library\\john
Try to access the service from a MacOS Finder. In finder window run Connect to Server
from Windows
menu. Enter the following server address and then connect.
smb://user:password@host/share
Create user to run samba daemon.
# adduser _samba
Enter username []: _samba
Enter full name []: Samba daemon user
Enter shell csh ksh nologin sh [ksh]: nologin
Uid [1008]:
Login group _samba [_samba]:
Login group is ``_samba''. Invite _samba into other groups: guest no
[no]:
Login class authpf daemon default staff [default]: daemon
Enter password []:
Set the password so that user cannot logon? (y/n) [n]: y
OK? (y/n) [y]: y
Add another user? (y/n) [y]: n
Goodbye!
Setup samba to start at boot. Add the following lines to /etc/rc.conf.local
.
samba_flags=""
samba_user="samba" # currently ignored
pkg_scripts="samba"
References
- OpenBSD excellent package/ports system
- Installing Samba 3.0.x on OpenBSD
- Access PC Windows 7 Files From Mac OS X Lion