Android

Cách cài đặt và định cấu hình máy chủ nfs trên Ubuntu 18.04

Ubuntu 18.04: What's New?

Ubuntu 18.04: What's New?

Mục lục:

Anonim

Hệ thống tệp mạng (NFS) là một giao thức hệ thống tệp phân tán cho phép bạn chia sẻ các thư mục từ xa qua mạng. Với NFS, bạn có thể gắn các thư mục từ xa trên hệ thống của mình và làm việc với các tệp trên máy từ xa như thể chúng là các tệp cục bộ.

Giao thức NFS không được mã hóa theo mặc định và không giống như Samba, nó không cung cấp xác thực người dùng. Truy cập vào máy chủ bị hạn chế bởi các địa chỉ IP của máy khách hoặc tên máy chủ.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách thiết lập Máy chủ NFSv4 trên Ubuntu 18.04. Chúng tôi cũng sẽ chỉ cho bạn cách gắn hệ thống tệp NFS trên máy khách.

Điều kiện tiên quyết

Ví dụ này giả định rằng bạn có một máy chủ chạy Ubuntu 18.04 và một máy chủ khác chạy bất kỳ bản phân phối Linux nào khác. Máy chủ và máy khách sẽ có thể liên lạc với nhau qua mạng riêng. Nếu nhà cung cấp dịch vụ lưu trữ của bạn không cung cấp địa chỉ IP riêng, bạn có thể sử dụng địa chỉ IP công cộng và định cấu hình tường lửa máy chủ để chỉ cho phép lưu lượng truy cập trên cổng 2049 từ các nguồn đáng tin cậy.

Các máy trong ví dụ này có các IP sau:

NFS Server IP: 192.168.33.10 NFS Clients IPs: From the 192.168.33.0/24 range

Thiết lập máy chủ NFS

Chúng ta sẽ bắt đầu bằng cách cài đặt và cấu hình máy chủ NFS.

Cài đặt máy chủ NFS

Làm mới chỉ mục gói và cài đặt gói máy chủ NFS:

sudo apt update sudo apt install nfs-kernel-server

Sau khi cài đặt hoàn tất, các dịch vụ NFS sẽ tự động bắt đầu.

Theo mặc định, trên Ubuntu 18.04 NFS phiên bản 2 bị tắt. Phiên bản 3 và 4 được bật. Bạn có thể xác minh rằng bằng cách chạy lệnh cat sau:

sudo cat /proc/fs/nfsd/versions

-2 +3 +4 +4.1 +4.2

NFSv2 hiện đã khá cũ và không có lý do gì để kích hoạt nó.

Các tùy chọn cấu hình máy chủ NFS được đặt trong các tập tin /etc/default/nfs-kernel-server /etc/default/nfs-common . Các thiết lập mặc định là đủ trong trường hợp của chúng tôi.

Tạo hệ thống tập tin

Khi cấu hình máy chủ NFSv4, một cách tốt là sử dụng thư mục gốc NFS toàn cầu và liên kết gắn kết các thư mục thực tế với điểm gắn kết chia sẻ. Trong ví dụ này, chúng tôi sẽ sử dụng giám đốc /srv/nfs4 làm gốc NFS.

Chúng tôi sẽ chia sẻ hai thư mục ( /var/www /opt/backups ), với các cài đặt cấu hình khác nhau, để giải thích rõ hơn về cách gắn kết NFS có thể được cấu hình.

/var/www/ được sở hữu bởi www-data người dùng và nhóm và /opt/backups được sở hữu bởi root .

Tạo hệ thống tập tin xuất bằng mkdir :

sudo mkdir -p /srv/nfs4/backups sudo mkdir -p /srv/nfs4/www

Gắn kết các thư mục thực tế:

sudo mount --bind /opt/backups /srv/nfs4/backups sudo mount --bind /var/www /srv/nfs4/www

Để gắn kết liên kết vĩnh viễn, hãy mở tệp /etc/fstab :

sudo nano /etc/fstab

và thêm các dòng sau:

/ etc / fstab

/opt/backups /srv/nfs4/backups none bind 0 0 /var/www /srv/nfs4/www none bind 0 0

Xuất hệ thống tập tin

Bước tiếp theo là xác định các hệ thống tệp sẽ được xuất bởi máy chủ NFS, các tùy chọn chia sẻ và các máy khách được phép truy cập vào các hệ thống tệp đó. Để làm như vậy, hãy mở tập tin /etc/exports :

sudo nano /etc/exports Tệp /etc/exports cũng chứa các bình luận mô tả cách xuất thư mục.

