AlmaLinux 8 vsftpd с правами root

Вопрос или проблема

Описание

Я установил свежую версию AlmaLinux 8.10 в виртуальной машине (VirtualBox), то есть меня совсем не волнует безопасность.

Я использовал инструкции из руководства Настройка Vsftpd FTP-сервера на Rocky Linux 8|AlmaLinux 8, пропустив раздел 2. Создание FTP-пользователя и каталога пользователя, так как хотел подключиться как root. Поэтому я следовал следующим шагам:

    1. Установка vsftpd на Rocky Linux 8/ AlmaLinux 8
    1. Настройка 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.

Решение

  1. Права доступа: Убедитесь, что пользователь root (или FTP-сессия под root) имеет достаточные права на запись в директории, в которые вы пытаетесь загружать файлы. Вы можете проверить и изменить права доступа с помощью команд:

    ls -ld /root
    ls -ld /root/Downloads

    Если у каталога нет разрешения на запись, вы можете изменить его с помощью команды:

    chmod 755 /root
    chmod 755 /root/Downloads

    Однако рекомендуется избегать изменения прав доступа для /root по соображениям безопасности.

  2. Chroot: Параметр chroot_local_user=YES в вашем конфигурационном файле может создавать ограничения, которые препятствуют записи или созданию директорий пользователем внутри своего домашнего каталога. Вы можете попробовать временно отключить его:

    chroot_local_user=NO

    Однако помните, что это также усложняет безопасность, и сделать это не рекомендуется, даже если вы не заботитесь о безопасности на данный момент.

  3. Параметр allow_writeable_chroot: Параметр allow_writeable_chroot=YES позволяет пользователю записывать в своем chroot-директории, но под root может не сработать в каталогах, для которых нет прав. Возможно, вам следует проверить его использование.

  4. Логи FTP: Проверьте логи vsftpd, чтобы увидеть, есть ли в них какие-либо подсказки о причине ошибки:

    tail -f /var/log/vsftpd.log

    Это может помочь вам выявить любые дополнительные проблемы или требования к правам доступа.

  5. Профиль SELinux: Если на вашей системе включен SELinux, это может также ограничивать доступ для vsftpd. Вы можете временно отключить SELinux, чтобы проверить, решает ли это проблему:

    setenforce 0

    Если это решает вашу проблему, вам следует рассмотреть возможность настройки контекста SELinux для разрешения нужных действий без отключения.

Заключение

Проанализируйте указанные выше рекомендации и выполните соответствующие изменения в вашей конфигурации. Имеете ввиду, что использование root-пользователя для FTP может быть рискованным, даже если у вас нет проблем с безопасностью в данный момент. Лучше создать отдельного FTP-пользователя с необходимыми правами доступа, что даст больше гибкости и безопасности в управлении.

Оцените материал
Добавить комментарий

Капча загружается...