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(a)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.