ProFTPD Plugin for unRAID v6.8.x


SlrG

Recommended Posts

@zonik

Installation and start of the plugin looks fine. You have anonymous users connecting, which does not work. Then there are users where no home directory is available. And lastly you have users where the password is not recognized.

 

How do you setup your users?

Did you add the keyword ftpuser in the comment field?

Optional: Did you give a working homepath to jail them into after this keyword separated by a space?

And did you restart the plugin after defining your users?

Some passwords with special chars may not work.

Start with simple ones and if it works increase the complexity.

 

Also a security notice:

It is not recommended to connect your unRAID servers services directly to the internet. It is better to use a VPN to connect to your home network and access the unencrypted ftp service from there. If you are set on making it public, make sure your external port is not 21, as that is the first to be hit by malicious crawlers. Research how to enable encryption when you get the baseline working. Some pointers are in this thread.

Edited by SlrG
password complexity hint
Link to comment

The user definition looks fine. In your logs the user tester has problems to access his "home directory". Please check that /tmp/FTP really exists, when you try to login. Also make sure it hast the correct access rights. For that you can use the newperms command:

newperms /tmp/FTP

When testing on my server it works fine if I create a directory /tmp/FTP and jail an user into that. So in theory it should work for you too.

Link to comment

still keep getting errors at least its not a timeout this timebut it is this : Jul 10 23:21:27 Samwise proftpd[59560]: 127.0.0.1 (192.168.1.132[192.168.1.132]) - chroot to '~/' failed for user 'tester': No such file or directory
Jul 10 23:21:27 Samwise proftpd[59560]: 127.0.0.1 (192.168.1.132[192.168.1.132]) - error: unable to set DefaultRoot directory

Link to comment

now there is something new going on, i can connect now and login but i only 1 folder in the media folder and that folder is empty i have tried to edit the mountscript file but nothing works, this is how i have it currently set:

 

#!/bin/bash
# put your commands for creating mount points and mounting here
# they will be executed when the array starts
# e.g.:
# mkdir /mnt/cache/FTP/movies;mount --bind /mnt/user0/movies /mnt/cache/FTP/movies

# Mounts just media for read only
# Directory Structure
!/bin/bash
mkdir /tmp/FTP/
mkdir /tmp/FTP/Media
mkdir /tmp/FTP/Media/anime;mount --bind /media/user/Media/Anime /tmp/FTP/Media/anime
mkdir /tmp/FTP/Media/movies;mount --bind /media/user/Media/Kvikmyndir /tmp/FTP/Media/movies

# Mounts for Apps/Tools/ISO ect
# Apps and Tools are Read only
# Uploads are Read/Write
!/bin/bash
mkdir /tmp/FTP/Uploads;mount --bind /mnt/user/Media/ftp/ /tmp/FTP/Uploads/

 

i should not that the anime folder is the only one visible and thats empty

Edited by zonik
Link to comment

@zonik

Well, there are IMHO some errors in your file. Only #!/bin/bash is correct, the second and third one without the hashtag should to be removed. Also you are trying to mount --bind from /media which should be /mnt instead.  Probably the folder anime gets created and then the execution of the mountfile stops because of the errors. Therefore nothing is mounted into the anime directory and it stays empty.

 

It should look like this:

#!/bin/bash
# put your commands for creating mount points and mounting here
# they will be executed when the array starts
# e.g.:
# mkdir /mnt/cache/FTP/movies;mount --bind /mnt/user0/movies /mnt/cache/FTP/movies

# Mounts just media for read only
# Directory Structure
mkdir /tmp/FTP/
mkdir /tmp/FTP/Media
mkdir /tmp/FTP/Media/anime;mount --bind /mnt/user/Media/Anime /tmp/FTP/Media/anime
mkdir /tmp/FTP/Media/movies;mount --bind /mnt/user/Media/Kvikmyndir /tmp/FTP/Media/movies

# Mounts for Apps/Tools/ISO ect
# Apps and Tools are Read only
# Uploads are Read/Write
mkdir /tmp/FTP/Uploads;mount --bind /mnt/user/Media/ftp/ /tmp/FTP/Uploads/

 

Edited by SlrG
typo
Link to comment

Excellent plugin. 

I have it up and running but was hoping there was a way to have it running as an SFTP? I'm not entirely well versed in the process, and I admit I haven't read this entire thread (it dates back 6 years!?!?) Any help on getting it to run SFTP and/or at least on how to change the port, would be appreciated.

Thanks

 

Link to comment

I know I will sound disrespectful, so please forgive me, but I'm a bit burned out by answering the same questions over and over. The info you are requesting is one page back or at least a link to it. Also the topic is searchable and using the keyword SFTP would have given you the needed results. 

 

Here is a direct link to the post.

On how to change the port: You could do this in the proftpd.conf file, but I recommend staying on the default port for the server and setting up a port forwarding rule in your router which will forward an external port of your choice to the internal default port.

