歡迎您光臨本站 註冊首頁

ldap給vsftp做認證,有難度哦??

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

ldap給vsftp做認證,有難度哦??

由於公司要做一個openldap統一認證資料庫.qmail+ssh+samba+system+ftp(未通過)。只查ftp沒有通過,先把配置文件和相關測試參數發給大家:
system: centos
ftp version: vsftp
ldap version: openldap

vsftpd.conf的配置內容:
----------------------------------
# grep -v "#" /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
pasv_min_port=5000
pasv_max_port=5100
chroot_local_user=YES
pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES
---------------------------------------------------
vsftpd的pam模塊內容:
# more /etc/pam.d/vsftpd
#%PAM-1.0
auth       sufficient   /lib/security/pam_ldap.so use_first_pass
account    sufficient   /lib/security/pam_ldap.so
password   sufficient   /lib/security/pam_ldap.so
session    sufficient   /lib/security/pam_ldap.so
auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth
session    required     pam_loginuid.so

----------------------------------------------------------
/etc/ldap.conf文件的配置內容:
# grep -v "#" ldap.conf|uniq|sort -r
tls_cacertdir /etc/openldap/cacerts
ssl no
port 389
pam_password md5
pam_password exop
pam_password crypt
host 192.168.2.229
bindpw ftp123
binddn cn=ftpadmin,o=sinotest
base o=sinotest
-----------------------------------------------------------
192.168.2.229的openldap sever的配置內容:
include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/inetorgperson.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/samba.schema
include         /etc/openldap/schema/qmailUser.schema

allow bind_v2


pidfile         /var/run/slapd.pid
argsfile        /var/run/slapd.args




access to attrs=userPassword,sambaLMPassword,sambaNTPassword
       by self write
       by anonymous auth
       by * none
access to *
        by self write
        by users read
        by anonymous auth



database        bdb
suffix          "o=sinotest"
rootdn          "cn=admin,o=sinotest"
rootpw           sinotest

directory       /var/lib/ldap

index objectClass,uidNumber,gidNumber  eq
index cn,sn,uid,displayName  pres,sub,eq
index memberUid,mail,givenname  eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName  eq

----------------------------------------------------------------------
做如下實驗:
1.在本機器上測試,能否ldapsearch到192。168。2。229的數據
答案:一切正常。
2。# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.0.1)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (localhost:root): test2
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.\
看log
Jul 17 11:24:26 rd vsftpd(pam_unix): check pass; user unknown
Jul 17 11:24:26 rd vsftpd(pam_unix): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=192.168.1.20
Jul 17 13:08:11 rd vsftpd(pam_unix): check pass; user unknown
Jul 17 13:08:11 rd vsftpd(pam_unix): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=127.0.0.1
看似提示,找不到LDAP里的用戶,鬱悶啊

請各位老師幫忙解答一下,是什麼問題。已經鬱悶很久了。
《解決方案》

能夠看看認證成功時的FTP LOG

或者你能否打開LDAP LOG?
《解決方案》

我覺得我在測試機器上已經 ldapsearch -x -b 'ou=abc.com,o=sinotest' -D "cn=ftp,o=sinocredit" -W -h 192.168.2.229
這個可以找到數據
我覺得就可以用ftp bind 到LDAP 伺服器上。。。
這個有問題嗎?
《解決方案》

vsftpd不直接支持LDAP(我那個時代是這樣的),它只是支持PAM,你已經配通了ssh和系統login,只要cp一個完全一樣的/etc/pam.d/vsftpd文件出來就可以了,或是把所有的pam.d目錄下的文件都連到system-auth上,以後修改這一個文件就是了
《解決方案》

原帖由 py 於 2006-7-17 20:17 發表
vsftpd不直接支持LDAP(我那個時代是這樣的),它只是支持PAM,你已經配通了ssh和系統login,只要cp一個完全一樣的/etc/pam.d/vsftpd文件出來就可以了,或是把所有的pam.d目錄下的文件都連到system-auth上,以後修 ...
說的有道理,vsftpd沒有LDAP介面。可是,我也是修改的/etc/pam.d/vsftpd這個文件啊。直接修改裡面的auth,account,pass等屬性,而且都用的是required的flags.


cp ssh->vsftpd這樣可行嗎?或者他們讀帳戶和密碼的方式是一樣的嗎?或者說都是找LDAP的sn,userpassword這2個屬性嗎?
《解決方案》

哦,已經好了。
按照py斑竹的說法,搞了一個到system-auth的文件里,都從這個讀取;謝謝CU,謝謝PY。
《解決方案》

回復 6# webyuhang


哥們給貼個實例吧。謝謝,謝謝
《解決方案》

我最近也在搞呀,挺麻煩,貼點詳細的吧,謝了。還有./sendmail怎麼跟ldap連

你的LDAP用戶想改密碼是怎麼改的,都是技術人員管嗎?
《解決方案》

密碼可以寫個簡單的cgi,讓用戶自己修改

[火星人 ] ldap給vsftp做認證,有難度哦??已經有798次圍觀

http://coctec.com/docs/service/show-post-16061.html