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

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

Moderator: Blaze

Post Reply
User avatar
Blaze
DEV Team
DEV Team
Posts: 2804
Joined: 28 Dec 2010, 11:31
Distribution: ⟰ Porteus current ☯ all DEs ☯
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 (для Porteus 3.2.2 и 4.0) и vsftpd-3.0.3-x86_64-5.xzm (для Porteus 4.0+)
Заметка. Включает в себя необходимые, нижеприведенные изменения 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>
после чего, произведите необходимые настройки для VSFTPD (создание пользователя, пароля пользователя и т.д.), не касающиеся vsftpd.conf (см. ниже)
Открываем терминал и вводим команды (окно с терминалом не закрываем, так как он нам понадобится в дальнейшем)

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

# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
заменяем на:

Code: Select all

# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=002
находим:

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 (можете задать другое имя пользователя которое Вам больше нравится, но только в нижнем регистре) с основной группой users (данную, основную группу оставляем как есть)

Code: Select all

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

Code: Select all

passwd ftpuser
устанавливаем права 775
Заметка. Если Вы ранее указали другую директорию, то укажите её вместо /home/ftp

Code: Select all

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

Code: Select all

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

Code: Select all

echo -e "if [ -x /usr/sbin/vsftpd ]; then\\n  echo \"Starting vsftpd: /usr/sbin/vsftpd\" && sleep 5 && /usr/sbin/vsftpd &\\nfi" >> /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 aux | grep [v]sftpd
# находим номер процесса /usr/sbin/vsftpd, например это 5194
kill 5194
/usr/sbin/vsftpd & 
Linux 5.4.8-porteus #1 SMP Sun Jan 5 09:14:47 UTC 2020 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

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

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

Post#2 by Blaze » 20 Oct 2019, 10:10

Подключился к ресиверу и скопировал от туда файлы конфигурации vsftpd

vsftpd.conf

Code: Select all

# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.

# run standalone
listen=NO
listen_ipv6=YES

# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=NO
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=NO
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
#xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftp
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that turning on ascii_download_enable enables malicious remote parties
# to consume your I/O resources, by issuing the command "SIZE /big/file" in
# ASCII mode.
# These ASCII options are split into upload and download because you may wish
# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),
# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be
# on the client anyway..
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# 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().
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=vsftpd
#
# This option is examined if userlist_enable is activated. If you set this
# setting to NO, then users will be denied login  unless  they are  explicitly 
# listed  in the file specified by userlist_file.  When login is denied, the 
# denial is issued before the user is asked for a password.
userlist_deny=YES
#
# If enabled, vsftpd will load a list of usernames, from the filename given by
# userlist_file.  If a user tries to log in using  a  name in  this  file,  they
# will be denied before they are asked for a password. This may be useful in 
# preventing cleartext passwords being transmitted. See also userlist_deny.
userlist_enable=NO
#
# If enabled,  vsftpd  will display directory listings with the time in your
# local time zone. The default is to display GMT. The times returned by the
# MDTM FTP command are also affected by this option.
use_localtime=YES
#
# If set to YES, local users will be (by default) placed in a chroot() jail in
# their home directory after login.  Warning: This  option has  security  
# implications,  especially  if  the users have upload permission, or shell access.
# Only enable if you know what you are doing.  Note that these security implications
# are not vsftpd specific. They apply to all FTP daemons which offer to put 
# local  users in chroot() jails.
chroot_local_user=YES
#
allow_writeable_chroot=YES
#
tcp_wrappers=NO

# Enable FXP
pasv_promiscuous=YES
port_promiscuous=YES

# Allow users w/o shell access
check_shell=NO

# Start directory for non-chrooted users
local_root=/
vsftpd.chroot_list

Code: Select all

root
vsftpd.ftpusers

Code: Select all

# Users that are not allowed to login via ftp
adm
avahi
backup
bin
daemon
games
gnats
halt
irc
list
lp
mail
man
messagebus
news
nobody
operator
proxy
rpc
rpcuser
shutdown
sync
sys
uucp
www-data
Linux 5.4.8-porteus #1 SMP Sun Jan 5 09:14:47 UTC 2020 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