NFS neden paylaşmama izin vermiyor?


14

Göçebe

Şurada Ubuntu 12.04 çalıştıran bir ana bilgisayarım var 10.0.0.202. Ağdaki diğer makineler için bir NFS paylaşımı sağlar. İşte içeriği /etc/exports:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check)

Buradaki amaç /media/storagedrive, IP alanındaki ağdaki diğer makinelerin içeriğini paylaşmaktır 10.0.0.0 - 10.0.0.255.

Çalışan Müşteri

Bu 10.0.0.40, MattDev olarak bilinen Ubuntu 13.10'u çalıştıran bir istemci makinesiyle düzgün çalışır . Bu makinenin /etc/fstabböyle görünüyor:

UUID=8f8c838e-3ea2-457a-87f0-57b12dfab06c /               ext4    errors=remount-ro 0       1
UUID=427089d4-46a2-432d-9df4-7016bdfc7df2 none            swap    sw              0       0
10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive nfs rsize=8192,wsize=8192,timeo=14,intr

Ve ls -al /mnt/bu makinede şöyle görünüyor:

total 12K
drwxr-xr-x  3 root root    4.0K Feb  4 17:48 .
drwxr-xr-x 23 root root    4.0K Feb  5 08:44 ..
drwxrwxr-x  7 root plugdev 4.0K Feb  5 11:43 NetworkStorageDrive

idGörünüşün çıktısı şöyle:

uid=1000(matt) gid=1000(matt) groups=1000(matt),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),112(lpadmin),124(sambashare)

Çalışmayan Sanal İstemci

Windows 7 ana bilgisayarında konuk işletim sistemi olarak Ubuntu 12.10 çalıştıran ikinci bir istemci makinem var. Ana makine olarak ağda 10.0.0.28. Konuk makine, sağlayıcı olarak VirtualBox 4.3.6 kullanılarak Vagrant tarafından yönetilmektedir. Windows 7 sunucusu AlexDevHost ve Ubuntu konuk AlexDevGuest'i arayacağım.

Koşu showmount -e 10.0.0.202AlexDevGuest üzerinde üretir:

Export list for 10.0.0.202:
/media/storagedrive 10.0.0.0/24

Ancak, paylaşım bağlamaya çalıştığınızda başarısız olur:

$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive

Bu yüzden sorunları aramaya başladım:

$ ls -alh /mnt/
total 12K
drwxr-xr-x  3 root root 4.0K Feb  5 12:23 .
drwxr-xr-x 26 root root 4.0K Feb  5 12:23 ..
drwxr-xr-x  2 root root 4.0K Feb  5 12:23 NetworkStorageDrive
$ id
uid=1001(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$

Bu uid ve gid MattDev kullanıcı matt farklıdır. Bu yüzden, NFS erişiminin IP adresi ve uids ile eşleştirilerek kontrol edildiğini okuduğum için, vagrant için uid hakkında hokkabazlık yaptım. Peki şimdi:

$ id
uid=1000(vagrant) gid=1001(vagrant) groups=1001(vagrant)
$ sudo mount 10.0.0.202:/media/storagedrive /mnt/NetworkStorageDrive
mount.nfs: access denied by server while mounting 10.0.0.202:/media/storagedrive
$

Hala başarı yok. Şimdi fikirlerim tükeniyor.

  1. Neyi yanlış yapıyorum?
  2. Uid kısmı doğruysa, NFS sunucu makinesinin erişim girişimimi geldiğini 10.0.0.28ve izin verilen aralıkta olmayan başka bir IP'yi görmediğini doğrulamanın bir yolu var mı?

Yanıtlar:


16

Tamam, çalıştım (ya da en azından çalışmasını sağladım ve sanırım neye neden olduğunu biliyorum).

insecureBayrağı /etc/exportsNFS sunucusundaki satıra ekledim, şimdi şöyle görünüyor:

/media/storagedrive 10.0.0.0/24(rw,sync,no_subtree_check,insecure)

Bu bayrak, bağlantıların IPPORT_RESERVED (1024) üzerindeki istemci bağlantı noktalarından kaynaklanmasına izin verir.

Mount komutu şimdi çalışıyor.

Neden insecurebayrak eksikliği sorun olarak tahminime VirtualBox fiziksel ağ üzerinden isteği iletmek için NAT kullanıyor, bu yüzden Ubuntu konuk (AlexDevGuest) üzerindeki bağlantı noktası 1024'ün altında olabilir, çevrilen bağlantı noktası Windows 7 ana bilgisayarı (AlexDevHost) muhtemelen 1024'ün üzerindeydi ve bu nedenle engellendi. insecureBayrağın ayarlanması , izin verildiği anlamına geliyordu.

Bu sorun açıkça sanal olmayan makine DevMatt'ı etkilemez.


Bu konuda fantastik dedektiflik çalışması. Unbuntu'nun VirtualBox VM'lerini rutin olarak üretim seviyesi sunucular veya hatta aşamalı bir dev sunucusu kullanmak yerine atabileceğim veya test edebileceğim “sandbox” ortamları olarak kullanıyorum ve bu son derece yardımcı oluyor.
JakeGould

Sonsuz bir döngüde size teşekkür etmek istiyorum, bunu uzun süre arıyor ve yardımcı oldunuz. Neden böyle bir kısıtlamanın koydukları hakkında herhangi bir fikir, herhangi bir port numarasından gelen bağlantıların, port numarasının bir şeyi nasıl etkileyeceğine neden izin veremiyorlar. Herhangi bir şekilde büyük teşekkürler.
mSatyam

mSatyam Bunun nedeni 1024'ün altındaki bir bağlantı noktasına bağlanmak için root olmanız gerektiğidir ve muhtemelen NFS öğelerinin en azından varsayılan olarak kök olarak çalışmasını beklemek ihtiyatlı olacaktır. Yaptığım liman yönlendirme biraz "özel durum" idi.
Alex

Ama VirtualBox'ın ağını 1024'ün altında bir port kullanmaya nasıl ikna edebilirim? ..
Mikhail T.

Çok teşekkür ederim ..
johnmin
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.