Samba是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFSServer Message Block/Common Internet File System网络协定做连结的自由软件。简而言之此软件在Windows与UNIX系列OS之间搭起一座桥梁让两者的资源可互通有无。
SMB协议是C/S模式客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。配置samba服务可以使同一网络中的linux和windows主机之间互相访问对方共享资源。
samba提供的端口 137,138,139,445
Samba的两个进程
smbd --- 监听tcp的139445端口,处理接口收到的smb数据包
nmbd --- 监听udp的137 138端口,使其他主机能浏览服务器上的资源
Samba五种认证方式
1.share所有人都可以访问这台samba服务器不需要输入用户名和密码。
2.user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。
3.server与user相同只是将身份验证交由指定的另一台samba服务器负责。
4.domain将身份验证交由域控制器负责
5.ads将身份验证交由域控制器负责比domain更为安全一点
yum –y install samba 安装samba软件包
service smb restart samba的共享服务以后修改只要启动这个服务就行下面这个只要第一次启动
service nmb restart 提供的是upd的协议第一次需要启动
chkconfig smb on
chkconfig nmb on
实验之前将防火墙关掉
/etc/samba samba的主配置目录
/etc/samba/lmhosts 和本地解析文件/etc/hosts原理一样这样共享不安全。
/etc/samba/smb.conf 主配置文件
/etc/samba/smbusers samba的别名
workgroup = MYGROUP samba服务器所在的工作组的名称
server string = samba服务器的描述此服务器的samba版本是3.5目前最新的samba版本是4.0黑客通过在官网查询4.0修改了3.0的哪些漏洞就可以攻击此samba服务器但是如果将这里的描述修改一下可以迷惑黑客提高安全。
smbclient是Samba服务器的命令行方式的登录客户端显示指定Samba服务器中的共享资源列表
smbclient -L //192.168.1.210 -U user1
共享/linux目录共享名为share
user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。
将安全级别改为share所有人都可以访问这台samba服务器不需要输入用户名和密码。
不安全
Windows访问linux共享在运行里面输入192.168.1.210
只能看到共享的东西但是进不去那是因为samba权限没有写的权限还不够这里主要是理解user和share两个认证方式的区别
Samba用户前提是samba用户必须是本地用户并且转换成为samba用户
smbpasswd命令用于维护Samba服务器的用户帐号
n 添加Samba用户帐号
# smbpasswd –a user1
n 删除Samba用户帐号
# smbpasswd -x user1
n 禁用Samba用户帐号
# smbpasswd –d user1
n 启用Samba用户帐号
# smbpasswd -e user1
允许user1对/linux目录有写权限其他用户均为只读
comment = all linux 注释掉了是对该目录的描述
path = /linux 共享路径
writeable = no 是否允许写操作no代表只读如果是yes代表所有人都可以写
write list = user1 只允许user1对该目录有写入的权限 前提该目录a+W
客户端连接
mount -t cifs //192.168.1.210/share /opt -o username=user1 填的是/linux下面的/share
仅允许用户在192.168.1.0/24域可以访问允许所有人浏览不允许匿名访问但是加了valid users 就成了只有user1可以访问
browseable = yes 允许所有人浏览
valid users = user1 只能谁才能读(设置允许访问共享资源的用户和组 组要加@)
public = yes 允许匿名访问no不允许匿名访问
hosts deny = 192.168.1.210
hosts allow = 192.168.1.210 两个同时存在允许优先
账号映射(别名)目的是避免利用samba 帐号来猜测系统帐号
方法:
1在全局启用映射表
username map=/etc/samba/smbusers
2添加映射帐户
vim /etc/samba/smbusers
3重启服务