Cách cài đặt NFS Server và Client trên Debian 12

theanh

Administrator
Nhân viên
NFS hay Hệ thống tệp mạng là một giao thức mạng cho phép bạn gắn hệ thống tệp từ xa qua mạng. Giao thức NFS sử dụng kiến trúc máy khách-máy chủ: máy chủ NFS cung cấp tất cả các thư mục hoặc phân vùng có thể truy cập và máy khách truy cập tất cả các thư mục và hệ thống tệp thông qua kết nối mạng nội bộ bằng giao thức rpcbind.

Trạng thái hiện tại của giao thức Hệ thống tệp mạng được mô tả bên dưới.
  • NFSv2 và NFSv3 vẫn được các hệ điều hành chính hỗ trợ, nhưng vì lý do bảo mật, bạn phải hạn chế quyền truy cập vào máy chủ NFS đối với mạng cục bộ đáng tin cậy. NFSv2 và NFSv3 được khuyến nghị cho các triển khai vừa và nhỏ.
  • Giao thức NFSv4 cung cấp các tính năng bảo mật cơ bản như xác thực và mã hóa, nhưng dựa vào Kerberos cho các phần này. Vì vậy, bạn cần thực hiện các cấu hình bổ sung để sử dụng NFSv4 với các tính năng bảo mật cơ bản.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt máy chủ và máy khách NFS trên Debian 12. Tôi sẽ cài đặt máy chủ NFS và cấu hình NFSv4, bao gồm cả việc cấu hình exportsfs thông qua hệ thống tệp giả. Cuối cùng, bạn cấu hình máy khách Debian để gắn máy chủ NFS chỉ thông qua NFSv4 và cấu hình gắn tự động thông qua tệp /etc/fstab.

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

Để hoàn thành hướng dẫn này, hãy đảm bảo bạn có những điều sau:
  • Hai máy chủ Debian 12 - Trong trường hợp này, máy chủ bookworm có địa chỉ IP 192.168.10.15 sẽ được sử dụng làm máy chủ NFS và máy chủ client1 có địa chỉ IP 192.168.10.20 sẽ được sử dụng làm máy khách NFS.
  • Người dùng không phải root có quyền sudo/administrator.

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

NFS hay Hệ thống tệp mạng là giao thức chia sẻ tệp phân tán. Trên Linux, bao gồm Debian, gói NFS có sẵn theo mặc định trên kho lưu trữ chính thức. Hoàn tất bước đầu tiên bên dưới để cài đặt gói máy chủ NFS và tìm hiểu cách quản lý dịch vụ máy chủ NFS.

Trước khi chuyển sang cài đặt, hãy chạy lệnh apt bên dưới để cập nhật kho lưu trữ Debian và lấy thông tin gói mới nhất.
Mã:
sudo apt update
Bây giờ hãy cài đặt gói máy chủ NFS nfs-kernel-server bằng lệnh apt bên dưới. Nhập y để xác nhận cài đặt và nhấn ENTER.
Mã:
sudo apt install nfs-kernel-server nfs-common

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22658%22%20height=%22290%22%3E%3C/svg%3E


Sau khi gói nfs-kernel-server được cài đặt, dịch vụ nfs-server sẽ được tạo, chạy và được bật theo mặc định trên máy Debian của bạn. Thực hiện các lệnh systemctl sau để xác minh dịch vụ nfs-server và đảm bảo rằng dịch vụ được bật và đang chạy.
Mã:
sudo systemctl is-enabled nfs-server
sudo systemctl status nfs-server
Bạn sẽ thấy đầu ra được bật, nghĩa là nfs-server sẽ tự động chạy khi hệ thống khởi động. Bạn sẽ thấy thông báo active (đã thoát) hoặc active (đang chạy) khi chạy.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22180%22%3E%3C/svg%3E


Ngoài ra, bạn có thể sử dụng lệnh sau để bắt đầu, khởi động lại và dừng dịch vụ nf-server.
Mã:
sudo systemctl start nfs-server
sudo systemctl restart nfs-server
sudo systemctl stop nfs-server

Cấu hình NFSv4​

Hiện tại, phiên bản mới nhất của giao thức NFS là v4, được cải tiến về bảo mật và hiệu suất. Trong phần sau, bạn sẽ tìm hiểu cách thiết lập và kích hoạt NFSv4 trên máy chủ NFS của mình.

