Устанавливаем Proftpd.

# pkg install proftpd

Редактируем конфиг Proftpd.

# vi /usr/local/etc/proftpd.conf

Расскоментируем  параметр DefaultRoot ~, чтобы пользователь не смог выходить за пределы своей домашней директории.

И добавим в конец файла параметр PassivePorts 60000 65000.

Добавляем наш сервис в автозагрузку.

# echo 'proftpd_enable="YES"' >> /etc/rc.conf

Открываем файл /etc/hosts и добавляем туда наш хост.

# vi /etc/hosts

192.168.1.11 f11rn

 Создаем директорию ftp.

# mkdir /usr/ftp

Чтобы создать пользователя и группу используем утилиту ftpasswd.

Устанавливаем пакет perl5 чтобы устранить ошибку - env: perl: No such file or directory, которая возникает когда вы закускаете утилиту ftpasswd.

Создаем директорию для файлов пользователя и переходим туда.

# mkdir /usr/local/etc/proftpd/ug 
# cd /usr/local/etc/proftpd/ug

Создаем пользователя и группу.

# ftpasswd --name ftpuser --file /usr/local/etc/proftpd/ug/ftpd.passwd --home /usr/ftp --uid 1004 --gid 1004 --shell /sbin/nologin --passwd

Появится приглашение на ввод пароля.

# ftpasswd --group --name ftpgroup --gid 1004 --member ftpuser 

Идем в конфиг proftpd и добавляем в конец следующие параметры:

ServerIdent Off
RequireValidShell off
AuthUserFile /usr/local/etc/proftpd/ug/ftpd.passwd
AuthGroupFile /usr/local/etc/proftpd/ug/ftpd.group

Стартуем proftpd.

 # service proftpd start

Создаем директорию для SSL сертификатов и переходим туда.

# mkdir /usr/local/etc/proftpd/ssl
# cd /usr/local/etc/proftpd/ssl

Создаем сертификаты.

# openssl req -new -x509 -days 365 -nodes -out /usr/local/etc/proftpd/ssl/proftpd.cert.pem -keyout /usr/local/etc/proftpd/ssl/profptd.key.pem

Добавляем следующий код в конец конфига proftpd:

<IfModule mod_dso.c>
    LoadModule mod_tls.c
  </IfModule>

  <IfModule mod_tls.c>
    TLSEngine on
    TLSLog /var/log/proftpd-tls.log
    TLSProtocol SSLv3 TLSv1
    TLSRequired off
    TLSECCertificateFile /usr/local/etc/proftpd/ssl/proftpd.cert.pem
    TLSECCertificateKeyFile /usr/local/etc/proftpd/ssl/proftpd.key.pem
    TLSVerifyClient off
    TLSRenegotiate none
  </IfModule>

Создаем лог файл.

# touch /var/log/proftpd-tls.log

Перезапускаем proftpd.

# service proftpd restart