Вопрос или проблема
Описание
Я установил свежую версию 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, я получаю следующую ошибку:
Статус: Создание каталога '/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 Не удалось создать файл.
Ошибка: Критическая ошибка передачи файла
Что я упустил?
Ответ или решение
Ваша проблема заключается в том, что хотя вы можете входить в систему как пользователь root через FTP, и можете навигировать по каталогу и загружать файлы, вы не можете создавать каталоги или загружать файлы в определенные директории, такие как /root или /root/Downloads. Это связано с тем, что vsftpd (Very Secure FTP Daemon) накладывает некоторые ограничения, и в зависимости от конфигурации FTP-сервера, он может не разрешать выполнение определенных действий пользователем root.
Решение
-
Права доступа: Убедитесь, что пользователь root (или FTP-сессия под root) имеет достаточные права на запись в директории, в которые вы пытаетесь загружать файлы. Вы можете проверить и изменить права доступа с помощью команд:
ls -ld /root ls -ld /root/Downloads
Если у каталога нет разрешения на запись, вы можете изменить его с помощью команды:
chmod 755 /root chmod 755 /root/Downloads
Однако рекомендуется избегать изменения прав доступа для /root по соображениям безопасности.
-
Chroot: Параметр
chroot_local_user=YES
в вашем конфигурационном файле может создавать ограничения, которые препятствуют записи или созданию директорий пользователем внутри своего домашнего каталога. Вы можете попробовать временно отключить его:chroot_local_user=NO
Однако помните, что это также усложняет безопасность, и сделать это не рекомендуется, даже если вы не заботитесь о безопасности на данный момент.
-
Параметр allow_writeable_chroot: Параметр
allow_writeable_chroot=YES
позволяет пользователю записывать в своем chroot-директории, но под root может не сработать в каталогах, для которых нет прав. Возможно, вам следует проверить его использование. -
Логи FTP: Проверьте логи vsftpd, чтобы увидеть, есть ли в них какие-либо подсказки о причине ошибки:
tail -f /var/log/vsftpd.log
Это может помочь вам выявить любые дополнительные проблемы или требования к правам доступа.
-
Профиль SELinux: Если на вашей системе включен SELinux, это может также ограничивать доступ для vsftpd. Вы можете временно отключить SELinux, чтобы проверить, решает ли это проблему:
setenforce 0
Если это решает вашу проблему, вам следует рассмотреть возможность настройки контекста SELinux для разрешения нужных действий без отключения.
Заключение
Проанализируйте указанные выше рекомендации и выполните соответствующие изменения в вашей конфигурации. Имеете ввиду, что использование root-пользователя для FTP может быть рискованным, даже если у вас нет проблем с безопасностью в данный момент. Лучше создать отдельного FTP-пользователя с необходимыми правами доступа, что даст больше гибкости и безопасности в управлении.