From 6de8f362eed996287bb5e844dc08a0536d97342a Mon Sep 17 00:00:00 2001 From: Luca Rullo Date: Sat, 26 Feb 2022 18:32:23 +0100 Subject: [PATCH] Init: Docker FTP VSFtp --- Dockerfile | 15 +++++++++++++++ docker-compose.yml | 12 ++++++++++++ entrypoint.sh | 10 ++++++++++ vsftpd.conf | 16 ++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100755 entrypoint.sh create mode 100644 vsftpd.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..80a2140 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM registry.sindominio.net/debian + +RUN apt -y update && \ + apt install -y vsftpd rsyslog + +COPY vsftpd.conf /etc/vsftpd.conf +RUN mkdir -p /var/run/vsftpd/empty +RUN mkdir /home/ftp +ADD entrypoint.sh / + +ENTRYPOINT [ "/bin/sh", "/entrypoint.sh" ] + +CMD ["/usr/sbin/vsftpd"] + +EXPOSE 21 diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1d8f897 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,12 @@ +version: "3" +services: + vsftp: + restart: always + build: . + volumes: + - ./data:/home/ftp + environment: + FTP_USER : user + FTP_PASS : pass + ports: + - "2021:21" diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..c4eb3b1 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/bash +set -e; + +echo $FTP_USER:$FTP_PASS +if [ -z `getent passwd $FTP_USER` ]; then useradd $FTP_USER -d /home/ftp; fi +echo "$FTP_USER:$FTP_PASS" | chpasswd + +echo $FTP_USER | tee -a /etc/vsftpd.userlist + +exec $@ diff --git a/vsftpd.conf b/vsftpd.conf new file mode 100644 index 0000000..0c465af --- /dev/null +++ b/vsftpd.conf @@ -0,0 +1,16 @@ +listen=YES +listen_ipv6=NO +connect_from_port_20=YES +anonymous_enable=NO +local_enable=YES +write_enable=YES +chroot_local_user=YES +allow_writeable_chroot=YES +secure_chroot_dir=/var/run/vsftpd/empty +pam_service_name=vsftpd +pasv_enable=YES +pasv_min_port=40000 +pasv_max_port=45000 +userlist_enable=YES +userlist_file=/etc/vsftpd.userlist +userlist_deny=NO