Apa saja alternatif aman untuk FTP? [Tutup]

22

Kisah Peretas Berita ini adalah semua tentang kelemahan FTP. Satu-satunya alasan saya mengatur FTP adalah mudah.

Saya sudah tahu dan menggunakannya scp, tetapi kadang-kadang saya ingin berbagi file dengan seseorang tanpa memberi mereka sshakses ke server saya. Saya ingin mereka dapat mengunggah dan mengunduh file, tetapi tidak ada yang lain, dan saya ingin membatasi mereka ke satu direktori. Saya juga ingin koneksi mereka dienkripsi seperti ssh.

Apa saja alternatif untuk FTP yang memenuhi kriteria ini?

Nathan Long
sumber
2
Anda dapat menggunakan scp tanpa ssh, lihat: serverfault.com/questions/354615/allow-sftp-but-disallow-ssh
Stone
1
Saya tidak akan repot membaca artikel itu tetapi perlu diingat bahwa FTP dirancang untuk digunakan dalam jaringan tertutup (lab lantai atas ke / dari server di ruang bawah tanah), jadi keamanan bahkan tidak pernah menjadi pertimbangan. Mengherankan bahwa masih digunakan di jaringan publik.
John Gardeniers
1
Beberapa orang mungkin berpendapat ftp tidak dirancang sama sekali, tetapi berevolusi melalui Good Ideas yang dibayangkan oleh Berbagai Orang menciptakan perangkat lunak untuk transfer file jauh sebelum penutupan menjadi properti yang dapat diamati untuk jaringan, ketika kontrol akses terjadi dengan pintu terkunci dan tatapan marah.
Eroen

Jawaban:

7

Proftpd memiliki server sftp bawaan yang memungkinkan Anda memisahkan pengguna dari sshd untuk keperluan transfer file. Anda dapat mengaturnya sehingga menggunakan file passwd yang benar-benar terpisah untuk mengisolasi mereka lebih jauh (sulit untuk login ke sistem dengan ssh dan menerobos chroot jika Anda tidak benar-benar memiliki pengguna di / etc / passwd .. .)

proftpd juga memungkinkan Anda melakukan chroot dan mengisolasi pengguna sftp ke sekumpulan direktori dengan mudah.

Kami melakukan sesuatu seperti ini:

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>
Travis Campbell
sumber
1
Untuk membantu pemula, jika OP perlu bantuan menyiapkan ini, saya punya tutorial yang sepenuhnya mendasar di sini: csrdu.org/nauman/2011/02/13/…
recluze
3

Saya akan menggunakan WebDav dengan server yang diaktifkan https! Otentikasi kemudian didasarkan pada skema otorisasi http standar. Sebuah panduan untuk mengatur WebDAV dengan apache dapat ditemukan di sini maka hanya diperlukan untuk menempatkan bahwa sumber daya di belakang https, dan di sini saya menemukan penjelasan yang bagus bagaimana melakukan itu .

joecks
sumber
Mengingat bahasa yang digunakan di sini Anda setidaknya bisa menautkan ke artikel versi bahasa Inggris.
John Gardeniers
haha maaf tidak menyadari kesalahan itu. Terima kasih sudah mengoreksi!
joecks
1

Anda tidak menentukan "bebas" sebagai persyaratan, jadi saya akan membuang paket Mass Transit dengan grouplogic. Ini mungkin agak berlebihan bagi kebanyakan orang, dan di luar kisaran harga mereka, tetapi fitur suite tidak kurang fantastis fantastis. Dapatkan server Mass Transit kedua dan nyalakan otomatisasi dan Anda memindahkan beberapa file dengan sangat cepat.

SpacemanSpiff
sumber
0

Anda dapat mengatur sftpyang menggunakan sshdalam mode yang mirip dengan ftp.

Anda dapat membuat beberapa pengguna (satu atau lebih, itu tergantung pada apakah itu ok atau tidak untuk setiap pengguna untuk mengakses file satu sama lain) di mesin Anda, beri mereka shell / bin / false dan chrootsetiap pengguna ke beberapa direktori di mana file-file itu akan menjadi ditempatkan.

Luis
sumber
0

Anda dapat menggunakan pure-ftpd dengan enkripsi TLS yang diaktifkan. Konfigurasi ini sangat sederhana, untuk mengaktifkan opsi uncomment TLS enkripsi dalam file konfigurasi (hanya satu baris :)), konfigurasikan klien Anda untuk terhubung melalui ftps dan hanya itu. (Anda harus ingat bahwa tidak semua klien ftp mendukung ftps).

B14D3
sumber
-1

Anda dapat mengaktifkan up dan unduhan dengan rsync di atas ssh tanpa mengizinkan login dengan mengatur rsync sebagai shell login untuk pengguna. Ini memungkinkan semua kebaikan ssh, termasuk login sertifikat, enkripsi dan operasi izin sistem file standar sementara tidak mengaktifkan akun shell (karena akun tidak akan memiliki shell tetapi rsync =)).

Eroen
sumber
Dan bagaimana itu bisa lebih aman? Masih
menghapus
Itu tergantung pada bagaimana Anda mengaturnya. Cara umum (satu-satunya cara yang pernah saya lihat dilakukan) adalah menggunakan ssh dan mengatur rsync sebagai shell login, atau (untuk akses root) sertifikat ssh khusus-perintah.
Eroen
1
Rsync, saat menjalankan layanan (seperti yang Anda sarankan dalam jawaban Anda) tidak memiliki enkripsi. Tentu saja tidak demikian halnya dengan rsync + ssh. Anda dapat mengedit jawaban Anda untuk membuat makna Anda lebih jelas.
EEAA
Perubahan telah terjadi (jika seseorang menemukan komentar di atas kurang pas).
Eroen
Meskipun tidak diminta untuk itu juga layak disebutkan bahwa meskipun ada sejumlah antarmuka yang mudah digunakan untuk FTP dan protokol seperti FTP, saya pribadi tidak tahu satu untuk rsync. Jika pengguna yang dimaksud adalah non-teknis yang mungkin menjadi masalah.
John Gardeniers