Hi Adam,

I remembered having a hard time getting this to work. After it worked, networkadmins decided to disallow ftp connections at our university due to security concerns...

I do not remember the solution (...), but I can share my config files (I am using apache instead of nginx):

This is my working 'proftp.conf':

# This is the ProFTPD configuration file
# Server Config - config used for anything outside a <VirtualHost> or <Global> context

ServerName            "BITS Galaxy FTP"
ServerIdent            on "Welcome to BITS Galaxy FTP server."
ServerType            standalone
#ServerAdmin            root@localhost
#Umask                0066
SyslogFacility                  DAEMON
SyslogLevel                     debug
DefaultRoot            ~ !adm
CreateHome                      on 700 uid 600 gid 601
PassivePorts            39000 40000
MaxInstances                    30
User                            galaxy
Group                           galaxy
#UseFtpUsers             off
#AuthPAM                off

# Don't do reverse DNS lookups (hangs on DNS problems)
UseReverseDNS            off
MaxInstances            20

# Define the log formats
LogFormat            default    "%h %l %u %t \"%r\" %s %b"
LogFormat            auth    "%v [%P] %h %t \"%r\" %s"

# General database support (http://www.proftpd.org/docs/contrib/mod_sql.html)
#LoadModule mod_sql.c

# Support for base-64 or hex encoded MD5 and SHA1 passwords from SQL tables
#LoadModule mod_sql_passwd.c

# Postgresql support (requires proftpd-postgresql package)
# (http://www.proftpd.org/docs/contrib/mod_sql.html)
# LoadModule mod_sql_postgres.c

<Global>
  # Allow users to overwrite files and change permissions
  AllowOverwrite          on
  AllowStoreRestart               on

  # Bar use of SITE CHMOD
  <Limit SITE_CHMOD>
    DenyAll
  </Limit>

  # Bar use of RETR (download) since this is not a public file drop
  <Limit RETR>
    DenyAll
  </Limit>

  SQLLogFile /var/log/proftpd/proftpd.log

  # get FTP connection over SSH
  DefaultServer            on
  SFTPEngine             on
  SFTPLog             /var/log/proftpd-sftp.log
  Port                 8822

# Set up mod_sql_password - Galaxy passwords are stored as hex-encoded SHA1
  SQLPasswordEngine               on
  SQLPasswordEncoding             hex
  RequireValidShell          off

  # Set up mod_sql to authenticate against the Galaxy database
  SQLEngine                       on
  SQLBackend                      postgres
  SQLConnectInfo                  galaxydb@127.0.0.1 galaxyftp **********
  SQLAuthTypes                    SHA1
  SQLAuthenticate                 users

  # An empty directory in case chroot fails
  SQLDefaultHomedir               /mnt/galaxytemp/ftptmp
  SQLDefaultGID              601
  SQLDefaultUID              600
  SQLMinID              95
# Define a custom query for lookup that returns a passwd-like entry. UID and GID should match your Galaxy user.
  SQLUserInfo                     custom:/LookupGalaxyUser
SQLNamedQuery LookupGalaxyUser SELECT "email,password,'600','601','/mnt/galaxydb/ftp/%U','/bin/bash' FROM galaxy_user WHERE email='%U'"
</Global>

Good luck,

Joachim

Joachim Jacob
Contact details: http://www.bits.vib.be/index.php/about/80-team


On 09/05/2013 02:46 AM, Panzer, Adam wrote:
Hello Devs,

I've been trying for a while now to get ProFTPD working for our local
instance. I have:
1) Modified pg_hba.conf
2) Set up the ProFTPD config files
3) Disabled PBKDF2 password encryption by adding use_pbkdf2 = false to
universe_wsgi.ini

I've read through the posts from others with this issue and made sure to
avoid some of the common pitfalls like forgetting to install/enable
mod_sql.c, mod_sql_postgres.c, and LoadModule mod_sql_passwd.c or having
an incorrect/<999 uid/gid in proftpd.conf. Even so, when I attempt to
access the server through FileZilla, it continues to kick back login
errors for all users:

Status:    Resolving address of localhost
Status:    Connecting to 127.0.0.1:21...
Status:    Connection established, waiting for welcome message...
Response:    220 ProFTPD 1.3.4a Server (Jay2) [::ffff:127.0.0.1]
Command:    USER panze...@kids.wustl.edu
Response:    331 Password required for panze...@kids.wustl.edu
Command:    PASS ***********
Response:    530 Login incorrect.
Error:    Critical error
Error:    Could not connect to server

