服务信息块SMB(Server Message Block)协议是一个高层协议,提供了在网络上的不同计算机之间共享文件、打印机和不同通信资料的手段。SMB使用NetBIOS API实现面向连接的协议,该协议为Windows客户程序和服务提供了一个通过虚电路方式进行通信的机制,是Samba的核心。安装了Samba后,就可以直接方便地在Unix和Windows之间共享资源,免去了从前必须使用FTP的麻烦。
Samba的核心是两个守护进程smbd和nmbd程序,服务器启动到停止期间持续运行。smbd监听139TCP端口;nmbd监听137和138UDP端口。
不可忽视的安全配置
尽管Samba使我们在Windows和Unix的局域网内可以共享文件,使Unix系统就像一台网络PC或者Windows PC,抑或LAN内别的Windows计算机一样“温顺”好用,提供的服务功能强,操作简单;并且使Unix系统存取Windows硬盘,直接mount Windows目录的使用更容易,就像使用本地文件一样方便。但是,如果我们对Samba的配置不合理、不科学的话,那么系统的安全就无从谈起,黑客如入无人境地。
1.Samba的安全等级
Samba有四种安全等级,可以使用security参数进行指定。分别是:
share:用户不要账号及密码即可登入Samba服务器。
user:由提供服务的Samba服务器负责检查账户及密码(是Samba默认的安全等级)。
server:检查账户及密码的工作指定由另一台Windows NT/2000或Samba服务器负责。
domain:指定Windows NT/2000域控制服务器来验证用户的账户及密码。
2.安全全局参数
Samba的安全在操作系统高度安全的保障下,其自身的安全一般情况下主要依赖于smb.conf文件的正确配置与否。表1为smb.conf文件中常用的安全全局参数。
3.Samba的权限和文件属主
Samba权限设置和文件属性的正确设置是保障安全的前提。为了安全起见,设置Samba密码文件和目录权限为root,去掉smbpasswd文件中一些无shell的账号,Samba属性应设为500,smbpasswd属性应设为600。我们可以进行如下操作,查看文件和进行相关的设定:
(1)检查权限和文件属性
//检查Samba文件
[root@ora9 root]# ll -d /etc/Samba
drwxr—xr—x 2 root root 4096 Sep 16 2004 /etc/Samba
//检查MSBPASSWD文件
[root@ora9 root]# ll /etc/Samba/smbpasswd
—rw------- 1 root root 105 Sep 16 2004 /etc/Samba/smbpasswd
(2)检查配置文件的正确性
输入如下命令将显示用户的配置和所有的默认配置:
|
默认主配置文件
Samba默认主配置文件的正确配置是Samba安全的重中之重。正确配置好Samba的默认主配置文件将为系统提供一个强大的安全体系,为Samba的安全运行夯实基础。要想正确配置,我们必须对配置文件有深入地了解,理解其内涵才能“对症下药”,才能防范于未然。
1.Samba的默认主配置文件及其说明
我们用root用户执行如下操作,查看Samba的默认配置:
//忽略被注释(即以#和;开头)的配置语句行,并查看其默认配置
[root@ora9 root]# grep -v "#" /etc/Samba/smb.conf | grep -v ";"
//设置全局参数
[global]
//设置工作组名称
workgroup = MYGROUP
//设置Samba服务器名称
server string = Samba Server
//设置打印机配置文件路径
printcap name = /etc/printcap
//允许共享打印机
load printers = yes
//设置打印机类型
printing = cups
//设置日志文件路径
log file = /var/log/Samba/%m.log
//不对日志文件做长度限制
max log size = 0
//设置USER安全等级
security = user
//设置用户密码加密
encrypt passwords = yes
//设置口令文件的路径
smb passwd file = /etc/Samba/smbpasswd
Unix password sync = Yes
//设置本地口令程序
passwd program = /usr/bin/passwd %u
//控制smbd和/usr/bin/password之间的会话,用以对用户密码进行改变。
passwd chat = *New*password* %n *Retype*new*password* %n *passwd:*all*authentication*tokens* updated*successfully*
//当用户要求更改密码时使用PAM,而不用PASSWD PROGRAM参数所指定的本地口令程序/usr/bin/passwd
pam password change = yes
//当认证用户时,服从PAM的管理限制
obey pam restrictions = yes
//设置服务器和客户之间会话的SOCKET选项
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_ SNDBUF=8192
//不为客户做DNS查询
dns proxy = no
//设置每个用户的主目录
|
//设置全部打印机共享
|
//设置个人共享
|
2.Samba配置文件中常用的运行效率全局参数
Samba配置文件中运行效率全局参数的设置也是至关重要的,设置不正确会给系统带来安全隐(下转第86页)患。表2是对该参数基本说明和举例。
3.Samba配置文件常用的共享资源访问控制参数
Samba配置文件共享资源访问控制参数的设定将直接影响到文件操作的权利分配,分配不当将直接威胁系统安全。表3是对该参数的基本说明和举例。
尽管我们按照要求配置好了Samba相关的配置文件,但并不能代表我们就可以安享太平了,还要求我们对Samba本身和每一个Samba的用户都要有一个强壮、复杂的密码;随时删除掉smbpasswd文件中无shell的账号;对于拥有写权利的用户所使用的时间不能设得太长;查阅目录的数目尽量设小点等。只有这样,Samba的安全使用才相对有所保障,系统也就多了一分安全。