samba服务器安全等级 samba服务器的优缺点

samba服务器中三种安全级别

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

为建湖等地区用户提供了全套网页设计制作服务,及建湖网站建设行业解决方案。主营业务为成都网站设计、网站建设、建湖网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

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

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

谁有完整的在linux8下sambar的配置资料

二、安装

$rpm -qa | grep samba #查看系统是否已安装samba

$yum install samba #使用yum软件包管理工具安装samba

三、常用命令

1.service smb status #查看smd服务的状态

2.service smb start #运行smb服务

3.service smb stop #停止服务

4.service smb restart #重启服务,但在实际中一般不采用

5.service smb reload #重载服务,在实际中较常用,不用停止服务

四、配置

4.1.基本配置

samba的主要配置文件放在/etc/samba/smb.conf文件夹下。文件可以分为两大部分,第一部分是全局配置,第二部分是局部配置。下面是一个配置文件及相关注释:

[global] #全局配置,配置文件以[segname]分段,除了global影响全部段之外,各段之间互不影响

workgroup = MYGROUP #samba的工作组

server string = Samba Server Version %v #samba的说明信息

netbios name =Aric #简单的说就是计算机名称

log file = /var/log/samba/%m.log #日志文件存放位置

max log size = 10 #日志文件大小,以M为单位

security = share #安全选项,可以是share,user,server,domain安全级别递增

encrypt passwords = yes #密码是否加密

smb passwd file = /etc/samba/smbpasswd #密码文件存放位置

username map = /etc/samba/smbusers #用户文件存放位置

[share] #局部配置,[]里面是段名,也就是我们的共享名

comment = This is my shared folder. #该共享的说明

path = /home/share #共享路径

writeable = yes #共享文件夹是否可写

browseable = yes #是否可浏览

guest ok = yes #跟public一样,是否允许guest用户

create mode =0664 #创建文件权限定制

directory mode=0775 #创建文件夹权限

valid users=允许访问该共享的用户

invalid usrs=禁止访问的用户,root,@group,@表示组

admin users=该共享的管理者

write list=有写权限的用户

display charset=UTF-8

unix charset=UTF-8

dos charset=UTF-8 #这三个是避免乱码的,dispaly是显示目录时的编码,另外两个跟名字对应。若dos下为zh_CN.GB2312.GBK。则3个全部设为cp936

4.2 配置文件中的详细解释

4.2.1 samba的安全级别

Linux下samba有四种安全级别,即Share、User、Server、Domain,它们的安全级别由低到高,在配置文件中具体由security参数指定。其中,Share级是指用户不需要账户和口令即可登录服务器;User级是Samba服务器默认的安全级别,是指服务器负责检查登陆者的账户和口令;Server级是指账户和口令的检查由另外的Samba或Windows服务器负责;Domain级是指由一台Windows NT/2000域服务器负责检查账户和口令。用户在配置Samba服务器时,可以根据所需要的不同安全等级来具体配置

4.2.2 samba的密码存放方式

passdb backend = tdbsam | passdb | smbpasswd

backend即用户后台。有三种后台:smbpasswd、tdbsam和ldapsam。Sam即security account manager。

(1).smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。也就是说用这种方法创建的永和可以是虚拟的,也就是Linux系统中不存在该用户也可以。smbpasswd存放在/etc/samba中,有时需要手工创建该文件。

(2).tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。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用户账号。

一般叫常用的用法是:

$useradd user1

$smbpasswd -a user1 #这里可以改为pdbedit -a user1

$输入user1的共享密码

$确认user1的共享密码

(3).ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”这个我也不太清楚,就不说了。

4.3.用户映射

由于我们在创建samba用户时必须和系统用户同名,这就意味着不安全(当然某些人很乐意看到这样),但是,samba已经解决了这个问题,提供了用户映射,这个文件在/etc/samba/smbusers,

root=administrator

nobody=guest pcguest

test=prefer you

这样就Ok了,钱两行是为了方便windows用户使用,最后一行则是遮盖用户信息,也就是为了安全。

4.4. 常用的共享

[homes]共享默认会将用户的主目录共享,这是不安全的,所以我们要将其注释,当然还有[netlogon]

五、常见问题

5.1.提示没有权限访问

