通过安装Samba服务程序后细致的分析其配置文件参数,更能够帮助读者们理解Samba服务的安全验证方式。
安装Samba服务软件包:
[root@linuxprobe Desktop]# yum install samba
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分安装过程………………
Installing:
samba x86_64 411-31el7 rhel7 527 k
………………省略部分安装过程………………
Complete!
浏览Samba配置文件:
[root@linuxprobe ~]# cat/etc/samba/smbconf
配置文件竟然有320行!有没有被吓到?其实Samba服务配置文件中大部分是注释信息,我们可以来筛选过滤下:
备份原始的配置文件:
[root@linuxprobe ~]# mv /etc/samba/smbconf /etc/samba/smbconfbak
过滤掉无用的内容:
先使用cat命令读入Smb配置文件后通过grep命令-v参数(反向选择)去掉所有注释信息,然后分别删选掉包含#号的行("#"),包含;号的行(";")以及所有的空白行("^$"),最后最后将过滤后的信息覆盖写入到/etc/samba/smbconf文件中。
cat /etc/samba/smbconfbak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smbconf
让我们来看看过滤后的配置文件吧:
[global] #全局参数。
workgroup = MYGROUP #工作组名称。
server string = Samba Server Version %v #服务器介绍信息,参数%v为显示SMB版本号。
log file = /var/log/samba/log%m #定义日志文件存放位置与名称,参数%m为来访的主机名。
max log size = 50 #定义日志文件最大容量为50Kb。
security = user #安全验证的方式,总共有4种。
#share:来访主机无需验证口令,更加方便,但安全性很差。
#user:需由SMB服务验证来访主机提供的口令后才可建立访问,更加的安全。
#server:使用独立的远程主机验证来访主机提供的口令(集中管理帐号)。
#domain:使用PDC来完成验证
passdb backend = tdbsam #定义用户后台的类型,共有3种。
#smbpasswd:使用SMB服务的smbpasswd命令给系统用户设置SMB密码。
#tdbsam:创建数据库文件并使用pdbedit建立SMB独立的用户。
#ldapsam:基于LDAP服务进行帐户验证。
load printers = yes #设置是否当Samba服务启动时共享打印机设备。
cups options = raw #打印机的选项
[homes] #共享参数
comment = Home Directories #描述信息
browseable = no #指定共享是否在“网上邻居”中可见。
writable = yes #定义是否可写入 *** 作,与"read only"相反。
[printers] #打印机共享参数
comment = All Printers
path = /var/spool/samba #共享文件的实际路径(重要)。
browseable = no
guest ok = no #是否所有人可见,等同于"public"参数。
writable = no
printable = yes
标准的Samba共享参数是这样的:
参数 作用
[linuxprobe] 共享名称为linuxprobe
comment = Do not arbitrarily modify the database file 警告用户不要随意修改数据库
path = /home/database 共享文件夹在/home/database
public = no 关闭所有人可见
writable = yes 允许写入 *** 作
我们将上面的配置参数直接追加到SMB服务配置文件(/etc/samba/smbconf)并重启SMB服务程序即可生效。
但此时SMB服务默认的验证模式为user,我们需要先创建用户数据库后才可以正常使用,现在来学习下如何创建吧~
1222 安全共享文件
使用Samba服务口令验证方式可以让共享文件更加的安全,做到仅让信任的用户访问,而且验证过程也很简单,要想使用口令验证模式,我们需要先创建Samba服务独立的数据库。
第1步:检查当前是否为user验证模式。
[root@linuxprobe ~]# cat /etc/samba/smbconf
第2步:创建共享文件夹:
[root@linuxprobe ~]# mkdir /database
第3步:描述共享文件夹信息。
在SMB服务主配置文件的最下面追加共享文件夹的配置参数:
[database]
comment = Do not arbitrarily modify the database file
path = /database
public = no
writable = yes
保存smbconf文件后重启启动SMB服务:
[root@linuxprobe ~]# systemctl restart smb
添加到开机启动项:
[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smbservice' '/etc/systemd/system/multi-usertargetwants/smbservice'
第4步:使用Windows主机尝试访问
读者按照下表的IP地址规划动手配置下Windows的网卡参数,应该都会吧~
主机名称 *** 作系统 IP地址
Samba共享服务器 红帽RHEL7 *** 作系统 1921681010
客户端 红帽RHEL7 *** 作系统 1921681020
客户端 微软Windows7 *** 作系统 1921681030
在Windows主机的运行框中输入远程主机的信息
此时访问Samba服务报错
此时访问Samba服务是报错的,如果读者已经看完Apache(>172 配置 Samba 服务器默认的配置文件(/etc/samba/smbconf)允许用户作为 Samba 共享来查看他们的 Red Hat Linux 主目录。它还把为 Red Hat Linux 配置的打印机作为 Samba 共享打印机来共享。换一句话说,你可以在你的 Red Hat Linux 系统上连接打印机,然后从网络上的 Windows 机器来打印。1721 图形化配置要使用图形化界面来配置 Samba,使用 Samba 服务器配置工具。要使用命令行来配置,请跳到第 1722 节。Samba 服务器配置工具是用来管理 Samba 共享、用户、以及基本服务器设置的图形化界面。它修改 /etc/samba/ 目录中的配置文件。没有使用该程序进行的改变都会被保留。要使用该程序,你必须在运行 X 窗口系统,具备根特权,并且安装了 redhat-config-samba RPM 软件包。要从桌面启动 Samba 服务器配置工具,点击面板上的「主菜单」 => 「系统设置」 => 「服务器设置」 => 「Samba 服务器」,或在 shell 提示(如 XTerm 或 GNOME 终端)下键入 redhat-config-samba 命令。图 17-1 Samba 服务器配置工具注记Samba 服务器配置工具不显示允许用户在 Samba 服务器上查看他们自己的主目录的共享打印机或默认文件段。17211 配置服务器设置配置 Samba 服务器的第一步是配置服务器的基本设置和几个安全选项。启动了应用程序后,选择 「首选项」 => 「服务器设置」。「基本」活页标签如 图 17-2所示。图 17-2 配置基本服务器设置在「基本」标签上,指定计算机应在的工作组以及对计算机的简短描述。它们与 smbconf 中的 workgroup 和 server string 选项相对应。图 17-3 配置安全服务器设置「安全」标签包含以下选项:「验证模式」 — 它和 security 选项相对应。选择以下验证模式中的一种。「域」 — Samba 服务器依赖于 Windows NT 主要或备份域控制器来校验用户。服务器把用户名和口令传递给控制器,然后等待它们被返回。在「验证服务器」字段中指定主要或备份域控制器的 NetBIOS 名称。「加密口令」选项如果被选,它必须被设置为「是」。根据Samba项目网站所述,Samba是一个开源/自由软件套件,提供了到SMB/CIFS客户端的无缝文件和打印服务。不同于其它SMB/CIFS网络协议部署(如HP-UX的LM服务器,OS/2的LAN服务器,或者VisionFS),Samba(及其源代码)是可以自由获取的(终端用户无需付费),允许在Linux/Unixt服务器和Windows/Unix/Linux客户端之间互 *** 作。
出于这些理由,Samba在不同 *** 作系统(除了Linux)共存的网络中首选的文件服务器解决方案——最常见的结构是多个微软Windows客户端访问安装有Samba的Linux服务器,该情形也是本文将要解决的问题。
请注意,另外一方面,如果我们的网络仅仅是由基于Unix的客户端(如Linux,AIX,或者Solaris,等等)组成,我们可以考虑使用NFS(尽管在此种情况下Samba仍然是可选方案),它可以提供更快的速度。
一、在Debian和CentOS中安装Samba
在我们开始安装之前,我们可以使用 *** 作系统中的包管理系统查询Samba的信息:
在Debian上:
# aptitude show samba
在CentOS上:
# yum info samba
在下面的屏幕截图中,我们可以看到‘aptitude show samba’的输出(‘yum info samba’会产生类似的结果):
现在让我们来安装Samba吧(下面的截图来自Debian 7[Wheezy]服务器上的安装):
在Debian上:
# aptitude install samba
在CentOS上:
# yum install samba
添加用户到Samba
对于4x之前的版本,需要建立一个本地Unix帐号以便将其添加到Samba:
# adduser <username>
接下来,我们需要添加用户到Samba,使用带有‘-a’选项的smbpasswd命令来完成,该命令指出后面的用户名将被添加到本地smbpasswd文件中。我们将被提示输入密码(该密码无需和本地Unix帐号的密码相同):
# smbpassword -a <username>
最后,我们将赋予用户xmodulo到我们系统上某个目录的访问权限,该目录将被用于作为此用户的Samba共享(如有需要,也可以共享给其它用户)。要完成该工作,请使用文本编辑器(如Vim)打开/etc/samba/smbconf文件,导航到文件末,然后创建一个带有描述名称的区块(使用方括号将其括起来),如[xmodulo]:
# SAMBA SHARE
[xmodulo]
path =/home/xmodulo
available = yes
valid users = xmodulo
read only =no
browseable = yes
public= yes
writeable = yes
我们现在必须重启Samba—以防万一—使用testparm命令来检查smbconf文件的语法错误:
# service samba restart
# testparm
如果有错误,在testparm结束后会报告。
二、在Windows 7计算机上将Samba共享映射为一个网络驱动器
在计算机上右击,然后选择“映射网络驱动器”:
输入安装了Samba的机器的IP地址,后跟共享名(就是smbconf文件中方括号括起来的那个名称),然后确保选中了“使用不同的凭据连接”。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)