Trong trường hợp của chúng tôi, chúng tôi cần xuất các thư mục www backups và chỉ cho phép truy cập từ các máy khách trên mạng 192.168.33.0/24 :

/ etc / xuất khẩu

/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)

Dòng đầu tiên chứa fsid=0 xác định thư mục gốc NFS /srv/nfs . Quyền truy cập trên khối lượng NFS này chỉ được phép cho các máy khách từ mạng con 192.168.33.0/24 . Tùy chọn crossmnt được yêu cầu để chia sẻ các thư mục là thư mục con của thư mục được xuất.

Trong dòng thứ hai cho thấy cách chỉ định nhiều quy tắc xuất cho một hệ thống tệp. Nó xuất thư mục /srv/nfs4/backups và chỉ cho phép truy cập đọc vào toàn bộ phạm vi 192.168.33.0/24 và cả truy cập đọc và ghi vào 192.168.33.3 . Tùy chọn sync yêu cầu NFS ghi các thay đổi vào đĩa trước khi trả lời.

Dòng cuối cùng nên tự giải thích. Để biết thêm thông tin về tất cả các tùy chọn có sẵn, hãy man exports trong thiết bị đầu cuối của bạn.

Lưu tệp và xuất các cổ phần:

sudo exportfs -ra

Bạn cần chạy lệnh ở trên mỗi lần bạn sửa đổi tệp /etc/exports . Nếu có bất kỳ lỗi hoặc cảnh báo, chúng sẽ được hiển thị trên thiết bị đầu cuối.

Để xem các hoạt động xuất khẩu hiện tại và trạng thái của chúng, hãy sử dụng:

sudo exportfs -v

Đầu ra sẽ bao gồm tất cả các cổ phiếu với các tùy chọn của họ. Như bạn có thể thấy, cũng có các tùy chọn mà chúng tôi chưa xác định trong tệp /etc/exports . Đó là các tùy chọn mặc định và nếu bạn muốn thay đổi chúng, bạn cần đặt rõ ràng các tùy chọn đó.

/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)

Trên Ubuntu, root_squash được bật theo mặc định. Đây là một trong những tùy chọn quan trọng nhất liên quan đến bảo mật NFS. Nó ngăn người dùng root được kết nối từ máy khách để có quyền root trên các cổ phần được gắn kết. Nó sẽ ánh xạ UID gốc và GID tới nobody / nogroup UID / GID .

Để người dùng trên các máy khách có quyền truy cập, NFS hy vọng ID người dùng và ID nhóm của khách hàng sẽ khớp với những người dùng trên máy chủ. Một tùy chọn khác là sử dụng tính năng lập bản đồ NFSv4 để dịch ID người dùng và nhóm thành tên và theo cách khác.

Đó là nó. Tại thời điểm này, bạn đã thiết lập máy chủ NFS trên máy chủ Ubuntu của mình. Bây giờ bạn có thể chuyển sang bước tiếp theo và định cấu hình máy khách và kết nối với máy chủ NFS.

Cấu hình tường lửa

Giả sử bạn đang sử dụng UFW để quản lý tường lửa của mình để cho phép truy cập từ mạng con 192.168.33.0/24 bạn cần chạy lệnh sau:

sudo ufw allow from 192.168.33.0/24 to any port nfs

Để xác minh thay đổi chạy:

sudo ufw status

Đầu ra sẽ cho thấy lưu lượng trên cổng 2049 được cho phép:

To Action From -- ------ ---- 2049 ALLOW 192.168.33.0/24 22/tcp ALLOW Anywhere 22/tcp (v6) ALLOW Anywhere (v6)

Thiết lập khách hàng NFS

Bây giờ máy chủ NFS được thiết lập và chia sẻ được xuất ra bước tiếp theo cấu hình máy khách và gắn kết các hệ thống tệp từ xa.

Bạn cũng có thể gắn kết chia sẻ NFS trên máy macOS và Windows nhưng chúng tôi sẽ tập trung vào các hệ thống Linux.

Cài đặt máy khách NFS

Trên các máy khách, chúng ta chỉ cần cài đặt các công cụ cần thiết để gắn hệ thống tệp NFS từ xa.

  • Cài đặt máy khách NFS trên Debian và Ubuntu

    Tên của gói bao gồm các chương trình để gắn hệ thống tệp NFS trên các bản phân phối dựa trên Debian là nfs-common . Để cài đặt nó chạy:

    sudo apt update sudo apt install nfs-common

    Cài đặt ứng dụng khách NFS trên CentOS và Fedora

    Trên Red Hat và các dẫn xuất của nó cài đặt gói nfs-utils :

    sudo yum install nfs-utils

