Paylaşım erişim kontrolü

Paylaşımlı Dosya Sistemleri servisi, diğer istemciler için servisin farklı varlıklarına erişim izni vermeyi veya bunlara erişimi reddetmeyi sağlar.

Bir dosya sisteminin uzaktan takılabilir örneği olarak bir paylaşıma sahip olduğunuzda, belirtilen bir paylaşıma erişimi yönetebilir ve belirtilen bir paylaşım için izinleri listeleyebilirsiniz.

Bir paylaşım genel veya özel olabilir. Bu, diğer kiracıların paylaşımı görebileceklerini veya göremediklerini belirleyen paylaşım için bir görünürlük düzeyidir. Varsayılan olarak, tüm paylaşımlar özel olarak oluşturulur. Bir paylaşım oluştururken paylaşımı diğer kiracılar için herkese açık hale getirmek için --public anahtarını kullanarak bir paylaşım listesinde görünmeyi ve ayrıntılı bilgilerini görebilmeyi sağlarsınız.

policy.json dosyasına göre, bir yönetici ve paylaşım sahipleri olarak kullanıcılar erişim kuralları oluşturarak paylaşımlara erişimi yönetebilirler. manila access-allow, manila access-deny ve manila access-list komutlarını kullanarak, belirtilen bir paylaşıma uygun şekilde erişim izni verebilir, reddedebilir ve listeleyebilirsiniz.

Tüyo

Varsayılan olarak, bir paylaşım oluşturulduğunda ve dışa aktarma konumunda olduğunda, Paylaşımlı Dosya Sistemleri servisi, kimsenin onu paylaşarak paylaşıma erişmesini beklememektedir. Kullandığınız paylaşım sürücüsünün bu yapılandırmayı değiştirebileceğini veya paylaşım deposunda doğrudan değiştirilebileceğini lütfen unutmayın. Paylaşıma erişim sağlamak için, dışa aktarma protokolünün bağlama yapılandırmasını kontrol edin.

Bir paylaşım yeni oluşturulduğunda, paylaşılan varsayılan erişim kuralları ve onu bağlama izni yoktur. Bu, kullanımdaki dışa aktarma protokolünün bağlama yapılandırmasında görülebilir. Örneğin, her uzak paylaşımı kontrol eden ve ona erişebilen ana makineleri tanımlayan bir exportfs veya /etc/exports dosyası olan bir NFS komutu var. Kimse bir paylaşımı bağlayamazsa boştur. Uzak CIFS sunucusu için yapılandırmayı gösteren net conf list komutu var. hosts deny parametresi, paylaşım sürücüsü tarafından 0.0.0.0/0 olarak ayarlanmalıdır; bu, herhangi bir makinenin paylaşımı bağlamasının reddedildiği anlamına gelir.

Paylaşımlı Dosya Sistemleri servisini kullanarak, şu desteklenen paylaşım erişim düzeylerinden birini belirleyerek bir paylaşıma erişim izni verebilir veya bunlara erişiminizi engelleyebilirsiniz:

  • rw. Okuma ve yazma (RW) erişimi. Öntanımlı değerdir.

  • ro. Salt-okunur (RO) erişim.

Tüyo

Yönetici, bazı editörler veya katılımcılar için okuma ve yazma (RW) erişimi verdiğinde ve geri kalan kullanıcılar (izleyiciler) için salt okunur (RO) erişim verirse, RO erişim düzeyi kamu paylaşımlarında yardımcı olabilir.

Bu desteklenen kimlik doğrulama yöntemlerinden birini de belirtmeniz gerekir:

  • ip. Bir örneği IP adresiyle doğrular. Geçerli bir biçim XX.XX.XX.XX veya XX.XX.XX.XX/XX’dir. Örneğin 0.0.0.0/0.

  • cert. Bir örneği bir TLS sertifikası ile doğrular. IDENTKEY olarak TLS kimliğini belirtin. Geçerli bir değer, sertifikanın ortak adında (CN) 64 karaktere kadar herhangi bir dizedir.

  • user. Belirli bir kullanıcı veya grup adına göre kimlik doğrulama yapar. Geçerli bir değer, bazı özel karakterler içerebilen ve 4 ila 32 karakter uzunluğunda bir alfasayısal dizedir.

