企业级SMB架设.docx
《企业级SMB架设.docx》由会员分享,可在线阅读,更多相关《企业级SMB架设.docx(63页珍藏版)》请在冰豆网上搜索。
企业级SMB架设
CentOSLinux中Samba文件共享服务器的构建
前 言
在我们使用Windows作为客户机的时候,通常有文件、打印共享的需求。
作为Windows网络功能之一,通常可以在Windows客户机之间通过WindowsNetwork固有的功能实现这些要求。
然而,通过Samba我们也可以让一台CentOS主机来兼容Windows网络,实现同样的功能,进而充分发挥CentOS主机的可用性。
本篇文档主要介绍怎样通过Samba服务器的构建实现Windows网络中的文件共享。
Samba用的netbios协议,如果您用Samba不成功,很有可能是你的NETBIOS服务关闭了。
安装前的检查
a.检查网络是否通
[root@sample~]#ping192.168.0.254<-ping局域网内网关
[root@sample~]#ping<-ping外网地址
*如果不通,请配置IP地址
[root@sample~]#ifconfig<-查看IP配置情况
[root@sample~]#vi/etc/sysconfig/network-scripts/ifcfg-eth0<-配置IP
1DEVICE=eth0
2BOOTPROTO=static
3BROADCAST=192.168.1.255
4HWADDR=00:
0C:
2x:
6x:
0x:
xx
5IPADDR=192.168.1.23<-ip地址
6GATEWAY=192.168.1.1<-网关
7NETMASK=255.255.255.0<-子网掩码
8NETWORK=192.168.1.0<-网段
9ONBOOT=yes
10TYPE=Ethernet
[root@sample~]#vi/etc/resolv.conf<-配置DNS
domainsmbserver<-定义本地域名
nameserver202.96.64.68<-定义被参照的DNS服务器的IP地址(最多可指定3个)
[root@sample~]#servicenetworkrestart<-重新启动网络服务
b.查看smb是否已被安装
[root@sample~]#rpm-qasamba
*安装了会出现samba的版本
1.安装Samba
首先,通过yum来在线安装Samba。
[root@sample~]#yum-yinstallsamba <-安装Samba
SettingupInstallProcess
Settinguprepositories
update100%|=========================|951B00:
00
base100%|=========================|1.1kB00:
00
addons100%|=========================|951B00:
00
extras100%|=========================|1.1kB00:
00
Readingrepositorymetadatainfromlocalfiles
primary.xml.gz100%|=========================|73kB00:
00
update:
##################################################212/212
Added212newpackages,deleted0oldin4.94seconds
primary.xml.gz100%|=========================|569kB00:
00
base:
##################################################1500/1500
Added1500newpackages,deleted0oldin28.97seconds
primary.xml.gz100%|=========================|157B00:
00
Added0newpackages,deleted0oldin0.03seconds
primary.xml.gz100%|=========================|32kB00:
00
extras:
##################################################124/124
Added124newpackages,deleted0oldin1.93seconds
Parsingpackageinstallarguments
ResolvingDependencies
-->Populatingtransactionsetwithselectedpackages.Pleasewait.
--->Downloadingheaderforsambatopackintotransactionset.
samba-3.0.10-1.4E.9.i386.100%|=========================|101kB00:
00
--->Packagesamba.i3860:
3.0.10-1.4E.9settobeupdated
-->Runningtransactioncheck
-->ProcessingDependency:
samba-common=0:
3.0.10forpackage:
samba
-->RestartingDependencyResolutionwithnewchanges.
-->Populatingtransactionsetwithselectedpackages.Pleasewait.
--->Downloadingheaderforsamba-commontopackintotransactionset.
samba-common-3.0.10-1.4E.100%|=========================|37kB00:
00
--->Packagesamba-common.i3860:
3.0.10-1.4E.9settobeupdated
-->Runningtransactioncheck
DependenciesResolved
=============================================================================
PackageArchVersionRepositorySize
=============================================================================
Installing:
sambai3863.0.10-1.4E.9base13M
Installingfordependencies:
samba-commoni3863.0.10-1.4E.9base5.0M
TransactionSummary
=============================================================================
Install2Package(s)
Update0Package(s)
Remove0Package(s)
Totaldownloadsize:
18M
DownloadingPackages:
(1/2):
samba-common-3.0.1100%|=========================|5.0MB00:
04
(2/2):
samba-3.0.10-1.4E.100%|=========================|13MB00:
11
warning:
rpmts_HdrFromFdno:
V3DSAsignature:
NOKEY,keyID443e1821
Publickeyforsamba-common-3.0.10-1.4E.9.i386.rpmisnotinstalled
RetrievingGPGkeyfromhttp:
//mirror.centos.org/centos/RPM-GPG-KEY-centos4
ImportingGPGkey0x443E1821"CentOS-4key"
Keyimportedsuccessfully
RunningTransactionTest
FinishedTransactionTest
TransactionTestSucceeded
RunningTransaction
Installing:
samba-common#########################[1/2]
Installing:
samba#########################[2/2]
Installed:
samba.i3860:
3.0.10-1.4E.9
DependencyInstalled:
samba-common.i3860:
3.0.10-1.4E.9
Complete!
1.创建组
[root@sample~]#groupadduser
[root@sample~]#groupaddadmin
2.创建文件夹
[root@sample~]#mkdir–p/home/samba/user<-建立共享文件专用目录user在/home/samba下
[root@sample~]#cd/home/samba<-进入samba目录
[root@sample~]#chmod777user<-将专用目录属性设置为777
[root@sample~]#mkdiradmin
[root@sample~]#chmod777admin
3.创建系统用户
[root@sample~]#useradd-gadmin-M-s/sbin/nologin
[root@sample~]#useradd-guser-M-s/sbin/nologin
3.1创建用户命令参数
-u:
后面接的是UID,是一组数字。
直接指定一个特定的UID给这个帐号
-g:
组名该groupID(GID)会被放置到/etc/passwd的第四个栏位内
-G:
加入别的组。
这个参数会修改/etc/group内的相关资料喔
-M:
强制!
不要建立使用者家目录
-m:
强制!
要建立使用者家目录
-c:
这个就是/etc/passwd的第五栏的说明内容
-d:
指定某个目录成为家目录,而不要使用预设值
-r:
建立一个系统的帐号,这个帐号的UID会有限制(/etc/login.defs)
-s:
后面接一个shell,默认是/bin/bash
删除用户时userdel用户名
4.创建Samba用户
[root@sample~]#smbpasswd-aadmin <-将系统用户admin(例)加入到Samba用户数据库
NewSMBpassword:
<-输入该用户用于登录Samba的密码
RetypenewSMBpassword:
<-再次确认输入该密码
Addedusercentospub.
5.配置Samba
然后,通过编辑/etc/samba/smb.conf,根据需求配置Samba。
在这里,本文的原则是只将文件共享应用于内网,并让将要被共享的目录拥有充分的读写权限属性。
[root@sample~]#vi/etc/samba/smb.conf <-编辑Samba的配置文件
i<-进行编辑模式
Esc<-退出编辑模式
:
wq!
<-退出并保存vi编辑器(:
q!
表示退出不保存)
y10y<-复制10行(不在编辑模式下才可),移动光标,按p时粘贴复制的行
Shift+g<-光标移到页末
#=======================GlobalSettings=====================================
[global] <-找到这一行(全局设置标签),在此行下面添加如下行:
doscharset=GB2312 <-将Windows客户端的文字编码设置为简体中文GB2312
unixcharset=GB2312 <-指定Samba所在的CentOS服务端新建文件或目录时的编码为GB2312
displaycharset=GB2312 <-指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
directorymask=0777 <-指定新建目录的属性(以下4行)
forcedirectorymode=0777
directorysecuritymask=0777
forcedirectorysecuritymode=0777
createmask=0777 <-指定新建文件的属性(以下4行)
forcecreatemode=0777
securitymask=0777
forcesecuritymode=0777
workgroup=MYGROUP <-找到此行,将工作组名称改为Windows网络所定义的工作组名
↓
workgroup=WORKGROUP <-变为此状态,这里以WindowsXP默认的“WORKGROUP”为例
5.1限制访问网络
;hostsallow=192.168.1.192.168.2.127. <-找到此行,去掉行首的“;”,并制定访问限制
↓
hostsallow=192.168.0.127. <-变为此状态,指定内网IP地址及本地,只允许这两种情况的访问
5.2共享目录设置
然后在配置文件的末尾填如下几行,定义公众共享目录:
[user]<-共享文件及名称
comment=user<-说明
path=/home/samba/user <-指定共享目录位置
validusers=user,admin,@user<-允许访问这个共享目录的用户(可添加多个例:
validusers=adminuser1user2),@表示组
public=no
writable=yes <-赋予共享目录写入权限的属性
printable=no
createmask=0765<-定义新创建的文件将允许哪些权限(请参考linux文件目录权限)
directorymask=0777<-定义新创建的目录将允许哪些权限
writelist=user<-定义只有user1有写的权限
禁止显示打印机
;loadprinters=yes
;cupsoptions=raw
disablespoolss=yes
printerwizard=no
禁止显示用户目录
[zongwu]
writeable=no
browseable=no
添加回收站功能
[homes]
browseable=no
writable=yes
path=/home/recycle
vfsobject=recycle
recycle:
exclude=*.tmp,*.TMP
recycle:
keeptree=yes
createmask=0777
comment=HomeDirectories
directorymask=0777
recycle:
repository=/home/recycle/%u
recycle:
versions=yes
在/home/创建recycle目录,权限777
[PHOTO]
comment=Photoimage
path=/home/samba/PHOTO
createmask=0777
directorymask=0777
writeable=yes
public=yes
guestOK=yes
validusers=@ALL
vfsobject=recycle
recycle:
keeptree=yes
重启samba服务
[root@sample~]#servicesmbrestart
在进行到服务端的连接之前,需要预先对用于登录Samba的用户进行设置。
这里我们以CentOS中Samba标准的Samba用户数据库管理工具“smbpasswd”为例,创建用于登录Samba的用户数据。
这里需要注意的一点:
用smbpasswd创建用户的前提是,系统用户中存在该用户--在基于系统用户之上,才可以创建该用户在Samba用户数据库中的信息。
6.添加防火墙
在启动Samba服务之前,首先将防火墙设置中Samba所用到的端口进行开放。
[root@sample~]#vi/etc/sysconfig/iptables <-编辑iptables配置文件
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport25-jACCEPT <-找到此行,在下面添加如下行:
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-pudp--dport22-jACCEPT
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport445-jACCEPT
-ARH-Firewall-1-INPUT-mstate--stateNEW-mtcp-ptcp--dport873-jACCEPT
-ARH-Firewall-1-INPUT-pudp-mudp--dport137-jACCEPT
-ARH-Firewall-1-INPUT-pudp-mudp--dport138-jACCEPT
重启防火墙服务
[root@sample~]#serviceiptablesrestart <-重新启动iptables(防火墙)服务,使新的规则生效
Flushingfirewallrules:
[OK]
SettingchainstopolicyACCEPT:
filter [OK]
Unloadingiptablesmodules:
[OK]
Applyingiptablesfirewallrules:
[OK]
7.自启动Samba服务。
[root@sample~]#chkconfigsmbon <-设置Samba自启动
[root@sample~]#chkconfig--listsmb <-确认Samba启动标签,确认2-5为on的状态
smb0:
off1:
off2:
on3:
on4:
on5:
on6:
off
8.关闭SElinux
vi/etc/sysconfig/selinux
SELINUX=enforcing改成SELINUX=disabled
9.从Windows客户端连接到Samba服务器
开始->运行->输入\\192.168.0.1回车<-192.168.0.1是samba服务器的ip地址
OR
setsebool-Psamba_enable_home_dirs=1
Windows会自动记住samba共享的用户名和密码
关闭共享文件夹后在运行里输入netuse*/d/y可以让windows删除保存的用户的密码
Whereis程序名
usermod-Ggroupnameuser更改组
案例1
需求:
1.所有员工都能够在公司内流动办公,但不管在哪电脑上工作,都要把自己文件存在Samba文件服器上。
2.制造部、财务部、管理部,都有各自的文件目录。
3.各部门目录下提供[对外]”、[公共文档]、[受控文档]三个子目录。
1、[对外]:
<1>允久公司所有工作人员访问,不能修改文件。
<2>本部门文员负责维护数据
2、[公共文档]:
<1>本部门员工可以访问,领导层可以访问,不能修改。
<2>本部门文员负责维护数据
3、[受控文档]:
<1>本部门主管、公司领导可以访问、其他员工禁止。
<2>本部门主管负责维护数据
注:
财务部受控文档只允许总经理、财务部总监、主管、访问。
管理部受控文档只允许总经理、主管访问。
4、各部门办公人员拥有各自的主目录,用于存放私有文档(工作相关),其他人禁止访问。
5、所有的用户都不允许使用服务器的SHELL(安全考虑)
6、公共区域:
<1>所有员工均可访问。
<2>网络部负责维护
7、交换区域:
<1>所有员工均可读可写,禁止删除其它员工文件。
<2>网络部负责维护
分析:
1、需要Samba做为文件服务器。
(1)为所有用户创建账号,
(2)为各部门创建相关目录,(3)用户默认存在一个home目录
2、(4)设置共享权限、(5)文件系统权限、(6)结合ACL工具
3、建立帐号时,不分配SHELL
实施:
假设环境
管理部(glb):
glb01(主管)、glb02(文员)、glb03(普通员工)
财务部(cwb):
cwb01(主管)、cwb02(文员)、cwb03(普通员工)
制造部(zzb):
zzb01(主管)、zzb02(文员)、zzb03(普通员工)
网络部(netb):
netb01(主管)、netb02(网管)
领导层(leads):
lead01(总经理)、lead02(副总经理)、lead03