linux系统samba服务器安装及安全设置

1100阅读 0评论2014-07-05 caojiangfeng
分类:系统运维

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
Samba 应该范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,没有必要用Samba,应该用NFS更好一点;
Samba共享比较简单形式如\\10.0.0.126\共享目录,下面详细说下安装配置过程。
一.安装samba服务器
笔者选用的是centos5.8操作系统,相对来说安装就比较简单了。
首先执行rpm -qa|grep samba  查看是否已经安装了samba。

samba -----samba服务器程序的所有文件
samba-common -----提供了Samba服务器和客户机中都必须使用的公共文件
samba-client -----提供了Samba客户机的所有文件
samba-swat -----以Web界面的形式提供了对Samba服务器的管理功能
没有或者版本较低的话执行
yum install samba-*  -y 即可
安装比较简单,下面看配置。
chkconfig smb on # 设置samba开机启动
service smb start # 启动samba服务器
二.samba配置
samba配置文件的位置:/etc/samba/smb.conf。修改之前先备份下默认的配置文件,这里主要讲下权限及安全方面的配置。
cp smb.conf  smb.conf.default  ##备份是个好习惯
vi smb.conf
1)全局配置
[global]
workgroup = WORKGROUP #要访问的电脑的工作组名,windows一般默认都为这个
security = user #访问的方式,share不需要密码,user需要用户名和密码



-----------Standalone Server Options----------

#使用独立服务器作为Samba服务器认证用户来源,也就是当访问Samba服务器时输入的用户名和密码的验证工作由Samba服务器本机系统内账户完成。

security = user 设置安全级别,即客户端访问Samba服务器的验证方式。此部分中只能设置以下三种参数,参数设置:share(不推荐)、user、server(不推荐)。

passdb backend = tdbsam 参数设置:smbpasswd、tdbsam、ldapsam、mysql。默认为tdbsam,一般不用修改,除非想使用老版本Samba服务器的smbpasswd文件方式或其它方式。

encrypt passwords = yes/no 认证密码在传输过程中是否加密。

参数说明:

security = share /user / server /domain /ads

以下三种安全级别用在Standalone Server Options部分,其中user级别也用于Domain Controller Options部分。

(1)share:访问Samba服务器共享资源时不需要输入用户名和密码,属于匿名访问。

(2)user:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为Samba服务器本机。

(3)server:访问Samba服务器共享资源时需要输入用户名和密码,认证用户来源为另一台Samba服务器或Windows服务器。

以下两种安全级别用在Domain Members Options部分:

(4)domain:Samba服务器在一个基于Windows NT平台的Windows域中,访问共享资源需要输入用户名和密码,认证用户来源为Windows域。

(5)ads:Samba服务器在一个基于Windows 200X平台的Windows活动目录中,访问共享资源需要输入用户名和密码,认证用户来源为Windows活动目录。

passdb backend = tdbsam /smbpasswd /ldapsam /mysql

(1)tdbsam:该方式使用一个数据库文件来建立用户数据库,数据库文件名为passdb.tdb。可以使用#smbpasswd -a [用户名]来建立Samba用户。也可以使用pdbedit命令来建立用户。

(2)smbpasswd:该方式使用Samba提供的工具smbpasswd来给系统用户设置一个用于访问Samba服务的密码,客户端就用这个密码访问Samba共享资源。此方式还要使用一个 smb passwd file = /usr/local/samba/etc/smbpasswd(或/etc/samba/smbpasswd) 参数来指定保存用户名和密码的文件,该文件需要手动建立。不推荐使用此方法。

(3)ldapsam:该方式基于LADP的账户管理方式来验证用户,先要建立LDAP服务。

(4)mysql:该方式是将Samba服务器的用户名和密码存储到MySQL数据库中。

pdbedit命令常用参数:

pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表的详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户的账号。
pdbedit –c “[]” –u username:恢复该Samba用户的账号。

注意:

Standalone Server Options、Domain Members Options、Domain Controller Options三部分均与Samba的认证方式及工作角色有关,三部分均需要配置合适的security(安全级别,用于配置Samba的认证方式),此三部分为服务器的三种角色。


添加自定义的共享目录:
[yourworkdir]
comment = work Directories -----设置共享的说明信息
browseable = yes -----所有samba用户都可以看到该目录
writable = yes -----用户对共享目录可写
path = /data/yourworkdir-----指定共享目录的路径

三.配置完成后重启smb服务
service smb restart

添加用户,注意这里必须是系统存在的账户,而且密码不能与系统登录密码相同
useradd user
smbpasswd -a user   #设置user用户samba登录密码,输入两次相同即可

下面就是创建文件夹及设置属性
mkdir /data/yourworkdir
chown -R  user  /data/yourworkdir
chmod  -R  750 /data/yourworkdir
测试
找一台内网windows客户端,输入samba服务器的IP如\\10.0.0.126\,再输入用户名密码即可。

上一篇:MYSQL数据库管理之权限管理
下一篇:一次Linux系统被攻击的分析过程