Configuring a ProFTPd server for Galaxy
This is probably more appropriate for the proftpd list at this point, but my thought is that maybe someone has come across this while configuring a proftpd server for galaxy usage. I'm including my current output when I try to log on, a copy of my conf file, and output from the SQL log (in all three cases, with identifying info removed - users, hosts, IPs, etc). You can see from the SQL Log that it appears the log in is actually successful, but then the connection simply closes the connection. Any ideas as to what I've got configured incorrectly here? ####### Output [user@host ftp]$ ftp ftphost Connected to ftphost. 220 ProFTPD 1.3.3d Server (Galaxy FTP) [::ffff:IP] 500 AUTH not understood 500 AUTH not understood KERBEROS_V4 rejected as an authentication type Name (ftphost:user): galaxyUserEmail 331 Password required for galaxyUserEmail Password: 530 Login incorrect. Login failed. 421 Service not available, remote server has closed connection ftp> ################ proftpd.conf ServerName "Galaxy FTP" ServerType standalone DefaultServer on Port 21 Umask 077 DefaultRoot ~ CreateHome on dirmode 700 AllowOverwrite on AllowStoreRestart on SyslogFacility DAEMON SyslogLevel debug MaxInstances 30 User nobody Group nogroup ## SQL stuff <Global> ## mod_sql_passwd stuff SQLPasswordEngine on SQLPasswordEncoding hex SQLConnectInfo user@dbHost galaxy MYPASSWD SQLAuthTypes SHA1 SQLUserInfo custom:/LookupGalaxyUser SQLUserInfo custom:/LookupGalaxyUser SQLNamedQuery LookupGalaxyUser SELECT "email,password,'712','713','/home/galaxy/galaxy_dist/database/ftp/%U','/bin/bash'FROM galaxy_user WHERE email='%U'" SQLDefaultHomedir "/var/opt/local/proftpd" RequireValidShell off SQLAuthenticate users SQLLogFile /var/opt/local/proftpd/sqlLog.txt </Global> #### sqlLog.txt Feb 09 13:55:54 mod_sql/4.2.5[2938]: defaulting to 'postgres' backend Feb 09 13:55:54 mod_sql/4.2.5[2938]: backend module 'mod_sql_postgres/4.0.4' Feb 09 13:55:54 mod_sql/4.2.5[2938]: backend api 'mod_sql_api_v1' Feb 09 13:55:54 mod_sql/4.2.5[2938]: >>> sql_sess_init Feb 09 13:55:54 mod_sql/4.2.5[2938]: entering postgres cmd_defineconnection Feb 09 13:55:54 mod_sql/4.2.5[2938]: name: 'default' Feb 09 13:55:54 mod_sql/4.2.5[2938]: user: 'galaxy' Feb 09 13:55:54 mod_sql/4.2.5[2938]: host: 'dbHost' Feb 09 13:55:54 mod_sql/4.2.5[2938]: db: 'galaxy' Feb 09 13:55:54 mod_sql/4.2.5[2938]: port: '5432' Feb 09 13:55:54 mod_sql/4.2.5[2938]: ttl: '0' Feb 09 13:55:54 mod_sql/4.2.5[2938]: exiting postgres cmd_defineconnection Feb 09 13:55:54 mod_sql/4.2.5[2938]: mod_sql engine : on Feb 09 13:55:54 mod_sql/4.2.5[2938]: negative_cache : off Feb 09 13:55:54 mod_sql/4.2.5[2938]: authenticate : users Feb 09 13:55:54 mod_sql/4.2.5[2938]: usertable : users Feb 09 13:55:54 mod_sql/4.2.5[2938]: userid field : userid Feb 09 13:55:54 mod_sql/4.2.5[2938]: password field : passwd Feb 09 13:55:54 mod_sql/4.2.5[2938]: UID field : uid Feb 09 13:55:54 mod_sql/4.2.5[2938]: GID field : gid Feb 09 13:55:54 mod_sql/4.2.5[2938]: homedir field : homedir Feb 09 13:55:54 mod_sql/4.2.5[2938]: homedir(default) : '/var/opt/local/proftpd' Feb 09 13:55:54 mod_sql/4.2.5[2938]: shell field : shell Feb 09 13:55:54 mod_sql/4.2.5[2938]: SQLMinUserUID : 999 Feb 09 13:55:54 mod_sql/4.2.5[2938]: SQLMinUserGID : 999 Feb 09 13:55:54 mod_sql/4.2.5[2938]: <<< sql_sess_init Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> sql_pre_pass Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< sql_pre_pass Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: Postgres server version: 8.4.2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' opened Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 1 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache miss for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> sql_lookup Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> process_named_query 'LookupGalaxyUser' Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 1 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 1 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_select Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: query "SELECT email,password,'712','713','/home/galaxy/galaxy_dist/database/ftp/galaxyUserEmail','/bin/bash'FROM galaxy_user WHERE email='galaxyUserEmail'" Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 1 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_select Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< process_named_query 'LookupGalaxyUser' Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< sql_lookup Feb 09 13:55:59 mod_sql/4.2.5[2938]: user UID 712 below SQLMinUserUID 999, using SQLDefaultUID 65533 Feb 09 13:55:59 mod_sql/4.2.5[2938]: user GID 713 below SQLMinUserGID 999, using SQLDefaultGID 65533 Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache miss for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: user 'galaxyUserEmail' cached Feb 09 13:55:59 mod_sql/4.2.5[2938]: + pwd.pw_name : galaxyUserEmail Feb 09 13:55:59 mod_sql/4.2.5[2938]: + pwd.pw_uid : 65533 Feb 09 13:55:59 mod_sql/4.2.5[2938]: + pwd.pw_gid : 65533 Feb 09 13:55:59 mod_sql/4.2.5[2938]: + pwd.pw_dir : /home/galaxy/galaxy_dist/database/ftp/galaxyUserEmail Feb 09 13:55:59 mod_sql/4.2.5[2938]: + pwd.pw_shell : /bin/bash Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> cmd_auth Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 2 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_open Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 1 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_escapestring Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache hit for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> cmd_check Feb 09 13:55:59 mod_sql/4.2.5[2938]: checking password using SQLAuthType 'sha1' Feb 09 13:55:59 mod_sql/4.2.5[2938]: 'sha1' SQLAuthType handler reports success Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache hit for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< cmd_check Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< cmd_auth Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache hit for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: >>> cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: cache hit for user 'galaxyUserEmail' Feb 09 13:55:59 mod_sql/4.2.5[2938]: <<< cmd_getpwnam Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_exit Feb 09 13:55:59 mod_sql/4.2.5[2938]: entering postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' closed Feb 09 13:55:59 mod_sql/4.2.5[2938]: connection 'default' count is now 0 Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_close Feb 09 13:55:59 mod_sql/4.2.5[2938]: exiting postgres cmd_exit
Oops, please disregard. As luck would have it, the moment I throw in the towel the answer becomes obvious to me. The uid/gid for my galaxy user was below 999 and getting bumped up to 65535 by the SQL authentication, so the user FTP directory was getting that uid/gid, was not writeable and it'd bomb out. Works now. :) On Wed, 9 Feb 2011, Geoff Jentry wrote:
This is probably more appropriate for the proftpd list at this point, but my thought is that maybe someone has come across this while configuring a proftpd server for galaxy usage. I'm including my current output when I try to log on, a copy of my conf file, and output from the SQL log (in all three cases, with identifying info removed - users, hosts, IPs, etc).
You can see from the SQL Log that it appears the log in is actually successful, but then the connection simply closes the connection. Any ideas as to what I've got configured incorrectly here?
participants (1)
-
Geoff Jentry