问题的提出:
samba缺省是用明文登录的, 这在安全性上是致命的, 如何解决?
问题的速解:
samba其实也提供了用密文登录的选择, 但由于加密登录机制和明文登录机制
完全不一样, 所以samba不得不用另一个密码文件来记录各人的密码.
首先你需要抓回, 编译并安装libdes库, 可以从sepc里得到(libdes-3.23.tar.gz).
其次, 你需要重新编译你的samba, 需要自己把Makefile里
# This is for SMB encrypted (lanman) passwords.
后的四行的注释符'#'去掉, 并把变量DES_BASE指向正确的地方, 如果你的libdes
是按缺省安装的话, 那么应该这样写:
DES_BASE=/usr/local/lib
然后重新编译和安装你的samba. 你需要自己给smbpasswd加上suid位
chown root /usr/local/samba/bin/smbpasswd
chmod 4555 /usr/local/samba/bin/smbpasswd
接着, 在你的smb.conf的[global]段中加上
encrypt passwords = yes
最后重新生成你的smbpasswd文件,你需要mksmbpasswd.sh, 这在samba的source
路径下有. 安装你在Makefile里的密码文件的路径, 如果是缺省则应该是:
cat /etc/passwd | mksmbpasswd.sh > /usr/local/samba/private/smbpasswd
然后, chown -R root /usr/local/samba/private
chmod 500 /usr/local/samba/private
chmod 600 /usr/local/samba/private/smbpasswd
现在启动你的smbd, 此时, 一切都变的安全一点点了...你现在可以用smbpasswd
来改变登录samba时的密码.
资源的获得:
ftp://ftp.sepc.ac.cn/pub/linux/collect/network/daemons/samba