Cách cài đặt và cấu hình máy chủ NFS trên Debian 11

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 kết hệ thống tệp từ xa thông qua mạng. Giao thức NFS được sử dụng trong kiến trúc máy chủ-máy khách, máy chủ NFS cung cấp tất cả các thư mục hoặc phân vùng đã sẵn sàng để truy cập và gắn kết, và máy khách sử dụng giao thức rpcbind để 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ộ.

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.

1. NFSv2 và NFSv3 vẫn đượ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 của máy chủ NFS vào mạng cục bộ đáng tin cậy. NFSv2 và NFSv3 được khuyến nghị cho các loại triển khai vừa và nhỏ.
2. 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 nó dựa vào Kerberos cho các phần đó. Vì vậy, bạn cần thêm 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.

Đối với hướng dẫn này, bạn sẽ học cách cài đặt và cấu hình Máy chủ NFS trên Debian 11 Bullseye mới nhất. Bạn sẽ cài đặt máy chủ NFS và bảo mật quyền truy cập bằng cách giới hạn máy chủ bằng tường lửa ufw. Sau đó, bạn sẽ học cách thiết lập máy khách để gắn các thư mục và phân vùng do máy chủ NFS cung cấp và thiết lập máy chủ NFS tự động gắn khi khởi động hệ thống thông qua cấu hình '/etc/fstab'.

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

1. Chúng tôi sẽ sử dụng hai máy khác nhau trên cùng một mạng như bên dưới.
- debian64 - 192.168.1.25 - làm Máy chủ NFS
- client-debian - 192.168.1.30 - làm máy khách
2. Người dùng root hoặc người dùng có quyền root. Người dùng này sẽ được sử dụng để cài đặt các gói mới và chỉnh sửa cấu hình hệ thống.

Cài đặt và cấu hình Máy chủ NFS​

Đầu tiên, bạn sẽ cài đặt gói máy chủ nfs và thiết lập thư mục dùng chung cho máy khách.

1. Thực hiện lệnh sau để cài đặt các gói nfs-server.
Mã:
apt install nfs-kernel-server rpcbind
Gõ 'y' và nhấn 'Enter' để tiếp tục cài đặt.



2. Bây giờ hãy tạo một thư mục mới mà bạn muốn chia sẻ với các máy khách. Đối với ví dụ này, bạn sẽ chia sẻ hai thư mục '/mnt/shared' và '/srv/data' với các máy khách. Và không chia sẻ thư mục gốc mặc định '/' hoặc thư mục '/etc'.

Tạo một thư mục chia sẻ mới bằng lệnh mkdir bên dưới.
Mã:
mkdir -p /mnt/shared
mkdir -p /srv/data
Tạo một tệp mới trên mỗi thư mục bằng cách chạy lệnh echo bên dưới.
Mã:
echo "test file nfs server" > /mnt/shared/test-file.txt
echo "test file nfs server" > /srv/data/test-file.txt
Bây giờ hãy thay đổi quyền sở hữu của cả hai thư mục chia sẻ thành 'nobody:nogroup' bằng cách thực hiện lệnh bên dưới.
Mã:
chown nobody:nogroup /mnt/shared /srv/data


Và bạn đã sẵn sàng để cấu hình Máy chủ NFS.

3. Để cấu hình thư mục dùng chung cho nfs, hãy chỉnh sửa cấu hình '/etc/exports' bằng trình soạn thảo nano.
Mã:
nano /etc/exports
Dưới đây là một số cấu hình ví dụ cho một số tình huống

Chia sẻ thư mục cho máy khách lưu trữ đơn lẻ với quyền truy cập đọc-ghi.
Mã:
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
Chia sẻ thư mục cho nhiều máy khách, bao gồm một nhóm mạng máy chủ.
Mã:
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
Chia sẻ thư mục cho một máy khách duy nhất với quyền truy cập chỉ đọc.
Mã:
/srv/data 192.168.1.30(ro)
Dưới đây là cấu hình ví dụ cuối cùng.
Mã:
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)
/srv/data 172.16.1.0/24(rw,sync,no_root_squash,no_subtree_check) 10.11.12.0/24(rw,no_subtree_check)
/srv/data 192.168.1.30(ro,no_root_squash)
Lưu cấu hình bằng cách nhấn nút 'Ctrl+x', nhập 'y', sau đó nhấn 'Enter' để thoát.

