1.Samba作用
Samba是一套使用SMB(Server Message Block)协议的应用程序,通过这个协议,Samba允许Linux服务器与Windows系统之间进行通讯。Samba采用C/S模式,其工作机制是让NetBIOS(Windows网上邻居的通信协议)和SMB两个协议运行于TCP/IP通信协议上,并且用NetBEUI协议让Windows在“网上邻居”中能浏览Linux服务器。
- Samba服务只需要在Client端将Server端挂载下来即可。
- NFS仅能让Unix机器沟通
- CIFS只能让Windows机器互通
2.Samba应用
(1)分享档案与打印机服务
(2)可以提供使用者登入Samba主机时的身份认证,以提供不同身份者的个别数据
(3)可以进行Windows网络上的主机名解析(NetBIOS name)
(4)可以进行装置的分享
3.Samba服务
SAMBA 主机就使用两个 daemons 来管理这两个不同的服务:
- smbd:Samba核心,主要负责建立Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问。
- nmbd:主要负责对外发布Linux Samba服务器可以提供的NetBIOS名称和浏览服务,使Windows用户可以在“网上邻居”中浏览Linux Samba服务器共享资源
SAMBA 每次启动至少都需要有这两个 daemons
当我们启动了 SAMBA 之后,主机系统就会启动
137(UDP) - NetBIOS 名字服务;nmbd
138(UDP) - NetBIOS 数据包服务
139(TCP) - 文件共享和打印共享
445(TCP) - NetBIOS服务在Windows 2000及以后版本使用此端口
901(TCP) - 用于SWAT,用于网页管理Samba
samba:
这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文
件档 ( document )、以及其它与 SAMBA 相关的[logrotate设定文件及开机预设选项等;
samba-common:
这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的[测试程序]等等;
samba-client:
这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。
4.联机模式的介绍 ( peer/peer, domain model )
SAMBA 主机依照不同的网域联机与使用者账号、密码的控管方式不同,来加以不同的类别应用。
两种最常见的局域网络的联机模式 是peer/peer 及 domain model。
- peer/peer ( Workgroup model ) :
peer 有同等、同辈的意思!简单的来说,在局域网络里面的所有 PC 均可以在自己的计算机上面管理自己的账号与密码,同时每一部计算机也都具有独力可以执行各项软件的能力,只是由网络将各个 PC 连结在一起而已的一个架构,所以,每一部机器都是可以独立运作!
而在这样的架构下,如果有两部计算机,假设为 pc1 与 pc2 好了,那么当您要坐在 pc1 这部计算机前使用 pc1 的资源时,就必须要知道登入 pc1 的使用者名称与密码,才能够登入使用。而如果您想由 pc1 经过网络联机到 pc2 来使用 pc2 资源时,就必须要知道 pc2 的账号与密码才可以顺利的登入 pc2 !
这样的架构在目前小型办公室里面是最常见的。因为这十部计算机都可以独立运作,所以不会有一部计算机关掉,其它的计算机就无法工作的情况发生。
** Peer/Peer 的架构是比较适合**
(1)小型的网域
(2)没有需要常常进行档案数据分享的网络环境
(3)每个使用者都独自拥有该计算机的拥有权(就是说,该计算机是使用者的,而不是公用的啦!)
- domain model :
所谓的 domain model 概念其实也很简单,既然使用计算机资源需要账号与密码,那么我将所有的账号与密码都放置在一部主控计算机 ( Primary Domain Controller, PDC ) 上面,在我的网域里面,任何人想要使用任何计算机时,都需要在屏幕前方输入账号与密码,然后由 PDC 主机的辨识后,才给予适当的使用权限。
5.SAMBA 的执行档:
SAMBA Server 的执行档有:
testparm, smbd, nmbd, smbpasswd
SAMBA Client 的执行档:
(smbmount看版本),smbclient。
6.NetBIOS通讯协议
SAMBA是架构在NetBIOS(Network Basic Input/Output System)这个通讯协议上。NetBIOS是一个让同一网络内计算机
7.SAMBA配置文档介绍:
/etc/samba/smb.conf:
这个就是 SAMBA 最主要的设定档。这个设定档主要的设定分为两部份,分别是 [global] 这个设定主机功能的项目,以及接下来的每个分享出去的目录的属性设定
/etc/samba/lmhosts:
主要目的在对应 NetBIOS name 与该主机名称的 IP ,事实上,他有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名称是 NetBIOS name !由于目前 SAMBA 的功能越来越强大,所以通常只要您一启动 SAMBA 时,他就能自己捉到 LAN 里面的相关计算机的 NetBIOS name 对应 IP 的信息,这个档案通常可以不用设定了!
/etc/samba/smbpasswd:
不存在,需要自己设置使用。他是 SAMBA 预设的使用者密码对应表。当我们设定的 SAMBA 服务器是较为严密的,需要使用者输入账号与密码后才能登入的状态时,使用者的密码预设就是放置在这里咯 (您可以自行在 smb.conf 里面设定密码放置的地方及密码文件名,不过,我们这里都以预设的状态来说明 ) 。这个档案因为包含了使用者的密码,权限需要设置为600,拥有者需要是 root!
8.SAMBA命令:
SAMBA Server:
testparm, smbd, nmbd, smbpasswd
SAMBA Client:
smbmount,smbclient。
testparm:
查看smb.conf 是否有设定错误。
smbpasswd:
规定使用者的账号与密码
smbclient:
客户端查看共享文件
smbmount/mount:
来将远程主机分享的档案与目录挂载到自己的 Linux 主机上。
10.安装SAMBA
(1)查看Samba安装包
samba有各种插件提供使用
samba-4.6.2-8.el7.x86_64.rpm
samba-client-4.6.2-8.el7.x86_64.rpm
samba-client-libs-4.6.2-8.el7.i686.rpm
samba-client-libs-4.6.2-8.el7.x86_64.rpm
samba-common-4.6.2-8.el7.noarch.rpm
samba-common-libs-4.6.2-8.el7.x86_64.rpm
samba-common-tools-4.6.2-8.el7.x86_64.rpm
samba-devel-4.6.2-8.el7.i686.rpm
samba-devel-4.6.2-8.el7.x86_64.rpm
samba-krb5-printing-4.6.2-8.el7.x86_64.rpm
samba-libs-4.6.2-8.el7.x86_64.rpm
samba-pidl-4.6.2-8.el7.noarch.rpm
samba-python-4.6.2-8.el7.x86_64.rpm
samba-vfs-glusterfs-4.6.2-8.el7.x86_64.rpm
samba-winbind-4.6.2-8.el7.x86_64.rpm
samba-winbind-clients-4.6.2-8.el7.x86_64.rpm
** (2)安装**
安装全部插件
yum -y install samba*
或者只安装需要的文件
服务器端可以只安装samba
客户端可以只安装samba-client
yum -y install samba-client
(3)Selinux和防火墙
- 1.直接关闭
关闭selinux
> set SELINUX=disabled
关闭防火墙
>systemctl stop firewalld
禁止开机自启
>systemctl disabled firewalld
- 2.开放Samba
> setsebool -P samba_enable_home_dirs on
> setsebool -P samba_export_all_rw on
开放Samba端口
> firewalld-cmd --permanent --add-port=137/tcp
> firewalld-cmd --permanent --add-port=138/tcp
> firewalld-cmd --permanent --add-port=138/tcp
> firewalld-cmd --permanent --add-port=445/tcp
> firewalld-cmd --permanent --add-port=901/tcp
(4)启动Samba
> systemctl start nmb
> systemctl start smb
查看smb状态
> systemctl status smb
(5)设置开机自启
> systemctl enable smb
> systemctl enable nmb
网友评论