я установил vsftpd
на моем Линукс Убунту 21.04
экземпляр, используя следующее:
sudo apt-get установить vsftpd
Я включил FTP в моем уфв
брандмауэр с использованием следующего:
sudo ufw разрешить ftp
Мой /etc/vsftpd.conf
файл содержит следующее:
# Пример файла конфигурации /etc/vsftpd.conf
#
# Настройки по умолчанию, скомпилированные в настройках, довольно параноидальные. Этот образец файла
# немного ослабляем ситуацию, чтобы сделать демон ftp более удобным в использовании.
# Пожалуйста, смотрите vsftpd.conf.5 для всех скомпилированных значений по умолчанию.
#
# ПРОЧИТАЙТЕ ЭТО: Этот пример файла НЕ является исчерпывающим списком опций vsftpd.
# Прочтите справочную страницу vsftpd.conf.5, чтобы получить полное представление о vsftpd.
# возможности.
#
#
# Запускать автономно? vsftpd может работать как из inetd, так и отдельно
# демон запущен из сценария инициализации.
слушать = ДА
#
# Эта директива включает прослушивание сокетов IPv6. По умолчанию прослушивание
# на IPv6 "любой" адрес (::) будет принимать соединения с обоих IPv6
# и клиенты IPv4. Нет необходимости прослушивать *оба* IPv4 и IPv6.
# Розетки.Если вы этого хотите (возможно, потому, что хотите слушать определенные
# адресов) то необходимо запустить две копии vsftpd с двумя конфигурациями
# файлы.
listen_ipv6 = НЕТ
#
# Разрешить анонимный FTP? (Отключено по умолчанию).
анонимный_включить = НЕТ
#
# Раскомментируйте это, чтобы разрешить вход локальным пользователям.
local_enable = ДА
#
# Раскомментируйте это, чтобы включить любую форму команды записи FTP.
write_enable = ДА
#
# Маска по умолчанию для локальных пользователей 077. Вы можете изменить ее на 022,
# если ваши пользователи этого ожидают (022 используется большинством других ftpd)
#local_umask=022
#
# Раскомментируйте это, чтобы разрешить анонимному пользователю FTP загружать файлы. Это только
# имеет эффект, если вышеуказанное глобальное разрешение записи активировано. Кроме того, вы будете
# Очевидно, необходимо создать каталог, доступный для записи пользователю FTP.
#anon_upload_enable=ДА
#
# Раскомментируйте это, если вы хотите, чтобы анонимный пользователь FTP мог создавать
# новые каталоги.
#anon_mkdir_write_enable=ДА
#
# Активировать сообщения каталога - сообщения, отправляемые удаленным пользователям, когда они
# перейти в определенный каталог.
dirmessage_enable = ДА
#
# Если включено, vsftpd будет отображать списки каталогов со временем
# в вашем часовом поясе. По умолчанию отображается GMT.
# число, возвращаемое командой MDTM FTP, также зависит от этого
# вариант.
use_localtime = ДА
#
# Активировать ведение журнала загрузок/загрузок.
xferlog_enable = ДА
#
# Убедитесь, что соединения передачи PORT исходят из порта 20 (ftp-данные).
connect_from_port_20=ДА
#
# Если вы хотите, вы можете сделать так, чтобы загруженные анонимные файлы принадлежали
# другой пользователь. Запись! Использование «root» для загруженных файлов не
# рекомендуемые!
#chown_uploads=ДА
#chown_username=кто угодно
#
# Вы можете переопределить, куда идет файл журнала, если хотите. По умолчанию показано
# ниже.
#xferlog_file=/var/log/vsftpd.log
#
# Если вы хотите, вы можете иметь файл журнала в стандартном формате ftpd xferlog.
# Обратите внимание, что в данном случае расположение файла журнала по умолчанию — /var/log/xferlog.
#xferlog_std_format=ДА
#
# Вы можете изменить значение по умолчанию для тайм-аута бездействующего сеанса.
#idle_session_timeout=600
#
# Вы можете изменить значение по умолчанию для тайм-аута соединения для передачи данных.
#data_connection_timeout=120
#
# Рекомендуется определить в вашей системе уникального пользователя,
# FTP-сервер можно использовать как полностью изолированный и непривилегированный пользователь.
#nopriv_user=ftpsecure
#
# Включите это, и сервер будет распознавать асинхронные запросы ABOR. Нет
# рекомендуется для безопасности (код нетривиален). Не включив его,
# однако это может сбить с толку старые FTP-клиенты.
#async_abor_enable=ДА
#
# По умолчанию сервер делает вид, что разрешает режим ASCII, но на самом деле игнорирует
# запрос. Включите следующие параметры, чтобы сервер действительно выполнял ASCII.
# изменение файлов в режиме ASCII.
# Имейте в виду, что на некоторых FTP-серверах поддержка ASCII допускает отказ в обслуживании
# атака (DoS) через команду "SIZE /big/file" в режиме ASCII. vsftpd
# предсказал эту атаку и всегда был в безопасности, сообщая о размере
# необработанный файл.
# Искажение ASCII - ужасная особенность протокола.
#ascii_upload_enable=ДА
#ascii_download_enable=ДА
#
# Вы можете полностью настроить строку баннера входа:
#ftpd_banner=Добро пожаловать в службу FTP.
#
# Вы можете указать файл запрещенных анонимных адресов электронной почты. По всей видимости
# полезно для борьбы с некоторыми DoS-атаками.
#deny_email_enable=ДА
# (по умолчанию следует)
#banned_email_file=/etc/vsftpd.banned_emails
#
# Вы можете ограничить локальных пользователей их домашними каталогами. См. FAQ для
# возможные риски в этом перед использованием chroot_local_user или
# chroot_list_enable ниже.
chroot_local_user = ДА
#
# Вы можете указать явный список локальных пользователей для chroot() их дома
# каталог. Если для chroot_local_user установлено значение YES, этот список становится списком
# пользователям НЕ выполнять chroot().
# (Внимание! Использование chroot может быть очень опасным. При использовании chroot убедитесь, что
# у пользователя нет прав на запись в каталог верхнего уровня внутри
# chroot)
#chroot_local_user=ДА
#chroot_list_enable=ДА
# (по умолчанию следует)
#chroot_list_file=/etc/vsftpd.chroot_list
#
# Вы можете активировать опцию "-R" для встроенного ls. Это отключено
# по умолчанию, чтобы удаленные пользователи не могли вызывать чрезмерный ввод-вывод на больших
# места. Однако некоторые неисправные FTP-клиенты, такие как «ncftp» и «mirror», предполагают
# наличие опции "-R", так что есть веские основания для ее включения.
#ls_recurse_enable=ДА
#
# Настройка
#
# Некоторые настройки vsftpd не соответствуют структуре файловой системы
# По умолчанию.
#
# Эта опция должна быть именем каталога, который пуст. Так же
# каталог не должен быть доступен для записи пользователем ftp. Этот каталог используется
# в качестве безопасной тюрьмы chroot() иногда vsftpd не требует файловой системы
# доступ.
secure_chroot_dir=/var/run/vsftpd/пусто
#
# Эта строка является именем службы PAM, которую будет использовать vsftpd.
pam_service_name = vsftpd
#
# Эта опция указывает расположение сертификата RSA, используемого для SSL
# зашифрованные соединения.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable = НЕТ
#
# Раскомментируйте это, чтобы указать, что vsftpd использует файловую систему utf8.
#utf8_filesystem=ДА
user_sub_token=$ПОЛЬЗОВАТЕЛЬ
local_root=/home/$USER/ftp_user
userlist_enable = ДА
userlist_file=/etc/vsftpd.user_list
userlist_deny = НЕТ
Я добавил предполагаемую учетную запись пользователя ftpuser
к /etc/vsftpd.user_list
. Следующее содержится в выводе netstat -tanp
:
TCP 0 0 0.0.0.0:27017 0.0.0.0:* ПРОСЛУШИВАТЬ 939/докер-прокси
TCP 0 0 0.0.0.0:21 0.0.0.0:* ПРОСЛУШАТЬ 585614/vsftpd
TCP 0 0 127.0.0.53:53 0.0.0.0:* ПРОСЛУШАТЬ 582461/systemd-резо
TCP 0 0 0.0.0.0:22 0.0.0.0:* ПРОСЛУШАТЬ 581200/sshd: /usr/s
Вышеизложенное, по-видимому, указывает на то, что vsftpd
прослушивает порт 21, как и должно быть. Однако я не могу подключиться к нему с помощью WinSCP
на порт 21 с протоколом FTP. Однако странно то, что я могу подключиться к порту 22 по протоколу SFTP.
Я также должен упомянуть, что раньше у меня был vsftpd
установлен и настроен для SFTP. Я сделал sudo apt-получить чистку vsftpd
и с тех пор пытаюсь переустановить.
Редактировать Даже когда я бегу FTP-сервер
Я получаю сообщение об ошибке: ftp: подключение: время ожидания соединения истекло
Вот шаги, которые я сейчас предпринял.
Установить VSFTPD
судо подходящее обновление
sudo apt установить vsftpd
Статус службы sudo vsftpd
Настроить брандмауэр
sudo ufw разрешить 20/tcp
sudo ufw разрешить 21/tcp
sudo ufw разрешить 40000:50000/tcp
sudo ufw разрешить 990/tcp
sudo ufw разрешить openssh
sudo ufw включить
статус sudo ufw
Создание ftpuser и каталогов
sudo adduser ftpuser
sudo mkdir /home/ftpuser/ftp
sudo chown Nobody:nogroup /home/ftpuser/ftp
sudo chmod a-w /home/ftpuser/ftp
sudo mkdir /home/ftpuser/ftp/files
sudo chown ftpuser:ftpuser /home/ftpuser/ftp/files
Настройка конфигурации VSFTPD
судо нано /etc/vsftpd.conf
Со следующими записями
слушать = НЕТ
listen_ipv6 = ДА
anonymos_enable = НЕТ
local_enable = ДА
write_enable = ДА
локальная_маска=022
dirmessage_enable = ДА
use_localtime = ДА
xferlog_enable = ДА
connect_from_port_20=ДА
chroot_local_user = ДА
secure_chroot_dir=/var/run/vsftpd/пусто
pam_service_name = vsftpd
force_dot_files = ДА
pasv_min_port=400000
pasv_max_port=500000
user_sub_token=$ПОЛЬЗОВАТЕЛЬ
local_root=/home/$USER/ftp
Перезапустите VSFTPD, чтобы изменения вступили в силу.
sudo systemctl перезапустить vsftpd.service
Попробуйте подключиться с помощью Filezilla и WinSCP. Ни один из них не работал. Однако, как и раньше, я смог подключиться через SFTP на порт 22.
Что я делаю не так?