Hello,
I do not know if this is the place to ask but maybe some of you have already
had this configuration.
I have a problem configuring ProFTP
to use LDAP over SSL (i.e. ldaps on port 636).
In short:
- ProFTP without TLS (TLSEngine off) DOES
authenticate with LDAP without SSL (LDAPServer 1.2.3.4:389)
- ProFTP with TLS (TLSEngine on, path
to the ftp-ssl certificates) DOES
authenticate with LDAP without SSL (LDAPServer 1.2.3.4:389)
- ProFTP with TLS (TLSEngine on, path
to the ftp-ssl certificates) DOES
NOT authenticate with LDAP with SSL
(LDAPUseTLS on; LDAPServer 1.2.3.4:636)
The procedure is a 2 way SSL with
2 certificates:
filezilla (for example) (acting as client for ProFTP) ->SSL(cert_ftp)->
ProFTP (acting as server for filezilla, cert_ftp)
ProFTP (acting as client for LDAP) ->SSL(cert_LDAP)-> LDAP (acting
as server for the ProFTP, cert_LDAP).
If I look in the logs I see that the ProFTP Server connects to the LDAP
server on the correct port, the LDAP server accepts the connection but
the TLS fails!
In principle for me it is obvious because in the ProFTP configuration I
do give the path to the FTP-SSL certificates and keys but I do not input
any path for the LDAP-SSL certificates i.e. in my opinion it can not work
like this.
So my question is how to make it work? As I have said in my opinion the
key point is to be able to set the path where the ProFTP server finds the
certificates for the LDAP server.
I do not find any hint whatsoever in the net.
The steps I have done:
LDAP Server:
- The LDAP Server IP (say) 1.2.3.4
- The LDAP Server listens to port 636
(ldaps) and port (ldap).
- I have created a certificate for the
LDAP server (slapd.pem, slapd.key)
- The LDAP server itself is fully functioning
on both ldap and ldaps (for example ldaps with apache ok)
ProFTP Server:
- The ProFTP Server IP (say) 5.6.7.8
- I have created a certificate for the
ProFTP server (ftp2.pem, ftp2.key)
- I have copied locally the certificates
of the LDAP server (slapd.pem)
This is exactly what you do with apache
(and it works) provided one gives the path for "both" certificates
LDAPTrustedGlobalCert CA_BASE64 /apache/conf/ssl_certs/slapd.pem
....
....
SSLCertificateFile /apache/conf/ssl_certs/apache.pem
SSLCertificateKeyFile /apache/conf/ssl_certs/apache.key
This is the ProFTP configuration
(mod_tls and mod_ldap parts)
<IfModule mod_tls.c>
TLSEngine
on
TLSLog
/ftp2/logs/tls.log
TLSProtocol
SSLv23
TLSOptions
NoCertRequest
TLSRSACertificateFile /ftp2/conf/ssl_certs/ftp2.pem
TLSRSACertificateKeyFile /ftp2/conf/ssl_certs/ftp2.key
TLSCACertificateFile /ftp2/conf/ssl_certs/ftp2.pem
TLSVerifyClient
off
TLSRequired
on
TLSRenegotiate
required off
</IfModule>
<IfModule mod_ldap.c>
#LDAPServer 1.2.3.4:389
LDAPUseTLS on
LDAPServer 1.2.3.4:636
LDAPDoAuth on "ou=bbb,dc=aaa,dc=de" "(&(uid=%v)(objectclass=posixAccount))"
LDAPDNInfo "uid=1234,dc=aaa,dc=de" root
LDAPAuthBinds on
LDAPDoUIDLookups on "ou=bbb,dc=aaa,dc=de"
LDAPSearchScope subtree
</IfModule>
Both LDAP server and ProFTP (proftp-ldap)
server are:
Linux version 2.6.18-6-amd64 (Debian 2.6.18.dfsg.1-18etch1)
(waldi@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21))
#1 SMP Sun Feb 10 17:50:19 UTC 2008
OpenLDAP server (slapd)
dpkg -l | grep slapd
ii slapd
2.3.30-5+etch1
I have used the ProFTP with precompiled
LDAP (proftp-ldap)
dpkg -l | grep proftp
ii proftpd
1.3.0-19
Versatile,
virtual-hosting FTP daemon
ii proftpd-ldap
1.3.0-19
Versatile,
virtual-hosting FTP daemon
Error in /var/log/syslog from slapd
May 27 10:54:05 ftp1test slapd[7323]: daemon: activity
on 1 descriptor
May 27 10:54:05 ftp1test slapd[7323]: daemon: listen=9, new connection
on 19
May 27 10:54:05 ftp1test slapd[7323]: daemon: added 19r (active) listener=(nil)
May 27 10:54:05 ftp1test slapd[7323]: conn=106 fd=19 ACCEPT from IP=5.6.7.8:42564
(IP=0.0.0.0:636)
May 27 10:54:05 ftp1test slapd[7323]: daemon: select: listen=6 active_threads=0
tvp=NULL
May 27 10:54:05 ftp1test slapd[7323]: daemon: select: listen=7 active_threads=0
tvp=NULL
May 27 10:54:05 ftp1test slapd[7323]: daemon: select: listen=8 active_threads=0
tvp=NULL
May 27 10:54:05 ftp1test slapd[7323]: daemon: select: listen=9 active_threads=0
tvp=NULL
May 27 10:54:05 ftp1test slapd[7323]: daemon: activity on 1 descriptor
May 27 10:54:05 ftp1test slapd[7323]: daemon: activity on:
May 27 10:54:05 ftp1test slapd[7323]: 19r
May 27 10:54:05 ftp1test slapd[7323]:
May 27 10:54:05 ftp1test slapd[7323]: daemon: read activity on 19
May 27 10:54:05 ftp1test slapd[7323]: daemon: removing 19
May 27 10:54:05 ftp1test slapd[7323]: conn=106 fd=19 closed (TLS negotiation
failure)
Please Help
Thanks.