Các tùy chọn bạn phải biết:
  • 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.
  • ro : cho phép máy khách truy cập chỉ đọc.
  • sync : chỉ trả lời các yêu cầu sau khi các thay đổi đã được cam kết lưu trữ ổn định. Tùy chọn này được bật theo mặc định.
  • async : cho phép máy chủ NFS vi phạm giao thức NFS và trả lời các yêu cầu trước khi bất kỳ thay đổi nào do yêu cầu đó thực hiện đã được cam kết lưu trữ ổn định.
  • subtree_check : cho phép và bật kiểm tra cây con. Tùy chọn này được bật theo mặc định.
  • 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.
  • root_squash : Ánh xạ các yêu cầu từ uid/gid 0 sang uid/gid ẩn danh. Lưu ý rằng điều này không áp dụng cho bất kỳ uid hoặc gid nào khác có thể nhạy cảm như vậy, chẳng hạn như bin người dùng hoặc nhóm staff.
  • 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.
4. Tiếp theo, khởi động lại dịch vụ nfs-server để áp dụng cấu hình mới bằng lệnh bên dưới.
Mã:
systemctl restart nfs-server
Bây giờ hãy kiểm tra và xác minh dịch vụ nfs-server bằng lệnh sau.
Mã:
systemctl is-enabled nfs-server
systemctl status nfs-server
Và bạn sẽ nhận được kết quả tương tự như bên dưới.



Như có thể thấy, dịch vụ nfs-server được 'bật' và sẽ tự động chạy khi khởi động hệ thống. Và trạng thái hiện tại của nfs-service là 'active (exited)', nghĩa là dịch vụ đang chạy, nhưng systemd không tìm thấy daemon để giám sát.

Bảo mật máy chủ NFS bằng tường lửa UFW​

Đối với giai đoạn này, bạn sẽ cài đặt tường lửa ufw và hạn chế quyền truy cập vào máy chủ NFS chỉ dành cho các máy chủ và mạng cụ thể.

1. Thực hiện lệnh apt bên dưới để cài đặt gói ufw.
Mã:
apt install ufw
Gõ 'y' và nhấn 'Enter' để xác nhận và tiếp tục cài đặt.



2. Nếu toàn bộ quá trình cài đặt đã hoàn tất, hãy thêm dịch vụ SSH vào các quy tắc tường lửa ufw bằng lệnh bên dưới.
Mã:
ufw allow ssh
3. Tiếp theo, thực hiện các lệnh ufw bên dưới để thêm máy chủ hoặc mạng vào tường lửa ufw của bạn.

Cho phép máy chủ có địa chỉ IP '192.168.1.30' truy cập máy chủ NFS.
Mã:
ufw allow from 192.168.1.30 to any port nfs
Cho phép chặn một mạng truy cập máy chủ NFS.
Mã:
ufw allow from 172.16.1.0/24 to any port nfs
ufw allow from 10.11.12.0/24 to any port nfs


4. Sau đó, bật tường lửa ufw bằng lệnh sau.
Mã:
ufw enable
Gõ 'y' và nhấn 'Enter' để bắt đầu và bật tường lửa ufw.

Bây giờ hãy kiểm tra trạng thái tường lửa ufw bằng lệnh bên dưới.
Mã:
ufw status
Và bạn sẽ thấy đầu ra tương tự như bên dưới.



Như có thể thấy, trạng thái tường lửa ufw là 'hoạt động' và dịch vụ NFS trên cổng mặc định '2049' có sẵn trong danh sách quy tắc.

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

Đối với bước này, bạn sẽ định cấu hình máy khách để truy cập thư mục và phân vùng được chia sẻ trên máy chủ NFS.

1. Trước tiên, hãy cài đặt gói 'nfs-common' bằng lệnh apt bên dưới.
Mã:
apt install nfs-common
Gõ 'y' và nhấn 'Enter' để xác nhận và tiếp tục cài đặt.



2. Sau khi cài đặt hoàn tất, hãy tạo một thư mục mới cho thư mục gắn kết.
Mã:
mkdir -p /nfs/shared; mkdir -p /nfs/data
3. Để gắn thư mục hoặc phân vùng nfs từ máy chủ NFS, hãy thực hiện lệnh mount bên dưới.
Mã:
mount 192.168.1.25:/mnt/shared /nfs/shared
mount 192.168.1.25:/srv/data /nfs/data
Lệnh mount cơ bản để truy cập NFS là chỉ định địa chỉ IP của máy chủ NFS '192.168.1.25' với đường dẫn gắn thư mục '/mnt/shared' và '/srv/data' và đường dẫn đích trên thư mục '/nfs/shared' và '/nfs/data' phía máy khách.



4. Tiếp theo, thực hiện lệnh sau để xác minh việc gắn kết NFS thành công.
Mã:
df -h
Ngoài ra, bạn có thể kiểm tra các tệp mà bạn vừa tạo ở trên cùng bằng cách thực hiện các lệnh sau.
Mã:
cat /nfs/shared/test-file.txt
cat /nfs/data/test-file.txt
Dưới đây là kết quả bạn sẽ nhận được.



Như có thể thấy, bạn đã gắn kết thành công máy chủ NFS vào thư mục '/nfs/shared' và '/nfs/data' và bạn sẽ có thể đọc các tệp mà bạn vừa tạo ở trên cùng.

