samba介绍
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。
协议及端口介绍
Samba是许多服务以及协议的实现,其包括TCP/IP上的NetBIOS(NBT)、SMB、CIFS (SMB的增强版本)、 DCE/RPC或者更具体来说MSRPC(网络邻居协议套件)、一种 WINS服 务器(也被称作NetBIOS Name Server(NBNS))、NT 域协议套件(包括NT Domain Logons、Secure Accounts Manager(SAM)数据库、Local Security Authority(LSA)服务、NT-style打印服务(SPOOLSS)、NTLM以及近来出现的包括一种改进的Kerberos协议与改进的轻型目录访问协议(LDAP)在内的Active Directory Logon服务)。以上这些服务以及协议经常被错误地归类为NetBIOS或者SMB。Samba也能够用于共享打印机。
samba的两个服务
1、nmbd 主要利用udp 137和138端口负责名称解析的服务。
2、smbd 这个 进程 的主要功能就是用来管理 SAMBA 主机分享的目录、文件和打印机等等。 主要利用 TCP 协定来传输资料,使用端口为 139 及 445。
使用协议和端口
1、Port 137 (UDP) - NetBIOS 名字服务 ; nmbd
2、Port 138 (UDP) - NetBIOS 数据报服务
3、Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Block)协议,主要在局域网中使用,文件共享协议)
4、Port 389 (TCP) - 用于 LDAP (Active Directory Mode)
5、Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)
6、Port 901 (TCP) - 用于 SWAT,用于网页管理Samba
实验环境
系统版本:centos7x3.10.0-514.el7.x86_64
samba版本:samba.x86_64 0:4.7.1-6.el7
samba-client本版:samba-client.x86_64 0:4.7.1-6.el7
关闭防火墙 systemctl stop firewalld.service
禁止防火墙开机自启 systemctl disable firewalld.service
关闭selinux
sed -i 's/SELINUX=enforcing /SELINUX=disabled/g'
/etc/sysconfig/selinux
重启系统即可 reboot
安装samba(两种使用方式)
方式一:
实现功能:
1)按照部门提供共享文件;
2)所有共享文件可读,但不可写;
3)共享文件由专人维护,可写;
安装步骤:
1、安装samba和samba-client
yum -y install samba samba-client
2、 添加系统用户
useradd samba
3、 配置smb用户
smbpasswd -a samba
#输入两次密码
New SMB password:
Retype new SMB password:
Added user samba.
4、 更改权限(共享可读)
chmod -R 755 /home/samba/
5、编辑配置
vim /etc/samba/smb.conf
#配置文件类似如下
[samba]
comment = samba
path = /home/samba
public = yes
writable = no
6、重启服务
systemctl restart smb
方式二:
实现功能:
1)按照samba系统用户分为管理用户和普通访问用户(均已账户密码登录);
2)所有共享文件普通用户访问可读并下载但不可写;
3)共享文件由管理账户维护,可写;
注:本文samba为管理账户,guest为普通访问账户!
安装步骤:
1、安装samba和samba-client
yum -y install samba samba-client
2、添加系统用户
useradd guest
useradd samba
3、配置smb管理账户和普通账户的密码
1)smbpasswd -a guest
#输入两次密码
New SMB password:
Retype new SMB password:
Added user guest.
2)smbpasswd -a samba
#输入两次密码
New SMB password:
Retype new SMB password:
Added user samba
4、更改属组和属主
chown samba:samba /home/samba/
5、更改权限(共享可读)
chmod -R 775 /home/samba/
6、编辑配置文件
vim /etc/samba/smb.conf
#配置文件类似如下
[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = centos
security = user
map to guest = bad user
dns proxy = no
[samba]
comment = samba
path = /home/samba/
writable = no
guest ok = yes
valid users = samba,guest
write list = samba
7、重启服务
systemctl restart smb