Краткое руководство по установке и быстрой настройке FTP-сервера vsFTPd на FreeBSD.
В первую очередь установим пакет vsftpd-ssl
# 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
# vi /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
Запускаем службу vsftpd
# service vsftpd start
и теперь к серверу можно подключиться любым FTP-клиентом.