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