Gắn hệ thống tập tin

Chúng tôi sẽ làm việc trên máy khách với IP 192.168.33.110 có quyền truy cập đọc và ghi vào hệ thống tệp /srv/nfs4/www và chỉ truy cập vào hệ thống tệp /srv/nfs4/backups .

Tạo hai thư mục mới cho các điểm gắn kết. Bạn có thể tạo thư mục này tại bất kỳ vị trí nào bạn muốn.

sudo mkdir -p /backups sudo mkdir -p /srv/www

Gắn kết các hệ thống tệp đã xuất bằng lệnh mount :

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

Trong đó 192.168.33.10 là IP của máy chủ NFS. Bạn cũng có thể sử dụng tên máy chủ thay vì địa chỉ IP nhưng nó cần được máy khách giải quyết. Điều này thường được thực hiện bằng cách ánh xạ tên máy chủ đến IP trong tệp /etc/hosts .

Khi gắn hệ thống tập tin NFSv4, bạn cần phải mở thư mục gốc NFS, vì vậy thay vì /srv/nfs4/backups bạn cần sử dụng /backups .

Xác minh rằng các hệ thống tệp từ xa được gắn kết thành công bằng cách sử dụng lệnh mount hoặc df :

df -h

Lệnh sẽ in tất cả các hệ thống tập tin được gắn kết. Hai dòng cuối cùng là các cổ phiếu được gắn kết:

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

Để gắn kết vĩnh viễn khi khởi động lại, hãy mở tệp /etc/fstab :

sudo nano /etc/fstab

và thêm các dòng sau:

/ 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

Để tìm thêm thông tin về các tùy chọn khả dụng khi gắn hệ thống tệp NFS, hãy nhập man nfs trong thiết bị đầu cuối của bạn.

Một tùy chọn khác để gắn kết các hệ thống tệp từ xa là sử dụng công cụ autofs hoặc để tạo một đơn vị systemd.

Kiểm tra truy cập NFS

Hãy kiểm tra quyền truy cập vào các chia sẻ bằng cách tạo một tệp mới cho mỗi tệp.

Trước tiên, hãy thử tạo một tệp thử nghiệm vào thư mục /backups bằng lệnh touch :

sudo touch /backups/test.txt

Hệ thống tập tin /backup được xuất dưới dạng chỉ đọc và như mong đợi, bạn sẽ thấy Permission denied báo lỗi Từ Permission denied :

touch: cannot touch '/backups/test': Permission denied

Tiếp theo, hãy thử tạo một tệp thử nghiệm vào thư mục /srv/www dưới dạng root bằng sudo :

sudo touch /srv/www/test.txt

Một lần nữa, bạn sẽ thấy tin nhắn Permission denied .

touch: cannot touch '/srv/www': Permission denied

Giả sử rằng bạn có sử dụng www-data trên máy khách có cùng UID GID như trên máy chủ từ xa (ví dụ: nếu bạn đã cài đặt nginx trên cả hai máy), bạn có thể kiểm tra để tạo tệp như người dùng www-data với:

sudo -u www-data touch /srv/www/test.txt

Lệnh sẽ hiển thị không có đầu ra có nghĩa là tệp đã được tạo thành công.

Để xác minh nó liệt kê các tệp trong thư mục /srv/www :

ls -la /srv/www

Đầu ra sẽ hiển thị tệp mới được tạo:

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

Ngắt kết nối hệ thống tệp NFS

sudo umount /backups

Nếu điểm gắn kết được xác định trong tệp /etc/fstab , hãy đảm bảo bạn xóa dòng hoặc nhận xét nó bằng cách thêm # ở đầu dòng.

Phần kết luận

Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách thiết lập máy chủ NFS và cách gắn kết các hệ thống tệp từ xa trên các máy khách. Nếu bạn đang triển khai NFS trong sản xuất và chia sẻ dữ liệu hợp lý, bạn nên bật xác thực kerberos.

Thay thế cho NFS, bạn có thể sử dụng SSHFS để gắn các thư mục từ xa qua kết nối SSH. SSHFS được mã hóa theo mặc định và dễ dàng hơn nhiều để cấu hình và sử dụng.

Hãy để lại nhận xét nếu bạn có bất kỳ câu hỏi nào.

thiết bị đầu cuối gắn kết Ubuntu nfs