Calendar

五月 2012
« 三月    
 123456
78910111213
14151617181920
21222324252627
28293031  

Categories

FreeBSD 上的 LDAP server 和 client 在同一台的時候記得設定啟動順序

雖然這個算是超級 FAQ 了,
不過趁還想寫的時候來寫一下。
畢竟現在的硬體配備都不差,
為了充分利用硬體資源很少人會把 LDAP server 單獨放在獨立的機器上。
結果常常開機時某些 service 比 slapd 先起來,
關機或重開時這些 service 又會比 slapd 晚停止,
造成了一個不大也不小的困擾。

Continue reading FreeBSD 上的 LDAP server 和 client 在同一台的時候記得設定啟動順序 »

FreeBSD 8.0 + nss_ldap 會讓 user 的 supplementary group 無效

這個問題是 FreeBSD 8.0 才開始有的。
一般人應該都知道一個 user 可以有一個 primary group,
以及多個 supplementary groups。
前者是直接設定在 passwd / master.passwd 檔裡,
後者是設定在 group 檔裡。
現在的問題就是把 group 放在 LDAP 上面,
無論 user 是系統上的還是 LDAP 上的,
把他們加入 LDAP 上的 group 內都會無效。
不過這是只有把 ldap 加在 nsswitch.conf 的 compat_passwd 和 compat_group 裡才會發生,
這個功能好像在 FreeBSD 8.0 壞掉了,
不然就是有什麼新的設定要改。

Continue reading FreeBSD 8.0 + nss_ldap 會讓 user 的 supplementary group 無效 »

DokuWiki + LDAP

今天應學弟要求把它架起來的,
之前玩的時候沒有認真看 LDAP 的設定部分,
conf/local.php 大概這樣改:

...
$conf['superuser'] = '@xxx-wiki-admin';
...
// end auto-generated content
...
$conf['authtype'] = 'ldap';
$conf['auth']['ldap']['server'] = 'ldap://host.domain.name';
$conf['auth']['ldap']['port'] = 389;
$conf['auth']['ldap']['usertree'] = 'ou=people,dc=domain,dc=name';
$conf['auth']['ldap']['grouptree'] = 'ou=group,dc=domain,dc=name';
$conf['auth']['ldap']['userfilter'] = '(&(uid=%{user})(objectClass=posixAccount))';
$conf['auth']['ldap']['groupfilter'] = '(&(objectClass=posixGroup)(|(gidNumber=%{gid})(memberUID=%{user})))';
$conf['auth']['ldap']['version'] = 3;
$conf['auth']['ldap']['starttls'] = 1;

最主要是 super user 群組的設定,
原本以為它只能寫死一個 user id 在上面而已,
後來發現也能跟傳統認證方式一樣把它設定成群組,
這樣 DokuWiki 會透過 LDAP 去判斷 user 是否在 xxx-wiki-admin 這個 group 裡,
是的話就當成 super user 看待,
ACL 設定的部分也是可以如法泡製,
因為考慮有多個 wiki 所以我 group name 就取得長一點了;
把某個 user 加入一個 group 應該沒什麼難度,
以上面的例子來說就是把要當 admin 的 user id 加入 xxx-wiki-admin 這個 group 就好了,
有裝 ldapscripts 的直接打 ldapaddusertogroup admin-id xxx-wiki-admin 這樣就行了。

附帶一提 DokuWiKi 已經把檔案庫從 darcs 搬到 git 上了,
所以要更新的話重抓再裝一遍把檔案複製上去比較快。

不錯的 LDAP 輔助工具集: ldapscripts

研究 LDAP 的便利工具也有一段時日了,
偏好使用純文字介面的我當然不太可能選擇 GUI client,
所以一開始是先挑了功能不太齊全的 ldapsh,
它提供了一個類似 shell 的介面讓人能編輯或刪除 LDAP 裡的資料,
不過似乎找不到新增資料的方式,
至於會啟動什麼編輯器則是看 EDITOR 這個環境變數決定;
最後相中的是 ldapscripts 這個 ports,
安裝完之後只要做一些簡單的設定就行了,
不過唯一的缺陷似乎是沒支援 starttls,
這樣可能會強迫我開 ldaps 協定吧,
不過目前我只把這個裝在 LDAP server 所在的機器上,
所以其實還算可接受的範圍內。

Continue reading 不錯的 LDAP 輔助工具集: ldapscripts »

從 uw-imap 換到 courier-imap

應該很多人知道 uw-imap 因為漏洞太多又沒更新已經 bye bye 了,
FreeBSD 的 ports 裡先是把它設為 FORBIDDEN 之後直接砍了它,
對於這種幾乎不能 config 的 imap/pop3 client 我一直就很不爽,
偏偏大家又很愛裝它,
造成我前陣子也面臨了不得不將它換掉的狀況。

Continue reading 從 uw-imap 換到 courier-imap »

Squid + LDAP 的設定方式

一般預設的 squid.conf 都可以找到這樣的一段:

http_access allow manager localhost
http_access deny manager
http_access allow localnet
http_access deny all

如果是希望在 localnet 以外的地方使用 LDAP 認證方式來使用 proxy,
那麼就在 allow localnet 那行的下面加入這段就可以了:

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -b "ou=people,dc=xxx,dc=org" -f "uid=%s" -H ldap://ldap.xxx.org -Z -v 3
acl ldapauth proxy_auth REQUIRED
http_access allow ldapauth

-v 3 是指定用 LDAPv3,
-Z 就是要求用 STARTTLS,
squid_ldap_auth 是 ldap 認證的 helper,
用 FreeBSD 的 ports 裝的話有選 LDAP 就自動被編譯和安裝,
如果是 Linux 的話 path 可能會不一樣。

實驗了一下 LDAP 的設定

LDAP 問世也已經有相當長的一段時間了,
一直以來都沒有什麼時間去玩它,
隨著實驗室的 hosts 和 services 越來越多,
也逐漸有了類似的需求,
所以最近下定決心抽出三天時間來實驗它。

Continue reading 實驗了一下 LDAP 的設定 »