All,

I'm attempting to configure ProFTPD to authenticate against the Galaxy database. I appear to be able to connect to the database, but can't authenticate a registered user via FTP.

Here are the relevant entries for the ProFTPD configuration:

[root@login002 proftpd-1.3.4d]# grep SQL etc/proftpd.conf

SQLPasswordEngine on

SQLPasswordEncoding hex

SQLEngine on

SQLBackend postgres

SQLConnectInfo galaxydb galaxyftp galaxyftp_password

SQLAuthTypes SHA1

SQLAuthenticate users

SQLDefaultHomedir /var/opt/local/proftpd

SQLLogFile /home/galaxy/proftpd-1.3.4d/var/sql.log

SQLUserInfo custom:/LookupGalaxyUser

SQLNamedQuery LookupGalaxyUser SELECT "email,password,'4630','1108','/home/galaxy/galaxy-dist/database/files/ftp/%U','/bin/bash' FROM galaxy_user WHERE email='%U'"

I'm starting the daemon with maximum verbosity:

[root@login002 proftpd-1.3.4d]# ./sbin/proftpd -n -d 10

The logs appear to be OK:

Jun 18 12:37:09 mod_sql/4.3[987]: defaulting to 'postgres' backend

Jun 18 12:37:09 mod_sql/4.3[987]: backend module 'mod_sql_postgres/4.0.4'

Jun 18 12:37:09 mod_sql/4.3[987]: backend api 'mod_sql_api_v1'

Jun 18 12:37:09 mod_sql/4.3[987]: >>> sql_sess_init

Jun 18 12:37:09 mod_sql/4.3[987]: entering postgres cmd_defineconnection

Jun 18 12:37:09 mod_sql/4.3[987]: name: 'default'

Jun 18 12:37:09 mod_sql/4.3[987]: user: 'galaxyftp'

Jun 18 12:37:09 mod_sql/4.3[987]: host: 'localhost'

Jun 18 12:37:09 mod_sql/4.3[987]: db: 'galaxydb'

Jun 18 12:37:09 mod_sql/4.3[987]: port: '5432'

Jun 18 12:37:09 mod_sql/4.3[987]: ttl: '0'

Jun 18 12:37:09 mod_sql/4.3[987]: exiting postgres cmd_defineconnection

Jun 18 12:37:09 mod_sql/4.3[987]: connection 'default' successfully established

Jun 18 12:37:09 mod_sql/4.3[987]: mod_sql engine : on

Jun 18 12:37:09 mod_sql/4.3[987]: negative_cache : off

Jun 18 12:37:09 mod_sql/4.3[987]: authenticate : users

Jun 18 12:37:09 mod_sql/4.3[987]: usertable : users

Jun 18 12:37:09 mod_sql/4.3[987]: userid field : userid

Jun 18 12:37:09 mod_sql/4.3[987]: password field : passwd

Jun 18 12:37:09 mod_sql/4.3[987]: UID field : uid

Jun 18 12:37:09 mod_sql/4.3[987]: GID field : gid

Jun 18 12:37:09 mod_sql/4.3[987]: homedir field : homedir

Jun 18 12:37:09 mod_sql/4.3[987]: homedir(default) : '/var/opt/local/proftpd'

Jun 18 12:37:09 mod_sql/4.3[987]: shell field : shell

Jun 18 12:37:09 mod_sql/4.3[987]: SQLMinUserUID : 999

Jun 18 12:37:09 mod_sql/4.3[987]: SQLMinUserGID : 999

Jun 18 12:37:09 mod_sql/4.3[987]: <<< sql_sess_init

Jun 18 12:37:15 mod_sql/4.3[987]: >>> sql_pre_pass

Jun 18 12:37:15 mod_sql/4.3[987]: <<< sql_pre_pass

Jun 18 12:37:15 mod_sql/4.3[987]: >>> cmd_getpwnam

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: Postgres server version: 8.1.23

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' opened

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 2

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 1

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: cache miss for user 'mtobias@wustl.edu'

Jun 18 12:37:15 mod_sql/4.3[987]: >>> sql_lookup

Jun 18 12:37:15 mod_sql/4.3[987]: >>> process_named_query 'LookupGalaxyUser'

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 2

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 1

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 2

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 1

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_select

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 2

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: query "SELECT email,password,'4630','1108','/home/galaxy/galaxy-dist/database/files/ftp/mtobias@wustl.edu','/bin/bash' FROM galaxy_user WHERE email='mtobias@wustl.edu'"

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 1

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_select

Jun 18 12:37:15 mod_sql/4.3[987]: <<< process_named_query 'LookupGalaxyUser'

Jun 18 12:37:15 mod_sql/4.3[987]: <<< sql_lookup

Jun 18 12:37:15 mod_sql/4.3[987]: cache miss for user 'mtobias@wustl.edu'

Jun 18 12:37:15 mod_sql/4.3[987]: user 'mtobias@wustl.edu' cached

Jun 18 12:37:15 mod_sql/4.3[987]: + pwd.pw_name : mtobias@wustl.edu

Jun 18 12:37:15 mod_sql/4.3[987]: + pwd.pw_uid : 4630

Jun 18 12:37:15 mod_sql/4.3[987]: + pwd.pw_gid : 1108

Jun 18 12:37:15 mod_sql/4.3[987]: + pwd.pw_dir : /home/galaxy/galaxy-dist/database/files/ftp/mtobias@wustl.edu

Jun 18 12:37:15 mod_sql/4.3[987]: + pwd.pw_shell : /bin/bash

Jun 18 12:37:15 mod_sql/4.3[987]: <<< cmd_getpwnam

Jun 18 12:37:15 mod_sql/4.3[987]: >>> cmd_auth

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 2

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_open

Jun 18 12:37:15 mod_sql/4.3[987]: entering postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: connection 'default' count is now 1

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_close

Jun 18 12:37:15 mod_sql/4.3[987]: exiting postgres cmd_escapestring

Jun 18 12:37:15 mod_sql/4.3[987]: cache hit for user 'mtobias@wustl.edu'

Jun 18 12:37:15 mod_sql/4.3[987]: >>> cmd_check

Jun 18 12:37:15 mod_sql/4.3[987]: checking password using SQLAuthType 'sha1'

Jun 18 12:37:15 mod_sql/4.3[987]: 'sha1' SQLAuthType handler reports failure

Jun 18 12:37:15 mod_sql/4.3[987]: <<< cmd_check

Jun 18 12:37:15 mod_sql/4.3[987]: <<< cmd_auth

At the same time, I'm seeing from the command line:

login002 proftpd[987] login002 (10.28.56.101[10.28.56.101]): mod_sql_passwd/0.4: expected 'PBKDF2$sha256$10000$8h/4HmD1Eu6NTc7F$Slb1H5a9YJvR6A3cUnZCUfh7tOWKfRuh', got 'cc0ef515d684386aaa500bf6499d9f512dfb332c'

It almost looks like it's expecting a longer string, maybe with a salt and I'm not sure why it's expecting SHA256 as I thought all of Galaxy was using SHA1? I tried changing SQLAuthTypes to SHA256 without luck.

Any suggestions on what to look at to debug this further?

Thanks,

Malcolm

--

Malcolm Tobias

314.362.1594