zoukankan      html  css  js  c++  java
  • samba结合AD实现大型网络方案

    前言:
    这文章可能在某些情况下还会有各种的不足,所以我只是作一个抛砖来引玉.希望能和大家讨论这个方案存在的问题与如何解决问题.
     
    背景:
    在上次的背景之下(见上一文章),管理员发现公司内现有部门不多,但员工数量非常的多.如果按照用户一个一个的去创建用户并用smbpasswd增加samba的登陆用户非常的麻烦.而且公司内已经存在一台windows 2003 server域控制器(建立方法),并且包含所有员工的帐号信息.在此管理员想通过windows 2003 server域控制器的帐号来作为samba的登陆帐号.
     
    环境:
     
       Windows 2003 Server  Linux Samba's Server
    IP地址   192.168.1.1/24  192.168.1.250/24
    DNS  192.168.1.1  192.168.1.1
    hostname  gz  rhel
     eric.local  
     
     配置:
    一.linux加入到AD域(这步暂时大家先放一下,因为我后面步骤没有使用到.大家先做后面的步骤如果不行在返过来做这一步骤.以前在RHEL AS4的时候,用这步骤是很简单就能成功的,但我用RHEL AS5就不知道为什么怎么都不成了.)
     
    #vi /etc/krb5.conf
     
    修改为以下内容 (注意区分大小写,还有就是自己正确替换为自己的域)
    [logging]
    default = FILE:/var/log/krb5libs.log
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log

    [libdefaults]
    default_realm = ERIC.LOCAL(验证域的realm,必须全部大写)
    dns_lookup_realm = false
    dns_lookup_kdb = false

    [realms]
    ERIC.LOCAL = {
    kdc = 192.168.1.1:88 
    default_domain = ERIC.LOCAL(缺省域名,同样必须全部大写)
    }
    [domain_realm] 
    .eric.local= ERIC.LOCAL
    eric.local = ERIC.LOCAL
     
    后面不用修改,省略......
     
    做完这里的话就测试一下
    #kinit administrator@ERIC.LOCAL            (@ERIC.LOCAL必须大写)
     
    输入AD里的administrator密码,如果没有任何的提示.直接返回到shell里的话就表示已经成功了.但这并不代表已经加入了域.继续看下去
     
    修改samba的主配置文件
    #vi /etc/samba/smb.conf
     
    修改以下的内容
    workgroup = ERIC        # <-- 这里的 workgroup 见图1就知道填什么了.
    realm = ERIC.LOCAL   # <-- 建立的域名称
    security = ADS
    password server = 192.168.1.1 # <-- windos AD 域控制器的完整主机名。也可以用 IP 地址来代替
     
    workgroup的填写内容就在登陆到里显示了!!,图1
     
    然后就基本可以了.
    启动samba服务
    #service smb start
     
    同步时钟,加入域必须时差在5分钟内!
    #ntpdate 192.168.1.1
     
    测试与加入域
     
    #net ads join  (在AS4的话用这句很容易就加到域的,但AS5中我怎么都加不到.所以krb5.conf文件就变得似呼没有用了.)
     
    #net rpc join -S gz.eric.local -U administrator (如果上句不行就试试这一句,我AS5就是用rpc方式连接域的,功能上没有ADS强.)
     
     
    如果能够加入后,在AD域可以在windows 2003 server里看到rhel
     
    到这里其实就只是加入域而已,但并不能用AD帐号登陆samba
     
    二.将AD帐号同步到linux里.这里要用到一个工具winbind
    修改samba的主配置文件
    #vi /etc/samba/smb.conf
     
    在配置文件中添加以下内容
    idmap uid = 10000 - 20000
    idmap gid = 10000 - 20000
    template shell = /sbin/nologin
    template homedir = /home/%D/%U
    winbind separator = %
    winbind use default domain = yes
    winbind enum users = yes
    winbind enum groups = yes
    encrypt passwords = yes
     
    修改以下内容
    [home]
             path = /home/%D/%U
             browsable = no
             writable = yes
             create mask = 0664
             directory mask = 0775
     
    前面不是看到/home/%D/%U这样的目录吗?我们就要手工去创建这个目录了.不过这里比较麻烦,AD帐号的个人目录必须要工的去创建,而不能说自动的检测是否已存在,不存在自动创建.不知道哪个高手能够说说有什么方法解决,我想到用脚本去做.但还在测试中...大家说说你们的高见
    #mkdir /home/ERIC
     
    #chmod -R 777 /home/ERIC
     
     
    添加winbind写入帐号的信任
    #vi /etc/nsswitch.conf
     
    修改以下位置
    passwd:    files   winbind
    shadow:    files   winbind
    group:       files   winbind
     
    保存然后就重启两个服务
    #service smb restart
     
    #service winbind start
     
    再加入域语句和前面一样,我这就不再写了.
     
    加入成功后就测试一下!
    #wbinfo -t       #看winbind是否正常运行
     
    #wbinfo -u      #看AD用户是否同步过来了
     
     
    基本上到这里就已经完成了配置.到windows测试一下吧!
     
     
    我先来说一下存在的问题:
    1.首先最亟待解决的问题就是AD帐号主目录的自动建立问题,一直想不到好的解决方法.暂时有一个方向是用脚本去实现,还在研究当中.
     
    2.net ads join不能够加入域,只能用net rpc join的方法.不知道哪个高人能指点一下.
     
    以上是我暂时想到的问题,大家在操作研究中如果发现有什么问题可以提出来大家讨论一下.学习Linux就必须多思考,而不是到处搜索.版本多了,并不一定网上的转载就正确.讨论才是解决的好办法!哈哈
  • 相关阅读:
    cookie、 Session Storage 、 Local Storage
    json 常用的方法
    ssm 框架 使用ajax异步,实现登陆
    ssm框架整合,配置文件中的配置内容
    ipv4和ipv6的区别
    分析域名的解析过程
    网络体系结构总结
    线程同步和异步
    博客目录
    [STM32H743]按键控制LED
  • 原文地址:https://www.cnblogs.com/studio313/p/1638045.html
Copyright © 2011-2022 走看看