设为首页 收藏本站
查看: 635|回复: 0

[经验分享] Samba服务配置详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-5-25 10:03:48 | 显示全部楼层 |阅读模式
引用一下David_Tang同学的Samba简介:
    Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器信息块 。SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把 SMB 改名为 CIFS(Common Internet File System),即通用互联网文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。
    Samba最大的功能就是可用于Linux和windows系统的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
    SMB是基于客户端/服务器型的协议,然而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端。例如,一台在Linux 下已经架设好的Samba服务器,windows客户端可以通过SMB协议访问Samba服务器上的文件资源,同时,Samba服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。
    Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。
    组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户端间的对话, 验证用户身份并提供对文件和打印资源的访问,只有SMB服务启动,才能实现文件的共享,监听在139/445 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,监听在137/138 UCP端口,如果NMB服务没有启动,就只能通过IP来访问共享文件。

Samba安装及配置:
1、关闭SELINUX、防火墙
# vim /etc/selinux/config

SELINUX=disabled
# setenforce 0

# service iptables stop


2、安装Samba
# yum install samba4 samba4-client samba4-common samba4-swat
# 安装包解析

samba4:服务器端程序,提供了samba服务器端守护进程(包含了smbd及nmbd),以及其它与samba相关的共享文档、日志、开机启动项等;
samba4-client:客户端程序,它为Linux作为客户端时提供了所需要的工具指令;
samba4-common:提供samba服务器的配置文件和配置文件的语法检测程序testparm;
samba4-swat:提供了基于web的samba图形配置界面。

3、启动Samba
# service smb start
# service nmb start

4、Samba配置及解析

# 简单来说,Samba的配置文件可以分为两段,一段为[global]全局配置段,一段为[share]共享定义段;
# 这里列出一些常用的配置参数:
[global]
workgroup = MYGROUP                                        # 工作组
netbios name = MYSERVER                                # 当前主机的NIetBIOS名称
server string = Samba Server Version %v                # 服务器描述,修改成别的,不应输出
hosts allow = 127. 172.16. 192.168.101.                # 基于IP的访问控制
log file = /var/log/samba/log.%m                        # 访问的每个客户端使用独立的日志
max log size = 50                                                    # 日志文件最大容量(50KB),超过则滚动
security = user                                                        # 安全机制
passdb backend = tdbsam                                    # 账号和密码存放的格式
load printers = yes                                                        # 是否共享打印机
cups options = raw                                                # 打印选项
socket options =                                        # 配置服务器端和客户端之间会话的socket选项,可优化传输速度。


[share]
    comment = share directory                            # 注释
    path =                                                                # 共享资源路径
    browseable = no                                            # 是否能被浏览
    writable = yes                                                # 是否可写
    public = yes                                                    # 是否能被所有用户读
    read only =                                                        # 是否为只读的
    write list = user1,user2,@group,+group        # 定义可写用户列表
    valid users =                                                    # 允许访问的用户(白名单)
    invalid users =                                                # 不允许访问的用户(黑名单)
   

# 简要说一下samba的用户认证模式,有5种:
1. share:所有人都可以访问这台samba服务器(不需要输入用户名和密码,匿名访问);
2. user:需要输入有效的用户名和密码才能访问samba服务器(需要samba添加验证用户);
3. server:与user相同,只是将身份验证交由指定的另一台samba服务器负责;
4. domain:将身份验证交由域控制器负责;
5. ads:将身份验证交由域控制器负责。
# 以上5种,最为常用的是share 和 user,也就是匿名访问和用户认证访问。

# 一个简单的配置示例(匿名访问)
# 本文使用的是samba4,因samba4中的share匿名认证方式已经被弃用
# 需要将:security = share 改为
# security = user
# map to guest = Bad User


## Start ##
# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
netbios name = MYSERVER
server string = Linux Samba Server

security = user
map to guest = Bad User
log file = /var/log/samba/%m.log
max log size = 5000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

[share]
comment = Test Share
path = /data/tshare
public = yes
writeable = yes
browseable = yes
guest ok = yes
readonly = no
:wq!
# 重启smb
# mkdir /data/tshare
# chmod 777 /data/tshare
# service smb restart
## End ##
# 这样,一个可匿名访问、可写的共享目录就完成了,windows访问\\192.168.101.168即可。

# 再来一个用户认证的示例
# vim /etc/samba/smb.conf
[global]
workgroup = WORKGROUP
netbios name = MYSERVER
server string = Linux Samba Server

security = user
encrypt passwords = yes
passdb backend = tdbsam
log file = /var/log/samba/%m.log
max log size = 5000
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

[share]
comment = Test Share
path = /data/tshare
valid users = vuser
public = yes
writeable = yes
browseable = yes
readonly = no
:wq!

# 创建vuser用户
# pdbedit -a vuser
new password:
retype new password:

# 检测语法并重启smb
# chmod 755 /data/tshare
# chown vuser:vuser /data/tshare

# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[share]"
Loaded services file OK.
# service smb restart

# 注意:这里/data/tshare的目录权限,可使用setfacl进行对应修改。

# 这里提一下passdb backend的三种管理模式
1. smbpasswd:这种方式是使用smb工具smbpasswd给系统用户设置一个samba密码,以文本方式存储,客户端就用此密码访问samba的共享资源,smbpasswd保存在/etc/samba/目录下,需要手动创建。使用方法:passdb backend = smbpasswd:/etc/samba/smbpasswd;注意,这里的系统用户是系统已经存在的真实用户或虚拟用户。
2. tdbsam:sam即security account manager,使用数据库管理samba用户,数据库名一般叫passdb.tdb;可使用smbpasswd -a创建用户,也可以使用pdbedit创建用户,pdbedit有较多的选项,可以使用pdbedit --help查看。
3. ldapsam:基于LDAP的用户管理模式,因对LDAP不太熟悉,这里不作过多介绍,有兴趣的朋友请自行google、baidu。

5、客户端访问共享资源命令
smbclient:
    -L NetBIOS_Name:查看对应主机或IP的共享资源
    -U username:用户名
    Example:smbclient -L 192.168.101.168 -U vuser


6、samba的web图形化管理工具swat
# 注意:因swat是由xinetd超级守护进程管理的(监听在端口901),在安装samba-swat过程中,xinetd也会由依赖安装上,如果没有安装,请手动安装。
# rpm -qa xinetd samba4-swat
# chkconfig --list swat
# chkconfig swat on


# 修改xinetd管理swat配置

# vim /etc/xinetd.d/swat


service swat
{
        port            = 901
        socket_type     = stream
        wait            = no
        only_from       = 127.0.0.1 192.168.101.0/24
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no
}


# 重启xinetd
# service xinetd restart

# 浏览器访问:http://192.168.101.168:901    ;; 使用root帐号密码登录即可。
QQ截图20150525100348.png


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-70396-1-1.html 上篇帖子: VNC服务安装配置 下篇帖子: samba排错 session setup failed: SUCCESS - 0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表