今日設定了一個新的 Trac host, 為了方便眾人使用,期待預設用單一帳號登入,但是由於該組織使用的 LDAP Server 必須接上 VPN 才能存取,頗為不便。
貪圖省事的前提下,打算讓所有使用者都透過 POP3 Server 認證,由於 POP3 Server 已經接上 LDAP Server 作單一認證,因此最終還是可以使用單一帳號、密碼存取服務。
查找了一下,知道 Sherwin Daganato 有一個 Apache::AuthPOP3 可用,只要安裝 mod_perl 即可。不過我對 mod_perl 印象不特別好,因此決定改用 mod_auth_pam 加上 Schlomo Schapiro 做的 POP3 PAM Module。
我的設定皆是在 Debian GNU/Linux Etch 下完成,首先安裝 apache2 與 libapache2-mod-auth-pam。(當然也要裝 trac, subversion, 不過這些軟體都是配角) 接下來則是裝 make, gcc, libpam0g-dev 等工具編譯 POP3 PAM Module,Schlomo Schapiro 的 POP3 PAM Module 非常簡單,只提供了一個 Makefile,因此只需要打 make, make install 將 編譯好的 pam_pop3.so 丟到 /lib/security/pam_pop3.so 即可。不至於碰到甚麼困難。
下一步要做的是設定 Apache 的密碼控管,在你需要作密碼認證的目錄加入以下設定
AuthPAM_Enabled on
AuthType Basic
AuthName "Secure zone"
require valid-user
然後再修改 /etc/pam.d/apache2 為
auth required pam_pop3.so hostname=pop.mail.com timeout=20 info
account required pam_permit.so
如此即可,這樣使用者必須輸入帳號密碼才能在該目錄下的任何檔案,而帳號密碼將透過你所設定的郵件伺服器進行確認。話說回來,統一密碼的方式的確更不安全阿。