Link to comment
  • 3 weeks later...

So I didn't want to come back and post here, but I have reached my limit trying to find an answer. I have setup ProFTP on another Unraid box. Everything is setup exactly as mine. Once again I am having issues trying to connect to it. I am once again stuck at retrieving a directory listing. It never populates and eventually times out. All the ports, active and passive are setup in the config file and forwarded properly in the router which is the exact router I have. I've turned on logging and these are the last lines where it just times out. Is there any clue in this?

Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - in dir_check_full(): path = '/', fullpath = '/mnt/user/'
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching LOG_CMD command 'PORT 24,158,124,213,201,65' to mod_log
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching PRE_CMD command 'MLSD' to mod_tls
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching PRE_CMD command 'MLSD' to mod_rewrite
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching PRE_CMD command 'MLSD' to mod_core
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching PRE_CMD command 'MLSD' to mod_core
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - dispatching CMD command 'MLSD' to mod_facts
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - in dir_check_full(): path = '/', fullpath = '/mnt/user/'
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - ROOT PRIVS at inet.c:409
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - ROOT PRIVS: ID switching disabled
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - RELINQUISH PRIVS at inet.c:483
Aug 2 23:48:26 Houston proftpd[11973]: 127.0.0.1 (24.158.124.213[24.158.124.213]) - RELINQUISH PRIVS: ID switching disabled

 

Link to comment

I see nothing, that would help to solve the problem. Sorry. I would start with the base configuration and check if it works with plain ftp and basic settings locally. Then I would try to enable tls and check locally. Only then I would try to make it work externally.

 

If it is the exact same configuration and router as on your system it should obviously work in theory. But there must be some difference in the setup of the unRAID box or router or other interference, as it clearly does not work. Sadly the log doesn't tell me why it fails.

Link to comment
  • 2 weeks later...

Hey guys, relatively new to unraid, started setting the server up about 2 months ago, did a lot of messing around and learning in the trial period so I did not realize i was one of the few (or many, depending who you ask) suffering from issues between 6.7 and sqlite3. After spending a bunch of time looking into that issue, trying each of the available fixes that worked for some of the other users, and having no luck, I decided to do the only option that seems to be a sure thing until the issue is fixed, and downgraded to 6.6.7. My database errors appear to have disappeared, so while that's good, I realize now that proftpd is no longer compatible with 6.6.7. I've read talk in some posts about being able to download older versions through docker, but I haven't found a reliable guide on how to do this, or anywhere to find the info i might need to get a version of proftpd that works. Anyone care to show me the light? I'd rather not mess with a bunch of other ftp apps seeing as most of the ftp-related feedback I've seen indicates there aren't many wonderful, easy to use options, and I had no sweat setting up proftd on 6.7.

Link to comment

You can download older versions and their dependencies manually from my github account.

 

Download the following into /boot/config/plugins:

https://github.com/SlrG/unRAID/raw/87f31b9a223fd2f2b6b414207a2ab5204c1003f8/Plugins/ProFTPd.plg

Create a new directory /boot/config/plugins/ProFTPd and download these into the new dir:

https://github.com/SlrG/unRAID/raw/87f31b9a223fd2f2b6b414207a2ab5204c1003f8/AppSupport/ProFTPd/ProFTPd-SlrG-Control-1.5.tar.gz
https://github.com/SlrG/unRAID/raw/87f31b9a223fd2f2b6b414207a2ab5204c1003f8/AppSupport/ProFTPd/ProFTPd-SlrG-Dependency-1.5_x64.tar.gz

 

Afterwards a reboot of your server should install the older version of the plugin. The new version will show as update under Plugins and in the plugins settings afterwards however. Make sure you have no auto updates enabled and exclude the old version check of it from the "Fix Common Problems" plugin if you have that running.

 

I didn't test it today, but I think that are the required steps. If it does not work, please report back.

Link to comment
On 8/3/2019 at 10:56 AM, kricker said:


Thanks for taking the time to look at it. I was brain dead and didn't even think to test locally first. I'll do that!

Just an update, I finally got time to try it locally and it also fails to retrieve a directory listing.....time for more troubleshooting. I'll dig into it again more later.

 

Strangely I can connect and get a directory listing from a PC using the command prompt and FTP commands. Filezilla....no go......

Edited by kricker
Link to comment
  • 4 weeks later...

New update. Yesterday my Tower mobo went down. I swapped back to my older Supermicro mobo. Now my FTP has the same issue as the one I was trying to get working remotely. The interesting bit is that now I am running the same mobo as the other system. That was the only change. Now EVERYTHING is the same between the two systems not being able to show the directory listing. Same Mobo, same amount of RAM (8 GB), same router. I can say this mobo used to work perfectly with older versions of Unraid and the ProFTP plugin.

 

Anyone have any thoughts as to why the mobo would cause this issue? System specs below.

 

