На этом уроке мы покажем вам, как легко создать FTP-сервер с виртуальными пользователями с помощью демона vsFTP на Debian 8.
apt-get update && apt-get upgrade
Если у вас нет веб — сервера Apache2 или если вы используете NGINX, то вам придется установить apache2-utils
которая необходима для генерации паролей для пользователей.
apt-get install apache2-utils
Установка службы vsFTPD:
apt-get install vsftpd libpam-pwdfile
Отредактируйте файл конфигурации vsFTPD и раскомментируйте строки ниже. Используйте редактор vim или nano
. Строки, которые не присутствуют в файле конфигурации, укажите внизу.
# vim /etc/vsftpd.conf listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 nopriv_user=vsftpd chroot_local_user=YES allow_writeable_chroot=yes guest_username=vsftpd virtual_use_local_privs=YES guest_enable=YES user_sub_token=$USER local_root=/var/www/$USER hide_ids=YES # Исключите это, если вы делаете это руководство на свой собственный сервер seccomp_sandbox=NO
Далее, мы должны изменить наш файл /etc/pam.d/vsftpd
, чтобы проверить файл пользователей/паролей, которые мы собираемся создать.
Во-первых, создать резервную копию файла, а затем отредактировать существующий:
cp /etc/pam.d/vsftpd{,.bak} vim /etc/pam.d/vsftpd
Удалите все из файла и добавите эти строки:
auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd account required pam_permit.so
Создайте главного пользователя, который будет использоваться виртуальными пользователями для проверки подлинности:
useradd --home /home/vsftpd --gid nogroup -m --shell /bin/false vsftpd
Как только это будет сделано, мы можем создать файл пользователей/паролей.
Примечание: пароли, используемые этим способом может быть до 8 символов. Если вы хотите прочитать vsFTPD c надежными паролями, вы можете поискать другой модуль pam.
htpasswd -cd /etc/ftpd.passwd andreyextest1
Добавьте другого пользователя и добавьте его в файл ftpd.passwd, флаг -c
здесь опущен.
htpasswd -d /etc/ftpd.passwd andreyextest2
Затем добавьте каталоги для пользователей, так как vsFTPD не будет создавать их автоматически.
## Для andreyextest1 mkdir /var/www/andreyextest1 chown vsftpd:nogroup /var/www/andreyextest1 chmod +w /var/www/andreyextest1 ## Для andreyextest2 mkdir /var/www/andreyextest2 chown vsftpd:nogroup /var/www/andreyextest2 chmod +w /var/www/andreyextest2
И, наконец, запустите демон vsFTPD и установите его на автоматический запуск при загрузке системы.
systemctl start vsftpd && systemctl enable vsftpd
Проверьте состояние, чтобы убедиться, что запущена служба:
# systemctl status vsftpd ● vsftpd.service - vsftpd FTP server Loaded: loaded (/lib/systemd/system/vsftpd.service; enabled) Active: active (running) since Sat 2016-12-03 11:07:30 CST; 23min ago Main PID: 5316 (vsftpd) CGroup: /system.slice/vsftpd.service ├─5316 /usr/sbin/vsftpd /etc/vsftpd.conf ├─5455 /usr/sbin/vsftpd /etc/vsftpd.conf └─5457 /usr/sbin/vsftpd /etc/vsftpd.conf
Проверьте свои настройки
Используйте FileZilla, WinSCP или любой другой FTP-клиент для входа в систему VPS, используя имя пользователя и пароль, которые вы создали ранее. Создайте тестовый каталог и тестовый файл от клиентов.
Проверка сервера, что файлы успешно созданы:
ls -l /var/www/andreyextest1 ls -l /var/www/andreyextest2