作者 主題: 很快...的失敗過程......  (閱讀 11638 次)

0 會員 與 1 訪客 正在閱讀本文。

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 於: 2005-03-10 14:57 »
我無意冒犯系統管理的偉大,只是因為我安裝LDAP的目的在於應用程式開發的需求,所以需要很快的方式讓LDAP功能能夠運作,因此省略了許多三子大大提到的操作。

下面是我實際操作的過程,目前LDAP的資料都可以查的到,但就是無法通過系統的認證;正在找出原因中,希望有前輩能夠提示 :cry:

引用
FC3 - server - 全新安裝 - 很笨的跟著光碟一步步完成
1. rpm -ivh ftp://apt.nc.hcc.edu.tw/pub/apt/fedora/linux/3/i386/RPMS.extra/apt-0.5.15cnc6-1.1.fc3.hcc.i386.rpm
2. apt-get update
3. apt-get -y dist-upgrade
4. apt-get install openldap-servers openldap-clients
5. rpm -ivh ftp://rpmfind.net/linux/dag/fedora/3/en/i386/dag/RPMS/cpu-1.4.3-0.1.fc3.rf.i386.rpm
6. vi /etc/openldap/slapd.conf

database        bdb
suffix          "dc=my-domain,dc=com"
rootdn          "cn=Manager,dc=my-domain,dc=com"

改成

database        bdb
suffix          "dc=my-own-domain,dc=com"
rootdn          "cn=Manager,dc=my-own-domain,dc=com"
rootpw          secret

7. wget http://www.padl.com/download/MigrationTools.tgz
8. tar -xzf MigrationTools.tgz
9. cd MigrationTools-46/
10. vi migrate_common.ph

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "padl.com";

# Default base
$DEFAULT_BASE = "dc=padl,dc=com";

改成

# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "my-own-domain.com";

# Default base
$DEFAULT_BASE = "dc=my-own-domain,dc=com";

11. mkdir tmp
12. ./migrate_base.pl > tmp/base.ldif
13. ./migrate_hosts.pl /etc/hosts > tmp/hosts.ldif
14. ./migrate_group.pl /etc/group > tmp/group.ldif
15. ./migrate_passwd.pl /etc/passwd > tmp/passwd.ldif
16. cd tmp/
17. service ldap start
18. for i in *.ldif; do ldapadd -x -D "cn=Manager,dc=my-own-domain,dc=com" -w secret -f $i; done
19. vi /etc/openldap/ldap.conf

HOST 127.0.0.1
BASE dc=example,dc=com

改成

HOST 127.0.0.1
BASE dc=my-own-domain,dc=com
URI     ldap://127.0.0.1

20. vi /etc/ldap.conf

host 127.0.0.1

# The distinguished name of the search base.
base dc=example,dc=com

改成

host 127.0.0.1

# The distinguished name of the search base.
base dc=my-own-domain,dc=com

21. vi /etc/pam.d/system-auth

最下面加上

# For LDAP

auth        sufficient    /lib/security/$ISA/pam_ldap.so use_first_pass
account     [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore] /lib/security/$ISA/pam_ldap.so
password    sufficient    /lib/security/$ISA/pam_ldap.so use_authtok
session     optional      /lib/security/$ISA/pam_ldap.so

22. vi /etc/nsswitch.conf

passwd:     files
shadow:     files
group:      files

#hosts:     db files nisplus nis dns
hosts:      files dns

改成

passwd:     files ldap
shadow:     files ldap
group:      files ldap

#hosts:     db files nisplus nis dns
hosts:      files ldap dns

23. chkconfig ldap on
24. reboot
25. vi /etc/cpu.conf

# Can also use LDAP_URI = ldaps://localhost:389 for TLS support
BIND_DN         = cn=Manager,dc=mydomain,dc=com
BIND_PASS       = secret
USER_BASE       = ou=People,dc=mydomain,dc=com
# replace account with inetOrgPerson if you want first or last name
GROUP_BASE      = ou=Group,dc=mydomain,dc=com

改成

# Can also use LDAP_URI = ldaps://localhost:389 for TLS support
BIND_DN         = cn=Manager,dc=my-own-domain,dc=com
BIND_PASS       = secret
USER_BASE       = ou=People,dc=my-own-domain,dc=com
# replace account with inetOrgPerson if you want first or last name
GROUP_BASE      = ou=Group,dc=my-own-domain,dc=com

26. cpu useradd test
27. cpu usermod -p test
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

phantom

  • SA 苦力組
  • 俺是博士!
  • *****
  • 文章數: 2185
    • 檢視個人資料
