Linux下Samba的安全配置.docx
- 文档编号:9242628
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:40
- 大小:32.88KB
Linux下Samba的安全配置.docx
《Linux下Samba的安全配置.docx》由会员分享,可在线阅读,更多相关《Linux下Samba的安全配置.docx(40页珍藏版)》请在冰点文库上搜索。
Linux下Samba的安全配置
SAMBA服务器安全配置
1.Samba简介..............................................................2
2.Samba功能和应用范围....................................................2
3.Samba服务相关配置.....................................................2
3.1samba启动程序........................................................2
3.2查看Samba服务器的端口及防火墙.......................................2
3.3查看Samba服务器的配置文件...........................................3
3.4samba配置文件说明....................................................3
3.5Samba在Linux中的一些工具(服务器端和客户端).......................5
3.6在Linux中的常用工具和Windows查看Linux共享的方法.................5
3.6.1在Linux上查看Windows及Samba共享文件............................5
3.6.2在Windows中访问LinuxSamba服务器共享文件的办法..................7
3.6.3在Linux中smbfs文件系统的挂载....................................7
3.7以浏览器管理SAMBA-SWAT...............................................9
4.举简单例子说明匿名用户可读可写的实现...................................9
4.1更改smb.conf........................................................9
4.2建立相应目录并授权...................................................12
4.3启动smbd和nmbd服务器...............................................13
4.4查看smbd进程,确认Samba服务器是否运行起来了........................13
4.5访问Samba服务器的共享...............................................13
5.复杂一点的用户共享模型.................................................13
5.1共享权限设计实现的功能...............................................13
5.2在服务器上创建相应的目录.............................................14
5.3添加用户用户组,设置相应目录家目录的权限.............................14
5.3.1添加用户组........................................................14
5.3.2添加用户..........................................................14
5.3.3添加samba用户,并设置密码........................................14
5.3.4配置相关目录的权限和归属..........................................15
5.4修改Samba配置文件smb.conf..........................................15
5.5创建一个samba用户 ..................................................17
5.6最后阶段,进行测试...................................................17
1.Samba简介
Samba(SMB是其缩写)是一个网络服务器,用于Linux与Linux(最好用NFS),Linux和Windows间共享文件,在Windows网络中的每台主机既可以是文件服务器,也可以同时是客户机;一台Linux主机如果架设了Samba服务后,它既能充当服务器,同时也能作为客户机来访问其它网络中的Windows共享文件系统,或其它Linux的Sabmba服务器;在Windows网络中,能看到共享文件夹功能,可以把共享文件夹映射为本地网络驱动器。
在Linux中,就是通过Samba向网络中的主机提供共享文件系统,也可以把网络中其它机器的共享挂载在本地主机上使用;Samba用的是netbios协议,让Netbios和SMB在TCP/IP上运行。
2.Samba功能和应用范围
Samba应用范围主要是Windows和Linux系统共存的网络中使用;如果一个网络环境都是Linux或Unix类的系统,可以用NFS;而Samba主要是提供共享文件和共享打印机;
3.Samba服务相关配置
3.1samba启动程序
Samba有两个服务器,一个是smb(监听139,445TCP端口),另一个是nmb(监听137,138两个UDP端口);smbd和nmbd使用的全部配置文件都保存在smb.conf文件中。
smb是Samba的主要启动服务器,它能让其它主机知道该主机共享了什么;如果不打开nmb服务器的话,只能通过IP来访问。
如:
在Windows的IE浏览器上输入下面的内容
\\192.168.1.5\共享目录
而nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbiosname解析出来;一般的情况下,如果是用RPM包安装的Samba,一般可通过如下的方式来启动Samba服务器;
[root@localhost~]#/etc/rc.d/init.d/smbstart(stop/restart)
对于所有系统来说,通用的办法就是直接运行smb和nmb;当然要知道smb和nmb所在的目录才行;如果是自己编译的Samba,应该知道把Samba放在哪里了;
[root@localhost~]#/usr/sbin/smbd
[root@localhost~]#/usr/sbin/nmbd
查看服务器是否运行起来了,则用下面的命令;
[root@localhost~]#pgrepsmbd
[root@localhost~]#pgrepnmbd
关掉Samba服务器,也可以用下面的办法,大多是通用的;要root权限来执行;
[root@localhost~]#pkillsmbd
[root@localhost~]#pkillnmbd
3.2查看Samba服务器的端口及防火墙
有时防火墙可能会把smbd服务器的端口封掉,所以应该查看smbd服务器所占用的端口;下面查看中,显示smbd所占用的端口是139和445;
[root@localhost~]#netstat-tlnp|grepsmb
tcp 0 00.0.0.0:
139 0.0.0.0:
* LISTEN 10639/smbd
tcp 0 00.0.0.0:
445 0.0.0.0:
* LISTEN 10639/smbd
如果有防火墙,一定要把这两个端口打开。
如果不知道怎么打开,还是把防火墙规则清掉;
[root@localhost~]#iptables-F或
[root@localhost~]#/sbin/iptables–F
3.3查看Samba服务器的配置文件
如果是用Linux发行版自带的Samba软件包,一般情况下Samba服务器的配置文件都位于/etc/samba目录中,服务器的主配置文件是smb.conf;也有用户配置文件smbpasswd、smbusers和lmhosts等;还有一个文件是secrets.tdb,这个文件是Samba服务器启动时自动生成的;
3.4samba配置文件说明
以井号(#)和分号(;)开始的行和空行被忽略,以外斜线(\)结束的行将在下一行继续。
段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源,段名是该共享资源的名字,而段里的参数就是共享资源的属性。
[global], [homes] 和 [printers]这三个段是比较特殊的,一个共享资源段由要提供访问的路径和附加的访问权限组成,可以是文件资源或打印资源。
共享资源段可以给guest级的用户服务,一般来说guest用户是不需要密码的,如果给guest提供服务,guest的权限是根据UNIX里的guest帐户来赋予。
如果共享资源段不是给guest提供服务的,则访问这样的段需要客户的密码。
由于赋予用户对共享资源段的访问权限是基于该用户在UNIX系统的对该资源的访问权限,所以服务器是不能赋予超过UNIX系统赋予该用户的权限的。
例如:
下面的共享资源段的例子定义了一个文件共享,用户对路径/home/abc有写入的权限,共享资源段名是abc,也就是共享名。
[abc]
path = /home/abc
writeable = true
特殊段
[global] 段
在这个段的参数是全局有效的。
[homes] 段
当用户请求一个共享时,服务器将在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。
如果找不到,就将请求的共享名看成是用户的用户名,并在本地的password文件里找这个用户,如果用户名存在且用户提供的密码是正确的,则以这个home段克隆出一个共享提供给用户。
这个新的共享的名称是用户的用户名,而不是home,如果home段里没有指定共享路径,就把该用户的宿主目录(home directory)作为共享路径。
通常的共享资源段能指定的参数基本上都可以指定给[home]段。
但一般情况下[home]段有如下配置就可以满足普通的应用。
[homes]
writeable = yes
注意,如果在[home]段里加了guess access =ok, 所有的用户都可以不要密码就能访问所有的宿主目录!
(1)基本参数
workgroup
说明:
这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。
例如:
workgroup = wgp1 指明工作组为wgp1
netbios name
说明:
这个参数指定samba的netbios名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1 例如:
netbios name = public指定NetBios名为public
server string
说明:
这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。
可以是任何字符串。
也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。
例如:
server string = Master File Server
(2)安全参数
security
说明:
这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是 user
security = user
这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。
securtiy = share
这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。
security = server
和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT服务器。
如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。
security = domain
这种安全级别要求网络上存在一台NT PDC,samba把用户名和密码递交给NT PDC去验证。
从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。
否则是不能访问的。
(3)共享资源设置参数
comment
说明:
就是对共享的描述,可以是任意的字符串
例如 :
comment = Share Stuff
path
说明:
path是提供共享服务的路径,可以用%u %m这样的宏来代替路径里的unix用户和客户机的Netbios名。
例如:
如果我们不打算用home段做为客户的共享,而是在/home/share/ 下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成
path = /home/share/%u;
用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。
同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,可以这样写path
path = /home/share/%m
writeable
说明:
指定共享路径是否可以写,值是yes或no
browseable
说明:
指定共享是否可以浏览,默认是yes
available
说明:
指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。
public
说明:
这个参数指明是否允许guest帐户访问,值为yes或no,另一个和public相同意义的参数是guest ok。
(4)高级参数的配置
宏
在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。
常用的宏有
%S = 当前服务名
%P = 当前服务的根路径
%u = 当前服务的用户名
%g = 给定%u的所在的主工作组名
%H = 给定的%u的宿主目录
%v = Samba 版本号
%h = 运行Samba的机器的主机名
%m = 客户机的NETBIOS名
%L = 服务器的 NetBIOS 名
%T = 当前的日期和时间
灵活地应用宏可以很方便地管理比较复杂的网络
(5)共享资源参数
admin users
这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。
这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。
缺省是admin users = no。
例如:
admin users = Su_27
那么Su_27这个用户就是这个共享资源的管理员。
valid users
说明:
指定共享资源的有效用户,即允许访问该资源的用户。
例如:
valid users = user1, user2 那么user1和user2是有效用户
invalid users
说明:
和valid users 相反,指定那些用户不可访问这共享资源。
max connections (S)
说明:
指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求将被拒绝。
例如:
max connections = 100最大连接数为100
3.5Samba在Linux中的一些工具(服务器端和客户端)
smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree
smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount
smbdnmbd mount
其中服务器端的是smbd、nmbd、smbpasswd;其它的大多是客户端;这些并不是都需要一定要精通的,但至少得会用几个;比如smbmount(也就是mount加参数的用法),还有smbclient等;
3.6在Linux中的常用工具和Windows查看Linux共享的方法
3.6.1在Linux上查看Windows及Samba共享文件
一般的情况下,要用到smbclient;常用的用法也无非是下面的;
[root@localhost~]#smbclient -L //ip地址或计算机名
smbclient是Samba的Linux客户端,在Linux主机上用来查看服务器上的共享资源,也可以象FTP一样,用户可以登录Samba服务器,也可以上传put和下载get文件,但对中文支持并不友好;
(1)查看服务器上的资源
smbclient-L//IP [-U用户名]
如果Samba服务器配置为user模式,就要加“-U用户名”,如果是share模式,省略也可;比如:
[root@localhost~]#smbclient-L //192.168.1.3 -Usir01
Password:
请输入用户sir01的密码
如果是用share模式,就可以不必理会用户和密码,直接用;
[root@localhost~]#smbclient-L //192.168.1.3
Password:
直接按回车
(2)登录用户身份Samba服务器共享
以用户身份登录共享后,能象FTP用户一样,上传和下载文件;用put表示上传,用get表示下载;
smbclient //IP地址/共享文件夹 -U用户
说明:
可以用/sbin/ifconfig来查看本机IP;共享文件夹是在smb.conf中定义的[共享文件夹],比如[sir01]。
-U用户名表示Samba的用户;比如:
[root@localhost~]#smbclient//192.168.1.3/sir01-Usir01
Password:
Domain=[LINUXSIR]OS=[Unix]Server=[Samba3.0.21b-2]
smb:
\>ls
说明:
登录到Samba服务器上,就可以用smbclient的一些指令,可以象用FTP指令一样上传和下载文件;
(3)smbclient命令说明
?
或help[command] 提供关于帮助或某个命令的帮助
!
[shellcommand] 执行所用的SHELL命令,或让用户进入SHELL提示符
cd[目录] 切换到服务器端的指定目录,如未指定,则smbclient返回当前本地目录
lcd[目录] 切换到客户端指定的目录;
dir或ls 列出当前目录下的文件;
exit或quit 退出smbclient
getfile1 [file2] 从服务器上下载file1,并以文件名file2存在本地机上
mgetfile1file2file3 filen 从服务器上下载多个文件;
md或mkdir目录 在服务器上创建目录
rd或rmdir 目录 删除服务器上的目录
putfile1[file2] 向服务器上传一个文件file1,传到服务器上改为file2
mputfile1file2filen 向服务器上传多个文件
3.6.2在Windows中访问LinuxSamba服务器共享文件的办法
在网上邻居,查看工作组就能看得到,或者在浏览器上输入如下
\\ip地址或计算机名
这样就能看到这个机器上的共享了,如果访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口通过;
3.6.3在Linux中smbfs文件系统的挂载
mount的用法,加载网络中的共享文件夹到本地;mount就是用于挂载文件系统的,smbfs作为网络文件系统的一种,也能用mount挂载;
(1)mount挂载smbfs的用法
mount-tsmbfs-ocodepage=cp936,username=用户名,password=密码,dmask=777,fmask=777,-l //ip地址/共享文件夹名 挂载点
mount-tsmbfs-ocodepage=cp936,username=用户名,password=密码,-l //计算机名/共享文件夹名 挂载点
mount-tsmbfs -ocodepage=cp936 //ip地址或计算机名/共享文件夹名 挂载点
(2)smbmount的用法
smbmount-ousername=用户名,password=密码,-l //ip地址或计算机名/共享文件夹名 挂载点
smbmount //ip地址或计算机名/共享文件夹名 挂载点
说明:
如果SMB服务器是以share共享的,则无需用户名和密码就能挂载,出现密码提示时,直接回车就行;也可以用smbmount
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux Samba 安全 配置