I have included the contents of the relevant config files and logs
below. The proftpd log says that the user name is wrong, but the sqllog
seems to indicate a successful hit on the user but a failed password
authentication (again, despite disabling PBKDF2). I would be most
grateful if someone could tell me what I'm doing wrong.

Thanks,
Adam

- PACKAGE VERSIONS -
PostgreSQL 9.2
Nginx 1.1.19
ProFTPD 1.3.4a

- PG_HBA.CONF -
local   all             all                                     trust
host    all             all             127.0.0.1/32            trust
host    all             all             ::1/128                 trust
host    all             all             0.0.0.0/0                 md5

- PROFTPD.CONF -

Include /etc/proftpd/modules.conf

UseIPv6                on

IdentLookups            off


ServerType            standalone
DeferWelcome            off

MultilineRFC2228        on
DefaultServer            on
ShowSymlinks            on

TimeoutNoTransfer        600
TimeoutStalled            600
TimeoutIdle            1200

DisplayLogin                    welcome.msg
DisplayChdir                   .message true
ListOptions                    "-l"

DenyFilter            \*.*/

Port                21

PassivePorts                  30000 40000

MaxInstances            30

User                galaxy
Group                galaxy

Umask                077

AllowOverwrite            on


AuthOrder            mod_sql.c

SQLDefaultGID            1001
SQLDefaultUID            1001

TransferLog /var/log/proftpd/xferlog
SystemLog   /var/log/proftpd/proftpd.log

<IfModule mod_quotatab.c>
QuotaEngine off
</IfModule>

<IfModule mod_ratio.c>
Ratios off
</IfModule>

<IfModule mod_delay.c>
DelayEngine on
</IfModule>

<IfModule mod_ctrls.c>
ControlsEngine        off
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>

<IfModule mod_ctrls_admin.c>
AdminControlsEngine off
</IfModule>

Include /etc/proftpd/conf.d/

- GALAXY.CONF (galaxy specific conf.d ProFTPD config file) -

ServerName    "Jay2"

DefaultRoot                     ~

CreateHome                      on dirmode 700

AllowOverwrite                  on

AllowStoreRestart               on

<Limit SITE_CHMOD>
   DenyAll
</Limit>

<Limit RETR>
   DenyAll
</Limit>

AuthPAM                         off

SQLPasswordEngine               on
SQLPasswordEncoding             hex

SQLEngine                       on
SQLBackend                      postgres
SQLConnectInfo                  galaxy@localhost:5432 galaxy galaxy
SQLAuthTypes                    SHA1
SQLAuthenticate                 users

SQLDefaultHomedir               /var/lib/proftpd/empty

SQLUserInfo                     custom:/LookupGalaxyUser
SQLNamedQuery                   LookupGalaxyUser SELECT
"email,password,'1001','1001','/home/galaxy/galaxy-supp/ftp/%U','/bin/bash'
FROM galaxy_user WHERE email='%U'"

SQLLogFile /var/log/proftpd/sqlLog.txt

- PROFTPD.LOG -
Sep 04 19:03:51 PCF10-WKS1572 proftpd[4846] PCF10-WKS1572
(localhost[127.0.0.1]): FTP session closed.
Sep 04 19:14:57 PCF10-WKS1572 proftpd[5034] PCF10-WKS1572
(localhost[127.0.0.1]): FTP session opened.
Sep 04 19:14:57 PCF10-WKS1572 proftpd[5034] PCF10-WKS1572
(localhost[127.0.0.1]): USER panze...@kids.wustl.edu (Login failed): No
such user found.

