The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Создание sftp сервера силами proftpd
Зачем нужен sftp

В протоколе FTP есть 2 ключевые проблемы - во первых, пароли и данные
передаются в открытом виде, во вторых - для каждой передачи устанавливается
дополнительное соединение. Для шифрования данных и контрольного соединения был
написан FTPS, но с ним проблем еще больше - все также требуется дополнительное
соединение при передаче, а главное - контрольный канал теперь зашифрован и
firewall никак не может помочь в прохождении FTP трафика через NAT. Кроме того
- существуют различия в реализации, что добавляет еще больше проблем при
использовании FTPS. SFTP - полностью новый протокол разработанный IETF SECSH,
предлагающий аналогичные FTP возможности для удаленных операций и использующий
SSH (обычно SSH2) для обеспечения шифрования и аутентификации. Известность
получил в основном из-за того, что был встроен в SSH сервера, в частности - в
OpenSSH 2.3.0 и выше.

Недостатки sftp в OpenSSH

До OpenSSH 4.9 sftp сервер требовал запуска внешнего исполняемого файла и
построение chroot окружения было связанно с дополнительными действиями.
Невозможно ограничить скорость передачи для конкретного пользователя. Сложно
сделать отличную от SSH базу с пользователями. В целом - sftp сервер в OpenSSH
всегда был лишь приятным дополнением к OpenSSH предоставляя на порядок меньшие
возможности чем, например, proftpd. Впрочем, недавно необходимость выбора между
удобством и безопасностью отпала так как был написан и реализован модуль
mod_sftp для proftpd, о нем и пойдет речь.

Использование модуля

Впервые модуль появился в версии 1.3.2rc2, но на мой взгляд - уже вполне
пригоден к использованию. Он не компилируется по умолчанию, так что для его
использования надо указать его на этапе configure. Вы можете собрать proftpd из
исходников, или если у вас redhat based OS - воспользоваться моим src.rpm.
Модуль имеет множество возможностей полный список которых можно [[http://www.castaglia.org/proftpd/modules/mod_sftp.html посмотреть на
сайте]]. Для минимальной настройки достаточно внести такие дополнения в файл
конфигурации по умолчанию:

   Port                            8022
   SFTPEngine on
   SFTPHostKey /etc/ssh/ssh_host_dsa_key
   SFTPHostKey /etc/ssh/ssh_host_rsa_key


и запустить proftpd. Теперь можно подключаться к порту 8022 любым sftp
клиентом, например - мультиплатформенной FileZilla или command line sftp из
комплекта OpenSSH. Используя виртуальные сервера можно сделать одновременную
работу SFTP и FTP(S), ограничить доступ, сделать chroot для всех или некоторых
сайтов и так далее. За примерно месяц использования я не обнаружил каких либо
минусов данного решения по сравнению с OpenSSH sftp.
 
