文本版|topic 高级搜索
   名人堂 帮助 论坛制度 意见反馈 | 首页 博客 周新贴 专题 求职 读书
RSS 底部
 
社区导航: 专家门诊   网络技术   操作系统   数据库   程序设计   系统应用   考试认证   CIO及信息化   站长交流   综合交流   下载基地  51CTO产品服务 设为首页 | 收藏本站
51CTO技术论坛» Linux & Advanced Application » linux环境下 samba domain级别验证       [ 打印]  [ 订阅]  [ 收藏]  [ 推荐给朋友]   [ 本帖文本页]

论坛跳转:
     
标题: linux环境下 samba domain级别验证  ( 查看:334  回复:4 )   
 该主题悬赏的20无忧币已被全部领完 
 
zhangpc
新新人类  点击可查看详细



帖子 2
精华 0
无忧币 2
积分 3
阅读权限 20
注册日期 2008-6-17
最后登录 2008-6-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-6-19 15:52   标题:linux环境下 samba domain级别验证
上一帖 |
请问samba domain级别验证怎么做啊?急 !
能粘贴一下详细配置过程或步骤吗?谢谢啊!!!!!!!!!!!!!!



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-6-19 15:521楼
[ 顶部 ]
 
特爱蚂蚁
管理员  点击可查看详细


诚信兄弟   行业勋章   技术勋章   管理员专用   十二生肖之牛  
帖子 1675
精华 3
无忧币 3284
积分 1572
阅读权限 255
来自 (保密)
注册日期 2008-6-3
最后登录 2008-10-10 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-6-19 16:01  该回复被 zhangpc 奖励 20 点无忧币
此回复于2008-07-02 08:11被 termite3304 评为最佳答案

鉴于网络上的一些说明关于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相关进程,再起就可以了.


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

不知道这个对你有没有帮助



善用论坛论坛搜索功能会使您事半功倍 ...
建议大家发帖前先抬头看看整个论坛和板块的置顶帖了解论坛各项最新制度 ...
请选用高效的沟通方式来和大家沟通 ...同时应该具备一些提问的智慧 ...
勤劳致富,无忧币不再是难题 ...
2008-6-19 16:012楼
[ 顶部 ]
 
zhangpc
新新人类  点击可查看详细



帖子 2
精华 0
无忧币 2
积分 3
阅读权限 20
注册日期 2008-6-17
最后登录 2008-6-19 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-6-19 16:13   标题:回复 #2 特爱蚂蚁 的帖子

实在太谢谢了  "特爱蚂蚁"



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-6-19 16:133楼
[ 顶部 ]
 
termite3304
主版主  点击可查看详细


十二生肖之虎   白羊座   行业勋章   技术勋章   诚信兄弟  
帖子 2125
精华 4
无忧币 36410
积分 3301
阅读权限 150
注册日期 2007-8-1
最后登录 2008-10-10 离线

[查看资料]  [发短消息]  [Blog
[个人主页]         
发表于:2008-6-19 16:22 
“找到security的地方,将默认security=user改为share,即共享”

这是安全级别的选项,
这里应该改为 security = domain  ,这样才能实现通过AD来认证



Be the change you want to see in the world!
2008-6-19 16:224楼
[ 顶部 ]
 
ksni123
新新人类  点击可查看详细



帖子 24
精华 0
无忧币 12
积分 25
阅读权限 20
注册日期 2008-6-10
最后登录 2008-10-4 离线

[查看资料]  [发短消息]  [Blog
       
发表于:2008-6-21 10:17 
好东西啊,同意啊,支持!



论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币)
2008-6-21 10:175楼
[ 顶部 ]
     
论坛跳转:  

| | |

| | |

| | |

标记已读 · 删除论坛Cookies · 文本版 · WAP
 
| 诚征版主 | 版主堂 | 意见建议 | 大史记 | 论坛地图
Copyright©2005-2008 51CTO.COM  Powered by Discuz!
本论坛言论纯属发布者个人意见,不代表51CTO网站立场!如有疑义,请与管理员联系。
京ICP备05051492号