OpenLDAP - SmbFTPD Auth With LDAP 設定

1、前言

本篇實作為設定 FTP 透過 LDAP 來認證使用者帳號及密碼,而採用的套件為支援 Samba 模式的 twbsd.org SmbFTPD






文章目錄

1、前言
2、實作環境
3、安裝及設定
          步驟1.安裝 smbftpd 套件
          步驟2.PAM 設定 ftpd
          步驟3.修改 rc.conf
4、參考
5、Me FAQ
          Q1.smbftpd 服務無法啟動?
          Q2.啟動 smbftpd 後只有本機帳號能登入而 LDAP 帳號無法登入?





2、實作環境

  • FreeBSD 6.1-RELEASE-p10
  • smbftpd-0.96





3、安裝及設定

本次實作採用的 FTP 套件為 twbsd.org - SmbFTPD 它支援 SMB 模式也支援 Chroot、SSL/TLS...等許多功能是本次實作採用的主因,因為 twbsd.org - SmbFTPD 網站上的說明文件已經夠清楚了,因此下列安裝及設定僅著重在設定 SmbFTPD 如何透過 LDAP 來進行使用者認證的部份。

步驟1.安裝 smbftpd 套件

切換至 Ports Tree 路徑安裝 smbftpd 套件。
cd /usr/ports/ftp/smbftpd       //切換至安裝路徑
make install clean               //安裝套件並清除暫存檔案




步驟2.PAM 設定 ftpd

由於 SmbFTPD 為從 ftpd 修改而成,因此我們可透過修改 /etc/pam.d/ftpd 讓 ftpd 服務能利用 pam_ldap 來做認證處理,也就是把 FTP 使用者帳號及密碼的部份也整合至 LDAP 內。關於 PAM 可參考站內文章 OpenLDAP-PAM NSS 設定
vi /etc/pam.d/ftpd
 auth   sufficient   /usr/local/lib/pam_ldap.so   no_warn try_first_pass //加入此行
 auth   required    pam_unix.so                   no_warn try_first_pass




步驟3.修改 rc.conf

修改 /etc/rc.conf 設定檔以便系統重開機時能自動帶起 SmbFTPD 服務。
vi /etc/rc.conf
 smbftpd_enable="Yes"      //加入此行

鍵入如下指令來啟動 SmbFTPD 服務。
/usr/local/etc/rc.d/smbftpd.sh start
 Starting smbftpd

要注意的地方是您必須要產生 SSL/TLS 憑證,因為此版本預設在 SmbFTPD 服務啟動時一定要 載入憑證後才能啟動成功,關於此一問題詳細內容可參考 請教 SmbFTPD 是否能不使用 SSL/TLS 啟動?





4、參考






5、Me FAQ

Q1.smbftpd 服務無法啟動?

Error Message:
啟動 smbftpd 時似乎無法啟動成功並出現如下錯誤訊息?
/usr/local/etc/rc.d/smbftpd.sh start
 Starting smbftpd
 TLS/SSL initialization failed.

Ans:
開啟 smbftpd 除錯模式。
vi /usr/local/etc/smbftpd/smbftpd.conf    //修改設定檔內容
 DebugMode yes                  
 SSLDebugMode yes
 SSLDebugLog /var/log/smbftpd-ssl.log 

查看 Log 訊息。
tail /var/log/smbftpd-ssl.log
 Error loading '/usr/local/etc/smbftpd/ssl.crt/server.crt': No such file or directory


問題在於此版本預設在服務啟動時一定要 載入憑證後才能啟動成功 ,關於此一問題詳細內容可參考 請教 SmbFTPD 是否能不使用 SSL/TLS 啟動?



Q2.啟動 smbftpd 後只有本機帳號能登入而 LDAP 帳號無法登入?

Error Message:
啟動 smbftpd 後只有本機帳號能登入而 LDAP 帳號無法登入?
tail /var/log/xferlog
 Dec  5 10:59:45 filecenter ftpd[13884: nss_ldap: reconnected to LDAP server ldap://filecenter.weithenn.org

Ans:
修改 /etc/pam.d/ftpd 讓 ftpd 服務能利用 pam_ldap 來做認證處理。
vi /etc/pam.d/ftpd
 auth   sufficient   /usr/local/lib/pam_ldap.so  no_warn try_first_pass //加入此行
 auth   required     pam_unix.so                 no_warn try_first_pass