千家信息网

第十一章 网络文件共享服务之samba

发表于:2024-09-21 作者:千家信息网编辑
千家信息网最后更新 2024年09月21日,Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。在此之前我们已经了解了NFS和FTP,NFS与samba一样,也是在网络中实现文件共享的一种实现,但不幸
千家信息网最后更新 2024年09月21日第十一章 网络文件共享服务之samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

在此之前我们已经了解了NFS和FTP,NFS与samba一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持windows平台,而本章要提到的samba是能够在任何支持SMB协议的主机之间共享文件的一种实现,当然也包括windows。


SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB协议是C/S型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网主机分享资源,还能与全世界的电脑分享资源。


Samba监听端口有:

tcp的139,445号端口

udp的137,138号端口


tcp端口相对应的服务是smbd服务,其作用是提供对服务器中文件、打印资源的共享访问

udp端口相对应的服务是nmbd服务,其作用是提供基于NetBIOS主机名称的解析


Samba服务脚本:

/etc/rc.d/init.d/nmb

/etc/rc.d/init.d/smb


Samba进程:

nmbd:对应netbios

smbd:对应cifs协议

winbindd + ldap:对应Windows AD活动目录


Samba用户:

帐号:都是系统用户,/etc/passwd

密码:Samba服务自有密码文件,通过smbpasswd -a USERNAME命令设置


Samba安全级别:

Samba服务器的安全级别有四个,分别是share,user,server,domain

share:表示匿名访问

user:表示基于本地的验证

server:表示由另一台指定的服务器对用户身份进行认证

domain:表示由域控进行身份验证


Samba配置文件:/etc/samba/smb.conf

Samba主配置文件的配置内容默认包含三个部分,分别是[global]全局配置、[homes]宿主目录共享设置、[printers]打印机共享设置

[global]全局配置的设置项对整个samba服务器都有效

[homes]则用来设置Linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主目录中


具体配置参数:

workgroup    #表示设置工作组名称;server string  #表示描述samba服务器;security     #表示设置安全级别,其值可为share、user、server、domain;passdb backend #表示设置共享帐户文件的类型,其值可为tdbsam(tdb数据库文件)、ldapsam(LDAP目录认证)、smbpasswd(兼容旧版本samba密码文件);comment      #表示设置对应共享目录的注释,说明信息,即文件共享名;browseable    #表示设置共享是否可见;writable     #表示设置目录是否可写path         #表示共享目录的路径;guest ok    #表示设置是否所有人均可访问共享目录;printable    #表示设置是否为打印机

测试配置文件是否有语法错误,以及显示最终生效的配置:使用testparm命令

testparm


web界面配置samba:

samba-swat包提供了在web界面上配置samba的功能,其自带web服务,默认端口为901,通过xinetd来管理


Samba访问方式:作为客户端

交互式数据访问:

smbclient -L HOST -U USERNAMEsmbclient //SERVER/shared_name -U USERNAME

基于挂载的方式访问:

mount -t cifs //SERVER/shared_name -o username=USERNAME,password=PASSWORD


smbpasswd命令:

-a Sys_User:添加系统用户为samba用户并为其设置密码

-d:禁用用户帐号

-e:启用用户帐号

-x:删除用户帐号


Samba示例:

#使用yum命令安装samba服务器:yum -y install samba-*#配置selinux安全机制(去除26行与29行的#号):sed -i '26d' /etc/samba/smb.confsed -i '25 a setsebool -P samba_domain_controller on' /etc/samba/smb.confsed -i '29d' /etc/samba/smb.confsed -i '28 a setsebool -P samba_enable_home_dirs on' /etc/samba/smb.conf#这两行生效后,自己的home目录就可以正常读写了。#如果想将/test目录设置成完全的共享就要改变文件目录的selunux:#chcon -t samba_share_t /test#设置共享类型,有匿名访问,有本地用户验证,默认为user用户验证:#设置为匿名共享:#sed -i '101d' /etc/samba/smb.conf#sed -i '100 a security = share' /etc/samba/smb.conf#设置为本地用户验证:#sed -i '101d' /etc/samba/smb.conf#sed -i '100 a security = user' /etc/samba/smb.conf#设置为另一台服务器进行远程验证:#sed -i '101d' /etc/samba/smb.conf#sed -i '100 a security = server' /etc/samba/smb.conf#设置为域控验证:#sed -i '101d' /etc/samba/smb.conf#sed -i '100 a security = domain' /etc/samba/smb.conf#假设现在有一个文件夹为test,那么就像下面这样来设置共享:#设置共享的标识:echo '[test]' >> /etc/samba/smb.conf#设置共享的显示名,即在访问时看到的共享名,假设这里共享名为test:echo 'comment = test' >> /etc/samba/smb.conf#设置共享路径:echo 'path = /test' >> /etc/samba/smb.conf#设置共享是否可见:echo 'browseable = yes' >> /etc/samba/smb.conf#设置是否所有人均可访问:echo 'guest ok = yes' >> /etc/samba/smb.conf#设置目录是否可写:echo 'writable = yes' >> /etc/samba/smb.conf#设置是否允许匿名用户访问:echo 'public = yes' >> /etc/samba/smb.conf#设置可以写的用户或组:echo 'write list = root,@root' >> /etc/samba/smb.conf#限制访问端:#设置可以访问的用户或组:echo 'valid users = root,@root' >> /etc/samba/smb.conf#设置拒绝来自192.168.72.1的用户访问:echo 'hosts deny = 192.168.72.1' >> /etc/samba/smb.conf#设置允许来自192.168.72.2的用户访问:echo 'hosts allow = 192.168.72.2' >> /etc/samba/smb.conf#映射共享目录:#创建用户one:#useradd one#为one用户创建smb共享密码:#smbpasswd -a one#假设这里映射one用户为aaa用户,那么就要在/etc/samba/smbusers文件中添加如下内容:#echo 'one = aaa' >> /etc/samba/smbusers#在全局配置中添加如下内容:sed -i '244 a username map = /etc/samba/smbusers' /etc/samba/smb.conf#启动smb服务:#service smb start#重启smb服务:service smb restart#重新加载smb服务:#service smb reload#设置smb服务随系统启动而启动:chkconfig smb on#建立共享文件夹:mkdir /test


用户 服务 文件 目录 配置 服务器 验证 端口 密码 打印机 系统 资源 安全 命令 帐号 主机 全局 内容 客户 宿主 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 克拉玛依企业网络安全 山东省第二届网络安全技术大赛 软件开发的意义是什么 江苏进口软件开发价格咨询 国家地理信息资源数据库 方志数据库属于事实型数据库吗 乡镇网络安全周宣传 长城汽车软件开发笔试题 菏泽网络技术排山东省第几 北京市第六医院网络安全 法学家智库研究网络安全 计算机网络技术局域网毕设 王者荣耀优化服务器是开新区吗 昆明服务器 战地4服务器筛选 内网服务器网址端口映射 网络安全基础知识口诀 在机械行业做软件开发 河北开源软件开发系统 坦克世界国庆服务器登录 闵行区机电软件开发诚信合作 sql不能添加数据库 雅汇数据库网址 网络技术3级考试什么时间 吉林pdu服务器电源制造商 轻量云服务器怎么管理 PS5港服国服是同一个服务器吗 qq空间相册链接服务器错误 软件开发三个基线变更例子 江苏省ipfs云服务器
0