How to Install a Basic NFS Server on Linux - CentOS 8
Spisu treści:
- Wymagania wstępne
- Skonfiguruj serwer NFS
- Instalowanie serwera NFS
- Tworzenie systemów plików
- Eksportowanie systemów plików
- Konfiguracja zapory ogniowej
- Skonfiguruj klientów NFS
- Instalowanie klienta NFS
- Montowanie systemów plików
- Testowanie dostępu do NFS
- Odmontowywanie systemu plików NFS
- Wniosek
Network File System (NFS) to protokół rozproszonego systemu plików, który umożliwia udostępnianie zdalnych katalogów przez sieć. Dzięki NFS możesz montować zdalne katalogi w swoim systemie i pracować z plikami na zdalnym komputerze tak, jakby były plikami lokalnymi.
Protokół NFS nie jest domyślnie szyfrowany i, w przeciwieństwie do Samby, nie zapewnia uwierzytelnienia użytkownika. Dostęp do serwera jest ograniczony przez adresy IP lub nazwy hostów klientów.
W tym samouczku wykonasz kroki niezbędne do skonfigurowania serwera NFSv4 na CentOS 8. Pokażemy także, jak zamontować system plików NFS na kliencie.
Wymagania wstępne
Zakładamy, że masz serwer z systemem CentOS 8, na którym skonfigurujemy serwer NFS i inne maszyny, które będą działać jako klienci NFS. Serwer i klienci powinni mieć możliwość komunikowania się ze sobą za pośrednictwem sieci prywatnej. Jeśli dostawca usług hostingowych nie oferuje prywatnych adresów IP, możesz użyć publicznych adresów IP i skonfigurować zaporę serwera, aby zezwalać na ruch na porcie
2049
tylko z zaufanych źródeł.
Maszyny w tym przykładzie mają następujące adresy IP:
NFS Server IP: 192.168.33.148 NFS Clients IPs: From the 192.168.33.0/24 range
Skonfiguruj serwer NFS
W tej sekcji wyjaśniono, jak zainstalować niezbędne pakiety, utworzyć i wyeksportować katalogi NFS oraz skonfigurować zaporę.
Instalowanie serwera NFS
Pakiet „nfs-utils” udostępnia narzędzia i demony NFS dla serwera NFS. Aby go zainstalować, uruchom następujące polecenie:
sudo dnf install nfs-utils
Po zakończeniu instalacji włącz i uruchom usługę NFS, wpisując:
sudo systemctl enable --now nfs-server
Domyślnie w CentOS 8 NFS wersje 3 i 4.x są włączone, wersja 2 jest wyłączona. NFSv2 jest już dość stary i nie ma powodu, aby go włączyć. Aby to sprawdzić, uruchom następujące polecenie
cat
:
sudo cat /proc/fs/nfsd/versions
-2 +3 +4 +4.1 +4.2
Opcje konfiguracji serwera NFS są ustawione w plikach
/etc/nfsmount.conf
i
/etc/nfs.conf
. Domyślne ustawienia są wystarczające dla naszego samouczka.
Tworzenie systemów plików
Podczas konfigurowania serwera NFSv4 dobrą praktyką jest używanie globalnego katalogu głównego NFS i wiązanie podłączenia rzeczywistych katalogów do punktu podłączenia udziału. W tym przykładzie
/srv/nfs4
dyrektora
/srv/nfs4
jako katalogu głównego NFS.
Aby lepiej wyjaśnić sposób konfigurowania podłączeń NFS, będziemy udostępniać dwa katalogi (
/var/www
i
/opt/backups
) z różnymi ustawieniami konfiguracji.
/var/www/
jest własnością użytkownika i grupowego
apache
a
/opt/backups
jest własnością
root
.
Utwórz system plików eksportu za pomocą komendy
mkdir
:
sudo mkdir -p /srv/nfs4/{backups, www}
Zamontuj rzeczywiste katalogi:
sudo mount --bind /opt/backups /srv/nfs4/backups
sudo mount --bind /var/www /srv/nfs4/www
Aby połączenie stało się trwałe, dodaj następujące wpisy do
/etc/fstab
:
sudo nano /etc/fstab
/ etc / fstab
/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0
Eksportowanie systemów plików
Następnym krokiem jest zdefiniowanie systemów plików, które będą eksportowane przez serwer NFS, opcji udziałów i klientów, którzy mogą uzyskać dostęp do tych systemów plików. W tym celu otwórz
/etc/exports
:
sudo nano /etc/exports
Wyeksportuj katalogi
www
i
backups
i zezwól na dostęp tylko od klientów w sieci
192.168.33.0/24
:
/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)
Pierwszy wiersz zawiera
fsid=0
który definiuje katalog główny
/srv/nfs
fsid=0
/srv/nfs
. Dostęp do tego wolumenu NFS jest dozwolony tylko dla klientów z podsieci
192.168.33.0/24
. Opcja
crossmnt
jest wymagana do udostępniania katalogów będących podkatalogami wyeksportowanego katalogu.
Drugi wiersz pokazuje, jak określić wiele reguł eksportu dla jednego systemu plików. Eksportuje
/srv/nfs4/backups
i umożliwia dostęp tylko do odczytu do całego zakresu
192.168.33.0/24
, a także dostęp do odczytu i zapisu do
192.168.33.3
. Opcja
sync
informuje NFS, aby zapisał zmiany na dysku przed odpowiedzią.
Ostatni wiersz powinien być zrozumiały. Aby uzyskać więcej informacji o wszystkich dostępnych opcjach, wpisz
man exports
w swoim terminalu.
Zapisz plik i wyeksportuj udziały:
sudo exportfs -ra
Musisz uruchomić powyższe polecenie za każdym razem, gdy modyfikujesz
/etc/exports
. Jeśli wystąpią jakiekolwiek błędy lub ostrzeżenia, zostaną one wyświetlone na terminalu.
Aby wyświetlić bieżący aktywny eksport i ich stan, użyj:
sudo exportfs -v
Dane wyjściowe będą obejmować wszystkie akcje wraz z ich opcjami. Jak widać, istnieją również opcje, których nie zdefiniowaliśmy w
/etc/exports
. Są to opcje domyślne, a jeśli chcesz je zmienić, musisz je wyraźnie ustawić.
/srv/nfs4/backups 192.168.33.3(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/www 192.168.33.110(sync, wdelay, hide, no_subtree_check, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4 192.168.33.0/24(sync, wdelay, hide, crossmnt, no_subtree_check, fsid=0, sec=sys, rw, secure, root_squash, no_all_squash) /srv/nfs4/backups 192.168.33.0/24(sync, wdelay, hide, no_subtree_check, sec=sys, ro, secure, root_squash, no_all_squash)
root_squash
jest jedną z najważniejszych opcji dotyczących bezpieczeństwa NFS. Uniemożliwia to użytkownikom root podłączonym do klientów posiadanie uprawnień roota do zamontowanych udziałów.
UID
główny
UID
i
GID
na
GID
UID
/
GID
nobody
/
nogroup
.
Aby użytkownicy na komputerach klienckich mieli dostęp, NFS oczekuje, że identyfikatory użytkowników i grup klientów będą zgodne z identyfikatorami na serwerze. Inną opcją jest użycie funkcji mapowania tożsamości NFSv4, która tłumaczy identyfikatory użytkowników i grup na nazwy i odwrotnie.
Otóż to. W tym momencie skonfigurowałeś serwer NFS na serwerze CentOS. Możesz teraz przejść do następnego kroku i skonfigurować klientów i połączyć się z serwerem NFS.
Konfiguracja zapory ogniowej
FirewallD to domyślne rozwiązanie zapory ogniowej w Centos 8.
Usługa NFS obejmuje predefiniowane reguły umożliwiające dostęp do serwera NFS.
Następujące polecenia umożliwią stały dostęp z podsieci
192.168.33.0/24
:
sudo firewall-cmd --new-zone=nfs --permanent
sudo firewall-cmd --zone=nfs --add-service=nfs --permanent
sudo firewall-cmd --zone=nfs --add-source=192.168.33.0/24 --permanent
sudo firewall-cmd --reload
Skonfiguruj klientów NFS
Teraz, gdy serwer NFS jest skonfigurowany, a udziały są eksportowane, następnym krokiem jest skonfigurowanie klientów i zamontowanie zdalnych systemów plików.
Możesz także zamontować udział NFS na komputerach z systemem macOS i Windows, ale skupimy się na systemach Linux.
Instalowanie klienta NFS
Na komputerach klienta zainstaluj narzędzia wymagane do zamontowania zdalnych systemów plików NFS.
-
Zainstaluj klienta NFS na Debianie i Ubuntu
Nazwa pakietu zawierającego programy do montowania systemów plików NFS w dystrybucjach opartych na Debianie jest
nfs-common
w systemie plików NFS. Aby zainstalować, uruchom:sudo apt update
sudo apt install nfs-common
Zainstaluj klienta NFS na CentOS i Fedorze
Na Red Hat i jego pochodnych zainstaluj pakiet
nfs-utils
:sudo yum install nfs-utils
Montowanie systemów plików
Będziemy pracować na komputerze klienckim o IP
192.168.33.110
, który ma dostęp do odczytu i zapisu do systemu plików
/srv/nfs4/www
oraz dostęp tylko do odczytu do systemu plików
/srv/nfs4/backups
.
Utwórz dwa nowe katalogi dla punktów montowania. Możesz utworzyć te katalogi w dowolnym miejscu.
sudo mkdir -p /backups
sudo mkdir -p /srv/www
Podłącz wyeksportowane systemy plików za pomocą polecenia
mount
:
sudo mount -t nfs -o vers=4 192.168.33.148:/backups /backups
sudo mount -t nfs -o vers=4 192.168.33.148:/www /srv/www
Gdzie
192.168.33.148
to adres IP serwera NFS. Możesz także użyć nazwy hosta zamiast adresu IP, ale musi on zostać rozwiązany przez komputer kliencki. Zwykle odbywa się to poprzez mapowanie nazwy hosta na adres IP w
/etc/hosts
.
Podczas montowania systemu plików NFSv4 należy pominąć katalog główny NFS, więc zamiast
/srv/nfs4/backups
należy użyć
/backups
.
Sprawdź, czy zdalne systemy plików zostały poprawnie zamontowane, używając komendy mount lub
df
:
df -h
Polecenie wyświetli wszystkie zamontowane systemy plików. Dwie ostatnie linie to zamontowane udziały:
… 192.168.33.148:/backups 9.7G 1.2G 8.5G 13% /backups 192.168.33.148:/www 9.7G 1.2G 8.5G 13% /srv/www
Aby zamontować stałe podczas ponownego uruchamiania, otwórz
/etc/fstab
:
sudo nano /etc/fstab
i dodaj następujące linie:
/ etc / fstab
192.168.33.148:/backups /backups nfs defaults, timeo=900, retrans=5, _netdev 0 0 192.168.33.148:/www /srv/www nfs defaults, timeo=900, retrans=5, _netdev 0 0
Aby znaleźć więcej informacji o dostępnych opcjach podczas montowania systemu plików NFS, wpisz
man nfs
w swoim terminalu.
Inną opcją montowania zdalnych systemów plików jest użycie narzędzia
autofs
lub utworzenie jednostki systemowej.
Testowanie dostępu do NFS
Przetestujmy dostęp do udziałów, tworząc nowy plik w każdym z nich.
Najpierw spróbuj utworzyć plik testowy w katalogu
/backups
za pomocą polecenia
touch
:
sudo touch /backups/test.txt
System plików
/backup
jest eksportowany jako tylko do odczytu i zgodnie z oczekiwaniami zobaczysz komunikat o błędzie
Permission denied
:
touch: cannot touch '/backups/test': Permission denied
Następnie spróbuj utworzyć plik testowy w katalogu
/srv/www
jako root za pomocą polecenia
sudo
:
sudo touch /srv/www/test.txt
Ponownie zobaczysz komunikat
Permission denied
dostępu.
touch: cannot touch '/srv/www': Permission denied
Katalog
/var/www
jest własnością użytkownika
apache
, a ten udział ma
root_squash
opcję
root_squash
, która mapuje użytkownika root na użytkownika
nobody
i grupę
nogroup
, która nie ma uprawnień do zapisu do udziału zdalnego.
Zakładając, że
apache
użytkownika istnieje na komputerze klienckim z takim samym
UID
i
GID
jak na serwerze zdalnym (co powinno mieć miejsce, jeśli na przykład zainstalowałeś apache na obu komputerach), możesz przetestować, aby utworzyć plik jako
apache
użytkownika z:
sudo -u apache touch /srv/www/test.txt
Polecenie nie wyświetli danych wyjściowych, co oznacza, że plik został pomyślnie utworzony.
Aby to zweryfikować, wyświetl listę plików w katalogu
/srv/www
:
ls -la /srv/www
Dane wyjściowe powinny pokazywać nowo utworzony plik:
drwxr-xr-x 3 apache apache 4096 Jun 23 22:18. drwxr-xr-x 3 root root 4096 Jun 23 22:29.. -rw-r--r-- 1 apache apache 0 Jun 23 21:58 index.html -rw-r--r-- 1 apache apache 0 Jun 23 22:18 test.txt
Odmontowywanie systemu plików NFS
sudo umount /backups
Jeśli punkt montowania jest zdefiniowany w
/etc/fstab
, upewnij się, że usuwasz linię lub komentujesz, dodając
#
na początku linii.
Wniosek
W tym samouczku pokazaliśmy, jak skonfigurować serwer NFS i jak zamontować zdalne systemy plików na komputerach klienckich. Jeśli wdrażasz NFS w produkcji i udostępniasz sensowne dane, dobrym pomysłem jest włączenie uwierzytelniania Kerberos.
Alternatywnie do NFS można użyć SSHFS do montowania zdalnych katalogów przez połączenie SSH. SSHFS jest domyślnie szyfrowany i znacznie łatwiejszy w konfiguracji i obsłudze.
Jeśli masz jakieś pytania, zostaw komentarz.
centos nfs mount terminalJak zainstalować i skonfigurować serwer NFS na Ubuntu 18.04
Network File System (NFS) to protokół rozproszonego systemu plików, który umożliwia udostępnianie zdalnych katalogów przez sieć. W tym samouczku omówimy, jak skonfigurować serwer NFSv4 w systemie Ubuntu 18.04.
Jak skonfigurować serwer OpenVPN na Centos 7
VPN pozwala łączyć się ze zdalnymi serwerami VPN, dzięki czemu twoje połączenie jest szyfrowane i bezpieczne, a także surfować po Internecie anonimowo, zachowując prywatność danych o ruchu. Ten samouczek obejmie proces konfigurowania własnego serwera VPN poprzez instalację i konfigurację OpenVPN.
Jak skonfigurować serwer ftp z vsftpd na Centos 7
W tym samouczku będziemy instalować vsftpd. Jest to stabilny, bezpieczny i szybki serwer FTP. Pokażemy również, jak skonfigurować vsftpd, aby ograniczyć użytkowników do ich katalogu domowego i szyfrować całą transmisję za pomocą SSL / TLS.