Які існують безпечні альтернативи 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 взагалі не був розроблений, але розвивався завдяки хорошим ідеям, які уявляли різні люди, створюючи програмне забезпечення для передачі файлів задовго до того, як закритість стала спостережуваною властивістю мереж, коли контроль доступу відбувався із замкнутими дверима та гнівними поглядами.
Eroen

Відповіді:


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/…
зайнятий

3

Я б використовував WebDav з підтримкою https! Потім автентифікація базується на стандартній схемі авторизації http. Керівництво для установки WebDAV з Apache можна знайти тут те тільки покласти необхідне цей ресурс за HTTPS, і тут я знайшов опис хорошого , як зробити що .


З огляду на мову, якою ви тут користуєтесь, ви могли б принаймні пов’язатись з англійською версією статті.
Джон Гарденєр

ха-ха вибачте не зрозумів цієї помилки. Дякуємо за виправлення!
joecks

1

Ви не вказали "безкоштовно" як вимогу, тому я збираюся викинути пакет масових перевезень груповими. Це, мабуть, трохи непосильне для більшості людей, і поза їх ціновим діапазоном, але набір функцій нічим не виходить фантастичним. Отримайте другий сервер Mass Transit і запаліть автоматизацію, і ви переміщуєте деякі файли дуже швидко.


0

Ви можете налаштувати sftpцей sshрежим у подібному режимі ftp.

Ви можете створити деяких користувачів (одного або декількох, це залежить від того, нормально чи ні кожен користувач отримує доступ до файлів один одного) на вашій машині, надайте їм оболонку / бін / помилку та chrootкожного користувача в деякий каталог, де мають бути ці файли розміщений.


0

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


-1

Ви можете ввімкнути завантаження та завантаження за допомогою rsync через ssh, не дозволяючи входити в систему, встановивши rsync як оболонку входу для користувача. Це дає змогу отримати всі переваги ssh, включаючи вхід до сертифікатів, шифрування та використання стандартних дозволів файлової системи, не вмикаючи акаунти оболонок (оскільки в обліковому записі не буде оболонки, але rsync =)).


І як би це було більш безпечно? Ще чіткий текст ...
ЄЕАА,

Це залежить від того, як ви його налаштували. Поширений спосіб (єдиний спосіб, коли я це коли-небудь бачив) - використання ssh та встановлення rsync як оболонки для входу, або (для кореневого доступу), специфічних для команд ssh certs.
Eroen

1
Rsync під час запуску послуги (як ви рекомендуєте у своїй відповіді) не має шифрування. Звичайно, це не так у rsync + ssh. Ви можете відредагувати свою відповідь, щоб зрозуміти своє значення.
ЄЕАА

Зміни відбулися (якщо хтось вважає, що коментарі вище відповідають).
Eroen

Хоча його не запитували, також варто згадати, що хоча існує будь-яка кількість простих у використанні інтерфейсів для протоколів FTP і FTP-подібних, я особисто не знаю жодного для rsync. Якщо призначені користувачі не є технічними, це може бути проблемою.
John Gardeniers
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.