Network File System NFS - Server and Client - Ubuntu Server 18.04
İçindekiler:
- Ön şartlar
- NFS Sunucusunu Ayarlama
- NFS sunucusunu yükleme
- Dosya sistemlerinin oluşturulması
- Dosya sistemlerini dışa aktarma
- Güvenlik duvarı yapılandırması
- NFS İstemcilerini Ayarlama
- NFS istemcisini yükleme
- Montaj dosya sistemleri
- NFS Erişimini Test Etme
- NFS Dosya Sisteminin Bağlantısını Kesme
- Sonuç
Ağ Dosya Sistemi (NFS), uzak dizinleri ağ üzerinden paylaşmanızı sağlayan dağıtılmış bir dosya sistemi protokolüdür. NFS ile, sisteminize uzak dizinler bağlayabilir ve uzak makinedeki dosyalarla yerel dosyalarmış gibi çalışabilirsiniz.
NFS protokolü varsayılan olarak şifrelenmez ve Samba'nın aksine, kullanıcı kimlik doğrulaması sağlamaz. Sunucuya erişim, istemcilerin IP adresleri veya ana bilgisayar adları tarafından kısıtlanır.
Bu öğreticide, Ubuntu 18.04'te NFSv4 Sunucusunun nasıl kurulacağını ele alacağız. Ayrıca istemciye bir NFS dosya sisteminin nasıl takılacağını da göstereceğiz.
Ön şartlar
Bu örnekte, Ubuntu 18.04 çalıştıran bir sunucunuz ve diğer herhangi bir Linux dağıtımını çalıştıran bir sunucunuz olduğu varsayılmaktadır. Sunucu ve istemciler özel bir ağ üzerinden birbirleriyle iletişim kurabilmelidir. Barındırma sağlayıcınız özel IP adresleri sunmuyorsa, genel IP adreslerini kullanabilir ve sunucu güvenlik duvarını
2049
numaralı bağlantı noktasında yalnızca güvenilir kaynaklardan gelen trafiğe izin verecek şekilde yapılandırabilirsiniz.
Bu örnekteki makineler aşağıdaki IP'lere sahiptir:
NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range
NFS Sunucusunu Ayarlama
NFS sunucusunu kurarak ve yapılandırarak başlayacağız.
NFS sunucusunu yükleme
Paketler dizinini yenileyin ve NFS sunucu paketini yükleyin:
sudo apt update
sudo apt install nfs-kernel-server
Kurulum tamamlandığında, NFS hizmetleri otomatik olarak başlayacaktır.
Varsayılan olarak, Ubuntu 18.04'te NFS sürüm 2 devre dışıdır. Sürüm 3 ve 4 etkinleştirildi. Aşağıdaki
cat
komutunu çalıştırarak bunu doğrulayabilirsiniz:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
NFSv2 artık oldukça eskidir ve etkinleştirmek için bir neden yoktur.
NFS sunucusu yapılandırma seçenekleri
/etc/default/nfs-kernel-server
ve
/etc/default/nfs-common
dosyalarında ayarlanır. Bizim durumumuzda varsayılan ayarlar yeterlidir.
Dosya sistemlerinin oluşturulması
Bir NFSv4 sunucusunu yapılandırırken, genel bir NFS kök dizini kullanmak ve gerçek dizinleri paylaşım bağlama noktasına bağlamak için iyi bir uygulamadır. Bu örnekte,
/srv/nfs4
yöneticisini NFS kökü olarak
/srv/nfs4
.
NFS bağlantılarının nasıl yapılandırılabileceğini daha iyi açıklamak için iki dizini (
/var/www
ve
/opt/backups
) farklı yapılandırma ayarlarıyla paylaşacağız.
/var/www/
kullanıcı ve
www-data
ve
/opt/backups
grubunun sahibi
root
.
mkdir
komutunu kullanarak dışa aktarma dosya sistemini
mkdir
:
sudo mkdir -p /srv/nfs4/backups
sudo mkdir -p /srv/nfs4/www
Gerçek dizinleri bağlayın:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Bağlama bağlarını kalıcı hale getirmek için
/etc/fstab
dosyasını açın:
sudo nano /etc/fstab
ve aşağıdaki satırları ekleyin:
/ Etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Dosya sistemlerini dışa aktarma
Bir sonraki adım, NFS sunucusu tarafından dışa aktarılacak dosya sistemlerini, paylaşım seçeneklerini ve bu dosya sistemlerine erişmesine izin verilen istemcileri tanımlamaktır. Bunu yapmak için
/etc/exports
dosyasını açın:
sudo nano /etc/exports
/etc/exports
export dosyası, bir dizinin nasıl dışa aktarılacağını açıklayan yorumları da içerir.
Bizim durumumuzda
www
ve
backups
dizinlerini dışa
www
ve yalnızca
192.168.33.0/24
ağındaki istemcilerden erişime izin vermemiz gerekir:
/srv/nfs4 192.168.33.0/24(rw, sync, no_subtree_check, crossmnt, fsid=0) /srv/nfs4/backups 192.168.33.0/24(ro, sync, no_subtree_check) 192.168.33.3(rw, sync, no_subtree_check) /srv/nfs4/www 192.168.33.110(rw, sync, no_subtree_check)
İlk satır
/srv/nfs
NFS kök dizinini tanımlayan
fsid=0
içerir. Bu NFS birimindeki erişime yalnızca
192.168.33.0/24
alt ağındaki istemciler izin verilir. Dışa aktarılan bir dizinin alt dizinleri olan dizinleri paylaşmak için
crossmnt
seçeneği gereklidir.
İkinci satırda, bir dosya sistemi için birden çok dışa aktarma kuralının nasıl belirtileceği gösterilmektedir.
/srv/nfs4/backups
dizinini
/srv/nfs4/backups
ve
192.168.33.0/24
aralığının tamamına yalnızca okuma erişimine ve
192.168.33.0/24
/srv/nfs4/backups
hem okuma hem de yazma erişimine izin verir.
sync
seçeneği, NFS'ye yanıt vermeden önce diske değişiklikler yazmasını söyler.
Son satır açıklayıcı olmalıdır. Mevcut tüm seçenekler hakkında daha fazla bilgi için terminalinize
man exports
yazın.
Dosyayı kaydedin ve paylaşımları dışa aktarın:
sudo exportfs -ra
/etc/exports
dosyasını her değiştirdiğinizde yukarıdaki komutu çalıştırmanız gerekir. Herhangi bir hata veya uyarı varsa, bunlar terminalde gösterilecektir.
Mevcut etkin dışa aktarmaları ve durumlarını görüntülemek için şunu kullanın:
sudo exportfs -v
Çıktı, seçenekleriyle tüm paylaşımları içerecektir. Gördüğünüz gibi
/etc/exports
dosyasında tanımlamadığımız seçenekler de var. Bunlar varsayılan seçeneklerdir ve değiştirmek isterseniz bu seçenekleri açıkça ayarlamanız gerekir.
/srv/nfs4/backups 192.168.33.3(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(rw, wdelay, root_squash, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(rw, wdelay, crossmnt, root_squash, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(ro, wdelay, root_squash, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
Ubuntu'da
root_squash
varsayılan olarak etkindir. Bu, NFS güvenliği ile ilgili en önemli seçeneklerden biridir. İstemcilerden bağlanan kök kullanıcıların bağlı paylaşımlarda kök ayrıcalıklarına sahip olmasını engeller. Kök
UID
ve
nogroup
nobody
/
nogroup
UID
/
GID
nogroup
.
İstemci makinelerindeki kullanıcıların erişebilmesi için NFS, istemcinin kullanıcı ve grup kimliklerinin sunucudakilerle eşleşmesini bekler. Başka bir seçenek de, kullanıcı ve grup kimliklerini adlara ve tam tersine çeviren NFSv4 idmap oluşturma özelliğini kullanmaktır.
Bu kadar. Bu noktada, Ubuntu sunucunuzda bir NFS sunucusu kurdunuz. Artık bir sonraki adıma geçebilir ve istemcileri yapılandırabilir ve NFS sunucusuna bağlanabilirsiniz.
Güvenlik duvarı yapılandırması
192.168.33.0/24
alt
UFW
erişime izin vermek için güvenlik duvarınızı yönetmek için
UFW
kullandığınızı varsayarsak, aşağıdaki komutu çalıştırmanız gerekir:
sudo ufw allow from 192.168.33.0/24 to any port nfs
Değişiklik çalışmasını doğrulamak için:
sudo ufw status
Çıktı,
2049
numaralı bağlantı noktasındaki trafiğe izin verildiğini göstermelidir:
To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)
NFS İstemcilerini Ayarlama
Artık NFS sunucusu ayarlandı ve paylaşımlar dışa aktarıldı, bir sonraki adımda istemcileri yapılandırın ve uzak dosya sistemlerini bağlayın.
NFS paylaşımını macOS ve Windows makinelerine de ekleyebilirsiniz, ancak Linux sistemlerine odaklanacağız.
NFS istemcisini yükleme
İstemci makinelerde, yalnızca uzak NFS dosya sistemlerini monte etmek için gereken araçları yüklememiz gerekir.
-
Debian ve Ubuntu'ya NFS istemcisi yükleme
Debian tabanlı dağıtımlarda NFS dosya sistemlerini bağlamak için programlar içeren paketin adı
nfs-common
. Yüklemek için şunu çalıştırın:sudo apt update
sudo apt install nfs-common
CentOS ve Fedora'ya NFS istemcisi yükleme
Red Hat ve türevlerinde
nfs-utils
paketini kurun:sudo yum install nfs-utils
Montaj dosya sistemleri
/srv/nfs4/www
dosya sistemine okuma ve yazma erişimi olan ve
/srv/nfs4/backups
dosya sistemine salt okuma erişimi olan IP
192.168.33.110
ile istemci makinede çalışacağız.
Bağlama noktaları için iki yeni dizin oluşturun. Bu dizinleri istediğiniz herhangi bir yerde oluşturabilirsiniz.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Dışa aktarılan dosya sistemlerini
mount
komutuyla bağlayın:
sudo mount -t nfs -o vers=4 192.168.33.10:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.10:/www /srv/www
Burada
192.168.33.10
, NFS sunucusunun IP'sidir. IP adresi yerine ana bilgisayar adını da kullanabilirsiniz, ancak istemci makine tarafından çözülmesi gerekir. Bu genellikle ana bilgisayar adını
/etc/hosts
dosyasındaki IP ile eşleyerek yapılır.
Bir NFSv4 dosya sistemi kurarken,
/srv/nfs4/backups
yerine
/srv/nfs4/backups
kullanmanız için NFS kök dizinini kullanmanız gerekir.
Mount veya
df
komutunu kullanarak uzak dosya sistemlerinin başarıyla bağlandığını doğrulayın:
df -h
Komut bağlı tüm dosya sistemlerini yazdırır. Son iki satır bağlı paylardır:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00 38G 1.7G 36G 5% / devtmpfs 236M 0 236M 0% /dev tmpfs 244M 0 244M 0% /dev/shm tmpfs 244M 4.5M 240M 2% /run tmpfs 244M 0 244M 0% /sys/fs/cgroup /dev/sda2 1014M 87M 928M 9% /boot tmpfs 49M 0 49M 0% /run/user/1000 192.168.33.10:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.10:/www 9.7G 1.2G 8.5G 13% /srv/www
Montajları yeniden başlatma sırasında kalıcı hale getirmek için
/etc/fstab
dosyasını açın:
sudo nano /etc/fstab
ve aşağıdaki satırları ekleyin:
/ Etc / fstab
192.168.33.10:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.10:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Bir NFS dosya sistemini monte ederken kullanılabilir seçenekler hakkında daha fazla bilgi edinmek için terminalinize
man nfs
yazın.
Uzak dosya sistemlerini bağlamak için başka bir seçenek,
autofs
aracını kullanmak veya bir systemd birimi oluşturmaktır.
NFS Erişimini Test Etme
Her birine yeni bir dosya oluşturarak paylaşımlara erişimi test edelim.
İlk olarak,
touch
komutunu kullanarak
/backups
dizininde bir test dosyası oluşturmayı deneyin:
sudo touch /backups/test.txt
/backup
dosya sistemi salt okunur olarak dışa aktarılır ve beklendiği gibi
Permission denied
hata iletisini görürsünüz:
touch: cannot touch '/backups/test': Permission denied
Ardından,
sudo
komutunu kullanarak
/srv/www
dizinine kök olarak bir test dosyası oluşturmayı deneyin:
sudo touch /srv/www/test.txt
Yine,
Permission denied
mesajını göreceksiniz.
touch: cannot touch '/srv/www': Permission denied
Uzak sunucudakiyle aynı
UID
ve
GID
sahip istemci makinede
www-data
kullanımınız olduğunu varsayarsak (örneğin, her iki makineye de nginx yüklediyseniz böyle olmalıdır) kullanıcı olarak bir dosya oluşturmak için test edebilirsiniz
www-data
şununla:
sudo -u www-data touch /srv/www/test.txt
Komut hiçbir çıktı göstermez, bu da dosyanın başarıyla oluşturulduğu anlamına gelir.
/srv/www
dizinindeki dosyaları listelediğini doğrulamak için:
ls -la /srv/www
Çıktıda yeni oluşturulan dosya gösterilmelidir:
drwxr-xr-x 3 www-data www-data 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 www-data www-data 0 Jun 23 21:58 index.html -rw-r--r-- 1 www-data www-data 0 Jun 23 22:18 test.txt
NFS Dosya Sisteminin Bağlantısını Kesme
sudo umount /backups
Bağlama noktası
/etc/fstab
dosyasında tanımlanmışsa, satırı kaldırdığınızdan emin olun veya satırın başına
#
ekleyerek satırı yorumlayın.
Sonuç
Bu öğreticide, NFS sunucusunun nasıl kurulacağını ve uzak dosya sistemlerinin istemci makinelere nasıl bağlanacağını gösterdik. NFS'yi üretimde uyguluyorsanız ve mantıklı verileri paylaşıyorsanız, kerberos kimlik doğrulamasını etkinleştirmek iyi bir fikirdir.
NFS'ye alternatif olarak, uzak dizinleri bir SSH bağlantısı üzerinden bağlamak için SSHFS'yi kullanabilirsiniz. SSHFS varsayılan olarak şifrelenmiştir ve yapılandırılması ve kullanımı çok daha kolaydır.
Herhangi bir sorunuz varsa yorum bırakmaktan çekinmeyin.
ubuntu nfs dağı terminaliCentos 8'de bir nfs sunucusu nasıl kurulur ve yapılandırılır
Bu öğreticide, CentOS 8'de bir NFSv4 Sunucusu kurmak için gerekli adımları uygulayacaksınız. Ayrıca, istemciye bir NFS dosya sisteminin nasıl takılacağını da göstereceğiz.
Ubuntu 18.04 Üzerinde Apache ile Owncloud Nasıl Kurulur ve Yapılandırılır
ownCloud açık kaynaklı, kendi kendine barındırılan bir dosya senkronizasyonu ve dosya paylaşım platformudur. Bu eğitimde, bir Ubuntu 18.04 makinesine Apache ile ownCloud'u nasıl kuracağınızı ve yapılandıracağınızı göstereceğiz.
Ubuntu 18.04 Üzerinde Minecraft Sunucusu Nasıl Kurulur
Bu eğitici, Ubuntu 18.04'te Minecraft Server'ın en son sürümünü yüklemeyi ve yapılandırmayı kapsar. Minecraft sunucusunu çalıştırmak için systemd ve çalışan örneğe bağlanmak için mcrcon yardımcı programını kullanacağız.