APP下载

LINUX的SAMBA服务配置

2011-03-18崔宝才

天津职业院校联合学报 2011年11期
关键词:用户名局域网数据包

崔宝才

LINUX的SAMBA服务配置

崔宝才

(天津电子信息职业技术学院,天津市 300000)

linux的Samba服务是局域网上常用的服务之一,通过配置samba服务器,使之能够提供稳定安全及易于管理的局域网共享服务。

samba;Linux;服务器

一、Samba服务工作原理

Samba是一个网络服务器,可以让 Windows操作系统(Windows 2000/XP/2003等)用户访问局域网中Linux主机,就象访问网上邻居一样方便。当然,Samba服务也常用于linux和linux系统之间提供网络共享服务。早期Samba运行于NBT协议(NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口,后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT层,使用TCP协议的445端口。当客户端访问服务器时,信息通过SMB协议进行传输,其工作过程可以分成四个步骤:

1.协议协商

客户端在访问Samba服务器时,发送negprot指令数据包,告知目标计算机其支持的SMB类型。Samba服务器根据客户端的情况,选择最优的SMB类型,并做出回应。

2.建立连接

当SMB类型确认后,客户端会发送session setup指令数据包,提交帐号和密码,请求与Samba服务器建立连接,如果客户端通过身份验证,Samba服务器会对session setup报文作出回应,并为用户分配唯一的UID,在客户端与其通信时使用。

3.访问共享资源

客户端访问Samba共享资源时,发送tree connect指令数据包,通知服务器需要访问的共享资源名,如果设置允许,Samba服务器会为每个客户端与共享资源连接分配TID,客户端即可访问需要的共享资源。

4.断开连接

共享使用完毕,客户端向服务器发送tree disconnect报文关闭共享,与服务器断开连接。

二、samba服务配置案例需求

1.本samba服务器需要创建3个文档目录:/var/share/public存放公共数据;/var/share/training存放技术培训资料;/var/share/devel存放项目开发资料。

2.将/var/share/public目录共享为public,所有员工可匿名访问,但是只能读取文件,没有写入权限。

3.将/var/share/training目录共享为training,只允许管理员admin及技术部的员工tech1和tech2只读访问。

4.将/var/share/devel/目录共享为devel,技术部的员工都可以读取该目录中的文件,但是只有管理员admin及network项目组的员工network1和network2有写入权限。

三、samba服务配置案例配置过程

1.安装samba服务软件

[root@localhost~]# yum install samba*

2.建立共享目录并设置权限和属组

[root@localhost~]# mkdir-p/var/share/public

[root@localhost~]# mkdir-p/var/share/training

[root@localhost~]# mkdir-p/var/share/devel

[root@localhost~]# groupadd tech

[root@localhost~]# groupadd network

[root@localhost~]#useradd-G tech-s/sbin/nologin-M tech1

[root@localhost~]#useradd-G tech-s/sbin/nologin-M tech2

[root@localhost~]#useradd-g network-G tech-s/sbin/nologin-M network1

[root@localhost~]#useradd-g network-G tech-s/sbin/nologin-M network2

[root@localhost~]#chown:tech/var/share/training/

[root@localhost~]#chown:network/var/share/devel/

[root@localhost~]#chmod 555/var/share/public/

[root@localhost~]#chmod 550/var/share/training/

[root@localhost~]#chmod 770/var/share/devel/

3.修改配置设置共享

[root@localhost~]#cd/etc/samba/

[root@localhost samba]#ls

lmhosts smb.conf smbusers

[root@localhost samba]# cp smb.conf smb.conf.bak

[root@localhost samba]# vim smb.conf

修改内容如下:

workgroup=WORKGROUP

添加共享

[public]

path=/var/share/public

public=yes

readonly=yes

[training]

path=/var/share/training

readonly=yes

valid users=admin,@tech

[devel]

path=/var/share/devel

readonly=no

valid users=admin,@network

write list=admin,@network

4.配置SElinux。在samba服务器中并不是所有的操作都会受到Selinux的影响,samba所涉及的SElinux配置参数比较多,不过在smb.conf文件中通过注释的方式已对其中的一部分进行了说明。通过配置该案例总结的必须配置的bool值和安全上下文。

[root@localhost samba]# getsebool-a|grep samba

samba_domain_controller-->off

samba_enable_home_dirs-->off

samba_export_all_ro--> off

samba_export_all_rw --> off

samba_share_nfs-->off

use_samba_home_dirs-->off

[root@localhost samba]# setsebool-P samba_enable_home_dirs on

[root@localhost samba]#setsebool-P samba_export_all_ro on

[root@localhost samba]#setsebool-P samba_export_all_rw on

[root@localhost samba]# getsebool-a|grep smb

allow_smbd_anon_write-->off

smbd_disable_trans--> off

[root@localhost samba]# setsebool-P allow_smbd_anon_write on

[root@localhost samba]#chcon-R -t samba_share_t/var/share

5.添加samba用户

[root@localhost samba]#smbpasswd-a tech1

New SMB password:

Retype new SMB password:

Added user tech1.

[root@localhost samba]#smbpasswd-a tech2

New SMB password:

Retype new SMB password:

Added user tech2.

[root@localhost samba]#smbpasswd-a network1

New SMB password:

Retype new SMB password:

Added user network1.

[root@localhost samba]#smbpasswd-a network2

New SMB password:

Retype new SMB password:

Added user network2.

6.通过配置项username map建立用户名映射,将admin作为root用户的映射帐户

[root@localhost samba]#smbpasswd-a root

New SMB password:

Retype new SMB password:

Added user root.

在/etc/samba/smb.conf中添加以下语句:

security=share//认证方式使用share

passdb backend=tdbsam

username map=/etc/samba/smbusers//添加该语句

确保/etc/samba/smbuesrs文件中包含以下语句:

root= administrator admin

该内容等号左侧为samba用户,等号右侧为映射用户,此处类似于vsftpd的虚拟用户。

7.启动samba服务

[root@localhost samba]# service smb start

启动SMB服务: [确定]启动NMB服务: [确定]

8.进行测试

Windows中可以使用图形化界面进行测试,Linux操作系统下测试可以使用smbclient命令。需要注意Windows中要使用net use命令提交用户名和密码。当同时启用匿名共享、用户验证共享目录时,安全级别保持为share,若使用Windows客户端访问带用户验证的共享,默认会自动尝试以Guest用户登录且无法输入用户名,这时需要通过cmd窗口中的“net use”命令手动指定用户名,命令格式如下:

net use\\samba服务器ip地址\共享名/user:用户名

根据提示输入正确的口令即可。若需要清除Windows XP系统中的共享连接缓存记录,可以在cmd窗口中使用以下命令:

net use\\samba服务器ip地址\共享名/delete 删除访问过的共享缓存

net use*/delete 删除所有访问过的共享连接缓存

[1]张勤,杨章明.Linux服务器配置全程实录[M].北京:人民邮电出版社,2010.

[2]Samba配置手册(2010),[DB/OL].百度文库.

Samba Service Configuration of Linux

CUI Bao-cai

(Tianjin Electronics Information Vocational Technical Institute,Tianjin300000 China)

Samba service of Linux is one of common services on the LAN (local area network).Configured the Samba server,Linux enables to provide stable and safe LAN sharing service,easy to manage.

Samba;Linux;server

TP393

A

1673-582X(2011)11-0077-04

2011-06-22

崔宝才(1979-),男,河北省人,天津电子信息职业技术学院讲师,主要研究方向为计算机网络及Linux操作系统。

猜你喜欢

用户名局域网数据包
《护士进修杂志》投稿程序
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
轨道交通车-地通信无线局域网技术应用
《护士进修杂志》投稿程序
基于VPN的机房局域网远程控制系统
SmartSniff
基于802.1Q协议的虚拟局域网技术研究与实现
机智的快递员
局域网性能的优化