All Projects → panubo → docker-vsftpd

panubo / docker-vsftpd

Licence: MIT license
vsftpd Docker Image

Programming Languages

shell
77523 projects
Makefile
30231 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to docker-vsftpd

TinyWebDB-PHP
TinyWebDB System written in PHP
Stars: ✭ 13 (-66.67%)
Mutual labels:  ftp
f3
f3 is a bridge between FTP and an s3-compatible object storage.
Stars: ✭ 23 (-41.03%)
Mutual labels:  ftp
qsftpd
A FTP server that persists all data to QingStor Object Storage.
Stars: ✭ 21 (-46.15%)
Mutual labels:  ftp
gitup
Laravel package to upload git commits to server(s) via (s)ftp.
Stars: ✭ 20 (-48.72%)
Mutual labels:  ftp
FTP
FTP客户端,服务端
Stars: ✭ 34 (-12.82%)
Mutual labels:  ftp
ftp-server
A FTP Server base on Spring Boot and Apache Ftp Server.😝
Stars: ✭ 17 (-56.41%)
Mutual labels:  ftp
ftpknocker
🔑 ftpknocker is a multi-threaded scanner for finding anonymous FTP servers
Stars: ✭ 38 (-2.56%)
Mutual labels:  ftp
simple http server
simple http server for upload and download
Stars: ✭ 101 (+158.97%)
Mutual labels:  ftp
ftpConnect
A simple and robust dart FTP Client Library to interact with FTP Servers with possibility of zip and unzip files.
Stars: ✭ 43 (+10.26%)
Mutual labels:  ftp
one-ftpserver
Simple, portable FTP server for one user by one executable jar file.
Stars: ✭ 26 (-33.33%)
Mutual labels:  ftp
Transferetto
Small PowerShell module with FTPS/SFTP functionality
Stars: ✭ 33 (-15.38%)
Mutual labels:  ftp
autoscreen
Automated screen capture utility
Stars: ✭ 76 (+94.87%)
Mutual labels:  ftp
DecoyMini
🐝 A highly scalable, safe, free enterprise honeypots 一款高可扩展、安全、免费的企业级蜜罐系统
Stars: ✭ 213 (+446.15%)
Mutual labels:  ftp
bitbucket-sync
Mirror of BitBucket Sync project hosted on BitBucket
Stars: ✭ 18 (-53.85%)
Mutual labels:  ftp
acd
ACD helps you download Adobe Connect Sessions Videos and Audios, download files from FTP server, transfer files using Shift I/O
Stars: ✭ 117 (+200%)
Mutual labels:  ftp
upp-components
A collection of packages for U++ framework.
Stars: ✭ 36 (-7.69%)
Mutual labels:  ftp
libunftp
Extensible, async, cloud orientated FTP(S) server library and the core of unFTP: https://github.com/bolcom/unFTP. Follow up and talk to us on https://t.me/unftp
Stars: ✭ 120 (+207.69%)
Mutual labels:  ftp
C-Browser-Password-Cracker
C++ Firefox & Google Chrome Cracker Source Code
Stars: ✭ 24 (-38.46%)
Mutual labels:  ftp
wget-lua
Wget-AT is a modern Wget with Lua hooks, Zstandard (+dictionary) WARC compression and URL-agnostic deduplication.
Stars: ✭ 52 (+33.33%)
Mutual labels:  ftp
Bash-Backup-Script
A small script to upload backup tar to an external storage service
Stars: ✭ 21 (-46.15%)
Mutual labels:  ftp

VSFTPD Docker Image

This is a micro-service image for VSFTPD.

There are a few limitations but it will work if you are using host networking --net host or have a direct/routed network between the Docker container and the client.

Virtual Users

This VSFTPD container uses virtual users. Each user that logs in will have the same system UID and GID. The real users has UID and GID of 48:48 by default, however using build-args this can be changed when building the container.

For example use --build-arg FTP_UID=1000 --build-arg FTP_GID=1000 to set the UID and GID to 1000:1000.

Options

The following environment variables are accepted.

  • FTP_USER: Sets the default FTP user

  • FTP_PASSWORD: Plain text password (not recommended), or

  • FTP_PASSWORD_HASH: Sets the password for the user specified by FTP_USER. This requires a hashed password such as the ones created with mkpasswd -m sha-512 which is in the whois debian package.

  • FTP_USER_*: Adds multiple users. Value must be in the form of username:hash. Should not be used in conjunction with FTP_USER and FTP_PASSWORD(_HASH).

  • FTP_USERS_ROOT: if set the vsftpd local_root will be set to /srv/$USER so each user is chrooted to their own directory instead of a shared one.

  • FTP_CHOWN_ROOT: if set chown will be run against /srv setting the FTP user and group as owner and group of the directory. Note: chown is run non-recursively ie. will only chown the root`

  • FTP_PASV_ADDRESS: override the IP address that vsftpd will advertise in response to the PASV command

Usage Example

docker run --rm -it -p 21:21 -p 4559-4564:4559-4564 -e FTP_USER=ftp -e FTP_PASSWORD=ftp docker.io/panubo/vsftpd:latest

SSL Usage

SSL can be configured (non-SSL by default). Firstly the SSL certificate and key need to be added to the image, either using volumes or baking it into an image. Then specify the vsftpd_ssl.conf config file as the config vsftpd should use.

This example assumes the ssl cert and key are in the same file and are mounted into the container read-only.

docker run --rm -it \
-e FTP_USER=panubo -e FTP_PASSWORD_HASH='$6$XWpu...DwK1' \
-v `pwd`/server.pem:/etc/ssl/certs/vsftpd.crt:ro \
-v `pwd`/server.pem:/etc/ssl/private/vsftpd.key:ro \
docker.io/panubo/vsftpd vsftpd /etc/vsftpd_ssl.conf

Security

Currently allow_writeable_chroot is turned ON, however this isn't recommended as a security precaution. We might look at making this configurable in the future. The main consequence of turning this off is that the local_root can not be writable by the FTP user.

See serverfault: vsftp: whu is allow_writable_chroot=YES a bad idea?

Logs

To get the FTP logs mount /var/log outside of the container. For example add -v /var/log/ftp:/var/log to your docker run ... command.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].