İnternet üzerinden dosya sistemi kurma


11

Müşterilerimden biri için sanal sunucuda çalışan bir web uygulaması oluşturdum. Dosya yükleyebilmeleri için olanak içerir, ancak şimdi bu dosyaları ofislerindeki bir sunucuda saklamak istiyorlar.

Bunu yapmanın en kolay yolu, dosya sistemlerini doğrudan sanal sunucuya internet üzerinden bağlamaktır. NFS'yi dahili bir ağ üzerinden bağlama deneyimim var, ancak bu senaryoda işe yarayıp yaramayacağı belli değil.

Düşüncesi olan var mı? Dosyaları aktarmak için her zaman yeni bir yazılım yazabilirim, ancak bu kolay bir düzeltme olurdu!

Not: Ofisteki sunucu, Windows hyper-v ortamında sanal bir sunucuda çalışan Ubuntu 12 sunucusudur. Web uygulaması ile VPS Ubuntu 11.04


Güvenlik bu dosyalar için bir sorun mu?
Adrian Cornish

cron işi ile rsync.
Ignacio Vazquez-Abrams

@AdrianCornish - güvenli bir çözüm tercih edilmese de pek değil.

Yanıtlar:


12

Henüz kimse sshfs'den bahsetmedi . Modern bir linux dağıtımındaysanız ve uzak ana bilgisayara ssh erişiminiz varsa, bu kadar basit:

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

Performans oldukça kabul edilebilir (ancak tüm dizine ihtiyacınız varsa, rsync gibi bir akış senkronizasyonu kadar hızlı değil).


Bu şimdiye kadarki en iyi çözüm gibi görünüyor, SSS "Kaynaklar yavaş ve güvenilmez (uzak) bağlantılara monte edilebilir" bile diyor. Başka bir web sayfası bana "sshfs -o reconnect server: / path / to / mount" bağlantının kopması durumunda otomatik olarak yeniden bağlanacağını söylüyor.

3

NFS doğal olarak güvensizdir. İnternet üzerinden bağlanmak için çok kötü bir seçim olacaktır.

Rsync'den bahseden mesajı beğendim. Aktarımı başlatmak için cron kullanmak yerine, rsync işini dosya yüklemeyi işleyen kodunuzdan çalıştırabileceğinizi umuyorum.

Yükleme tamamlandığında, dosyayı sunucularına rsync yapın, bitti.

Aktarım için sunucularına güvenli bir bağlantı kurmanız gerekir, umarım.

İsterseniz, gelen dosyaları aktarım için bir listeye koyabilir, başarılı kopyadan sonra adları kaldırabilir ve bağlantıda bir şey olması durumunda kendinize başarısızlık verebilirsiniz.

Başka birinin işaret ettiği gibi, rsync dosya gruplarını veya bir hiyerarşiyi (teşekkürler, yazım denetimi) işlemek için tasarlanmıştır, bu yüzden bunu başarmak zor olmaz.


1
rsync, SSH'yi taşıma olarak kullanırken sorun yaşamaz.
Ignacio Vazquez-Abrams

Web uygulaması zaten dosyaları yerel sunucuya kaydeder ve orada referans verir. Yerel sunucuda yer kalmayacak, bu yüzden aktarıldıktan sonra kaldırılmaları gerekecek, bu da yeni kod yazmak anlamına geliyor, bu yüzden mümkünse önce monte edilmiş bir çözüm arıyorum.

1

NFS doğal olarak güvensiz olabilir, ancak bu hizmetin hatası değildir. Telnet ve FTP de doğal olarak güvensizdir, ancak her ikisi de açık İnternet'te onlarca yıldır kullanılmaktadır. Şifreli bir VPN tüneli kurulursa, NFS şifrelemesinin olmaması önemsizdir.

Ayrıca, bir güvenlik duvarı yalnızca belirli bir uzak ana bilgisayar adresinin NFS bağlama noktasına bağlanmasına izin verecek şekilde yapılandırılmışsa, çıplak bir NFS bağlantısı, Internet trafiğini koklayan ve zaten şifreli uzak bağlantılarınızı çatlamak.

Bazı NFS sürümlerinin varsayılan olarak UDP kullandığını görüyorum, bu muhtemelen İnternet güvenilirliği sorunlarının geldiği yerdir. Bağlantı tıkandığında UDP paketleri kaybolabilir ve otomatik olarak yeniden iletim denenmez. Güvenilir bir bağlantı istiyorsanız, NFS'nizin İnternet üzerinden TCP paketleri kullandığından (veya yalnızca kullanmaya zorlandığından) emin olun.


1
> Telnet ve FTP de doğal olarak güvensizdir, ancak her ikisi de açık İnternet'te onlarca yıldır kullanılmaktadır. Doğru olmasına rağmen, bunun iyi bir nokta olduğunu düşünmüyorum, çünkü genellikle bunları internet üzerinden kullanmak (çok) kötü bir uygulama olarak kabul edilir. şimdi. Mozilla bile şifrelenmemiş http'nin kullanılmasını öneriyor .
Ian D. Scott

0

NFS bir güvenlik duvarı üzerinden yapılabilir. Arama yaparsanız, bu işlemi deneyen ve başarılı olan diğerlerini bulacaksınız, ancak bağlantı noktalarını açmak kadar basit değildir ve çalışmakta olan NFS sürümüne bağlı gibi görünmektedir.

rsync mükemmel bir öneridir ve çok fazla esnekliğe sahiptir. Ancak, bu, uygulamanızın dışında çalıştırılan bir işlem olacaktır. rsync, yerel dosya güncellemelerinin senkronizasyonunu yapabilir ve tüm dizini diğer klasörlerle senkronize halde tutabilir.

ssh başka bir güvenli seçenek olabilir ve sadece tek bir portun açılmasını gerektirir. Bunu geçmişte Windows ve Linux sistemleri arasında kullandım ve hem uygulamanın içinden hem de süreci planlarken iyi çalıştım.

Aradığınızı başarmanın başka yolları olduğundan eminim, ancak bu dosyaların türleri hakkında daha fazla bilgiye ihtiyacımız var ve bunları bir sayfaya bağlarsanız veya daha karmaşık bir şeyle aktarıyorsanız.


Alternatifleri anlıyorum, dosya sistemini monte etmenin en kolay çözüm olacağını anlıyorum, sadece dahili bir ağ yerine NFS'nin internet üzerinden ne kadar kararlı olduğunu bilmiyorum. Bağlantı kesilirse vb. Veya buna karşı sağlam olacak şekilde tasarlanmış daha yeni bir alternatif varsa ne olur.

0

NFS bağlantıları, montajı başarısızlığa uğratmaya devam edecek olan automount kullanılarak yapılabilir, ancak boruların üzerinde kullanmayı düşünmenin tek yolu bir vpn veya başka bir güvenli bağlantıdır (aslında, bunu düşünmezdim, ama fikre sabit geliyorsun).

Bir ağ sorunu varsa ve yüklemelerini NFS yuvasına koyuyorsanız, automount kullansanız bile, dosyayı yerel olarak depolayıp yükleme başarısına kopyalamadığınız sürece yükleme muhtemelen başarısız olur veya bozulur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.