vsFTPd перестал работать после обновления

17

Я только что обновился до Ubuntu 12.04 LTS (Precise Pangolin) с Ubuntu Server 11.10 (Oneiric Ocelot).

Он обновил мою установку vsFTPd, и, похоже, что-то изменилось: / Я использую аутентификацию PAM. Что могло измениться, чтобы вызвать это?

При попытке подключиться к FTP-серверу я получаю эту ошибку:

500 OOPS: vsftpd: refusing to run with writable root inside chroot()

Я попытался найти его в Google, и он сказал добавить allow_writable_root=YESв файл конфигурации - однако, когда я пытаюсь это сделать и перезапустить vsftpd, он не может перезапуститься. Почему?

Вот как я на самом деле это исправил:

wget http://http.us.debian.org/debian/pool/main/v/vsftpd/vsftpd_3.0.2-3_amd64.deb -O vsftpd.deb
dpkg -i vsftpd.deb
echo "allow_writeable_chroot=YES" >> /etc/vsftpd.conf
service vsftpd reload

И вуаля :)

Мистер король
источник
Ссылка, указанная вами для wgetпараметра, не работает. Вероятно, потому что версия 3.0.2-3сейчас вышла. Любой, кто сталкивается с этой проблемой, должен посетить этот сайт, чтобы получить правильную ссылку. Вышеупомянутая ссылка предназначена для 64-битной платформы. Чтобы найти ссылки для этого пакета для других платформ, например, 32-битных, перейдите на эту страницу и прокрутите вниз до Download vsftpdраздела.
Трейдер

Ответы:

11

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

  1. Я изменяю папку, в которую входит мой FTP-пользователь, когда он / она впервые входит в систему (корневая папка), используя это в терминале: sudo chmod a-w /home/user

    Вы можете выбрать /home/userлюбую корневую папку вашего пользователя FTP.

  2. Создайте подпапку внутри папки, используя графический интерфейс или, если у вас есть только терминал, это: sudo mkdir /home/user/newfolder

Теперь вы должны быть в состоянии войти и читать записи в «новой папке». Вы НЕ сможете писать в корневую папку с FTP-клиента с помощью chmod aw, так что это причина для подпапки, и там вы можете.

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

Kristian
источник
Единственное исправление, которое я могу найти, это установить vsftpd-ext и заменить vsftpd, который позволяет использовать allow_writable_root, но он поставляется только в виде файла .tar.gz, и я очень плохо знаком с linux и, похоже, не могу его получить build: / в конце концов, я просто принудительно выполнил переход на старую версию vsftpd, которую использовал для запуска
Mr. King
Работал на меня. Владелец homedir должен создать папку, а не рут.
OrangeTux
Разве делать chmod aw "запрещено" мастерами джедаев linux? с тех пор как вы дадите разрешение 666?
9

Кто-то поддержал функцию добавления allow_writeable_chroot=YESверсии 3.0.0 до 2.3.5 (см. Эту запись в блоге ).

Чтобы установить в Ubuntu 12.04 (Precise Pangolin), выполните от имени пользователя root следующие команды:

add-apt-repository ppa:thefrontiergroup/vsftpd
apt-get update
apt-get install vsftpd
echo allow_writeable_chroot=YES >> /etc/vsftpd.conf

Обратите внимание, что в vsftpd-ext есть опция allow_writable_chroot=YES - обратите внимание на mssing e ! (или это опечатка в блоге?)

lumbric
источник
1
+1 - это, безусловно, кажется лучшим вариантом, и спасибо The Frontier Group за предоставление этого PPA. Но пользователи должны заметить, что это берет вас вне трассы. Из-за характера того, что он делает, vsftpd немного уязвим с точки зрения безопасности, и если в будущем будет обнаружена уязвимость в vsftpd, то пользователи будут зависеть от владельца PPA, чтобы обновить его, или пользователям нужно будет найти другое решение. в это время. Было бы целесообразно подписаться на список рассылки ubuntu-security-announce и следить за объявлениями безопасности vsftpd, если вы пойдете по этому пути.
Роби Басак
Наша команда DEVOPS создала этот пакет - оставьте комментарий к статье в блоге, если у вас есть какие-то отдельные проблемы, которые вам нужно решить, и они вам помогут.
Мламби
6

vsFTPd 3.0.0 добавляет опцию конфигурации,

allow_writeable_chroot=YES

чтобы снова включить предыдущее поведение (источник: исправление 500 OOPS: vsFTPd: отказ от запуска с доступным для записи корнем внутри chroot () , комментарий Брайана К. Уайта).

К сожалению, 3.0.0 еще не упакован Ubuntu. Так что пока что вернитесь к какой-то более старой версии. Например, я использую этот на Ubuntu 12.04 (Precise Pangolin): http://packages.ubuntu.com/oneiric-updates/vsftpd

Jakob
источник
Не могли бы вы добавить инструкции по установке связанного с вами пакета Oneiric? Должен ли я вручную загрузить пакет? Я полагаю, что добавление oneiric-обновлений в мои репозитории может сильно испортить ситуацию.
поясничный
0

Еще один способ сделать это как пользователь Kristian: это работает для меня. Я использую имя пользователя «Джон». Замените его на желаемое имя пользователя.

sudo chmod a-w /home/john - Удаляет разрешение для всех пользователей на удаление или изменение файла.

sudo mkdir /home/john/ftp - Создает папку с именем «ftp» в домашнем каталоге пользователя «Джон»

sudo chown -Rv john.john /home/john/ftp - Смена владельца каталога на группу «Джон» и пользователя «Джон».

OrangeTux
источник
0

Почему?

Взято и адаптировано из моего собственного ответа в баге 1065714 .

Для обеспечения стабильности стабильных выпусков обновления после выпуска рассматриваются только при определенных обстоятельствах. Детали процесса и требуемых критериев перечислены здесь: https://wiki.ubuntu.com/StableReleaseUpdates#When

Из-за этого пользователям релиза LTS сложно иметь доступные для записи chroot, поскольку вышестоящий проект vsftpd решил выпустить без этой функции во время выпуска 12.04. Теперь, когда выпущено 12.04, а исправление не соответствует вышеуказанным критериям, я не думаю, что это изменится для 12.04. Но обратите внимание, что команда стабильных обновлений принимает окончательное решение, и обновление им не предложено.

Если вы хотите, чтобы более новая версия vsftpd была общедоступной для пользователей, которые хотят использовать опцию allow_writeable_chroot, тогда репозиторий backports является подходящим местом для этого. С помощью backport пользователи, которым нужна эта функция, могут просто добавить репозиторий backports и установить оттуда vsftpd. Вы можете узнать больше о бэкпортах и ​​о том, как их заказать, здесь: https://wiki.ubuntu.com/UbuntuBackports

Тем временем, Frontier Group любезно предоставила PPA, как описано в ответе Ламбрика. Или вы можете использовать один из других ответов здесь, который работает для вас.

Роби Басак
источник