20.11.2009 , Автор: Alex Samorukov
Ключи: ftp, sftp, ssl, crypt / Лицензия: CC-BY
Раздел:    Корень / Администратору / Сетевые сервисы / FTP, Bittorrent

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, IGX (?), 18:32, 20/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В русском языке слово "сервер" во множественном числе звучит как "серверы", а не "сервера".
     
     
  • 2.2, PEACE (?), 19:02, 20/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    http://gramota.ru/slovari/dic/?word=ЯЕПБЕПШ&all=x
     
  • 2.3, Samm (??), 19:30, 20/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Очень, очень важное замечание. Только с чего бы ему так звучать?
     
  • 2.4, V (??), 20:52, 20/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    нубы безграмотные, слово "сервера" используется на профессиональном уровне, в то время как "серверы" -- общепринятое множественное число, используемое в документах и просторечье.
     
     
  • 3.7, Султан (?), 05:54, 21/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, как "трактора", "комбанера"... Развелось "председателей колхозов"...
     
  • 3.10, gedeon (?), 11:31, 23/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    В словаре приведено окончание для родительного падежа, посмотрите например слово "колхозник", там тоже указано окончание "а".

     
  • 2.5, Юзер (??), 20:59, 20/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, а корабль плывет.
     
     
  • 3.9, Дмитрий Ю. Карпов (?), 13:42, 22/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Или тонет... ;)
     
  • 2.8, QuAzI (ok), 19:28, 21/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Почему-то когда выговаривают -ры, сразу вспоминается "миллион лет до нашей эры" и толпа дикарей, которые с блаженными лицами пытаются выговорить имя девчёнки.
     

  • 1.11, faust (??), 23:16, 23/11/2009 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А по делу кто-нить скажет, или мы будем и дальше учить друг друга русскому языку?
     
     
  • 2.12, BirdGovorun (??), 23:57, 23/11/2009 [^] [^^] [^^^] [ответить]  
  • +/
    Кто знает - тому пофиг, кто не знает - тому нафиг.
    Вроде по делу высказался.
     

  • 1.13, alexey (??), 12:57, 28/08/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А rsync с этим всем работать будет???
     
     
  • 2.14, samm (?), 17:00, 28/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >А rsync с этим всем работать будет???

    Дядя, какой рсинг? Вы неадекватны.

     
     
  • 3.15, tierpunk (ok), 00:48, 29/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>А rsync с этим всем работать будет???
    >
    >Дядя, какой рсинг? Вы неадекватны.

    Ничего личного, как говорится только учусь! Но просто интересно, можно ли к этому всему прикрутить rsync. Если нет, то почему?

     
     
  • 4.16, samm (?), 11:32, 29/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>>А rsync с этим всем работать будет???
    >>
    >>Дядя, какой рсинг? Вы неадекватны.
    >
    >Ничего личного, как говорится только учусь! Но просто интересно, можно ли к
    >этому всему прикрутить rsync. Если нет, то почему?

    rsync - это совершенно другой протокол, для реализации которого используется одноименный софт (rsync). К proftpd он не имеет никакого отношения. Параллельно его запустить, конечно, можно, только не совсем понятно зачем. Обычно используется для синхронизации, так как позволяет существенно экономить трафик и упрощает создание зеркал.

     
     
  • 5.17, tierpunk (ok), 13:38, 29/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я это знаю, но ведь rsync работает и через ssh/sftp. Вот я и предположил, что можно запустить rsync c proftpd-sftp. На сколько я понял, я ошибался и эта связка у меня не заработала.
     
     
  • 6.18, samm (?), 14:53, 29/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Я это знаю, но ведь rsync работает и через ssh/sftp. Вот я
    >и предположил, что можно запустить rsync c proftpd-sftp. На сколько я
    >понял, я ошибался и эта связка у меня не заработала.

    У вас каша в голове.

    1) Рсинк никогда не работал через сфтп. Совсем. СФТП - отдельный протокол, описанный в соответствующем RFC и не имеющий _никакого_ отношения к рсинк.
    2) Рсинк умеет использовать SSH в качестве транспорта (!) (rsync over ssh), при этом за файл трансфер отвечает по прежнему программа рсинк, а ссх -  безопасный транспорт, и все. При этом в рсинк нет внутренней поддержки ссх, так что он использует для этих целей системный.
    3) SFTP в proftpd НЕ использует системный ssh и реализует поддержку сфтп И транспорта собственными средствами, не используя системный sshd/ssh.

    Надеюсь стало понятнее.

     
     
  • 7.19, tierpunk (ok), 16:03, 29/08/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >[оверквотинг удален]
    >
    >2) Рсинк умеет использовать SSH в качестве транспорта (!) (rsync over ssh),
    >при этом за файл трансфер отвечает по прежнему программа рсинк, а
    >ссх -  безопасный транспорт, и все. При этом в рсинк
    >нет внутренней поддержки ссх, так что он использует для этих целей
    >системный.
    >3) SFTP в proftpd НЕ использует системный ssh и реализует поддержку сфтп
    >И транспорта собственными средствами, не используя системный sshd/ssh.
    >
    >Надеюсь стало понятнее.

    Да, я все понял и каши больше нет.
    Спасибо Вам за разъяснения.

     

  • 1.20, catatanchik (ok), 21:24, 03/03/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider, но в итоге получал ошибку:
    mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
    mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exiting

    читал доку, но так и не понял что туда нужно вводить, у кого есть рабочий пример поделитесь плиз!

     
     
  • 2.21, samm (ok), 22:24, 03/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase
    > на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider,
    > но в итоге получал ошибку:
    > mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
    > mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exiting
    > читал доку, но так и не понял что туда нужно вводить, у
    > кого есть рабочий пример поделитесь плиз!

    Просто используйте ключ без passphrase

     
     
  • 3.22, catatanchik (ok), 16:03, 04/03/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Настроил сертификаты, но при перезапуске/запуске proftpd запрашивает постоянно passphrase
    >> на ключ, как можно это дело автоматизировать. Пробовал использовать директиву SFTPPassPhraseProvider,
    >> но в итоге получал ошибку:
    >> mod_sftp/0.9.8: error reading passphrase for SFTPHostKey '/root/.ssh/id_rsa': (unknown)
    >> mod_sftp/0.9.8: unable to use key in SFTPHostKey '/root/.ssh/id_rsa', exiting
    >> читал доку, но так и не понял что туда нужно вводить, у
    >> кого есть рабочий пример поделитесь плиз!
    > Просто используйте ключ без passphrase

    Получилось, спасибо!

     


     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру