Samba基本安全配置
创建用户密码
安装samba的时候会自动导入系统中的用户,但密码为空,假设你日常登录的用户名是myname,我们来设置密码:
sudo smbpasswd myname如果密码为空,则上面输出中两个长字符串会是两长串X。你可以在这里设置一个和shell登录不同的密码。
......
sudo pdbedit -Lwu myname
[sudo] password for myname:
myname:1000:FB085DBF72E92604AAD3B435B51404EE:F62C03CB1000CBF94244057FD4E829F4:[U ]:LCT-472C5667:
没找到pdbedit为已有用户添加密码的方法,据说添加新用户时会要求密码,没试。
smbpasswd通过直接与Samba服务器通讯来管理用户和密码。所以相对于服务器密码后端无关。服务器密码后端即使不是smbpasswd,smbpasswd形式密码到默认的SAM密码转换应该也会由服务器完成。
配置文件
服务器配置文件是/etc/samba/smb.conf,这里主要列出需要添加和修改的部分,其余默认:
我们主要看global字段的设置:[global]
browseable = No
hosts deny = all
hosts allow = 192.168.0.33 127.
security = user
encrypt passwords = true
invalid users = root nobody
[winapps]
comment = Windows Program Files
path = /home/myname/share
writable = yes
valid users = myname
browseable = no
create mode = 0644
directory mode =0755
sync always = Yes
- 用户使用smbclient或net view之类的命令查看服务器上有哪些共享的资源时,什么也看不到,这是browseable的功劳
- 两个host语句则限制了可以访问服务器的ip地址,127.表示127.0.0.1,注意不要省略小数点。这里deny和allow的设置顺序好象并无关系,当两者发生冲突时,hosts allow优先。
- security保证了访问服务器需要密码,即访问服务器时会有提示输入密码,如果密码为空,可以直接回车,如匿名用户
- 对密码进行加密
- 禁止root和匿名用户访问,不过让人迷惑的是你还能看到Anonymous login successful的字样,以及一些关于服务器的信息:Domain=[MSHOME] OS=[Unix] Server=[Samba 3.0.26a],除此之外你什么也看不到,即使只是查询有哪些共享资源,你都会得到一个错误消息。