Краткое руководство по установке и быстрой настройке FTP-сервера vsFTPd на FreeBSD.
В первую очередь установим пакет
# pkg install vsftpd-ssl
После этого добавим пользователей user1 и user2, которые будут подключаться. Каждый будет входить в группу ftp, оболочка — nologin, домашние каталоги: net/user1/ и /net/user2/, а также будут иметь пароль.
# adduser
Username: user1 Full name: First User Uid (Leave empty for default): Login group [user1]: ftp Login group is ftp. Invite user1 into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: nologin Home directory [/home/user1]: /net/user1 Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: yes Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : user1 Password : ***** Full Name : First User Uid : 1001 Class : Groups : ftp Home : /net/user1 Home Mode : Shell : /usr/sbin/nologin Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (user1) to the user database. Add another user? (yes/no): yes Username: user2 Full name: Second User Uid [1002]: Login group [user2]: ftp Login group is ftp. Invite user2 into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: nologin Home directory [/net/user2]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: yes Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: Enter password again: Lock out the account after creation? [no]: Username : user2 Password : ***** Full Name : Second User Uid : 1002 Class : Groups : ftp Home : /net/user2 Home Mode : Shell : /usr/sbin/nologin Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (user2) to the user database. Add another user? (yes/no): no Goodbye!
Затем открываем файл /etc/shells
# vi /etc/shells
и в самом конце дописываем строчку: /usr/sbin/nologin
На этом этапе лучше всего будет перезагрузить машину
Далее открываем файл /usr/local/etc/vsftpd.conf
# vi /usr/local/etc/vsftpd.conf
если не нужен анонимный доступ, закомментируем строчку:
anonymous_enable=YES
раскомментируем там следующие строчки:
local_enable=YES write_enable=YES local_umask=022 chroot_local_user=YES background=YES
исправим listen=NO
на listen=YES
и в конце файла добавим: allow_writeable_chroot=YES
В /etc/rc.conf добавляем автозагрузку службы:
vsftpd_enable=»YES»
Затем подключим SSL-сертификат. Для этого запустим несколько команд, которые сгенерирует сертификат для vsFTPd
# openssl genrsa -out /etc/ssl/certs/vsftpd.key # openssl req -new -key /etc/ssl/certs/vsftpd.key -out /etc/ssl/certs/vsftpd.csr
здесь необходимо будет ввести некоторые данные:
Country Name (2 letter code) [AU]:RU State or Province Name (full name) [Some-State]:MSK Locality Name (eg, city) []:Moscow Organization Name (eg, company) [Internet Widgits Pty Ltd]:YourCompany Organizational Unit Name (eg, section) []:IT Dept Common Name (e.g. server FQDN or YOUR name) []:Your Public IP Email Address []:it@yourcompany.com
и наконец
# openssl x509 -req -days 1461 -in /etc/ssl/certs/vsftpd.csr -signkey /etc/ssl/certs/vsftpd.key -out /etc/ssl/certs/vsftpd.pem
После этого откроем файл /usr/local/etc/vsftpd.conf
# vi /usr/local/etc/vsftpd.conf
и в нём пропишем параметры сертификата:
rsa_cert_file=/etc/ssl/certs/vsftpd.pem #путь к открытому ключу rsa_private_key_file=/etc/ssl/certs/vsftpd.key #путь к закрытому ключу ssl_enable=YES #разрешает использование шифрования allow_anon_ssl=NO #разрешает использовать SSL анонимным пользователям force_local_data_ssl=NO #требует использования шифрования, и если установить YES, клиенты без шифрования не смогут подключиться force_local_logins_ssl=NO #также требует подключение по SSL ssl_tlsv1=YES #использовать TLS версии 1 ssl_sslv2=NO #использовать SSL версии 1 и 2 ssl_sslv3=NO # ssl_ciphers=HIGH #выбор шифра. В данном примере мы говорим использовать максимально безопасный
Запускаем службу vsftpd
# service vsftpd start
и теперь к серверу можно подключиться.
Источник: https://dondub.com/2021/06/ftp-server-vsftpd-na-freebsd/
https://www.dmosk.ru/miniinstruktions.php?mini=vsftpd-ubuntu#virtuser