vsftpd с chroot_local_user требует сертификата клиента

При настройке моего сервера FTPS я хочу включить chroot_local_user. При отключении все работает нормально. Однако, если я включу это, WinSCP не сможет подключиться и заявит, что мне нужен сертификат клиента для подключения. Filezilla терпит неудачу.

Если я явно установил для require_cert значение NO (даже если оно установлено по умолчанию), эта проблема все равно не исчезнет.

Как я могу решить эту проблему?

Также будет приемлемо альтернативное решение, ограничивающее пользователей их домашней папкой.

Спасибо

0
задан 29 November 2018 в 15:05
2 ответа

Сообщение об ошибке WinSCP, вероятно, неверно (или просто предположение). Когда я некоторое время назад пытался настроить vsftpd с помощью chroot_local_user , я обнаружил, что vsftpd отклоняет вход в систему (по соображениям безопасности), если у пользователя есть права на запись в каталог chroot. Это немного скрыто в FAQ по vsftpd :

В) Помогите! Я получаю сообщение об ошибке «отказ от запуска с доступным для записи корнем».

A) vsftpd защищает от опасных конфигураций. Причина этого сообщение обычно является изворотливым владельцем домашнего каталога ftp. Дом каталог НЕ должен принадлежать самому пользователю ftp. И это не должно быть доступным для записи пользователем ftp. Способ исправить это:

chown root ~ ftp; chmod -w ~ ftp

Другой причиной может быть попытка использовать chroot_local_user без настройки правильное владение каталогом.

Чтобы отладить это, добавьте log_die = YES в ваш vsftpd.conf. Затем в журнале будет отображаться что-то вроде этого:

Nov 29 16:08:55 yourhost vsftpd[2866]: pam_userdb(vsftpd:auth): user 'testuser' granted access
Nov 29 16:08:55 yourhost vsftpd[2872]: ERROR: vsftpd: refusing to run with writable root inside chroot()

Это не проблема для доступа только для чтения, но если ваши пользователи должны иметь возможность загружать файлы, вы должны создать папку в chroot dir, которая принадлежит соответствующему пользователь. Если вы хотите предоставить ftps-доступ к домашним каталогам ваших пользователей, это становится немного громоздко. Вероятно, вам придется вставить дополнительный уровень иерархии, то есть / home / someuser становится / home / someuser / someuser .

Для быстрого тестирования я обнаружил, что curl очень удобен, например для проверки загрузки:

curl -T /tmp/blub -u testuser:testpass ftps://yourserver.example.com/in/
1
ответ дан 4 December 2019 в 15:48

Я столкнулся с этой проблемой. Cyberduck (и только Cyberduck) запрашивал сертификат клиента на мой сервер vsftp.

Я решил добавить это в /etc/vsftpd.conf:

ssl_request_cert=NO

0
ответ дан 23 May 2021 в 13:19

Теги

Похожие вопросы