samba

Samba是种用来让UNIX系列的操作系统微软Windows操作系统的SMB/CIFSServer Message Block/Common Internet File System网络协定做连结的自由软件。简而言之此软件在WindowsUNIX系列OS之间搭起一座桥梁让两者的资源可互通有无。

SMB协议是C/S模式客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。配置samba服务可以使同一网络中的linuxwindows主机之间互相访问对方共享资源。

samba提供的端口 137,138,139,445

Samba的两个进程

smbd --- 监听tcp139445端口,处理接口收到的smb数据包

nmbd --- 监听udp137 138端口,使其他主机能浏览服务器上的资源

Samba五种认证方式

1.share所有人都可以访问这台samba服务器不需要输入用户名和密码。

2.user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。

3.serveruser相同只是将身份验证交由指定的另一台samba服务器负责。

4.domain将身份验证交由域控制器负责

5.ads将身份验证交由域控制器负责比domain更为安全一点 

yum install samba  安装samba软件包

service smb restart    samba的共享服务以后修改只要启动这个服务就行下面这个要第一次启动

service nmb restart    提供upd的协议第一次需要启动

chkconfig smb on

chkconfig nmb on

 wKiom1W23gjCjAdLAAClhPFvU9U467.jpg

实验之前将防火墙关掉

 wKioL1W24AiT10clAAEbVQrD1DE753.jpg

/etc/samba   samba的主配置目录

/etc/samba/lmhosts  本地解析文件/etc/hosts原理一样这样共享不安全

/etc/samba/smb.conf     主配置文件

/etc/samba/smbusers    samba别名wKioL1W24BiCsncJAADN0ukvXnk887.jpg 

workgroup = MYGROUP   samba服务器所在的工作组的名称

server string = samba服务器的描述此服务器samba版本是3.5目前最新samba版本是4.0***通过在官网查询4.0修改3.0哪些漏洞就可以***此samba服务器但是如果将这里的描述修改一下可以迷惑***提高安全。

spacer.gif wKioL1W24Djg8cklAAGuwdvUo18232.jpg

smbclientSamba服务器的命令行方式的登录客户端显示指定Samba服务器中的共享资源列表 

smbclient -L //192.168.1.210 -U user1 wKiom1W23qKDqgXbAAC3HHf_tvk912.jpg wKioL1W24kPgpshRAAGd0ydEKkM571.jpg

共享/linux目录共享名为share

wKioL1W24lnj2VlrAABFKUjiEdw513.jpg 

wKiom1W24Ibi7aoXAABFIhe_wjg171.jpg


user需要输入有效的用户名和密码才能访问samba服务器身份验证由samba服务器负责。

wKioL1W24o2Q0bV6AADyILBkqCE886.jpg 

安全级别改为share所有人都可以访问这台samba服务器不需要输入用户名和密码。

不安全

wKiom1W24L7zI7jbAABGjsA8OOg313.jpg 

Windows访问linux共享在运行里面输入\\192.168.1.210

 wKioL1W24sqxeU8mAACwarcW5sU549.jpg

 wKiom1W24PqAcfOuAAIbpKxtLqY133.jpg

只能看到共享的东西但是进不去那是因为samba权限没有写的权限还不够这里主要是理解usershare两个认证方式的区别

Samba用户前提是samba用户必须是本地用户并且转换成为samba用户

smbpasswd命令用于维护Samba服务器的用户帐号

添加Samba用户帐号

# smbpasswd –a user1

删除Samba用户帐号 

# smbpasswd -x user1

禁用Samba用户帐号 

# smbpasswd –d user1

启用Samba用户帐号 

# smbpasswd -e user1

wKiom1W24UfC79AfAAQdJYvzgn0269.jpg

 允许user1/linux目录有写权限其他用户均为只读

comment = all linux  注释掉了是对该目录的描述

path = /linux   共享路径

writeable = no  是否允许写操作no代表只读如果是yes代表所有人都可以写

write list = user1   只允许user1对该目录有写入的权限   前提该目录a+W    

 wKioL1W241iCqSG1AAE394MsMmQ290.jpg

客户端连接

mount -t cifs //192.168.1.210/share /opt -o username=user1  填的/linux下面/share

 wKiom1W24aSB9lmnAACz1JdYQmw046.jpg

 wKioL1W246Si96ewAACYIGoZJV4109.jpg

仅允许用户在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   两个同时存在允许优先

 wKioL1W248DAOYA9AAErby_oQWU347.jpg

账号映射(别名)目的避免利用samba 帐号来猜测系统帐号

方法

1在全局启用映射表

username map=/etc/samba/smbusers

2添加映射帐户

vim /etc/samba/smbusers

3重启服务

wKiom1W24hKhNNLNAAKGzlPePew687.jpgwKioL1W25ACxHCwCAAD-XTrQ2Qo715.jpg 

wKiom1W24g-BjA8FAAFB34C8008499.jpg