Какие безопасные альтернативы FTP? [закрыто]

22

Эта история Hacker News полностью посвящена недостаткам FTP. Единственная причина, по которой я могу настроить FTP - это то, что это легко.

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

Какие альтернативы FTP соответствуют этим критериям?

Натан Лонг
источник
2
Вы можете использовать scp без ssh, см .: serverfault.com/questions/354615/allow-sftp-but-disallow-ssh
Камень
1
Я не собираюсь читать эту статью, но стоит помнить, что FTP был разработан для использования в закрытой сети (лаборатория наверху к серверам в подвале), поэтому безопасность даже не рассматривалась. Удивительно, что он все еще используется в общественных сетях.
Джон Гарденье
1
Кто-то может возразить, что ftp вообще не был разработан, но развился благодаря «Хорошим идеям», которые были созданы различными людьми, создававшими программное обеспечение для передачи файлов задолго до того, как закрытие стало заметным свойством для сетей, когда контроль доступа происходил с запертыми дверями и злобным взглядом.
Эроен

Ответы:

7

Proftpd имеет встроенный сервер sftp, который позволит вам полностью отделить пользователей от sshd для передачи файлов. Вы можете настроить его так, чтобы он использовал совершенно отдельный файл passwd для их дальнейшей изоляции (трудно войти в систему с помощью ssh и прорваться через chroot, если у вас нет пользователя в / etc / passwd .. .)

proftpd также позволяет вам легко выполнять поиск и изоляцию пользователя sftp в набор каталогов.

Мы делаем что-то вроде этого:

LoadModule mod_sftp.c

<VirtualHost 10.1.1.217>

    ServerName  "ftp.example.com"

    # from http://www.proftpd.org/docs/howto/NAT.html
    MasqueradeAddress   1.2.3.4
    PassivePorts 27001 27050

    UseSendfile off

    ExtendedLog         /var/log/proftpd/access.log WRITE,READ default
    ExtendedLog         /var/log/proftpd/auth.log AUTH auth

    AuthUserFile /etc/proftpd/AuthUsersFile
    AuthOrder           mod_auth_file.c 

    <IfModule mod_sftp.c>
        Port 10022
    SFTPAuthorizedUserKeys file:/etc/proftpd/ssh_authorized_keys/%u
        SFTPEngine On
        SFTPLog /var/log/proftpd/sftp.log
        SFTPHostKey /etc/ssh/proftpd-ssh_host_rsa_key
        SFTPHostKey /etc/ssh/proftpd-ssh_host_dsa_key
        MaxLoginAttempts 6
    </IfModule>
</VirtualHost>
Трэвис Кэмпбелл
источник
1
Чтобы помочь новичку, если оператору понадобится помощь в его настройке, у меня есть базовое руководство здесь: csrdu.org/nauman/2011/02/13/…
recluze
3

Я бы использовал WebDav с сервером https! Аутентификация тогда основана на стандартной схеме авторизации http. Руководство для установки WebDAV с Apache можно найти здесь то только положить необходимое этот ресурс за HTTPS, и здесь я нашел описание хорошего , как сделать что .

joecks
источник
Учитывая используемый здесь язык, вы, по крайней мере, могли бы сослаться на английскую версию статьи.
Джон Гарденерс
хаха извини не осознал этой ошибки. Спасибо за исправление!
Joecks
1

Вы не указали в качестве требования "free", поэтому я собираюсь выбросить пакет Mass Transit от grouplogic. Это, вероятно, немного излишне для большинства людей, и вне их ценового диапазона, но набор функций - не что иное как фантастический. Получите второй сервер Mass Transit и включите автоматизацию, и вы очень быстро перемещаете некоторые файлы.

SpacemanSpiff
источник
0

Вы можете настроить, sftpкоторый использует sshв режиме, аналогичном ftp.

Вы можете создать несколько пользователей (одного или нескольких, это зависит от того, будет ли у каждого пользователя доступ к файлам друг друга или нет, chrootназначить ему shell / bin / false и каждому пользователю какой-то каталог, в котором эти файлы должны находиться. размещены.

Луис
источник
0

Вы можете использовать чистый ftpd с включенным шифрованием TLS. Конфигурация очень проста: включить шифрование и разблокировать опцию TLS в файле конфигурации (только одна строка :)), настроить ваши клиенты для подключения через ftps и все. (Вы должны помнить, что не все FTP-клиенты поддерживают FTP).

B14D3
источник
-1

Вы можете разрешить загрузку и загрузку с помощью rsync через ssh без разрешения входа, установив rsync в качестве оболочки входа для пользователя. Это включает все плюсы ssh, включая вход в систему сертификатов, шифрование и стандартную операцию разрешений файловой системы, при этом не включая учетные записи оболочки (поскольку учетная запись не будет иметь оболочку, но rsync =)).

Eroen
источник
И как это будет более безопасно? Все еще открытый текст ...
EEAA
Это зависит от того, как вы его настроили. Обычный способ (единственный способ, которым я когда-либо видел это) - использовать ssh и устанавливать rsync в качестве оболочки входа в систему или (для корневого доступа) ssh-сертификаты, специфичные для команды.
Эроен
1
Rsync, при запуске службы (как вы рекомендуете в своем ответе) не имеет шифрования. Это, конечно, не относится к rsync + ssh. Вы можете отредактировать свой ответ, чтобы сделать ваше значение более понятным.
EEAA
Произошли изменения (в случае, если кто-то сочтет, что комментарии выше подходят плохо).
Эроен
Хотя об этом не просили, стоит также упомянуть, что, хотя существует несколько простых в использовании интерфейсов для FTP и FTP-подобных протоколов, лично я не знаю ни одного для rsync. Если предполагаемые пользователи не являются техническими, это может быть проблемой.
Джон Гарденье