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

  • 相关阅读:
    Python 模块 itertools
    Python 字符串的encode与decode
    python 模块 hashlib(提供多个不同的加密算法)
    暴力尝试安卓gesture.key
    hdu 1300 Pearls(DP)
    hdu 1232 畅通工程(并查集)
    hdu 1856 More is better(并查集)
    hdu 1198 Farm Irrigation(并查集)
    hdu 3635 Dragon Balls(并查集)
    hdu 3038 How Many Answers Are Wrong(并查集)
  • 原文地址:https://www.cnblogs.com/studio313/p/1939635.html
Copyright © 2011-2022 走看看