Краткая инструкция по установке и быстрой настройке FTP-сервера ProFTPd на FreeBSD
Устанавливаем proftpd из пакетов:
# pkg install proftpd
После этого добавим пользователей 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
На этом этапе лучше всего будет перезагрузить машину
# shutdown -r now
Далее открываем файл /usr/local/etc/proftpd.conf
# vi /usr/local/etc/proftpd.conf
исправим значение ServerName
ServerName "My First ProFTPd server"
после строчки
DefaultServer on
впишем такую:
DefaultAddress localhost
закомментируем использование UseIPv6, если он не используется
# UseIPv6 on
раскомментируем строку
DefaultRoot ~
Теперь откроем /etc/rc.conf
# vi /etc/rc.conf
и в нём пропишем строчку:
proftpd_enable="YES"
Затем подключим SSL-сертификат. Для этого запустим команду, которая сгенерирует сертификат
# openssl req -x509 -days 1461 -nodes -newkey rsa:1024 -keyout /etc/ssl/certs/proftpd.pem -out /etc/ssl/certs/proftpd.pem -subj "/C=RU/ST=MSK/L=Moscow/O=HappyCompany/OU=IT Department/CN=www.domain.com"
После этого откроем файл /usr/local/etc/proftpd.conf
# vi /usr/local/etc/proftpd.conf
и в нём пропишем параметры сертификата:
LoadModule mod_tls.c <IfModule mod_tls.c> TLSEngine on TLSRequired on TLSRSACertificateFile /etc/ssl/certs/proftpd.pem TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.pem TLSCipherSuite ALL:!ADH:!DES # TLSOptions NoCertRequest TLSVerifyClient off TLSRenegotiate ctrl 3600 data 512000 required off timeout 300 TLSLog /var/log/proftpd_tls.log </IfModule>
Запускаем службу proftpd
# service proftpd start
и теперь к серверу можно подключиться любым FTP-клиентом.