Mở cấu hình NFS mặc định /etc/default/nfs-common bằng lệnh nano editor.
Mã:
sudo nano /etc/default/nfs-common
Thay đổi tham số NEED_STATD thành noNEED_IDMAPD thành yes. NFSv4 yêu cầu NEED_IDMAPD sẽ được sử dụng làm daemon ánh xạ ID và cung cấp chức năng giữa máy chủ và máy khách.
Mã:
NEED_STATD="no"
NEED_IDMAPD="yes"
Lưu tệp và thoát khỏi trình chỉnh sửa khi hoàn tất.

Bây giờ hãy mở cấu hình máy chủ NFS /etc/default/nfs-kernel-server bằng lệnh trình chỉnh sửa nano bên dưới.
Mã:
sudo nano /etc/default/nfs-kernel-server
Thêm cấu hình sau để vô hiệu hóa NFSv2NFSv3 khi chạy dịch vụ nfs-server và vô hiệu hóa yêu cầu gắn kết từ máy khách đối với cả NFSv2NFSv3.
Mã:
RPCNFSDOPTS="-N 2 -N 3"
RPCMOUNTDOPTS="--manage-gids -N 2 -N 3"
Lưu và thoát tệp khi bạn hoàn tất.

Cuối cùng, thực hiện lệnh sau để khởi động lại dịch vụ nfs-server và áp dụng các thay đổi. Với lệnh này, máy chủ NFS của bạn sẽ chỉ chấp nhận giao thức NFSv4.
Mã:
sudo systemctl restart nfs-server

Cấu hình Tường lửa thông qua UFW​

Bật firewalld trên máy chủ NFS của bạn là điều bắt buộc, bạn có thể giới hạn các mạng nội bộ có thể truy cập vào máy chủ NFS. Hoàn tất bước này để cấu hình UFW (Tường lửa đơn giản) và bảo mật máy chủ NFS của bạn.

Nếu UFW chưa được cài đặt, hãy chạy lệnh apt bên dưới để cài đặt.
Mã:
sudo apt install ufw -y

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22612%22%20height=%22261%22%3E%3C/svg%3E


Sau khi UFW được cài đặt, hãy thực thi lệnh ufw bên dưới để cho phép Dịch vụ SSH và kích hoạt UFW. Nhập y và nhấn ENTER để xác nhận và bật UFW.
Mã:
sudo ufw allow ssh
sudo ufw enable
Bạn sẽ nhận được thông báo "Tường lửa đang hoạt động và được bật khi khởi động hệ thống" khi UFW đang chạy và được bật.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22725%22%20height=%22209%22%3E%3C/svg%3E


Tiếp theo, thực hiện lệnh ufw sau để cho phép mạng con cục bộ của bạn để truy cập vào máy chủ NFS. Lệnh sau sẽ cho phép 192.168.10.0/24 truy cập máy chủ NFS.
Mã:
sudo ufw allow from 192.168.10.0/24 to any port nfs
Cuối cùng, thực hiện lệnh ufw sau để tải lại và xác minh trạng thái UFW.
Mã:
sudo ufw reload
sudo ufw status
Bạn sẽ thấy cổng NFS 2049 được thêm vào UFW; chỉ có mạng con 192.168.10.0/24 mới có thểtruy cập vào cổng.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22235%22%3E%3C/svg%3E

Thiết lập Hệ thống tệp giả và Xuất​

Hệ thống tệp giả là hệ thống tệp giả cho phép bạn thiết lập thư mục chia sẻ NFS thành một hệ thống tệp duy nhất. Vì vậy, thay vì sử dụng nhiều thư mục chia sẻ, bạn có thể sử dụng một hệ thống tệp giả duy nhất cho tất cả các thư mục chia sẻ của mình.

Trong phần sau, bạn sẽ thiết lập một hệ thống tệp giả trên máy chủ NFS và sử dụng nó làm hệ thống tệp chia sẻ duy nhất cho các máy khách NFS.

