免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3748 | 回复: 2

[samba] samba安装和配置文档以及和域控制器配合部分 [复制链接]

论坛徽章:
0
发表于 2006-03-14 14:41 |显示全部楼层
鉴于网络上的一些说明关于SAMBA和2003域控制器的配合的文章不是很全面,且安全级别大多是在SHARE和USER级别,不能满足企业安全级别(SERVER,DOMAIN,ADS)的需要,我花了一些时间去探索这方面的实践,得出了一些经验,和大家分享。
试验环境:一台PT600R(192.168.78.1,装有LINUX,内核为2.6.9-5.ELsmp;一台WINDOWS2003域控制器且同时也是DNS服务器(192.168.78.250);两者均在192.168.78.网段,且网路畅通。
因本文主要是介绍SAMBA方面的经验,关于AD就不再赘述。
1,SAMBA的安装。

1)准备工作:
www.samba.org上获得最新的samba-3.0.21c.tar.gz,samba文件放置的目为/tmp/samba/samba-3.0.21c.tar.gz;

2).编译、安装
    首先进入/tmp/samba/samba-3.0.21c.tar.gz目录下,执行解包指令
    [root@erp4 samba]# gunzip samba-3.0.21c.tar.gz
    [root@erp4 samba]# tar -vxf samba-3.0.21c.tar
    然后进入samba-3.0.21c目录下,在这个目录中有一个whatsnew.txt的文件,这个文件记录了samba-3.0.21c版本比以前几个版本修正的错误,如果英文不成问题的情况下,建议看看.在此不在赘述,然后直接进入source目录下,samba在配置的时候提供了很多的参数,我们一般用到的就是
          --with-smbmount
          --prefix=
好了,我们继续来编译
[root@erp4 samba-3.0.21c]# ./configure --with-smbmount --prefix=/usr/local/samba
执行make指令
[root@erp4 samba-3.0.21c]# make
这样就可以创建二进制程序和手册页了,然后再执行make install
[root@erp4 samba-3.0.21c]# make install
这样就将安装文件安装完了

2,SAMBA的配置。
   
  1)普通配置。
首先要将源代码包中/examples/smb.conf.default文件拷贝到/usr/local/samba/lib下,并将其改名为smb.conf,然后通过运行/usr/local/samba/bin/testparm程序来测试smb.conf文件,如果testparm运行OK就会列出可装载的服务项,否则给出出错信息.
然后进入/usr/local/samba/lib目录下,去修改smb.conf配置文件,如果只是实现简单需求的话,只需要更改相应的几个简单的
选项即可:
      security = share
找到security的地方,将默认security=user改为share,即共享
;[public]
;   comment = Public Stuff
;   path = /home/samba
;   public = yes
;   writable = yes
;   printable = no
;   write list = @staff
然后再找到上面配置的地方,将前面的;号去掉,将path=处改为你希望共享的目录.

以上只是最简单实现samba的方法,如果还需要其他的需求,可以根据自己的需求进行相应的设置
  
  2)高级配置。
笔者希望能将SAMBA加入到已经在域控制器192.168.78.250上配置好的FILESERVER.SCUT.EDU.CN里,故在[global]里做了如下的修改:
[global]
        workgroup = FILESERVER
        realm = FILESERVER.SCUT.EDU.CN
        netbios name = FILESERVER
        server string = FILESERVER
        security = ADS
        password server = 192.168.78.250
        passdb backend = tdbsam
        log file = /usr/local/samba/var/log.%m
        max log size = 10000
        dns proxy = No
        hosts allow = 202.112.18., 192.168.78., 127.

另外,由于WINDOWS2003上用的是KERBOROS的方式进行用户认证,故现在将SAMBA所在的LINUX也做相应的调整,具体就是运行“setup",若乱码就unset LANG(在环境变量里除去语言的环境变量),然后进入”Authentication configuration“进行修改,防火墙也应该关闭。

最后配置krb5.conf文件,路径在/etc/krb5.conf,建议先备份一份,然后再去vi.注意:大小写要区别。
笔者的配置如下:

[logging]
default = FILE:/var/log/krb5libs.log
kdc = FILE:/var/log/krb5kdc.log
admin_server = FILE:/var/log/kadmind.log

