При настройке моего сервера FTPS я хочу включить chroot_local_user. При отключении все работает нормально. Однако, если я включу это, WinSCP не сможет подключиться и заявит, что мне нужен сертификат клиента для подключения. Filezilla терпит неудачу.
Если я явно установил для require_cert значение NO (даже если оно установлено по умолчанию), эта проблема все равно не исчезнет.
Как я могу решить эту проблему?
Также будет приемлемо альтернативное решение, ограничивающее пользователей их домашней папкой.
Спасибо
Сообщение об ошибке 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/