Skip to content

ome/vsftpd-anonymous-upload-docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

9de580f · Oct 26, 2022

History

54 Commits
Oct 24, 2022
Feb 17, 2022
Dec 12, 2017
Aug 3, 2022
Feb 17, 2022
Jan 17, 2022
Jan 18, 2022
Feb 17, 2022
Jan 18, 2022
Dec 7, 2017
Dec 7, 2017
Nov 29, 2017

Repository files navigation

vsftpd Anonymous Upload Docker Image

Actions Status

vsftpd is a GPL licensed FTP server for UNIX systems, including Linux.

This Docker image is configured to allow anonymous uploads only.

A very minimal level of access control is provided by listing allowed emails in /etc/vsftpd.email_passwords. /var/lib/ftp/incoming should be mounted as a volume, note permissions are important! xferlogs are sent to stdout.

Passive FTP ports are configured to fit with the default Kubernetes NodePort range since FTP does not support port-forwarding between different ports.

docker run -d --name vsftpd -p 21:21 -p 32022-32041:32022-32041 -v /var/lib/ftp/incoming vsftpd-anonymous-upload

Client

Login as anonymous, password allowed@example.org. You can upload files to incoming but listing is blocked.

$ ftp anonymous@127.0.0.1
Connected to 127.0.0.1.
220 Place files in /incoming for upload.
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

ftp> ls
229 Entering Extended Passive Mode (|||21015|)
150 Here comes the directory listing.
d-wxrwx---    2 ftp      ftp          4096 Nov 29 17:06 incoming
226 Directory send OK.

ftp> put test.txt
local: test.txt remote: test.txt
229 Entering Extended Passive Mode (|||21052|)
553 Could not create file.

ftp> cd incoming
250 Directory successfully changed.

ftp> ls
229 Entering Extended Passive Mode (|||21018|)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).

ftp> put test.txt
local: test.txt remote: test.txt
229 Entering Extended Passive Mode (|||21017|)
150 Ok to send data.
100% |***********************************|     6       53.26 KiB/s    00:00 ETA
226 Transfer complete.
6 bytes sent in 00:00 (6.59 KiB/s)

ftp> ls
229 Entering Extended Passive Mode (|||21026|)
150 Here comes the directory listing.
226 Transfer done (but failed to open directory).

ftp> put test.txt
local: test.txt remote: test.txt
229 Entering Extended Passive Mode (|||21007|)
553 Could not create file.

ftp> rm test.txt
550 Permission denied.

Kubernetes helm chart

An experimental Kubernetes Helm chart is included (note the TODOs regarding configuration).

helm upgrade --install --namespace=vsftpd vsftpd ./helm -f helm-example-config/config.yaml [-f <volume-config>.yaml]

Maintainer

ome-devel@lists.openmicroscopy.org.uk

Acknowledgements

This image is based on https://github.com/vimagick/dockerfiles/tree/361bbf6e46665af72910542afaece71f27e46089/vsftpd