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

Linux и Apache: учетные записи пользователей FTP / SFTP для виртуальных хостов Apache?

Проблема

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

Некоторые из наших сайтов являются общедоступными, и их нужно регулярно обновлять. Эти обновления производятся сторонней фирмой, занимающейся поисковой оптимизацией / дизайном.

Мне нужно настроить одну учетную запись FTP, которую сторонняя фирма может использовать для доступа ТОЛЬКО к этим сайтам через FTP (или, в идеале, SFTP), чтобы изменять там файлы. Я НЕ хочу, чтобы у них был какой-либо доступ к остальной части нашего сервера или другим нашим веб-сайтам.

пример

Чтобы проиллюстрировать мою ситуацию, давайте на мгновение предположим, что у меня есть четыре веб-сайта, настроенные как виртуальные хосты в Apache:

internalsite1.com
internalsite2.com
contentsite1.com
contentsite2.com

Они существуют на моем сервере в следующих местах:

/var/www/html/
    /internalsite1.com
    /internalsite2.com
    /contentsite1.com
    /contentsite2.com

Теперь мне нужны хосты «contentite», чтобы разрешить доступ через учетную запись FTP для изменения файлов. Хосты "внутреннего сайта" должны быть доступны только пользователям, которые вошли в систему (то есть через стандартный SSH).

** Что я пробовал **

Ранее сегодня я экспериментировал с изменением моей конфигурации SSH для создания пользователей с chroot-доступом, используя internal-sftp и ChrootDirectory особенности OpenSSH. Однако конфигурация становилась очень сложной, и я не мог рисковать нарушить SSH-доступ к моему серверу, поэтому я отказался от этого подхода.

В настоящее время я пытаюсь понять, как использовать vsftpd для достижения своей цели; но пока я могу настроить только одну учетную запись с доступом к одному каталогу. Вероятно, этого было бы достаточно, но vsftpd имеет множество опций и нет четкой документации по достижению этой конкретной настройки.

Вопрос

Как я могу включить одну учетную запись пользователя ftp для доступа к нескольким расположениям каталогов на сервере, по одному для каждого?

Заметка: Ссылки на Чисто обучающие программы приветствуются.

РЕДАКТИРОВАТЬ: Хотя я бы предпочел, чтобы они входили в систему через SFTP, я бы согласился на обычный FTP-доступ. Мне просто нужно создать одну учетную запись FTP на сервере, которая имеет доступ к каждому из трех рассматриваемых местоположений веб-сайтов.

Вот руководство для установки и настройки scponly, пакет, который предоставляет альтернативную оболочку входа в систему. Основная идея заключается в том, что вы устанавливаете оболочку входа пользователя в /usr/bin/scponly, и тогда этот пользователь может использовать только SFTP или SCP; он / она не может получить оболочку командной строки.

В scponly пакет также предоставляет возможность chroot, включая вторую альтернативную оболочку входа в систему (/usr/sbin/scponlyc) и небольшая дополнительная настройка. Обязательно прочитайте там всю ветку форума, так как некоторые дополнительные советы дают другие в ответ на основную статью.

Руководство в некоторой степени специфично для Ubuntu, но оно также должно работать с Debian или любым дистрибутивом, производным от Debian. Если в вашем Linux нет ни одного из них, вы все равно сможете загрузить исходный код, скомпилировать его самостоятельно и затем выполнить шаги, описанные в руководстве.

Рассмотрите возможность chroot для пользователей. Вот руководство для Ubuntu, но его можно адаптировать.

http://ubuntuforums.org/showthread.php?t=858475