- SQLLOG.TXT -
Sep 04 19:14:57 mod_sql/4.3[5034]: defaulting to 'postgres' backend
Sep 04 19:14:57 mod_sql/4.3[5034]: backend module 'mod_sql_postgres/4.0.4'
Sep 04 19:14:57 mod_sql/4.3[5034]: backend api    'mod_sql_api_v1'
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> sql_sess_init
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres
cmd_defineconnection
Sep 04 19:14:57 mod_sql/4.3[5034]:  name: 'default'
Sep 04 19:14:57 mod_sql/4.3[5034]:  user: 'galaxy'
Sep 04 19:14:57 mod_sql/4.3[5034]:  host: 'localhost'
Sep 04 19:14:57 mod_sql/4.3[5034]:    db: 'galaxy'
Sep 04 19:14:57 mod_sql/4.3[5034]:  port: '5432'
Sep 04 19:14:57 mod_sql/4.3[5034]:   ttl: '0'
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_defineconnection
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' successfully
established
Sep 04 19:14:57 mod_sql/4.3[5034]: mod_sql engine     : on
Sep 04 19:14:57 mod_sql/4.3[5034]: negative_cache     : off
Sep 04 19:14:57 mod_sql/4.3[5034]: authenticate       : users
Sep 04 19:14:57 mod_sql/4.3[5034]: usertable          : users
Sep 04 19:14:57 mod_sql/4.3[5034]: userid field       : userid
Sep 04 19:14:57 mod_sql/4.3[5034]: password field     : passwd
Sep 04 19:14:57 mod_sql/4.3[5034]: UID field          : uid
Sep 04 19:14:57 mod_sql/4.3[5034]: GID field          : gid
Sep 04 19:14:57 mod_sql/4.3[5034]: homedir field      : homedir
Sep 04 19:14:57 mod_sql/4.3[5034]: homedir(default)   :
'/var/lib/proftpd/empty'
Sep 04 19:14:57 mod_sql/4.3[5034]: shell field        : shell
Sep 04 19:14:57 mod_sql/4.3[5034]: SQLMinUserUID      : 999
Sep 04 19:14:57 mod_sql/4.3[5034]: SQLMinUserGID      : 999
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< sql_sess_init
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> sql_pre_pass
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< sql_pre_pass
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> cmd_getpwnam
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: Postgres server version: 9.2.4
Sep 04 19:14:57 mod_sql/4.3[5034]: Postgres connection character set now
'UTF8' (from 'UTF-8')
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' opened
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 2
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 1
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: cache miss for user
'panze...@kids.wustl.edu'
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> sql_lookup
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> process_named_query
'LookupGalaxyUser'
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 2
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 1
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 2
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 1
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_select
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 2
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: query "SELECT
email,password,'1001','1001','/home/galaxy/galaxy-supp/ftp/panze...@kids.wustl.edu','/bin/bash'
FROM galaxy_user WHERE email='panze...@kids.wustl.edu'"
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 1
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_select
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< process_named_query
'LookupGalaxyUser'
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< sql_lookup
Sep 04 19:14:57 mod_sql/4.3[5034]: cache miss for user
'panze...@kids.wustl.edu'
Sep 04 19:14:57 mod_sql/4.3[5034]: user 'panze...@kids.wustl.edu' cached
Sep 04 19:14:57 mod_sql/4.3[5034]: + pwd.pw_name  : panze...@kids.wustl.edu
Sep 04 19:14:57 mod_sql/4.3[5034]: + pwd.pw_uid   : 1001
Sep 04 19:14:57 mod_sql/4.3[5034]: + pwd.pw_gid   : 1001
Sep 04 19:14:57 mod_sql/4.3[5034]: + pwd.pw_dir   :
/home/galaxy/galaxy-supp/ftp/panze...@kids.wustl.edu
Sep 04 19:14:57 mod_sql/4.3[5034]: + pwd.pw_shell : /bin/bash
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< cmd_getpwnam
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> cmd_auth
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 2
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_open
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 1
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_escapestring
Sep 04 19:14:57 mod_sql/4.3[5034]: cache hit for user
'panze...@kids.wustl.edu'
Sep 04 19:14:57 mod_sql/4.3[5034]: >>> cmd_check
Sep 04 19:14:57 mod_sql/4.3[5034]: checking password using SQLAuthType
'sha1'
Sep 04 19:14:57 mod_sql/4.3[5034]: 'sha1' SQLAuthType handler reports
failure
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< cmd_check
Sep 04 19:14:57 mod_sql/4.3[5034]: <<< cmd_auth
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_exit
Sep 04 19:14:57 mod_sql/4.3[5034]: entering     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' closed
Sep 04 19:14:57 mod_sql/4.3[5034]: connection 'default' count is now 0
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_close
Sep 04 19:14:57 mod_sql/4.3[5034]: exiting     postgres cmd_exit


The materials in this email are private and may contain Protected Health 
Information. If you are not the intended recipient, be advised that any 
unauthorized use, disclosure, copying, distribution or the taking of any action 
in reliance on the contents of this information is strictly prohibited. If you 
have received this email in error, please immediately notify the sender via 
telephone or return email.

___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
   http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
   http://galaxyproject.org/search/mailinglists/



___________________________________________________________
Please keep all replies on the list by using "reply all"
in your mail client.  To manage your subscriptions to this
and other Galaxy lists, please use the interface at:
 http://lists.bx.psu.edu/

To search Galaxy mailing lists use the unified search at:
 http://galaxyproject.org/search/mailinglists/

Reply via email to