Xác minh quyền truy cập đọc và ghi vào máy chủ NFS​

Trong giai đoạn này, bạn sẽ xác minh quyền truy cập đọc và ghi vào thư mục máy chủ NFS.

1. Thay đổi thư mục làm việc thành '/nfs/shared', kiểm tra các tệp có sẵn trong thư mục đó và hiển thị nội dung của tệp đó bằng lệnh như bên dưới.
Mã:
cd /nfs/shared
ls

cat test-file.txt
Tiếp theo, tạo một tệp mới bằng lệnh echo bên dưới.
Mã:
echo "Tệp này từ nfs-client" > client.txt
cat client.txt
Nếu bạn có thể tạo tệp 'client.txt', quyền ghi vào thư mục NFS '/nfs/share' sẽ thành công, như mô tả trong cấu hình bên dưới.
Mã:
/mnt/shared 192.168.1.30(rw,sync,no_subtree_check)


2. Tiếp theo, tại cấu hình bạn đã tạo ở trên cùng, cline chỉ có quyền truy cập để đọc thư mục NFS '/nfs/data', như bạn có thể thấy trong cấu hình bên dưới.
Mã:
/srv/data 192.168.1.30(ro,no_root_squash)
Thay đổi thư mục làm việc thành '/nfs/data', kiểm tra các tệp trong đó, kiểm tra các tệp có sẵn trong thư mục đó và hiển thị nội dung của tệp đó bằng lệnh như bên dưới.
Mã:
cd /nfs/data
ls

cat test-file.txt
Tiếp theo, nếu bạn muốn tạo một tệp mới, bạn sẽ nhận được lỗi 'Hệ thống tệp chỉ đọc'. Bởi vì bạn chỉ có quyền 'chỉ đọc' như được mô tả trong cấu hình ở trên cùng.
Mã:
echo "Đây là tệp từ máy khách đến dữ liệu" > client-data.txt
Dưới đây là kết quả tương tự mà bạn sẽ nhận được.



Quyền đọc và ghi được khớp với cấu hình máy chủ NFS hiện tại.

Gắn NFS khi khởi động​

Trong giai đoạn này, bạn sẽ học cách gắn thư mục/phân vùng NFS khi khởi động/khởi động hệ thống thông qua cấu hình '/etc/fstab'.

1. Chỉnh sửa cấu hình '/etc/fstab' bằng trình soạn thảo nano.
Mã:
nano /etc/fstab
Thay đổi chi tiết địa chỉ IP, thư mục chia sẻ và đường dẫn thư mục gắn kết bằng địa chỉ của riêng bạn, sau đó dán cấu hình.
Mã:
192.168.1.25:/mnt/shared /nfs/shared nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
192.168.1.25:/srv/data /nfs/data nfs auto,nofail,noatime,nolock,intr,tcp,actimeo=1800 0 0
Lưu cấu hình bằng cách nhấn 'Ctrl+x' và nhập 'y', sau đó nhấn 'Enter' để thoát.

2. Tiếp theo, hãy xác minh cấu hình '/etc/fstab' là chính xác bằng cách sử dụng các lệnh sau.

Umount tất cả thư mục mount bằng lệnh bên dưới.
Mã:
umount -R /nfs/shared
umount -R /nfs/data
Thực hiện lệnh sau để mount tất cả hệ thống tệp có sẵn trên tệp cấu hình '/etc/fstab'.
Mã:
mount -a
Đảm bảo bạn không gặp bất kỳ lỗi nào.

Bây giờ hãy chạy lệnh sau để hiển thị tất cả các hệ thống tệp đã mount.
Mã:
df -h
Nếu cấu hình của bạn chính xác, bạn sẽ thấy máy chủ NFS được mount vào thư mục đích như mô tả tại cấu hình '/etc/fstab'.



3. Bạn có thể khởi động lại máy khách và đăng nhập lại, sau đó xác minh lại bằng lệnh như bên dưới.
Mã:
df -h
Và bạn sẽ thấy máy chủ NFS được tự động chuyển hướng khi khởi động hệ thống trên máy khách thông qua tệp '/etc/fstab'.

Kết luận​

Xin chúc mừng! Bạn đã cài đặt thành công Máy chủ NFS trên Debian 11 Bullseye mới nhất. Ngoài ra, bạn đã bảo mật thành công việc triển khai Máy chủ NFS bằng tường lửa ufw, thiết lập máy khách NFS và thiết lập tự động gắn kết bằng cấu hình '/etc/fstab'. Đối với bước tiếp theo, bạn cũng có thể quan tâm đến giao thức NFSv4, giao thức này cung cấp các cơ chế bảo mật như mã hóa và xác thực thông qua máy chủ Kerberos.
 
Back
Bên trên