unRAID server Pro, version 6.7.2

Model:Custom

Motherboard:Supermicro - X7SPA-HF

Processor:Intel® Atom™ CPU D525 @ 1.80GHz

HVM:Not Available

IOMMU:Not Available

Cache:L1-Cache = 48 kB (max. capacity 48 kB)

L2-Cache = 1024 kB (max. capacity 1024 kB)

Memory:8 GB (max. installable capacity 8 GB)*

DIMM0 = 4096 MB, 800 MT/s

DIMM1 = 4096 MB, 800 MT/s

Network:eth0: 1000Mb/s, full duplex, mtu 1500

eth1: not connected

Kernel:Linux 4.19.56-Unraid x86_64

OpenSSL:1.1.1c

P + Q algorithm:1482 MB/s + 789 MB/s

 

Connection from Filezilla:
Status:    Connection established, waiting for welcome message...
Status:    Plain FTP is insecure. Please switch to FTP over TLS.
Status:    Logged in
Status:    Retrieving directory listing...
Command:    PWD
Response:    257 "/" is the current directory
Command:    TYPE I
Response:    200 Type set to I
Command:    PASV
Response:    227 Entering Passive Mode (24,158,124,213,6,61).
Command:    MLSD
Error:    Connection timed out after 20 seconds of inactivity
Error:    Failed to retrieve directory listing
Status:    Disconnected from server
Status:    Resolving address of xxx.xxx.xxx.xxx
Status:    Connecting to xxx.xxx.xxx.xxx:xxxx...
Status:    Connection established, waiting for welcome message...
Status:    Plain FTP is insecure. Please switch to FTP over TLS.
Status:    Logged in
Status:    Retrieving directory listing...
Command:    PWD
Response:    257 "/" is the current directory
Command:    TYPE I
Response:    200 Type set to I
Command:    PASV
Response:    227 Entering Passive Mode (24,158,124,213,6,4).
Command:    MLSD
Error:    Connection timed out after 20 seconds of inactivity
Error:    Failed to retrieve directory listing

 

Edited by kricker
Link to comment

I got the remote system working by changing some settings in Filezilla. Mine I have still yet to get connected through its DDNS, although locally it is working. Even though I am using the same settings mine is still acting odd for the moment.

 

The test gives me:

Status: Connected, waiting for welcome message...
Reply: 220 ProFTPD Server (ProFTPd) [xxx.xxx.xxx.xxx]
Command: CLNT https://ftptest.net on behalf of 96.61.122.201
Reply: 200 OK
Command: AUTH TLS
Reply: 500 AUTH not understood
Warning: Server refused AUTH TLS, trying deprecated AUTH SSL fallback.
Command: AUTH SSL
Reply: 500 AUTH not understood
Warning: Server refused AUTH SSL, falling back to insecure plaintext FTP.
Command: USER test
Reply: 331 Password required for test
Command: PASS ****
Reply: 230 User test logged in
Command: SYST
Reply: 215 UNIX Type: L8
Command: FEAT
Reply: 211-Features:
Reply: CLNT
Reply: EPRT
Reply: EPSV
Reply: HOST
Reply: LANG en-US.UTF-8;en-US*
Reply: MDTM
Reply: MFF modify;UNIX.group;UNIX.mode;
Reply: MFMT
Reply: MLST modify*;perm*;size*;type*;unique*;UNIX.group*;UNIX.groupname*;UNIX.mode*;UNIX.owner*;UNIX.ownername*;
Reply: REST STREAM
Reply: SIZE
Reply: TVFS
Reply: UTF8
Reply: 211 End
Command: PWD
Reply: 257 "/" is the current directory
Status: Current path is /
Command: TYPE I
Reply: 200 Type set to I
Command: PASV
Reply: 227 Entering Passive Mode (24,158,124,213,6,61).
Command: MLSD
Error: Connection timed out

 

https://my.wirenine.com/knowledgebase/140/How-to-fix-failed-to-retrieve-directory-listing-error-in-FileZilla-FTP.html

Quote

 

How to fix failed to retrieve directory listing error in FileZilla FTP

If the problem still persists, please disable your firewall then try once more! If it still fails,  here is what you need to do:

Open Filezilla, go to Edit -> Settings

Click on Connection -> FTP: Choose Active

Click on Connection -> FTP -> Active Mode: Select "Ask your operating system for the external IP address"

Click on Connection -> FTP -> Passive Mode: Choose Fall Back to Active Mode

Press OK.

Try connecting to your FTP again!

 

 

Edited by kricker
Link to comment

No. Just using my Google Wifi router.

 

Update:

WTF?! I just enabled debug loggin in ProFTP and now it works perfectly....How?? Why??

 

I am also no able to switch FileZilla back over to passive connections and it is still working. All I did was enable debug logging....

Edited by kricker
Link to comment
  • 4 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.