Not

Desteklenen kimlik doğrulama yöntemleri hangi paylaşım sürücüsüne, güvenlik servisine ve yapılandırdığınız ve kullandığınız paylaşılan dosya sistemi protokolüne bağlıdır. Desteklenen paylaşımlı dosya sistemi protokolleri NFS, CIFS, GlusterFS ve HDFS’dir. Desteklenen güvenlik hizmetleri LDAP, Kerberos protokolleri veya Microsoft Active Directory servisidir. Özelliklerin farklı sürücülere göre desteklenmesiyle ilgili ayrıntılar için bkz. Manila paylaşım özellikleri destekleme eşleştirme.

Bir paylaşım için erişim kurallarının (ACL) doğru yapılandırıldığını doğrulamak için izinlerini listeleyebilirsiniz.

Tüyo

Ayrıca paylaşımınıza uygun istemciler için kimlik doğrulama yöntemleri bulunan erişim kuralları oluşturmak için paylaşım sürücüsü tarafından desteklenen güvenlik servisini seçebilir ve ekleyebilirsiniz. Desteklenen güvenlik hizmetleri LDAP, Kerberos ve Microsoft Active Directory’dir.

Aşağıda, Genel sürücü ile NFS paylaşımına bir örnek verilmiştir. Paylaşım oluşturulduktan sonra, 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de dışa aktarma konumuna sahiptir. 10.254.0.4 IP adresiyle sunucuya bağlamaya çalışırsanız, bir “İzin reddedildi” mesajı alırsınız.

# mount.nfs -v 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de /mnt
mount.nfs: timeout set for Mon Oct 12 13:07:47 2015
mount.nfs: trying text-based options 'vers=4,addr=10.254.0.3,clientaddr=10.254.0.4'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting 10.254.0.3:/shares/share-b2874f8d-...

Yönetici olarak, SSH ile 10.254.0.3 IP adresine sahip bir makineye bağlanabilir, içindeki /etc/exports dosyasını kontrol edebilir ve bunun boş olduğunu görebilirsiniz:

# cat /etc/exports
#

Örnek olarak kullandığımız genel sürücü herhangi bir güvenlik servisini desteklemez, dolayısıyla NFS paylaşımlı dosya sistemi protokolüyle yalnızca IP adresi üzerinden erişim izni verebiliriz:

$ manila access-allow Share_demo2 ip 10.254.0.4
+--------------+--------------------------------------+
| Property     | Value                                |
+--------------+--------------------------------------+
| share_id     | e57c25a8-0392-444f-9ffc-5daadb9f756c |
| access_type  | ip                                   |
| access_to    | 10.254.0.4                           |
| access_level | rw                                   |
| state        | new                                  |
| id           | 62b8e453-d712-4074-8410-eab6227ba267 |
+--------------+--------------------------------------+

Kuralın durumu active olduktan sonra tekrar 10.254.0.3 makinesine bağlanıp /etc/exports dosyasını kontrol edebilir ve kurallı satırı eklediğimizi görürüz:

# cat /etc/exports
/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de     10.254.0.4(rw,sync,wdelay,hide,nocrossmnt,secure,root_squash,no_all_squash,no_subtree_check,secure_locks,acl,anonuid=65534,anongid=65534,sec=sys,rw,root_squash,no_all_squash)
#

Şimdi makinede 10.254.0.4 IP adresine sahip bir paylaşım kurabilir ve paylaşıma rw izinleri verebiliriz:

# mount.nfs -v 10.254.0.3:/shares/share-b2874f8d-d428-4a5c-b056-e6af80a995de /mnt
# ls -a /mnt
.  ..  lost+found
# echo "Hello!" > /mnt/1.txt
# ls -a /mnt
.  ..  1.txt  lost+found
#