Из двух более распространенных версий ftp сервером (proftpd и vsftpd), мне больше по душе proftpd! Его я и буду устанавливать!


Устанавливаем из портов 

pkg install proftpd

Настройка не занимает много времени! Так , что перейдем к настройка! По умолчанию proftpd устанавливается в каталог /usr/local/etc/proftpd.conf. Proftpd.conf — конфигурационный файл, его мы и будем редактировать! Мне нравиться редактор nano (не установлен в систему по умолчанию!) Устанавливается двумя способами- из интернета, и из портов. Я ставлю из интернета!

pkg install nano

Редактируем конфигурационный файл! У каждого он свой! Я выкладываю свой!

#
# For more information about Proftpd configuration
# see http://www.proftpd.org/
#
# This is a basic ProFTPD configuration file (rename it to 
# 'proftpd.conf' for actual use. It establishes a single server
# and a single anonymous login. It assumes that you have a user/group
# "nobody" and "ftp" for normal operation and anon.
ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
ScoreboardFile /var/run/proftpd/proftpd.scoreboard
#UserAlias ftp alex
# Port 21 is the standard FTP port.
Port 21
# Use IPv6 support by default.
UseIPv6 off
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
MaxInstances 30 
MaxClients 15 "Too many connections to the server" 
MaxClientsPerHost 4 "% m client already connected with your host, more not allowed" 
MaxLoginAttempts 3 "Too many login attempts" 
CommandBufferSize 512
DisplayConnect /etc/ftp_connect.msg
DisplayLogin /etc/ftp_login.msg
AccessDenyMsg "ATTENTION!!! ALL CONNECTIONS LOGED"
AccessGrantMsg "Now apload/download files"
#DisplayGoAway "Go Away"
#RequireValidShell off
#AuthUserFile /usr/local/etc/ftp.user
TimeoutIdle 180
TimeoutLogin 120
TimeoutNoTransfer 360
TimeoutStalled 640
# Set the user and group under which the server will run.
User nobody
Group nogroup
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
DefaultRoot /var/ftp
# Normally, we want files to be overwriteable.
AllowOverwrite on
#LOGS
SyslogLevel notice
UseReverseDNS off
TransferLog /var/log/proftpd-tranfer.log
SystemLog /var/log/proftpd-error.log
# Bar use of SITE CHMOD by default
#<Limit SITE_CHMOD>
# DenyAll
#</Limit>
<Directory />
AllowOverwrite on
</Directory>
#VALID LOGINS
#<Limit LOGIN>
#AllowUser alex
#AllowALL
#</Limit>
<Directory /var/ftp/>
Umask 0777 0777
AllowOverwrite on
<Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
AllowAll
</Limit>
</Directory>
# A basic anonymous configuration, no upload directories. If you do not </Limit># want anonymous users, 
#########################################################################
# #
# Uncomment lines with only one # to allow basic anonymous access #
# #
#########################################################################
#<Anonymous ~ftp>
# User ftp
# Group ftp
 ### We want clients to be able to login with "anonymous" as well as "ftp"
 # UserAlias anonymous ftp
 ### Limit the maximum number of anonymous logins
 # MaxClients 10
 ### We want 'welcome.msg' displayed at login, and '.message' displayed
 ### in each newly chdired directory.
 # DisplayLogin welcome.msg
 # DisplayFirstChdir .message
 ### Limit WRITE everywhere in the anonymous chroot
 # <Limit WRITE>
 # DenyAll
 # </Limit>
#</Anonymous>
После того как мы сохранили конфигурационный файл, создадим необходимы директории
mkdir /var/ftp

Пропишем в Shells следующую строку

nano /etc/shells
/bin/false

Назначим права доступа

chmod -R 777 /var/ftp

Теперь нужно задать пользователя (владельца папки). Мы его создадим. Например:

adduser ftp
Username: ftp
вводим имя создаваемого пользователя
Full name: 
полное имя, можно оставить пусты, просто нажать Enter
Uid (Leave empty for default):
user id, можно ввести самому, начиная с номера 1001, либо нажать Enter, система выберет сама
Login group [newuser]:
группа в которую входит создаваемый пользователь, по умолчанию совпадает с именем
Login group is newuser. Invite newuser into other groups? []:
включить-ли пользователя в другие группы, если нет, жмем Enter
Login class [default]:
класс пользователя, о них поговорим чуть позже, на данном этапе, жмем Enter
Shell (sh csh tcsh nologin) [sh]: /bin/false
здесь предлагается выбрать системную оболочку, если вы не собираетесь давать данной учетной записи, 
удаленный доступ к системе, например через SSH, вписываем nologin, 
либо выбираем из предложенных вариантов, я обычно ставлю /bin/false (для ftp сервера)
Home directory [/home/newuser]:/var/ftp (Тогда пользователь ftp попадем именно в эту папку)
назначаем домашнюю директорию, если значение по-умолчанию устраивает, жмем Enter
Home directory permissions (Leave empty for default):
права доступа на домашнюю директорию, что-бы оставить по-умолчанию, жмем Enter
Use password-based authentication? [yes]:
использовать-ли авторизацию по паролю
Use an empty password? (yes/no) [no]:
можно-ли использовать пустые пароли
Use a random password? (yes/no) [no]:
система предлагает сгенерировать вам пароль, что-бы согласиться, нужно написать yes 
на заключительном этапе создания учетной записи, будет показан сгенерированный пароль
если предпочитаете ставить пароль вручную, жмите Enter
Enter password:
вводим пароль, имейте в виду, программа не покажет, что вы вообще что-либо вводите
так что будьте внимательны
Enter password again:
повторный ввод пароля
Lock out the account after creation? [no]:
заблокировать-ли учетную запись после создания
Username   : ftp
Password   : *****
Full Name  :
Uid        : 1011
Class      :
Groups     : newuser
Home       : /var/ftp
Home Mode  : 777
Shell      : /bin/false
Locked     : no
OK? (yes/no): yes
Add another user? (yes/no): no

Еще раз пропишим тот же пароль для пользователя, что и создали ранее

passwd ftp

Выставим владельца на папку /var/ftp

chown -R ftp:ftp /var/ftp

Пропишим наш сервер в автозагрузку nano /etc/rc.conf

proftpd_enable="YES"

И все что нам осталось это перезапустить наш сервер командой

service proftpd restart

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *