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

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

Moderator: Blaze

Post Reply
User avatar
Blaze
DEV Team
DEV Team
Posts: 1813
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current Xfce x86_64
Location: ☭ Russian Federation, Lipetsk region, Dankov
Contact:

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

Post#1 by Blaze » 06 Jan 2017, 14:17

Установка и настройка FTP-сервера VSFTPD в Porteus
FTP сервер vsftpd (Very Secure FTP daemon) является одним из надежнейших и простых в настройке ftp серверов. Это оптимальный выбор для большинства пользователей, которым нужен ftp сервер.
Готовая сборка vsftpd-3.0.3-x86_64-3.xzm
Заметка. Включает в себя необходимые, нижеприведенные изменения vsftpd.conf, однако требуется внести Ваши значения параметров в следующие директивы:

Code: Select all

# Включаем пассивный режим работы для vsftpd-сервера
# Указываем диапазон портов для пассивного режима
pasv_enable=Yes
pasv_max_port=<max>
pasv_min_port=<min>

# Установите значение YES, если вы хотите использовать имя хоста (в отличие от IP-адреса) в опции pasv_address
pasv_addr_resolve=YES
pasv_address=<domain name>
после чего, в терминале, дайте права на выполнение:

Code: Select all

su
toor
chmod 755 /etc/rc.d/rc.vsftpd
и запустите VSFTPD командой:

Code: Select all

/etc/rc.d/rc.vsftpd start
Открываем терминал и вводим команды (окно с терминалом не закрываем, так как он нам понадобится в дальнейшем)

Code: Select all

su
toor
usm -u usm
usm -u all
usm -g vsftpd
mkdir /tmp/usm/vsftpd
xzm2dir /tmp/usm/vsftpd*.xzm /tmp/usm/vsftpd
rm -rf /tmp/usm/vsftpd/usr/doc && rm -rf /tmp/usm/vsftpd/usr/man
Открываем файл /tmp/usm/vsftpd/etc/vsftpd.conf (под root пользователем)

находим:

Code: Select all

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=YES
заменяем на:

Code: Select all

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
находим:

Code: Select all

# Uncomment this to allow local users to log in.
#local_enable=YES
заменяем на:

Code: Select all

# Uncomment this to allow local users to log in.
local_enable=YES
находим:

Code: Select all

# Uncomment this to enable any form of FTP write command.
#write_enable=YES
заменяем на:

Code: Select all

# Uncomment this to enable any form of FTP write command.
write_enable=YES
находим:

Code: Select all

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#chroot_local_user=YES
заменяем на:

Code: Select all

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
#«запирать» локальных пользователей в домашнем каталоге
chroot_local_user=YES
# разрешаем использовать домашние каталоги с правом на запись
allow_writeable_chroot=YES
находим:

Code: Select all

# When "listen" directive is enabled, vsftpd runs in standalone mode (rather
# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone
# mode rather than with inetd, change the line below to 'listen=YES'
# This directive cannot be used in conjunction with the listen_ipv6 directive.
listen=NO
заменяем на:

Code: Select all

# When "listen" directive is enabled, vsftpd runs in standalone mode (rather
# than from inetd) and listens on IPv4 sockets. To use vsftpd in standalone
# mode rather than with inetd, change the line below to 'listen=YES'
# This directive cannot be used in conjunction with the listen_ipv6 directive.
listen=YES
В целях безопасности, Slackware не использует PAM аутентификацию с использованием логина и пароля взятого с Activ Directory (AD)
поэтому, добавляем в самый конец файла vsftpd.conf следующие строки:

Code: Select all

# Эта опция имеет эффект только для не-PAM сборок vsftpd.
# Если выключена, то vsftpd не будет проверять оболочку локального пользователя в /etc/shells
check_shell=NO

# Директива, разрешающая список пользователей которым нужно открыть доступ к FTP, и путь до этого списка соответственно.
userlist_enable=YES
userlist_file=/etc/vsftpd.allow_list