[libdefaults]
default_realm = FILESERVER.SCUT.EDU.CN
dns_lookup_realm = false
dns_lookup_kdc = false

[realms]
FILESERVER.SCUT.EDU.CN = {
  kdc = 192.168.78.250
  kdc = 192.168.78.250
  #admin_server = kerberos.example.com:749
  default_domain = fileserver.scut.edu.cn
}

FILESERVER.SCUT.EDU.CN = {
}

[domain_realm]
.example.com = FILESERVER.SCUT.EDU.CN
example.com = FILESERVER.SCUT.EDU.CN

[kdc]
profile = /var/kerberos/krb5kdc/kdc.conf

[appdefaults]
pam = {
   debug = false
   ticket_lifetime = 36000
   renew_lifetime = 36000
   forwardable = true
   krb4_convert = false
}

4,将samba加入到域控制器里。

1)连接2003服务器

kinit administrator@FILESERVER.SCUT.EDU.CN

Kerberos 的 kinit 命令将测试服务器间的通信,后面的域名FILESERVER.SCUT.EDU.CN是你的活动目录的域名,必须大写,否则会收到错误信息:
kinit(v5): Cannot find KDC for requested realm while getting initial credentials.

如果通信正常,你会提示输入口令(为域控制器上对应用户的口令,此处对应管理员口令),口令正确的话,就返回 bash 提示符,如果错误则报告:
kinit(v5): Preauthentication failed while getting initial credentials.

2)加入域,共享WINDOWS上的信息。
若上一步操作成功,则将服务器加入活动目录: /usr/local/samba/bin/net ads join
去 Windows 2003 服务器检查上面的工作:打开活动目录用户和计算机,查看其中的条目,如果成功的话,就可以看到你的 Linux 服务器。
然后在 Linux 机器上,你就可以采用 smbclient 命令连接到 Windows 的共享文件夹(我的共享文件夹为:fileserver),而不需要输入口令(因为采用了Kerberos )。
/usr/local/samba/bin/smbclient //192.168.78.250/fileserver -k

3)WINDOWS访问SAMBA。
在HOST ALLOW所允许的IP段内的WIN的机器里,在运行里输入:\\192.168.78.18;会弹出一个对话框,实质上是到域控制器(192.168.78.250)上去认证.输入已经建立好的域里的用户名和密码,就可以进去了.
注意:因为用户名的输入格式为:域名\用户名,故域名必须在本机里必须可以解析,故建议在本机的首选和次选DNS里均写192.168.78.250,因为在搭建AD的同时,该机器也被搭建成了一个DNS服务器.

5,SAMBA的启动和停止.

这是一个需要注意的地方,在以前的版本,包括2.2.5,2.2.6,2.2.7,2.2.8和2.2.8a都是通过执行
     /usr/local/samba/bin/smbd -D
     /usr/local/samba/bin/nmbd -D
来启动服务,但是3.0.0以后的版本却将守护进程smbd和nmbd放到/usr/local/sambd/sbin/的目录下(更确切的说应该是samba3.0
将命令和系统服务的守护进程进行了分离来提高了它的安全性),
     这时就需要这样来启动服务了
     /usr/local/samba/sbin/smbd -D (UDP相关)
     /usr/local/samba/sbin/nmbd -D (TCP/IP相关)
     /usr/local/samba/sbin/winbindd -D (NT4和ADS DOMAIN相关,此处必须要!)
     如果希望开机时即运行samba服务,可以将服务启动的指令写道/etc/rc.d/rc.local的文件中,并在指令后边加入&,来将
程序放到后台运行.例如:
[root@erp4 lib]# vi /etc/rc.d/rc.local
#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.

Touch /var/lock/subsys/local
/usr/local/samba/sbin/smbd -D &
/usr/local/samba/sbin/nmbd -D &
/usr/local/samba/sbin/winbindd -D &

停止的话就KILL相关进程,再起就可以了.


有关权限的部分,以后将会继续写出来。谢谢。

论坛徽章:
0
发表于 2006-03-17 15:29 |显示全部楼层
再修改PAM 及ACL 就应该完整了。

论坛徽章:
0
发表于 2006-03-18 09:36 |显示全部楼层
不错,学到不少东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP