zoukankan      html  css  js  c++  java
  • Samba 与squid 都可以统一使用域(AD)验证

    其实蛮简单的.红帽中文站也说了,只要改 /etc/krb5.conf 和/etc/samba/smb.conf这两个文件,然后用net ads join加就行了.

    一开始在加的时候,老是出错
    引用:root@CSR-SERVER-TEST ~]# net ads join -Uadministrator
    administrator's password: 
    winscard_clnt.c:320:SCardEstablishContextTH() Cannot open public shared file: /var/run/pcscd.pub
    winscard_clnt.c:320:SCardEstablishContextTH() Cannot open public shared file: /var/run/pcscd.pub
    Using short domain name -- hyprt.com
    Failed to set servicePrincipalNames. Please ensure that
    the DNS domain of this server matches the AD domain,
    Or rejoin with using Domain Admin credentials.winscard_clnt.c:320:SCardEstablishContextTH() Cannot open public shared file: /var/run/pcscd.pub
    Disabled account for 'CSR-SERVER-TEST' in realm 'HYPRT.COM'
    [root@CSR-SERVER-TEST ~]#
    smb.conf里面的
    netbios name=CSR-SERVER-TEST  //这个是错误的
    netbios name=CSRSERVERTEST //这样就行了,其实可以用hostname来测试一下

    引用:[root@CSRSERVER ~]# hostname  -f
    CSRSERVERTEST
    [root@CSR-SERVER-TEST ~]# hostname -f 
    hostname: 未知的主机
    [root@CSRSERVER ~]# 



    上面这个主要是samba里的netbios name搞错了,没有按FQDN标准来写.改过来就可以了.




    引用:[root@CSRSERVER etc]# smbclient  -L //domain -k
    OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]

            Sharename       Type      Comment
            ---------       ----      -------
            Manager         Disk      
            QC              Disk      
            HanseYang       Disk      
            C$              Disk      預設共用
            hr              Disk      
            Ppc             Disk      
            Engineer        Disk      
            XLZeng          Disk      
            CTP             Disk      
            PE              Disk      
            est             Disk      
            IE              Disk      
            MeiZ            Disk      
            Human           Disk      
            GLSu            Disk      
            pmc             Disk      
            IPC$            IPC       遠端 IPC
            PUR             Disk      
            yorky           Disk      
            pre-press       Disk      
            AprilH          Disk      
            ADMIN$          Disk      遠端管理
            shipping        Disk      
            D$              Disk      預設共用
            Cust PA         Disk      
            Customer        Disk      
            Finance         Disk      
            Michelle Ma     Disk      
            FrankZhao       Disk      
            SYSVOL          Disk      登入伺服器共用 
            finhy           Disk      
            NETLOGON        Disk      登入伺服器共用 
            public_data     Disk      
            product         Disk      
            WangW           Disk      
    OS=[Windows Server 2003 R2 3790 Service Pack 2] Server=[Windows Server 2003 R2 5.2]

            Server               Comment
            ---------            -------

            Workgroup            Master
            ---------            -------
    [root@CSRSERVER etc]# 



    http://bbs.chinaunix.net/viewthread.php?tid=968601  问题参考

    [ 本帖最后由 枫影谁用了 于 2008-1-2 16:41 编辑 ]



     lovegqin 回复于:2007-04-26 10:48:22

    再详细一些就更好了


     枫影谁用了 回复于:2007-04-26 11:20:20

    本文是一篇设置samba服务器加入win2003活动目录的工作笔记 。 


    1.samba服务器软件需求 
    krb5-workstation-1.2.7-19 
    pam_krb5-1.70-1 
    krb5-devel-1.2.7-19 
    krb5-libs-1.2.7-19 
    samba-3.0.5-2 

    2.配置kerberos(关键) 
    下面配置参数让 Kerberos 进程知道处理活动目录服务器,对 /etc/krb5.conf 做适当的修改,修改时需要注意的是 Kerberos 是大小写敏感的。 
    这是我的krb5.conf配置文件: 
    [logging] 
    default = FILE:/var/log/krb5libs.log 
    kdc = FILE:/var/log/krb5kdc.log 
    admin_server = FILE:/var/log/kadmind.log 

    [libdefaults] 
    ticket_lifetime = 24000 
    default_realm = MYDOMAIN.COM 
    dns_lookup_realm = false 
    dns_lookup_kdc = false 

    [realms] 
    MYDOMAIN.COM = { 
    kdc = 192.168.2.248 
    # admin_server = kerberos.example.com:749 
    default_domain = MYDOMAIN.COM 


    [domain_realm] 
    .mydomain.com = MYDOMAIN.COM 
    mydomain.com = MYDOMAIN.COM 

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

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



    3.连接2003服务器 

    kinit [email]filesrv@MYDOMAIN.COM[/email] 

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

    如果通信正常,你会提示输入口令,口令正确的话,就返回 bash 提示符,如果错误则报告: 
    kinit(v5): Preauthentication failed while getting initial credentials. 

    4.配置samba 
    修改/etc/samba/smb.conf如下几行 

    workgroup = MYDOMAIN 
    netbios name = filesrv 
    server string = Filesrv 

    realm = MYDOMAIN.COM // 活动目录服务器域名 
    security = ADS // 采用活动目录认证方式 
    encrypt passwords = yes // 采用加密的口令 

    重新启动samba服务 
    service smb restart 

    配置完 Samba 和 Kerberos 后,需要在 Windows 2000 活动目录下建立一个计算机帐号,如果需要在 Linux 上来完成的话,运行: 
    /usr/kerberos/bin/kinit [email]filesrv@MYDOMAIN.COM[/email] 
    输入口令后,建立帐号: 

    将服务器加入活动目录: 
    /usr/local/samba/bin/net ads join 

    去 Windows 2003 服务器检查上面的工作:打开活动目录用户和计算机,查看其中的条目,如果成功的话,就可以看到你的 Linux 服务器。 (下面有图)

    然后在 Linux 机器上,你就可以采用 smbclient 命令连接到 Windows 的共享文件夹,而不需要输入口令(因为采用了Kerberos )。 
    /usr/local/samba/bin/smbclient //w2k/c$ -k 

    这个命令可能会产生一些错误信息,但是不要紧它能工作的。

    [ 本帖最后由 枫影谁用了 于 2007-4-26 11:42 编辑 ]




     





     枫影谁用了 回复于:2007-04-26 11:25:37

    接下来就可以做proxy用域验证了....呵呵


     lovegqin 回复于:2007-04-26 11:34:56

    希望LZ 再接再厉!!!


     枫影谁用了 回复于:2007-04-28 15:54:06

    编译Squid
    ./configure --prefix=/usr/local/squid --sysconfdir=/etc/squid --enable-async-io=32 --enable-auth="basic,ntlm" --enable-external-acl-helpers="wbinfo_group " --enable-kill-parent-hack --enable-poll --enable-removal-policies="heap,lru" --disable-icmp --disable-delay-pools --disable-useragent-log -disable-arp-acl --disable-ident-lookups --disable-internal-dns --enable-err-language="Simplify_Chinese" --enable-storeio=aufs,ufs,diskd,coss,null 

    make;make install

    vi /etc/squid/squid.conf
    找到 cache_dir,http_port,http_access,cache_effective_user & cache_effective_ group
    去掉cache_dir,http_port,http_reply_access allow all前面的#号
    把#cache_effective_user nobody改成cache_effective_user squid
    #cd /usr/local/squid/var
    #mkdir cache
    #useradd -s /sbin/nologin -c "Only Squid" squid 加squid用户
    #chown squid:squid cache  (默认所有者和组是root,不改在后面的配置过程中将出现错误,下同)
    #chown squid:squid logs   (同上)

    启动squid:
    #/usr/local/squid/sbin/squid -z 
    [root@MISDELL1 squid-2.6.STABLE11]# /usr/local/squid/sbin/squid -z
    FATAL: Could not determine fully qualified hostname.  Please set 'visible_hostname'
    这个错误是在squid.conf里没有设置主机名引起的,用hostname -f,得出主机名,再填上去即可。
    #/usr/local/squid/sbin/squid -NCd1 (后面是数字1哦!)
    如果没问题的话将显示:"Ready to serve requests".
    #/usr/local/squid/sbin/squid 


    如果在启动squid时出现这个错误(FATAL: ERROR: Unknown policy lru),时要在./configure时加上参数(--enable-removal-policies="heap,lru")

    先将squid.conf里的http_access deny all改为http_access allow all
    重启动squid,看看可不可以代理上网。可以的话,再开始设置结合域验证。开始设置域验证的时候要再将http_access allow all改为http_access deny all


    然后在squid.conf加上: Domain_Internet_Users这个组里的用户可以上网。
    auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
    auth_param ntlm children 5
    auth_param ntlm keep_alive on
    auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic
    auth_param basic children 5
    auth_param basic realm Squid proxy-caching web server
    auth_param basic credentialsttl 2 hours
    auth_param basic casesensitive off

    external_acl_type NT_global_group %LOGIN /usr/local/squid/libexec/wbinfo_group.pl
    acl ProxyUsers external NT_global_group Domain_Internet_Users
    acl AuthenticatedUsers proxy_auth REQUIRED
    http_access allow AuthenticatedUsers ProxyUsers
    http_access deny all


    chgrp squid /var/cache/samba/winbindd_privileged
    chmod -R 750 /var/cache/samba/winbindd_privileged
    如果使用域帐号登陆计算机,那么浏览网页时就不会提示输入用户名及密码认证,非域用户登陆计算机,通过代理访问网站时,IE将弹出用户身份验证窗口要求用户输入用户名及密码验证。 
    在squid.conf中同样可以设置允许访问的域用户,及不允许访问的域用户。对于windows域用户来说,说有的验证都是透明的。不需要手动输入用户名及密码,方便用户的使用。


    另外squid封qq 还是挺容易的 squid.conf里加规则
    第二条denyqq_ip.list可以不要
    acl badurls dstdomain -i .qq.com .tencent.com
    http_access deny badurls
    acl qq_ip dst "/etc/squid/denyqq_ip.list"
    http_access deny  qq_ip

  • 相关阅读:
    C++小知识之Vector用法
    云计算和大数据入门
    C++解析JSON之JsonCPP
    OSS研究
    linux内核--进程地址空间(三)
    学习笔记:修改网吧计费系统
    学习笔记:找回电脑开机密码
    例说C#深拷贝与浅拷贝
    JBossESB教程(一)——开发环境的搭建
    Java集合---ConcurrentHashMap原理分析
  • 原文地址:https://www.cnblogs.com/studio313/p/1939635.html
Copyright © 2011-2022 走看看