# Директива, запрещающая список пользователей, которым закрыт доступ к FTP,
# в нашем случае запрещен вход всех пользователей кроме тех что указаны в /etc/vsftpd.allow_list
userlist_deny=NO

# Включаем пассивный режим работы для vsftpd-сервера
# Указываем диапазон портов для пассивного режима
pasv_enable=Yes
pasv_max_port=<max>
pasv_min_port=<min>

# Установите значение YES, если вы хотите использовать имя хоста (в отличие от IP-адреса) в опции pasv_address
pasv_addr_resolve=YES
pasv_address=<domain name>
Сохраняем изменения и закрываем файл настроек vsftpd.conf

Далее, в терминале:
Заметка. Указываем директорию /home/ftp (можете задать свою директорию - эта директория будет служить FTP каталогом, куда будут загружаться и от куда будут скачиваться файлы и т.д.) и создаём пользователя ftpuser (можете задать другое имя пользователя, которое Вам больше нравится, но только в нижнем регистре)

Code: Select all

useradd -d /home/ftp ftpuser -s /dev/null
задаем пароль для пользователя ftpuser (или введите имя своего пользователя)

Code: Select all

passwd ftpuser
устанавливаем права 777 для всех (читать, записывать, исполнять) и указываем владельца с такой же группой на директорию /home/ftp
Заметка. Если Вы ранее указали другую директорию, то укажите её вместо /home/ftp

Code: Select all

chmod -R 777 /home/ftp
chown -R ftpuser:ftpuser /home/ftp
далее добавляем пользователя ftpuser (или введите имя своего пользователя) в список разрешенных

Code: Select all

echo 'ftpuser' > /etc/vsftpd.allow_list
Затем добавляем в автозагрузку vsftpd, собираем xzm модуль с vsftpd и копируем его в директорию /porteus/modules

Code: Select all

echo "/usr/sbin/vsftpd &" >> /etc/rc.d/rc.local
dir2xzm /tmp/usm/vsftpd /tmp/usm/vsftpd.xzm
cp /tmp/usm/vsftpd.xzm /mnt/sdb1/porteus/modules
activate /mnt/sdb1/porteus/modules/vsftpd.xzm
Заметка. sdb1 это раздел с установленным Porteus. У Вас может быть другой раздел с Porteus.
запускаем vsftpd командой

Code: Select all

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

Code: Select all

ps x | grep vsftpd
# находим номер процесса /usr/sbin/vsftpd, например это 5194
kill 5194
/usr/sbin/vsftpd & 
Для удобства управления запуском, остановкой и перезапуском vsftpd написал init скрипт rc.vsftpd

Code: Select all

#!/bin/sh
# Start/stop/restart vsftpd (Very secure FTP server).
# To make vsftpd start automatically at boot, make this
# file executable:  chmod 755 /etc/rc.d/rc.vsftpd

# Start vsftpd:
vsftpd_start() {
  if [ -x /usr/sbin/vsftpd ]; then
    echo "Starting vsftpd:  /usr/sbin/vsftpd"
    /usr/sbin/vsftpd &
  fi
}

# Stop vsftpd:
vsftpd_stop() {
  killall vsftpd
}

# Restart vsftpd:
vsftpd_restart() {
  vsftpd_stop
  sleep 1
  vsftpd_start
}

case "$1" in
'start')
  vsftpd_start
  ;;
'stop')
  vsftpd_stop
  ;;
'restart')
  vsftpd_restart
  ;;
*)
  echo "usage rc.vsftpd: start|stop|restart"
esac
Скопируйте rc.vsftpd в /etc/rc.d/ и дайте права

Code: Select all

chmod 755 /etc/rc.d/rc.vsftpd
Linux porteus 4.15.10-porteus #1 SMP PREEMPT Sun Mar 18 10:35:07 x86_64 Intel(R) Core(TM) i5-6600K CPU @ 3.50GHz GenuineIntel GNU/Linux
MS-7A12 » [AMD/ATI] Tobago PRO [Radeon R7 360 / R9 360 OEM] (rev 81) » Vengeance LPX 16GB DDR4 K2 3200MHz C16

Post Reply