Предоставление HTTPS-доступа к многопользовательскому SFTP-серверу.

У меня есть SFTP-сервер, работающий на Ubuntu Server 12.04 LTS. Любые пользователи в группе 'sftponly' привязываются к своему домашнему каталогу при подключении. Поскольку OpenSSH требует, чтобы ChrootDirectory принадлежал пользователю root, у каждого пользователя есть подпапка с именем «upload», в которую у него есть разрешение на запись. Все это работает хорошо, и пользователи ограничены своей областью, независимо от того, знают они об этом или нет.

Теперь я хотел бы предоставить пользователям доступ через HTTP / HTTPS для загрузки файлов, используя только веб-браузер. Я изучал Apache mod_userdir, но, похоже, он больше ориентирован на анонимный доступ. Я хотел бы, чтобы система требовала от пользователя аутентификации, прежде чем он сможет загружать файлы из своей папки. Также следует разрешить им скачивать только из своей папки.

Например, пользователь посетит https://download.example.com/testuser/file.zip и будет обязан пройти аутентификацию, используя те же учетные данные, что и при подключении через SFTP для загрузки файл.

Я искал такие решения, как создание отдельного виртуального хоста для каждого пользователя и создание вручную файлов htaccess в каждом домашнем каталоге, но они кажутся неопрятными.

Любые предложения с благодарностью.

2
задан 19 July 2013 в 17:04

1 ответ

Вам необходим Apache для интеграции с PAM для его аутентификации. Это довольно легко сделать через pwauth и mod_authnz_external. Подробнее об этом можно прочитать здесь:

  • http://icephoenix.us/linuxunix/apache-and-http-authentication-with-pam/
  • [ 1112]

    Проблема в том, что я не вижу способа подключить это к модулю userdir. pwauth позволит вам указать requires user <username>, но я не вижу, как их объединить. И поверь мне, когда я скажу, что искал.

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

    <Directory /users/abed/>
        DocumentRoot /home/abed/public_html/
        AuthType Basic
        AuthName "Restricted Area"
        AuthBasicProvider external
        AuthExternal pwauth
        Require user abed
    </Directory>
    
    <Directory /users/britta/>
        DocumentRoot /home/britta/public_html/
        AuthType Basic
        AuthName "Restricted Area"
        AuthBasicProvider external
        AuthExternal pwauth
        Require user britta
    </Directory>
    

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

0
ответ дан 19 July 2013 в 17:04

Другие вопросы по тегам:

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