Site icon OS CONFIG

FTP-сервер vsFTPd на FreeBSD

Краткое руководство по установке и быстрой настройке 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-клиентом.

Exit mobile version