Memasang sistem file melalui internet


11

Saya membangun aplikasi web yang berjalan di server virtual untuk salah satu pelanggan saya. Ini termasuk fasilitas bagi mereka untuk mengunggah file, tetapi mereka sekarang ingin menyimpan file-file itu di server di kantor mereka.

Cara termudah untuk melakukan ini adalah dengan memasang sistem file mereka melalui internet langsung ke server virtual. Saya memiliki pengalaman memasang NFS melalui jaringan internal, tetapi saya tidak jelas apakah itu akan berhasil dalam skenario ini.

Adakah pikiran? Saya selalu dapat menulis perangkat lunak baru untuk mentransfer file, tetapi ini akan menjadi perbaikan yang mudah!

Catatan: Server di kantor adalah server Ubuntu 12 yang berjalan di server virtual di lingkungan windows hyper-v. VPS dengan aplikasi web adalah Ubuntu 11.04


Apakah keamanan masalah untuk file-file ini?
Adrian Cornish

rsync melalui pekerjaan cron.
Ignacio Vazquez-Abrams

@AdrianCornish - tidak juga, meskipun solusi yang aman lebih disukai.

Jawaban:


12

Belum ada yang menyebutkan sshfs . Jika Anda menggunakan distro linux modern dan memiliki akses ssh ke host jarak jauh, sesederhana:

sshfs user@hostname:/remote/directory /local/directory

Performa cukup dapat diterima (tetapi tidak secepat sinkronisasi yang di-stream seperti rsync jika Anda memerlukan seluruh direktori).


Ini sepertinya solusi terbaik sejauh ini, FAQ bahkan mengatakan, "Sumber daya dapat dipasang melalui koneksi yang lambat dan tidak dapat diandalkan (jauh)." Halaman web lain memberi tahu saya bahwa "sshfs -o reconnect server: / path / to / mount" akan secara otomatis menyambungkan kembali jika koneksi turun.

3

NFS secara inheren tidak aman. Ini akan menjadi pilihan yang sangat buruk untuk terhubung melalui internet.

Saya suka posting yang menyebutkan rsync. Daripada menggunakan cron untuk menjalankan transfer, saya berharap Anda bisa menjalankan pekerjaan rsync dari kode Anda yang menangani unggahan file.

Ketika unggahan selesai, rsync file ke server mereka, selesai.

Anda perlu mengatur koneksi aman ke server mereka untuk transfer, saya harapkan.

Jika Anda mau, Anda bisa memasukkan file yang masuk ke daftar untuk ditransfer, menghapus nama setelah salinan berhasil, dan memberikan diri Anda beberapa kegagalan atas kemampuan, jika terjadi sesuatu pada koneksi.

Seperti yang telah ditunjukkan orang lain, rsync dirancang untuk menangani grup file, atau hierarki (terima kasih, periksa ejaan), jadi ini tidak akan terlalu sulit untuk dicapai.


1
rsync tidak memiliki masalah menggunakan SSH sebagai transportasi.
Ignacio Vazquez-Abrams

Aplikasi web sudah menyimpan file di server lokal dan referensi mereka di sana. Tidak akan ada ruang di server lokal, jadi mereka harus dihapus setelah ditransfer, yang berarti menulis kode baru, maka saya mencari solusi yang dipasang terlebih dahulu, jika mungkin.

1

NFS mungkin secara inheren tidak aman tetapi itu bukan kesalahan layanan. Telnet dan FTP secara inheren tidak aman tetapi keduanya telah digunakan selama beberapa dekade di Internet terbuka. Jika terowongan VPN terenkripsi dibuat, maka kurangnya enkripsi NFS tidak relevan.

Juga jika firewall dikonfigurasikan untuk hanya memungkinkan alamat host jarak jauh tertentu untuk terhubung ke NFS mountpoint, maka koneksi NFS yang telanjang sebagian besar aman dari peretasan, kecuali dari Tiga Agen Huruf yang mengendus lalu lintas Internet, dan yang memiliki akses ke dekripsi yang kuat untuk pecahkan koneksi remote terenkripsi Anda.

Saya melihat bahwa beberapa versi NFS menggunakan UDP secara default, yang kemungkinan berasal dari masalah keandalan Internet. Paket UDP dapat hilang jika koneksi terputus, dan tidak ada pengiriman ulang yang dilakukan secara otomatis. Jika Anda ingin koneksi yang andal, pastikan NFS Anda menggunakan (atau terpaksa hanya menggunakan) paket TCP melalui Internet.


1
> Telnet dan FTP secara inheren tidak aman tetapi keduanya telah digunakan selama beberapa dekade di Internet terbuka. Meskipun benar, saya tidak berpikir ini adalah poin yang baik, karena umumnya dianggap (sangat) praktik buruk untuk menggunakan ini melalui internet sekarang. Mozilla bahkan menyarankan penghentian http tidak terenkripsi .
Ian D. Scott

0

NFS dapat dilakukan melalui firewall. Jika Anda mencari, Anda akan menemukan orang lain yang telah mencoba dan berhasil dengan proses ini, namun, itu tidak semudah membuka port dan tampaknya tergantung pada versi NFS yang sedang dijalankan.

rsync adalah saran yang bagus dan memiliki banyak fleksibilitas. Namun, ini akan menjadi proses yang dijalankan di luar aplikasi Anda. rsync dapat menangani penyelarasan dari pembaruan file lokal dan memelihara seluruh direktori dalam sinkronisasi dengan folder lain.

ssh akan menjadi opsi aman lainnya dan hanya akan membutuhkan satu port untuk dibuka. Saya telah menggunakan ini di masa lalu antara sistem Windows dan Linux dan telah bekerja dengan baik baik dari dalam aplikasi maupun penjadwalan proses.

Saya yakin ada cara lain untuk mencapai apa yang Anda cari, tetapi kami membutuhkan informasi lebih lanjut tentang jenis-jenis file ini dan jika Anda menautkannya ke halaman atau mengalirkannya dengan sesuatu yang lebih kompleks.


Saya mengerti alternatifnya, me-mount sistem file akan menjadi solusi termudah, saya hanya tidak tahu seberapa stabil NFS melalui internet dibandingkan dengan jaringan internal. Apa yang terjadi jika koneksi turun dll, atau jika ada alternatif yang lebih baru yang dirancang untuk menjadi kuat untuk ini.

0

Mount NFS dapat dilakukan menggunakan automount, yang akan terus mencoba mount pada kegagalan, tetapi satu-satunya cara saya akan mempertimbangkan menggunakannya di atas pipa adalah dengan vpn atau koneksi aman lainnya (sebenarnya, saya tidak akan mempertimbangkannya, tetapi Anda terdengar terpaku pada ide).

Bahkan menggunakan automount, jika ada masalah jaringan, dan Anda meletakkan unggahan mereka di mount NFS, unggahan tersebut kemungkinan akan gagal atau rusak, kecuali jika Anda menyimpan file secara lokal dan kemudian menyalin pada keberhasilan unggahan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.