`
atell
  • 浏览: 158153 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

[转]samba服务的原理与搭建

阅读更多

samba的安装

gunzip
tar xvf
cd source
./configure --with-smbmount --prefix=/usr/local/samba
make
make install

vi /etc/ld.so.conf
/usr/local/samba3.4/lib
ldconfig

vi /etc/rc.d/rc.local

/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
/usr/local/samba/sbin/winbindd -D &


samba原理

Samba服务功能强大,这与其通信基于SMB协议有关。SMB不仅提供目录和打印机共享,还支持认证、权限设置。在早期,SMB运行于NBT协议 (NetBIOS over TCP/IP)上,使用UDP协议的137、138及TCP协议的139端口;后期SMB经过开发,可以直接运行于TCP/IP协议上,没有额外的NBT 层,使用TCP协议的445端口。

(1)samba的工作流程
当客户端访问服务器时,信息通过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报文关闭共享,与服务器断开连接。

(2)samba相关进程
Samba服务是由两个进程组成,分别是nmbd和smbd。
nmbd:其功能是进行NetBIOS名解析,并提供浏览服务显示网络上的共享资源列表。
smbd:其主要功能就是用来管理Samba服务器上的共享目录、打印机等,主要是针对网络上的共享资源进行管理的服务。当要访问服务器时,要查找共享文件,这时我们就要依靠smbd这个进程来管理数据传输

 

samba搭建

一、安装和启动samba
(1)使用命令rpm -qa | grep samba可以检查是否安装了samba服务,没有安装下载安装一个即可;
(2)关闭防火墙:可使用service iptables stop命令关闭防火墙,也可以对防火墙进行修改,放行某些端口(如445);
(3)samba服务操作:service smb start | stop | restart;如果想让samba服务开机自动加载,可使用ntsysv命令打开开机自动加载的服务,并勾选smb后按Tab键确认退出,即可实现开机加载samba服务;

二、配置samba服务
(1)samba服务的配置文件是 /etc/samba/smb.conf,smb.conf文件中包括4中结构, [Global]、[Homes]、[printers]、[Userdefined_shareName],其中Globa用于定义全局参数和缺省 值;Homes用于用户的home目录共享;Printers用于定义打印机共享;Userdefined_ShareName用于自定义共享(可有多 个)。(说明:文件中开头带有"#"为说明文件,不执行, 开头带有";"为举例文件,不执行(若想让其执行,去掉";"));
(2)配置全局参数[global]
1) 基本全局参数
workgroup 设置samba要加入的工作组;server string 指定浏览列表里的机器描述;netbios name 设置samba的NetBIOS名字 (需要自己添加);client code page 设置客户字符编码也 936为简体中文(需要自己添加);display charset、unix charset、dos charset是设置字符集(主要目的是支持中文,通过locale命令获取LANG的值,这里为zh_CN.GBK,可在相应 的.bash_profile里添加export LANG=zh_CN.GBK后source即可);

2) 日志全局参数
log file 指定日志文件的名称;max log size 指定日志文件的最大尺寸(KB)。

3) 安全全局参数
security 定义samba的安装等级:share:用户不需要用户名和密码即可登陆samba服务器;user:由提供samba服务的samba服务器负责检查帐 户及口令;server:检查帐户及口令的工作指定由另一台WindowsNT/2000或samba服务器负责;domain:指定windowsNT /2000域控制器来验证用户帐户、密码;

encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd
这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径。
hosts allow 定义允许访问此服务器的IP地址,如192.168.1. 意思为只有192.168.1.0这个网段的IP才能访问该服务器

(3)配置home共享[home]
由于在home共享默认将用户的宿主目录进行了共享,这是十分危险的。所以我们必须删除home共享,方法很简单,将所有的指令前加";"或"#",让这条指令不执行,也就不对用户的宿主目录共享了

(4)配置自定义共享
自定义共享,只需在文件最后加入[$name],$name任意起,其参数意义为:comment 描述该共享的名称;path 定义该共享的目录;browseable 指定共享的目录是否可浏览;writable 指定共享的目录是否有写入权限;read only 指定共享的目录为只读权限;public 指定是否可以允许Guest帐户访问;guest ok 通public相同,yes为允许guest访问;only guest 指定只有guest用户可以访问;calid users 指定访问该共享的用户。

(5)其他
1) 访问服务器需用户名和密码验证:命令行下输入smbpasswd -a test,使test用户同时成为samba用户(前提Global中设置security=user);smbpasswd -d test 禁用test用户作为samba用户、smbpasswd -e test 启用test用户作为samba用户、smbpasswd -x test 删除test用户作为samba用户;
2) 客户端只能通过用户访:在相应[Userdefined_shareName]中添加valid users = test,即可只允许该用户登录;
3) 上面实例中给出的是一个针对guest用户仅read功能的情况,那其中的东西该如何维护,可以新建一用户,其宿主目录设为/home/seqa_photo,仅该用户维护即可。

完成以上配置后重启samba服务,在文件窗口打开"\\\10.20.146.13"即可看到存放在linux上的内容。


 

 

乱码处理

用windows访问Linux下的samba服务器,在访问有汉字的文件夹的时候,看到里面的中文文件名都是乱码。
解决办法:
(1) 打开/etc/sysconfig/i18n
设置为:
LANG="zh_CN.GB2312"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN.GB2312:zh_CN.UTF-8:zh:en_US.UTF-8:en_US:en:ja_JP.UTF-8:ja_JP:ja"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"
    其中LANG="zh_CN.GB2312" 是必须的(如果你不想让中文乱码的话!!!),其它的可以按照自已的需求来改变。
(2) 打开smb.conf
添加:
    display charset = cp936
    unix charset = cp936
    dos charset = cp936
重新启动系统即可。

注:主要还要看Linux服务器用什么locale,比如我用GBK的,smb.conf里那些全都得改成GBK,而不是cp936。

  • 大小: 5.9 KB
  • 大小: 4.7 KB
  • 大小: 2.9 KB
  • 大小: 2.3 KB
  • 大小: 3.1 KB
  • 大小: 3.5 KB
  • 大小: 16.2 KB
分享到:
评论

相关推荐

    linux_samba详解

    Samba的工作原理以及安装,Samba服务器的搭建流程,相应配置以及调试。

    CentOS6.5下搭建文件共享服务Samba的教程

     某公司的管理员需要搭建SAMBA服务器,IP地址及允许的访问网段自定义。SAMBA服务器的安全级别为user级,所在工作组为WORKGROUP,使添加的用户可以访问其个人目录及共享目录/smb_share,并可以对目录读、写、执行。 ...

    企业级Linux服务攻略

    第1章 Linux服务器的搭建与测试 1.1 Linux的安装 1.1.1 Linux简介 1.1.2 Red Hat Enterprise Linux 5新特性介绍 1.1.3 Red Hat Enterprise Linux 5的安装 1.2 常规网络配置 1.2.1 配置主机名 1.2.2 使用ifconfig...

    Linux网络服务与安全视频.zip

    03.SAMBA服务搭建和配置 010.对比ftp和NFS以及samba优缺点 011.SAMBA安全模式与windows之间的访问 012.SAMBA账户的添加 013.smbclient以及挂载方式访问资源 04.数据加密学 014.数据加密算法概述以及openssl命令的...

    企业级Linux服务攻略.陈涛等.扫描版.pdf

    全书分为12章,阐述了linux网络服务的知识,内容涵盖linux安装及网络环境搭建、samba服务、dns服务、dhcp服务、sendmail服务、ftp、apache、iptables与nat、代理服务、nfs、nis、网络访问等内容。书中用生活化的语言...

    嵌入式系统开发基础——基于ARM微处理器和Linux操作系统[滕英岩][习题解答]

    2.3 Samba服务 2.4 Windows和LJnux混合开发模式 2.4.1 VMware虚拟机设置共享 2.4.2 SSH客户端软件 2.4.3 Windows下的文本编辑工具 2.5 GCC编译器 2.5.1 GCC的编译过程 2.5.2 GCC的其他选项 2.6 GDB调试器 ...

    (全)传智播客PHP就业班视频完整课程

    9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session...

    史上最全韩顺平传智播客PHP就业班视频,10月份全集

    9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session...

    史上最全传智播客PHP就业班视频课,8月份视频

    9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session...

    史上最全韩顺平传智播客PHP就业班视频,9月份全集

    9-23 3.session②-获取session 更新session 删除session session细节和原理深入讨 9-23 4.session③-购物车 cookie禁用后如何使用session session防用户非法登录 9-23 5.session④-验证码防恶意攻击 9-23 6.session...

Global site tag (gtag.js) - Google Analytics