Настройка FTP-сервера

  1. На машине srv2 создайте пользователя для FTP и пароль для него
    useradd -m tuxftp
    passwd tuxftp

  2. Установите пакет FTP-сервера
    apt install proftpd

  3. Внесите изменения в конфиг FTP-сервера /etc/proftpd/proftpd.conf:
UseIPv6 off
...
DefaultRoot ~
  1. Запустите демон FTP-сервера
    systemctl start proftpd.service
Настрока доступа к FTP-серверу снаружи
  1. Внесите изменения в конфиге /etc/proftpd/proftpd.conf:
PassivePorts 49152 49153
MasqueradeAddress 10.10.Y.100+X #внешний ip ВМ gwX
  1. Перезапустите демон proftpd.
  2. На машине gwX добавьте правила проброса портов:
    iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 21 -j DNAT --to-destination 10.20.30.2:21
    iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 49152 -j DNAT --to-destination 10.20.30.2:49152
    iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 49153 -j DNAT --to-destination 10.20.30.2:49153

  3. Зайдите на ftp с хостовой машины.
Включение TLS-шифрования

Включение TLS по инструкции ниже, фактически, приведет к работе по схеме "ftp over ssh" (аналогично команде scp.

  1. Установите дополнительный модуль для поддержки шифрования:
    apt install proftpd-mod-crypto

  2. Включите поддержку TLS в /etc/proftpd/proftpd.conf

Include /etc/proftpd/tls.conf
  1. Отредактируйте конфигурацию /etc/proftpd/tls.conf (раскомментируйте и поправьте значения директив)
TLSEngine                       on
TLSLog                          /var/log/proftpd/tls.log
TLSProtocol                     SSLv23 TLSv1.2
TLSRSACertificateFile           /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile        /etc/ssl/private/proftpd.key

TLSOptions                      NoCertRequest EnableDiags NoSessionReuseRequired

TLSVerifyClient                 off

TLSRequired                     on
  1. Сгенерируйте ключи командой из комментариев в tls.conf
    openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

  2. Включите модуль mod_tls.c в /etc/proftpd/modules.conf

LoadModule mod_tls.c
  1. Перезапустите ProFTPd
    systemctl restart proftpd.service

  2. Создайте новый проброс порта на машине gw и подключитесь к нему
    iptables -t nat -A PREROUTING -p tcp -i enp0s3 --dport 2121 -j DNAT --to-destination 172.16.0.10:22