天天看點

Linux windowsAD統一認證

Linux+samba-winbind+AD實作統一認證

轉載自:http://www.toxingwang.com/linux-unix/linux-admin/584.html

管理的Linux伺服器和Windows伺服器如果很多,如果都用本地使用者名管理,要管理和記住幾十台甚 至上百台伺服器的 不同賬号不同密碼,這是很難的;而如何所有伺服器賬号密碼都設定一樣,那有完全沒有安全性可言。正好網絡中有域控制器,而且所有使用者也加入了 Windows 域,且OA等應用系統也采用統一的域驗證,是以可以使用AD域來驗證Linux伺服器的使用者登入。具體如下:

環境:

認證伺服器OS:Windows Server 2012核心版

認證伺服器IP:192.168.18.210

認證伺服器DNS搜尋名稱:test.com

1、修改主機名稱、DNS和防火牆政策:

a、修改主機名:

# vim /etc/sysconfig/network      
##主機名字尾為test.com,且主機名不能重複。

b、修改DNS

# vim /etc/resolv.conf
##修改為如下内容
search test.com
nameserver 192.168.18.210      

c、編輯vim /etc/hosts,取消本機計算機名部分解析

d、vim /etc/sysconfig/iptables檔案,添加兩條政策,允許本機與DC之間的全部通訊:

-A OUTPUT -m state --state NEW -m tcp -p tcp -d 192.168.18.210 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s 192.168.18.210 -j ACCEPT      

重新開機伺服器使所有更改生效

2、時間同步

a、編輯計劃任務,加入時間同步

# vim /etc/crontab
##加入如下時間同步内容,實作每小時與伺服器同步一次時間
00 * * * * root /usr/sbin/ntpdate test.com;/usr/sbin/hwclock -w      

b、将crond服務加入開機啟動,并立即重新開機crond服務

# chkconfig crond on
# service crond restart      

3、安裝samba和krb5:

a、安裝支援軟體:

#yum -y install pam_krb5* krb5-libs* krb5-workstation* krb5-devel* krb5-auth samba samba-winbind* samba-client* samba-swat*      

b、檢查krb5相關元件是否全部安裝

# rpm -qa|grep krb
pam_krb5-2.3.11-9.el6.x86_64
krb5-libs-1.9-33.el6_3.3.x86_64
krb5-devel-1.9-33.el6_3.3.x86_64
krb5-auth-dialog-0.13-3.el6.x86_64
python-krbV-1.0.90-3.el6.x86_64
krb5-workstation-1.9-33.el6_3.3.x86_64      

c、檢查Samba元件是否全部安裝

# rpm -qa|grep samba
samba-swat-3.5.10-125.el6.x86_64
samba-common-3.5.10-125.el6.x86_64
samba-winbind-clients-3.5.10-125.el6.x86_64
samba-3.5.10-125.el6.x86_64
samba-winbind-3.5.10-125.el6.x86_64
samba-client-3.5.10-125.el6.x86_64      

d、驗證samba基礎庫支援

# smbd -b|grep
 LDAPHAVE_LDAP_HHAVE_LDAPHAVE_LDAP_ADD_RESULT_ENTRYHAVE_LDAP_INITHAVE_LDAP_INITIALIZEHAVE_LDAP_SASL_WRAPPINGHAVE_LDAP_SET_REBIND_PROCHAVE_LIBLDAPLDAP_SET_REBIND_PROC_ARGS
 KRBHAVE_KRB5_HHAVE_KRB5_LOCATE_PLUGIN_HHAVE_ADDRTYPE_IN_KRB5_ADDRESSHAVE_DECL_KRB5_AUTH_CON_SET_REQ_CKSUMTYPEHAVE_DECL_KRB5_GET_CREDENTIALS_FOR_USER……以下略
 ADSWITH_ADSWITH_ADS
 WINBINDWITH_WINBINDWITH_WINBIND      

至此,Samba和KRB5的基本安裝已經完成,接下來就是配置

4、加域:

a、啟動相關服務并設定開機啟動:

# service winbind start
# chkconfig winbind on      

b、使用setup配置工具,并選擇“驗證配置”,選擇下面三項:

    自己去修改腳本太累了。減輕一下工作量,咱們先裝個stuptools來配置算了。  

 #yum install setup*
 #setup      

針對裡面的選項做文字說明。

“use winbind” ##對應中文“使用winbind”

“use kerberos” ##對應中文“使用kerberos”

“use winbind authertication” ##對應中文“使用winbind驗證”

然後點選【下一步】,按如下填寫:

域:test.com

KDC:dc-01.test.com

管理伺服器:dc-01.test.com

##并勾選下面兩個選項。

再次點選【下一步】,按如下選擇或填寫:

安全模型:ADS

域:TEST ##注意大寫

域控制器:dc-01.test.com

ADS域:test.com

模闆Shell: /bin/bash

點選【加入域】,彈出儲存提示,選擇【是】後,會彈出輸入域管理者賬号密碼的,按提示輸入即可。

完成後退出【setup】,看螢幕提示是否有如下這樣的錯誤:

【net_update_dns_internal: Failed to connect to our DC!】      

如果傳回如下,則加入正常:

[/usr/bin/net join -w TEST -S dc-01.test.com -U Administrator]
Enter Administrator's password:<...>
Using short domain name -- TEST
Joined 'PAYSERVER02' to dns domain 'test.com'      

啟動 Winbind 服務: [确定]

正在啟動 oddjobd: [确定]

c、測試winbind讀取域控資訊是否正常

# wbinfo –t 
##測試RPC通訊,提示succeeded表示成功cheTEST the trust secret for domain TEST via RPC calls succeeded
# wbinfo -u
 ##檢視域使用者TEST\guestTEST\administratorTEST\krbtgtTEST\barlowliu      
……以下省略……

##如果如上,則讀取正常

# wbinfo -g ##檢視域組      

TEST\domain computers

TEST\cert publishers

TEST\domain users

TEST\domain guests

TEST\ras and ias servers

TEST\domain admins

TEST\schema admins

TEST\enterprise admins

……以下省略……

上述兩個指令執行後如果可以看到域中的使用者群組則正常。如果提示如下,則表示與域控制器同步還未完成:

Error looking up domain users ##稍等後再測試即可      

測試ntlm元件

# ntlm_auth --username=administrator
password: ##輸入使用者密碼
NT_STATUS_OK: Success (0x0)
驗證代域
# net ads testjoin
Join is OK      

d、使用域賬戶登入

此時就可以使用 [email protected]這樣的域使用者登入Linux伺服器了,但登入後顯示如下:

Could not chdir to home directory /home/TEST/barlowliu: No such file or directory
-bash-4.1$      

##沒有自動建立使用者的家目錄,下面就來解決該問題

5、解決域使用者登入後沒有家目錄的問題:

a、建立域使用者家目錄:

# mkdir /home/TEST
# chmod 1777 /home/TEST      

b、編輯/etc/samba/smb.conf配置檔案,添加如下一行:

template homedir = /home/%D/%U
##修改如下一行如下,就可以實作在登入時不需要輸入域名
winbind use default domain = true      

c、編輯/etc/pam.d/system-auth,增加如下一行:

session required pam_mkhomedir.so skel=/etc/skel umask=0077      

d、vim /etc/pam.d/sshd 統一增加上面那一行:

session required pam_mkhomedir.so skel=/etc/skel umask=0077      

完成後就可以使用域賬号正常登入了,但是還需要配合安全要求,設定每台伺服器允許SSH登入和允許運作su和sudo指令的使用者。

轉載于:https://blog.51cto.com/wgijeee/1599017

繼續閱讀