[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: proftpd + inetd + ssl/tls и другие вопросы.



On 2015-11-24, Victor Wagner wrote:

> 1. Не использовать ftp для неанонимного доступа.
> 2. Сделать так, чтобы директории, доступные для анонима на запись, не
> были доступны для него же на чтение (а то превратят сервер в хаб для
> обмена порнухой)

Ясно. Я ранее знал практике публичных бесплатных хостингов - позволять
загружать странички через небозопасный FTP. На ум приходит narod.ru и blogspot
до покупки Google'ом.

Ожидал что есть TLS расширение, обеспечивающие безопасность.

Есть стандарт

  https://tools.ietf.org/html/rfc2228
    FTP Security Extensions

со страшными словами GSSAPI/Kerberos 4, который судя по:

  http://www.proftpd.org/docs/rfc.html

не реализован полностью в proftpd. В то же время есть

  https://tools.ietf.org/html/rfc4217

который реализован в модуле mod_tls (и согласован с командой AUTH от rfc2228):

  http://www.proftpd.org/docs/howto/TLS.html

Оказывается что rfc4217 это не FTP в обертке TLS, а гибрид:

  12.1.  Establishing a Protected Session

              Client                   Server
     control          data     data               control
   ======================================================

                                                  socket()
                                                  bind()
     socket()
     connect()  --------------------------------> accept()
               <--------------------------------  220
     AUTH TLS   -------------------------------->
               <--------------------------------  234
     TLSneg()  <--------------------------------> TLSneg()  <== Тут зашифровано?
     PBSZ 0     -------------------------------->
               <--------------------------------  200
     PROT P     -------------------------------->
               <--------------------------------  200
     USER fred  -------------------------------->
               <--------------------------------  331
     PASS pass  -------------------------------->
               <--------------------------------  230

И далее у нас есть возможность передавать данные либо открыто, либо защищенно
по data-каналу.

Стандарта на обертку FTP в TLS, судя по выдержке:

  Negotiation is not supported with implicit FTPS configurations. A client is
  immediately expected to challenge the FTPS server with a TLS ClientHello
  message. If such a message is not received by the FTPS server, the server
  should drop the connection.

из:

  https://en.wikipedia.org/wiki/FTPS

и:

  A.  Deprecated SSL negotiation mechanisms

   There are two other mechanisms that have been used for FTP over SSL,
   these mechanisms do not conform to [RFC-2228] and so are now
   deprecated.  They are documented below.

   i) Implicit SSL protection of the FTP session

      There is a port, registered with the IANA, for secure FTP using
      ssl {FTP-TLSPORT}.  This approach can be likened to the [RFC-2818]
      approach for https, in that the SSL negotiation happens upon
      connection  (for the control and all data connections).  This
      approach is not favoured by the IETF and should not be used for
      new FTP-TLS implementations.
из:

 https://tools.ietf.org/html/draft-murray-auth-ftp-ssl-07#appendix-A

нету и нету соответственно нормальных реализаций.

lftp и curl на ftps:// пытаются "пожать руку", proftpd такого скоре всего не
умеет (я в документации не нашел способа).

> 3. Во всех остальных случаях использовать протоколы, отличные от ftp.

Я слышал и некоторые использовал:

 * smb - на сколько толстый сервер? У меня vps с 256 MiB RAM и доступ на
   запись к файлам не основная задача. Как с безопасностью при авторизации?

 * sftp - требует создавать пользователя в системе под каждый разделяемый
   ресурс.

 * rsync - не знаю визуальных оболочек, например как ftp/sftp в MC и
   интерактивных приложений как sftp/lftp. Для безопасности вроде нужно
   тунелировать через ssh.

 * webdav - требует постоянно работающего apache, нужно настраивать SSL.

Из всего только sftp выглядит простым решением.

Если разобраться с сертификатами, то мне ftps кажется тоже хорошим решением,
особенно учитывая что через ftp-сервер можно задавать права доступа, ложить
файлы с нужными владельцами и правами и использовать свою базу авторизации
(ftpasswd).

-- 
Best regards!


Reply to: