歡迎您光臨本站 註冊首頁

哈哈..終於加入域了....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'
#
smb.conf裡面的
netbios name=CSR-SERVER-TEST  //這個是錯誤的
netbios name=CSRSERVERTEST //這樣就行了,其實可以用hostname來測試一下

# hostname  -f
CSRSERVERTEST
# hostname -f
hostname: 未知的主機
#


上面這個主要是samba里的netbios name搞錯了,沒有按FQDN標準來寫.改過來就可以了.



# smbclient  -L //domain -k
OS= Server=

        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= Server=

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

        Workgroup            Master
        ---------            -------
#


http://bbs.chinaunix.net/viewthread.php?tid=968601  問題參考

[ 本帖最後由 楓影誰用了 於 2008-1-2 16:41 編輯 ]
《解決方案》

再詳細一些就更好了
《解決方案》

這個就是轉的了

本文是一篇設置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配置文件:

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


ticket_lifetime = 24000
default_realm = MYDOMAIN.COM
dns_lookup_realm = false
dns_lookup_kdc = false


MYDOMAIN.COM = {
kdc = 192.168.2.248
# admin_server = kerberos.example.com:749
default_domain = MYDOMAIN.COM
}


.mydomain.com = MYDOMAIN.COM
mydomain.com = MYDOMAIN.COM


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


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


3.連接2003伺服器

kinit filesrv@MYDOMAIN.COM

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 filesrv@MYDOMAIN.COM
輸入口令后,建立帳號:

將伺服器加入活動目錄:
/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 編輯 ]
《解決方案》

接下來就可以做proxy用域驗證了....呵呵
《解決方案》

希望LZ 再接再厲!!!
《解決方案》

編譯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
# /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



參考資料:
http://bbs.chinaunix.net/viewthread.php?tid=815742&extra=page%3D2%26filter%3Ddigest&page=1
http://blog.chinaunix.net/u/2937/showart.php?id=86752
http://allanzr.spaces.live.com/blog/cns!749fe009847fb691!134.entry

[ 本帖最後由 楓影誰用了 於 2007-4-28 15:59 編輯 ]
《解決方案》

如果squid也用域驗證,那設置好ie的代理伺服器,就可以直接上網了吧
《解決方案》

原帖由 jealt 於 2007-4-28 21:45 發表
如果squid也用域驗證,那設置好ie的代理伺服器,就可以直接上網了吧

是啊...如果是AD組裡允許上網的用戶,是可以直接上的(不會彈出密碼驗證的窗口),如果是AD里不允許的域用戶,是不會彈出密碼驗證窗口,直接就回復提示說沒有允許上網.

如果不是域用戶,是會彈出密碼驗證的.
《解決方案》

高人,學習對像!
《解決方案》

小弟正在搞postfix用2003AD驗證呢......

[火星人 ] 哈哈..終於加入域了....Samba 與squid 都可以統一使用域(AD)驗證了已經有1042次圍觀

http://coctec.com/docs/service/show-post-12472.html