Установка и настройка FTP-сервера ProFTPD в Porteus

Добро пожаловать!

Moderator: Blaze

User avatar
Blaze
DEV Team
DEV Team
Posts: 3869
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

Установка и настройка FTP-сервера ProFTPD в Porteus

Post#1 by Blaze » 03 Mar 2018, 17:45

Установка и настройка FTP-сервера ProFTPD в Porteus
ProFTPd — FTP-сервер для Linux и UNIX-подобных операционных систем.
Открываем терминал и вводим команды (окно с терминалом не закрываем, так как он нам понадобится в дальнейшем)

Code: Select all

su
toor
pmod -u
pmod -m proftpd
# возможно потребуется зависимость libsodium
pmod -m libsodium
mv /tmp/proftpd*.xzm $PORTDIR/modules && mv /tmp/libsodium*.xzm $PORTDIR/modules
activate $PORTDIR/modules/proftpd*.xzm && activate $PORTDIR/modules/libsodium*.xzm
Открываем файл /etc/proftpd.conf (под root пользователем)

находим:

Code: Select all

ServerName			"ProFTPD Default Installation"
#ServerType			standalone
ServerType			inetd
заменяем на:

Code: Select all

ServerName			"Name-of-your-server"
ServerType			standalone
#ServerType			inetd
находим:

Code: Select all

MaxInstances			30
заменяем на:

Code: Select all

# Ограничение общего количества подключений
MaxInstances			8
находим:

Code: Select all

# Normally, we want files to be overwriteable.
AllowOverwrite			on
добавляем после:

Code: Select all

# Разрешить соединения на основе /etc/shells
RequireValidShell			off

# Файлы для авторизации
AuthUserFile  /etc/proftpd.passwd
AuthGroupFile /etc/proftpd.group

# Разрешаем докачивать файлы
AllowStoreRestart			on

# Сообщение после успешного захода на сервер
AccessGrantMsg "Welcome to Server"

# Запираем всех в домашнем каталоге, чтобы не могли просмотреть каталоги выше. Важно для безопасности!
DefaultRoot ~

# Включаем пассивный режим работы для ProFTPD-сервера
# Указываем диапазон портов для пассивного режима
PassivePorts    <min-pasv-port> <max-pasv-port>

# Разрешить доступ пользователю name-of-your-user и запретить доступ всем остальным
<Limit LOGIN>
AllowUser name-of-your-user
DenyALL
</Limit>

# Маска изменяющая права доступа, которые присваиваются новым файлам и директориям по умолчанию
<Directory /home/ftp/*>
Umask 002
AllowOverwrite on
</Directory>
Заметка.
  1. вместо /home/ftp можете задать свой путь для ftp директории и не забудете поменять путь во всех нижеприведенных командах.
  2. вместо name-of-your-user введите имя Вашего пользователя (в ниже приведенном примере пользователем будет выступать user, соответственно вместо директивы name-of-your-user, должен быть указан user) и не забудете поменять его во всех нижеприведенных командах.
Сохраняем изменения и закрываем файл настроек /etc/proftpd.conf

Проверяем синтаксис /etc/proftpd.conf

Code: Select all

proftpd -t
должно быть - Syntax check complete.
Заметка. Для проверки поддерживаемых модулей

Code: Select all

proftpd -l
Далее, в терминале:

Code: Select all

mkdir /home/ftp
# или введите свою директорию для ftp

Code: Select all

# Перед тем, как создать пользователя для ProFTPd, пожалуйста, добавьте /bin/false в файл /etc/shells:
echo "/bin/false" >> /etc/shells

Code: Select all

# Добавляем права
chmod -R 777 /home/ftp
Теперь нам надо создать пользователей с их логинами и паролями. Делается это через команду. Обратите внимание, что первой командой мы создаём группу и присваиваем данной группе конкретного пользователя, второй пользователя. Хранятся эти данные в соответствующих файлах рядом с файлом конфигурации сервера в каталоге /etc/
Первая команда - создаём группу ftp2 пользователем которой является пользователь с именем user, автоматически будет также создан файл proftpd.group в /etc

Code: Select all

ftpasswd --group --name=ftp2 --gid=50 --member=user --file /etc/proftpd.group
Вторая команда - создаём самого пользователя user. Обратите внимание, ещё раз, что user - это логин пользователя, он может быть masha, vasia, petia и так далее, короче это логин. В этой же команде задан каталог пользователя. Автоматически также при первом использовании команды будет создан файл proftpd.passwd в /etc

Code: Select all

ftpasswd --passwd --name=user --home=/home/ftp --shell=/bin/false --uid=1001 --gid=1001 --file /etc/proftpd.passwd
При вводе команды будет запрошен пароль для пользователя, ну придумайте уж какой-нибудь.
Последние две команды выше повторяем столько раз сколько пользователей вам нужно.
Кому очень хочется посмотреть куда пишутся пароли и прочее (они там будут в виде хэша) велком в /etc/proftpd.passwd

Ещё раз для понимания - это не UNIX пользователи, это фактически учётные записи вашего ftp-сервера.

Затем добавляем в автозагрузку proftpd

Code: Select all

echo "/usr/sbin/proftpd &" >> /etc/rc.d/rc.local
Запускаем proftpd командой

Code: Select all

/usr/sbin/proftpd &
с помощью ftp-адреса ftp://localhost/ проверяем работу FTP сервера в браузере или любом ftp-клиенте.
Заметка. Для завершения процесса proftpdи последующего запуска proftpd (метод перезапуск proftpd), приведу пример:

Code: Select all

ps aux | grep [p]roftpd
# находим номер процесса /usr/sbin/proftpd, например это 5194
kill 5194
/usr/sbin/proftpd &
Linux 6.6.11-porteus #1 SMP PREEMPT_DYNAMIC Sun Jan 14 12:07:37 MSK 2024 x86_64 Intel(R) Xeon(R) CPU E3-1270 v6 @ 3.80GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Navi 23 [Radeon RX 6600] [1002:73ff] (rev c7) » Vengeance LPX 16GB DDR4 K2 3200MHz C16