Chạy lệnh sau để tạo các thư mục mới /shared, /shared/data/shared/documents. Sau đó, thay đổi quyền sở hữu thành nobodynogroup thông qua chown.
Mã:
mkdir -p /shared/{data,documents}
sudo chown -R nobody:nogroup /shared
Bây giờ hãy tạo các thư mục khác /exports, /exports/home, /exports/data/exports/documents bằng lệnh bên dưới. Và hãy chắc chắn thay đổi quyền sở hữu thành nobodynogroup.
Mã:
mkdir -p /exports/{data,home,documents}
sudo chown -R nobody:nogroup /exports
Tiếp theo, gắn thư mục /home dưới dạng hệ thống tệp giả vào thư mục /exports/home, thư mục chia sẻ /shared/data vào /exports/data và thư mục chia sẻ /shared/documents vào /exports/documents.
Mã:
sudo mount --bind /home /exports/home
sudo mount --bind /shared/data /exports/data
sudo mount --bind /shared/documents /exports/documents

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22663%22%20height=%22221%22%3E%3C/svg%3E


Kiểm tra danh sách các hệ thống tệp đã gắn kết bằng lệnh df bên dưới. Tham số -a được sử dụng để hiển thị tất cả các hệ thống tệp có sẵn, bao gồm cả hệ thống tệp giả.
Mã:
sudo df -ah
Bạn sẽ thấy ba hệ thống tệp giả có sẵn và được gắn kết.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22686%22%20height=%2294%22%3E%3C/svg%3E


Bạn cũng có thể thiết lập hệ thống tệp giả vĩnh viễn thông qua Tệp /etc/fstab. Mở tệp /etc/fstab bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/fstab
Thêm cấu hình sau vào tệp:
Mã:
/home /exports/home none bind
/shared/data /exports/data none bind
/shared/documents /exports/documents none bind
Lưu và đóng tệp sau khi hoàn tất.

Bạn có thể thêm thư mục đã xuất /exports vào máy chủ NFS dưới dạng hệ thống tệp giả.

Mở tệp /etc/exports bằng lệnh nano editor sau.
Mã:
sudo nano /etc/exports
Thêm dòng sau vào tệp.
Mã:
/exports 192.168.10.0/255.255.255.0(rw,no_root_squash,no_subtree_check,crossmnt,fsid=0)
Lưu và đóng tệp khi hoàn tất.

Dưới đây là một số tùy chọn NFS được sử dụng cho trường hợp này:
  • rw : cho phép truy cập đọc và ghi cho cả máy chủ và máy khách NFS vào ổ đĩa/thư mục.
  • no_subtree_check : vô hiệu hóa kiểm tra cây con, có tác động nhẹ đến bảo mật nhưng có thể cải thiện độ tin cậy trong một số trường hợp.
  • no_root_sqash : vô hiệu hóa root squashing. Tùy chọn này chủ yếu hữu ích cho các máy khách không có đĩa.
  • fsid=0 : đối với NFSv4, tham số này được sử dụng để thông báo cho máy chủ NFS rằng lệnh xuất này là gốc của tất cả các hệ thống tệp đã xuất.
Tiếp theo, thực hiện lệnh sau để khởi động lại dịch vụ nfs-server và áp dụng các thay đổi. Sau đó, hãy xác minh nfs-server để đảm bảo rằng dịch vụ đang chạy.
Mã:
sudo systemctl restart nfs-server
sudo systemctl status nfs-server
Bạn sẽ thấy đầu ra như thế này:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22253%22%3E%3C/svg%3E


Cuối cùng, hãy chạy lệnh sau để kiểm tra thư mục và hệ thống tệp đã xuất trên máy chủ NFS bằng lệnh sau.
Mã:
sudo showmount -e 192.168.10.15
sudo showmount -e
Nếu mọi thứ diễn ra tốt đẹp, bạn sẽ thấy thư mục /exports được xuất trên máy chủ NFS.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22522%22%20height=%22181%22%3E%3C/svg%3E

Thiết lập NFS Máy khách​

Tại thời điểm này, bạn đã cấu hình máy chủ NFS với hệ thống tệp giả và bảo mật máy chủ NFS thông qua UFW. Bây giờ, bạn sẽ thiết lập máy khách Debian và gắn hệ thống tệp chia sẻ máy chủ NFS.

Đăng nhập vào máy khách và cập nhật kho lưu trữ Debian để nhận thông tin gói mới nhất. Sau đó, cài đặt gói nfs-common thông qua lệnh apt bên dưới.
Mã:
sudo apt update
sudo apt install nfs-common

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22584%22%20height=%22195%22%3E%3C/svg%3E


