Вопрос или проблема
Описание
ПРИМЕЧАНИЕ: Тот же вопрос, который был задан на ServerFault, который, судя по всему, был неверным форумом.
Я установил свежую AlmaLinux 8.10 на виртуальной машине (VirtualBox), т.е. меня совершенно не интересует безопасность.
Я воспользовался инструкциями из Руководства по настройке Vsftpd FTP сервера на Rocky Linux 8|AlmaLinux 8, пропустив раздел 2. Создание FTP пользователя и пользовательского каталога, так как хотел подключиться как root. Поэтому я выполнил следующие шаги:
-
- Установить vsftpd на Rocky Linux 8/ AlmaLinux 8
-
- Настроить vsftpd на Rocky Linux 8/ AlmaLinux 8. (Многие настройки уже были установлены по умолчанию)
Я добавил/изменил следующие настройки, по сравнению с настройками по умолчанию, т.е. перечислены только отличия:
/etc/vsftpd/ftpusers
;root
/etc/vsftpd/user_list
#root
/etc/vsftpd/vsftpd.conf
# Отключите для корректной работы fail2ban!
xferlog_std_format=NO
chroot_local_user=YES
# ========================================
# Добавленные кастомные строки
# ========================================
# Ведение логов для fail2ban
log_ftp_protocol=YES
vsftpd_log_file=/var/log/vsftpd.log
# Новые настройки, упомянутые в руководстве
# https://computingforgeeks.compasv_min_port/configure-vsftpd-ftp-server-on-rocky-almalinux/
# Ограничить доступ пользователя только его домашним каталогом и предоставить разрешения на запись.
allow_writeable_chroot=YES
# Пассивные порты
pasv_min_port=30000
pasv_max_port=31000
# Разрешить специальным пользователям Vsftpd в файле user_list доступ к FTP-серверу.
userlist_file=/etc/vsftpd/user_list
# Отличается от руководства!
userlist_deny=YES
Проблема
Я ожидал, что теперь смогу войти как root и делать все, что хочу.
Я могу войти. Я могу перемещаться по любым папкам. Я могу загружать файлы.
Я не могу загружать файлы или создавать папки.
# Пытаясь создать папку /root/MyFolder в FileZilla, я получаю следующую ошибку:
Status: Создание каталога '/root/MyFolder'...
Более грабель: CWD /root
Ответ: 250 Директория успешно изменена.
Более грабель: MKD MyFolder
Ответ: 550 Операция создания каталога не удалась.
# Пытаясь загрузить случайный файл MyTestFile.txt в папку /root/Downloads/ с помощью FileZilla, я получаю следующую ошибку:
Более грабель: CWD /root/Downloads
Ответ: 250 Директория успешно изменена.
Более грабель: TYPE A
Ответ: 200 Переход в ASCII режим.
Более грабель: PASV
Ответ: 227 Переход в пассивный режим (192,168,77,140,117,137).
Более грабель: STOR MyTestFile.txt
Ответ: 553 Не удалось создать файл.
Ошибка: Критическая ошибка передачи файла
Что я упустил?
Ответ или решение
Для решения проблем с загрузкой файлов и созданием папок через сервер FTP vsftpd в AlmaLinux 8, следуйте ниже приведённым рекомендациям.
Проблемы с загрузкой и созданием папок
Судя по вашей конфигурации и сообщениям об ошибках, есть несколько моментов, которые могут вызвать проблемы с загрузкой файлов и созданием директорий, даже если вы подключаетесь как пользователь root.
-
Права доступа к директориям:
- Убедитесь, что папки, в которые вы пытаетесь загружать файлы, имеют соответствующие разрешения. Для того чтобы root мог создавать директории и загружать файлы, права доступа к директории должны быть установлены корректно. Проверьте права с помощью команды:
ls -ld /root ls -ld /root/Downloads
- Если права доступа недостаточны, исправьте их:
chmod 755 /root chmod 755 /root/Downloads
- Убедитесь, что папки, в которые вы пытаетесь загружать файлы, имеют соответствующие разрешения. Для того чтобы root мог создавать директории и загружать файлы, права доступа к директории должны быть установлены корректно. Проверьте права с помощью команды:
-
Настройка
vsftpd
:- Ваша конфигурация включает в себя строчку
allow_writeable_chroot=YES
, что является правильным шагом. Однако, стоит убедиться, что данное изменение действительно активировано. Вы можете перезапустить сервис после внесенных изменений:sudo systemctl restart vsftpd
- Ваша конфигурация включает в себя строчку
-
SELinux:
- Если SELinux включен, это может также блокировать действия вашего FTP-сервера. Проверьте статус SELinux командой:
sestatus
- Если он включен, попробуйте временно изменить его режим на разрешающий:
sudo setenforce 0
- Если это решает проблему, вам, возможно, необходимо будет настроить SELinux для обеспечения правильного доступа для vsftpd.
- Если SELinux включен, это может также блокировать действия вашего FTP-сервера. Проверьте статус SELinux командой:
-
Логирование и диагностика:
- Проверьте файлы журналов для получения подробной информации о том, почему операции могут быть отклонены. Это можно сделать с помощью команды:
cat /var/log/vsftpd.log
- Проверьте файлы журналов для получения подробной информации о том, почему операции могут быть отклонены. Это можно сделать с помощью команды:
Итоговое решение
После выполнения вышеуказанных проверок и изменений попробуйте снова загрузить файлы и создать папки через FTP. Если вы всё ещё сталкиваетесь с проблемами, возможно, стоит рассмотреть использование других FTP-клиентов, чтобы исключить проблемы, связанные с конкретным клиентом, таким как FileZilla.
Примечание о безопасности
Несмотря на то, что вы указываете, что не беспокоитесь о безопасности, рекомендуется всегда следить за тем, чтобы важные директории оставались защищёнными от ненадлежащего доступа. Подмысля по возможности не используйте root для FTP-доступа в продуктивной среде.
Если у вас есть дополнительные вопросы или проблемы, не стесняйтесь задавать их!