很快...的失敗過程......
« 回覆 #1 於: 2005-03-10 15:01 »
LDAP 我不懂...

不過, 欲速則不達呀...
Linux 非萬能, 沒 Linux 萬萬不能.
root = God
apt-get install ultimate-horsepower

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 回覆 #2 於: 2005-03-10 15:29 »
後來新增的這個帳號雖然無法直接登入,但是在 root 登入的情況下去 su test 可以進去,而這個帳號並沒有出現在 /etc/passwd 中,所以理論上 ldap 已經可以運作;只是不明白為什麼當認證順序改為 ldap 在前面時就會出問題。

其實也不是急啦...是懶...

當這些操作可以簡化成 shell script時,幫客戶裝會開心些...:)
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

日京三子

  • 全區板主
  • 俺是博士!
  • *****
  • 文章數: 8830
    • 檢視個人資料
    • http://www.24online.cjb.net
很快...的失敗過程......
« 回覆 #3 於: 2005-03-10 16:39 »
按照我的流程, 本身就是shell script level. 問題在於是否能理解該步驟在做些甚麼動作而已.....


說真的, 如果我花錢請來的廠商是這種態度, 那應該很快就會被我轟出去吧~  :x
哈克不愛的多合一輸入平台----->新香草口味
過去的時間不斷流逝,抹去的眼淚已成追憶;
乾枯的雙手無力阻止,再會了我遠去的曾經。

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 回覆 #4 於: 2005-03-10 16:55 »
操作環境(該不會不應該用最新版本+NOTEBOOK...)

引用
Linux version 2.6.10-1.741_FC3
SELinux:  Disable
CPU: Intel(R) Pentium(R) M processor 1400MHz stepping 05
RAM: 512 MB
ASUS M2400N


只要 /etc/nsswitch.conf 的設定把ldap擺在前面,開機就會停在 INIT version 2.85...在LDAP中的帳號只能透過root su進去操作,即使已經新增了家目錄,也給了權限。

phpldapadmin的輸出結果

引用
version: 1

# LDIF Export for: uid=test,ou=People,dc=my-own-domain,dc=com
# Generated by phpLDAPadmin ( http://www.phpldapadmin.com/ ) on March 10, 2005 4:46 pm
# Server: My LDAP Server (localhost)
# Search Scope: base
# Total Entries: 1

# Entry 1: uid=test,ou=People,dc=my-own-domain,dc=com
dn:uid=test,ou=People,dc=my-own-domain,dc=com
cn: test
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
objectClass: top
uidNumber: 101
gidNumber: 102
homeDirectory: /home/test
loginShell: /bin/bash
shadowLastChange: 11192
shadowMin: -1
shadowMax: 99999
shadowWarning: 7
shadowInactive: -1
shadowExpire: -1
shadowFlag: 134538308
uid: test
userPassword: {md5}CY9rzUYh03PK3k6DJie09g==


我想有些爭議是在於觀點吧,如果口氣上有所冒犯,還請見諒;接下來我就只針對技術方面交流,找到問題癥結後再與大家分享。
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

craig

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
很快...的失敗過程......
« 回覆 #5 於: 2005-03-13 23:24 »
我已經忘記在哪裡看到過相同的問題,
不過如果在開機時 LDAP 還沒被啟動,
但是系統又需要 LDAP 上的資訊,
那麼你出現的問題就很正常了。

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 回覆 #6 於: 2005-03-13 23:44 »
恩,我有想過這個問題,但是對於開機程序並沒有深入研究,繼續找找資料囉~

我的測試主要是為了 EGROUPWARE :

http://twpug.net/modules/newbb/viewtopic.php?topic_id=441&forum=3&post_id=1696

就看什麼時候玩的出來囉~
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

craig

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
很快...的失敗過程......
« 回覆 #7 於: 2005-03-14 00:37 »
其實我用 eGroupWare 也一陣子了,
都只是測試,還是不敢正式開放給同事使用。
不過,我建議系統帳號還是保留於檔案的形式(/etc/passwd),
只有一般使用者才透過 LDAP 比較好。

目前 LDAP 我都是這樣用,不論是 Postfix Samba 都很好。
最近還試著用 GOsa 來管理 LDAP 上的使用者,真是好用啊,
剛剛好符合我的需要,只是文件太少,花了點時間才搞定。

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 回覆 #8 於: 2005-03-14 09:18 »
恩,我只是想讓管理的對象單純些,不過看來還要好一段時間才能夠知道怎麼做

eGroupWare 的確不是很穩定,比較適合自身有能力維護的公司使用吧

想請問,你的系統帳號與 eGroupWare 帳號,無論透過 eGroupWare 或是直接從LDAP新增都可以互通嗎?

