Назад | Перейти на главную страницу

Размещение домов vsftpd в общей папке Windows AD

У меня есть внешние клиенты, которые загружают / скачивают файлы через vsftpd FTP на Ubuntu 18.04. Они используют учетные записи Linux (не виртуальные), привязаны к корневому каталогу и нуждаются (и видят) только в своих собственных каталогах.

Теперь их дома должны быть каким-то образом доступны из Windows для просмотра и, возможно, редактирования загрузок нашими администраторами приложений и конкретными операторами приложений, которые являются обычными пользователями Windows AD.

Я хотел бы переместить их весь / home из общего ресурса Windows AD на нашем файловом сервере и сделать доступным для определенных групп безопасности AD, но я не уверен, будет ли это работать с разрешениями Linux? Я явно хотел бы избежать совместного использования папок Ubuntu по сети.

Идея:

Это сработает? Если нет, что еще я могу сделать? Может мне нужно перейти на виртуальных пользователей vsftpd?

У меня уже есть пара общих ресурсов CIFS, установленных на Ubuntu, но все они соответствуют одному uid / gid, и я не уверен, будет ли / как vsftpd работать с вышеуказанной настройкой.

Оказывается, работает даже сочетание виртуальных и реальных пользователей! Руководство предназначено для Ubuntu 18.04 LTS, но должно работать и на других Linux, хотя расположение файлов может измениться.

Итак, один из способов сделать это:

  1. Создайте соответствующий каталог на своем сервере CIFS и установите для него одного пользователя AD с соответствующими правами (например, unix_server_user @ domain).
  2. Подключите общий ресурс CIFS с правами AD unix_server_user и локальным пользователем, сопоставленным с пользователем сервера VSFTPD. /etc/fstab:

//Your_CIFS_Server/share /mnt/cifs_homes cifs credentials=/etc/your_AD_password_data_file,uid=ftpuser,gid=ftpusers,file_mode=0770,dir_mode=0770 0 0

Очевидно, не забудьте установить файл паролей, доступный только root, для небольшого бонуса безопасности.

  1. /etc/vsftpd.conf должно быть хотя бы эти строки:

local_enable=YES nopriv_user=ftpuser chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd user_config_dir=/etc/vsftpd.userconf

  1. Вам нужно изменить /etc/pam.d/vsftpd для поддержки как виртуальных, так и локальных пользователей:

Виртуальные пользователи: auth sufficient pam_pwdfile.so pwdfile /etc/vsftpd.passwd account sufficient pam_permit.so

Добавление виртуальных пользователей осуществляется через htpasswd -d в файле /etc/vsftpd.passwd. Этот файл также может иметь root-доступ только для некоторой незначительной меры безопасности.

Обратите внимание, что pam_pwdfile похоже, поддерживает только CRYPT-шифрование файла vsftpd.passwd при использовании htpasswd, что небезопасно, поэтому вам следует сгенерировать пароли с помощью openssl, как описано в ссылке, или дополнительно использовать ограничение SSL или IP-адреса для доступа по FTP.

Локальные пользователи:

auth required pam_shells.so

Все эти строки должны присутствовать вместе с обычными строками @include common- * и всем остальным, что вам нужно в pam-файле vsftpd.

Добавьте файлы для каждого локального и виртуального пользователя в /etc/vsftpd.conf/ с именем пользователя.

У локального пользователя должны быть только обычные значения idle_session_timeout или все, что вам нужно. Его домашний адрес будет обычным / home или любым другим, установленным в / etc / passwd.

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

chroot_local_user=YES local_root=/mnt/cifs_homes/$USER user_sub_token=$USER virtual_use_local_privs=YES guest_enable=YES nopriv_user=ftpuser guest_username=ftpusers

В итоге вы получите:

1) Со стороны Windows доступ контролируется любыми пользователями и группами AD, для которых вы установили разрешения AD. Просто имейте в виду, что unix_server_user @ domain должен иметь доступ на запись к нему, если вам не нужен FTP только для чтения.

2) Из Unix доступ всех виртуальных пользователей отображается на ftpuser.ftpusers. Локальные пользователи обычно используют Unix server / home.

3) Все FTP логины имеют chroot для своего домашнего адреса и могут читать и писать в нем.

Угадаю, но я бы попробовал 3 способа:

  1. Использование пользователей AD в Linux (возможно, с помощью SSSD)
  2. Использование виртуальных пользователей на vsftpd (я думаю, вам нужно убедиться, что файлы смонтированной файловой системы CIFS принадлежат пользователю vsftpd)
  3. Выполнение противоположного: установите Samba и предоставьте администраторам и операторам доступ к файлу через нее (более простое решение, IMHO)