Sau khi cài đặt xong gói, hãy chạy lệnh sau để tạo các thư mục gắn kết mục tiêu /users, /data/documents.
Mã:
mkdir -p /users /data /documents
Tiếp theo, chạy lệnh mount.nfs4 bên dưới để gắn hệ thống tệp giả đã xuất vào thư mục đích. Trong trường hợp này, hệ thống tập tin giả /home được gắn vào thư mục /users, /data vào thư mục /data/documents vào thư mục /documents.
Mã:
sudo mount.nfs4 192.168.10.15:/home /users
sudo mount.nfs4 192.168.10.15:/data /data
sudo mount.nfs4 192.168.10.15:/documents /documents

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22631%22%20height=%22245%22%3E%3C/svg%3E


Kiểm tra danh sách các hệ thống tệp đã gắn kết bằng lệnh df bên dưới.
Mã:
sudo df -h
Nếu thành công, bạn sẽ thấy từng hệ thống tệp giả từ máy chủ NFS được gắn kết vào từng thư mục đích như sau:


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22657%22%20height=%22348%22%3E%3C/svg%3E


Ngoài ra, bạn cũng có thể gắn gốc của hệ thống tập tin giả như thế này. Nếu bạn kiểm tra thư mục đích /nfs, bạn sẽ thấy ba thư mục khác nhau /home, /data và /documents.
Mã:
mkdir -p /nfs
sudo mount.nfs4 192.168.10.15:/ /nfs -o soft,intr,rsize=8192,wsize=8192

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22541%22%20height=%22193%22%3E%3C/svg%3E

Gắn máy chủ NFS qua /etc/fstab​

Ở trên cùng, bạn đã gắn máy chủ NFS thông qua lệnh mount.nfs4. Phần sau sẽ chỉ cho bạn cách gắn máy chủ NFS vĩnh viễn thông qua tệp /etc/fstab.

Trước tiên, hãy xóa máy chủ NFS thông qua lệnh umount bên dưới.
Mã:
sudo umount /users /data /documents
Bây giờ hãy mở tệp /etc/fstab bằng trình chỉnh sửa nano sau lệnh.
Mã:
sudo nano /etc/fstab
Thêm các dòng sau vào tệp.
Mã:
192.168.10.15:/home /users nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/data /data nfs4 soft,intr,rsize=8192,wsize=8192
192.168.10.15:/documents /documents nfs4 soft,intr,rsize=8192,wsize=8192
Lưu tệp và thoát khỏi trình chỉnh sửa sau khi hoàn tất.

Tiếp theo, chạy lệnh systemctl bên dưới để khởi động lại trình quản lý systemd. Sau đó, chạy lệnh mount để mount tất cả các hệ thống tệp có sẵn trong tệp /etc/fstab.
Mã:
sudo systemctl daemon-reload
sudo mount -a
Sau đó, hãy xác minh danh sách các hệ thống tệp đã gắn kết bằng lệnh df sau. Nếu thành công, bạn sẽ thấy máy chủ NFS được gắn kết vào từng thư mục đích.
Mã:
sudo df -h

data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22686%22%20height=%22572%22%3E%3C/svg%3E


Bạn cũng có thể thử khởi động lại máy khách để xem hiệu ứng. Nếu mọi thứ diễn ra tốt đẹp, máy chủ NFS sẽ được tự động gắn kết thông qua tệp /etc/fstab.
Mã:
sudo reboot

Kết luận​

Vậy là xong! Bạn đã hoàn tất cài đặt máy chủ và máy khách NFS trên máy chủ Debian 12. Bạn cũng đã cấu hình rõ ràng NFSv4 và hệ thống tệp giả trên máy chủ NFS. Hơn nữa, bạn đã bảo mật máy chủ NFS thông qua UFW (Tường lửa đơn giản).

Cuối cùng, bạn cũng đã hoàn tất cấu hình máy khách NFS trên máy Debian và cấu hình thành công máy chủ NFS tự động gắn kết thông qua tệp /etc/fstab trên máy Ubuntu của bạn. Bây giờ bạn có thể bắt đầu cấu hình nó sao cho phù hợp với nhu cầu của mình.
 
Back
Bên trên