既有的帳號存取沒有問題,但是每次新增完一個帳號就要去另外一邊指定權限。
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

craig

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
很快...的失敗過程......
« 回覆 #9 於: 2005-03-15 00:37 »
引述: "kiang"

想請問,你的系統帳號與 eGroupWare 帳號,無論透過 eGroupWare 或是直接從LDAP新增都可以互通嗎?

既有的帳號存取沒有問題,但是每次新增完一個帳號就要去另外一邊指定權限。

其實,我說的系統帳號使指像 ftp apache named 等等這一類的帳號,
都是在 /etc/passwd 裡面,不會出現在 LDAP ,也就跟 eGroupWare 無關了。
一般的帳號不論是透過 eGroupWare 或是其他工具建立到 LDAP 裡面,
只要需要的 attributes 都有正確被設定,怎麼做都沒問題的。

不過這樣做只是我對目前 Linux distributions 的妥協,
因為如果要連那些系統用的帳號都搬到 LDAP 去,
那麼要去注意和修改的地方實在是太多了。

如果把焦點只放在使用者帳號上,只有這些才放在 LDAP 裡面,
那麼不管系統怎麼升級或是轉移,都會比較容易一點。

twu2

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 5409
  • 性別: 男
    • 檢視個人資料
    • http://blog.teatime.com.tw/1
很快...的失敗過程......
« 回覆 #10 於: 2005-03-15 09:00 »
引述: "craig"
不過,我建議系統帳號還是保留於檔案的形式(/etc/passwd),
只有一般使用者才透過 LDAP 比較好。


這個在 redhat 系列上頭, 不管是不是放 /etc/passwd 上頭, 都會有個很大的問題.

一般 libnss 的處理上頭, 我們可以同時指定依序使用 ldap 與 passwd 等資料庫. 照正常的運作來說, 我們可能先處理 ldap, 再處理 passwd, 而當 ldap 失敗時, 就會再找一次 passwd. (反之亦同)

這個我在 Debian 上頭的運作是正常的, 也就是說, 當我的 ldap server 沒有正常執行時, libnss 在處理 ldap 這一段的時候會失敗, 如果在 /etc/passwd 與 /etc/shadow 內有資料時, 仍可以正常的登入使用.

但是在 redhat 系列上頭 (redhat 9, fc 2, fc 3, centos 3...都一樣), 如果 libnss 無法連上 ldap server 時, 不管在 /etc/passwd, /etc/shadow 上頭有沒有資料, 都無法登入. 也就是, 就算我的 root 是在 /etc/passwd, /etc/shadow 上, 而不在 ldap 裡頭時, 只要 ldap 運作一不正常, 一樣無法用 root 登入. :-(

所以, 如果有發生 ldap server 無法連線時, 都只能用 single user mode 登入,  先把 libnss 中的 ldap 移走, 才能用一般的 /etc/passwd, /etc/shadow. 實在不怎麼方便.

同樣的東西, 在 Debian 上頭倒是很正常, 不管 ldap 有沒有跑, 只要 /etc/passwd, /etc/shadow 有東西就可以.

linul

  • 可愛的小學生
  • *
  • 文章數: 22
    • 檢視個人資料
    • 企業用中文OSS交流網
很快...的失敗過程......
« 回覆 #11 於: 2005-03-15 12:45 »
之前在FC1時,倒是很正常,後來怎麼會變這樣=.=
網站:http://www.bizforge.com.tw

kiang

  • 活潑的大學生
  • ***
  • 文章數: 310
    • 檢視個人資料
    • 就這間電腦工作室
很快...的失敗過程......
« 回覆 #12 於: 2005-03-15 16:11 »
系統認證的部分找到問題了,使用 authconfig 設定認證的方式為LDAP即可(FC3),接著/etc/nsswitch.conf 中的認證順序就可以把 ldap 擺在前面

其實後來想想,如果egroupware中新增的帳號可以直接取得系統權限,那也蠻危險的  :roll:

...不過,authconfig除了上面步驟外的設定,還會去異動哪個地方嗎?
****************************************************
Finjon Kiang / 江明宗
Just This Computer Studio / 就這間電腦工作室
Website: http://olc.tw
****************************************************

craig

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
很快...的失敗過程......
« 回覆 #13 於: 2005-03-18 01:05 »
引述: "kiang"

...不過,authconfig除了上面步驟外的設定,還會去異動哪個地方嗎?

這個問題我也不是很確定,
不過我自己是除了改 /etc/nsswitch.conf 以外,
還有改 /etc/ldap.conf 和 /etc/pam.d/system-auth 。