前提是我们将security=share,即不要求账号密码,这样还是不能访问,总是说没有权限访问。这有以下几种原因:

5.1.1 防火墙的问题

samba使用的端口在防火墙里没有添加例外,导致samba服务不能够使用,解决方法可以是

$iptables -F #清除防火墙的规则

也可以通过setup,将samba使用的端口添加例外,最好用第二中方法,毕竟防火墙还要保证系统的安全。

(2)seLinux的问题

这是系统本身的原因,我们安装系统的时候安装了selinux,而selinux禁止网络上其他计算机对samba上的共享目录进行写操作,即使在smb.conf中允许了这项操作,解决方法是:

$setenforce 0

我在这上面可吃了不少苦头。

(3)共享文件夹权限的问题

我们共享的路径本身权限不正确,就是说我们在smb.conf分配的权限是可读可写,但是在Linux文件系统下,该共享文件夹却是只读的,所以就出现了问题,我们一般讲共享的文件夹在Linux下降权限全部开放。

$chmod 777 /share

5.2.提示用户名或则密码不正确

当我们将安全级别为user时,就需要输入用户名和密码,但是用户名密码都是正确的,但是总是提示错误。这是因为我们在windos下输入用户名时,默认是在windows域中,二我们的账户是在Linux建立的,所以是不对的,只要将我们Linux主机的域名加载前面就行了。比如Linux下面的user2,我们直接输入user2可能就不对,我们必须将我们Linux主机的名字加在前面,如

hostname/user2

5.3.NT_STATUS_WRONG_PASSWORD

当我们在Linux使用

$smbclient //192.168.102.133/share

Enter root's password:此处回车

Domain=[groupname] os=[Unix] Server=[Samba 3.5.10-125.el6]

Server not using user level security and no password supplied

tree connect failed:NT_STATUS_WRONG_PASSWORD

下面是配置文件

[share]

comment= user share

path = /home/share

browseable = yes

writable = yes

security = yes

应该不会出错的,但是就是报错啊,后来才知道,少了一行

public =yes

因为,samba默认是不允许匿名用户访问的

5.4.挂载windows共享文件夹,smbmount不存在,smbfs无效的选项

这里简单的提一下,我们可以再一挂载windows下的共享文件夹,做法是先在windows下右击文件夹,选择共享选项,然后共享给特定用户。到Linux下

$ smbmount //windowsIP地址/共享名 挂载点 -o 选项1,选项2

但是提示smbmount不存在,yum也找不到,其实smbmount这个包太老了,已经淘汰了,所以肯定找不到的,及时找到了也不能用。可以用mount代替,

smbmount == mount -t smbfs ???

其实,这也是不等的,因为smbfs也淘汰了,现在时代进步太快了,呵呵,smbfs即smb file system 已经由cifs(common internet file system)代替了,所以我们要用mount -t cifs代替。

最后命令式:

mount -t cifs -o username=xxx password=xxx //windowsIP地址/共享名 /mnt/挂载点

如何配置samba服务器

这个简单,可以参考 《鸟哥的linux私房菜 服务器》 第一个服务器就是samba服务器。。具体的来说:

【samba配置文件smb.conf】

一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS):

“yum install -y samba samba-client”

Samba的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:

[global]

workgroup = MYGROUP

server string = Samba Server Version %v

security = user

passdb backend = tdbsam

load printers = yes

cups options = raw

[homes]

comment = Home Directories

browseable = no

writable = yes

[printers]

comment = All Printers

path = /var/spool/samba

browseable = no

guest ok = no

writable = no

printable = yes

主要有以上三个部分:[global], [homes], [printers]。

[global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。

security = user #这里指定samba的安全等级。关于安全等级有四种:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码。

passdb backend = tdbsam # passdb backend (用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。

tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。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用户账号。

ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”

load printers 和 cups options 两个参数用来设置打印机相关。

除了这些参数外,还有几个参数需要你了解:

netbios name = MYSERVER # 设置出现在“网上邻居”中的主机名

hosts allow = 127. 192.168.12. 192.168.13. # 用来设置允许的主机,如果在前面加”;”则表示允许所有主机


分享文章:samba服务器安全等级 samba服务器的优缺点
本文路径:http://pwwzsj.com/article/dopcegs.html