Tìm kiếm Blog này

Thứ Bảy, 11 tháng 2, 2017

Hướng dẫn cài nfs server trên fedora, dùng kodi kết nối xem phim.

bài viết dịch từ cái admin guilde từ wiki của fedora https://fedoraproject.org/wiki/Administration_Guide_Draft#NFS
Rất hữu dụng nhé, đây là một dịch vụ file server, mấy cái android box chạy kodi của các bác dùng cái này kết nối xem phim thả phanh.
Bắt đầu bài dịch nha.


Tóm tắt

  • Mục đích: tài liệu sẽ bao gồm nhiều khía cạnh của cấu hình và tùy chỉnh NFS
  • đối tượng: dành cho bất kì ai định cài đặt nfs để làm file server
  • Điều kiện: Một hệ điều hành fedora đã được cài đặt, TCP/IP và DNS đã được cấu hình (IP nội bộ tĩnh và truy cập mạng được). Những tài khoản có thể dùng được và người đọc có thể truy cập quyền root. Firewall đã được cấu hình mở port phù hợp. Và cuối cùng người đọc đã hiểu cơ bản về vi và các lệnh bash. (sẽ làm thêm phụ lục hướng dẫn ở bên dưới nếu bác nào bị các điều kiện này chưa hoàn thành)
  • Tài liệu liên quan: tài liệu hướng dẫn cài đặt cơ bản trên fedora (link chết đéo vào được). Tài liệu cho người mới bắt đầu sử dụng fedora và và "tiến tới truy cập CLI" (không hiểu ? cấu hình tường lửa thì phải, chả phải fedora cũng xài iptables sao ? hình như CLI ý nghĩa là dòng lệnh thì phải). Tài liệu DNS , cấu hình DNS để phân giải tên miền (link cũng chết mẹ nó rồi, bài viết cũ quá, các bác cần cứ lên wiki mà search). Tài liệu về tài khoản người dùng  xem để biết cách thao tác user và group. Tài liệu cấu hình dịch vụ . Và tài liệu về NFS cũ dành cho fedora 14 và 15 nhưng nó không dành cho newbie).Những tài liệu liên quan giúp các bác hoàn thành điều kiện, tí nữa kéo xuống phần phụ lục em sẽ hướng dẫn để đạt những điều kiện cơ bản này, trên tinh thần bài viết dành cho newbie chỉ định share dữ liệu xem phim android box, chứ không phải dành cho 1 system admin cao 1m8 lương tháng ngàn đô.
  • Chủ biên: MikeDittmeier (link về ông này cũng chết ngắt rồi)

Giới thiệu.

Hệ thống tập tin mạng (Network file system), viết tắt là NFS, là 1 deamon cho phép máy tính khác từ xa mount phân vùng được chia sẻ và sử dụng file, duyệt thư mục giống như trên máy tính chia sẻ. Ngoài ra còn 1 số dịch vụ hoặc deamon, Ví dụ như automount có chức năng mount 1 phân vùng NFS được chia sẻ từ máy khác một cách tự động, không cần người dùng phải mount tay (khuyến khích sửa file /etc/fstab cho gọn)

Các package yêu cầu.

Mặc định thì fedora 14 đến 21 ít nhất dùng bản NFSv4 (NFS, phiên bản 4), vậy nên các các package dưới đây sẽ có trong Repository của fedora:
  • nfs-utils: package này cung cấp deamon cho kernel NFS server và một số tool liên quan, thứ này sẽ cung cấp hiệu suất cao hơn so với NFS server truyền thống trước kia nhiều người đã dùng.
  • nfs-utils-libs: Thư viện hỗ trợ, cần cho nhiều câu lệnh và deamons của nfs-utils rpm
  • system-config-nfs system-config-nfs: cái này là giao diện đồ họa để tạo, sửa đổi, và xóa nfs share.
(Trong bản fedora 25, em chỉ cần cài mỗi nfs-utils là ok rồi đấy các bác)
Cài đặt
mặc định thì nhiều phiên bản fedora có sẵn rồi nên khỏi cài, update lên thôi. kiểm tra xem nó đã cài đặt hay chưa ?
rpm -q nfs-utils
nếu ra kết quả
nfs-utils-1.2.6-3.fc17.x86_64
thì đã được cài, con số phiên bản đằng sau có thể khác đấy nhé.
Nếu chưa được cài, thì cài vào:
su -c 'yum install -y nfs-utils system-config-nfs'
phiên bản fedora 25 thì đơn giản hơn:
sudo dnf install nfs-utils
Nếu thích cài bằng giao diện, thì vào cái kính lúp search software để vào kho ứng dụng của fedora, nhập password root và lại search nfs-utils thôi, giao diện thì khác từng thời cho nên em viết theo thời của em fedora 25.

Cấu hình cho NFS

file cấu hình

Có 3 file cấu hình chính để thiết lập NFS server, tất cả chúng đều nằm trong thư mục /etc: /etc/exports, /etc/hosts.allow, và /etc/hosts.deny. Trong bài hướng dẫn này chỉ cần dùng /etc/exports để cấu hình cho NFS hoạt động. Vẫn phải viết ra công dụng của từng file để mọi người biết:
  • /etc/exports: file cấu hình chính, quy định thư mục nào được share, quyền, ...
  • /etc/hosts.allow, host nào được phép truy cập
  • /etc/hosts.deny, host nào bị cấm
mặc định thì tất cả các host đều allow nên không cần phải quan tâm 2 file dưới, nếu cảm thấy cần thiết, mời các bác đọc
http://www.tldp.org/HOWTO/NFS-HOWTO/server.html
rảnh em sẽ dịch luôn bài này.
Mặc định thì dịch vụ NFS nó không được bật trong fedora, lệnh sau sẽ cho ta nhìn thấy nó có được bật không ? :
ps -ef | grep nfs
Nếu không nhìn thấy "[nfsd]" và "[nfsd4] trong kết quả thì có nghĩa nó chưa bật, đây là cách bật:
sudo systemctl enable rpcbind
sudo systemctl enable nfs-server
sudo service rpcbind start
sudo service nfs-server start

Tạo share

Mặc định thì NFS không sahre bất kỳ 1 thư mục hay ổ cứng nào cả, để tạo share đầu tiên, mở terminal lên và chạy lệnh sau để sửa đổi /etc/exports (phải dùng quyền root nhé):
su -c 'vim /etc/exports'
#em từ ubuntu qua, nên thích xài nano hơn, he he
sudo nano /etc/exports
và nhập passwords root vào.
Nếu file exports không tồn tại thì các bác cứ tạo nó ra. Mỗi dòng trong file này quyết định share cái gì, quyền ra sao. Nó có định dạng thế này:
directory hosts(options)
  • directory: đây sẽ là đường dẫn thư mục hoặc volume.
  • hosts: đây sẽ là những client được phép truy cập, đây là cách để chỉ định danh sách các host theo địa chỉ IP. Dạng tên miền cũng có thể được sử dụng (tất nhiên máy của các bác phải phân giải được nó, điền cái dns vào chắc không cần phải nói). Nhóm các IP có thể để nó dưới dạng địa chỉ mạng như thế này:
/var/ftp/pub 192.168.1.0/255.255.255.0(ro)
/home/public 192.168.1.0/255.255.255.0(rw)
  • option: là các tùy chọn quyền truy cập của hosts trên directory, dưới đây là những tùy chọn được sử dụng nhiều:
ro - read only, quyền chỉ đọc.
rw - read và write, quyền đọc và ghi.
  • no_root_squash - Mặc định thì khi user root truy cập từ xa, sẽ bị xem như user "nobody". Thêm cái này vào thì user root truy cập từ xa sẽ tương đương user root trên máy. (Bên system khuyến nghị không nên dùng cái option này trên server vì lý do bảo mật)
  • no_subtree_check: xem như đã check những file trong thư mục thứ cấp hoặc volume tương tự khi share toàn bộ một drive volume, xem như đã check có nghĩa là không thèm check nó nữa, việc này tăng tốc độ truy cập tập tin và thư mục con.
  • sync: Mặc định thì NFS sẽ truyền dữ liệu theo kiểu "sync", vì thế nfs server sẽ gửi lại 1 tín hiệu hồi đáp cho client là tập tin đã được ghi. Thêm cái option này để tăng tốc, nfs server sẽ không gửi tín hiệu hồi đáp nữa.
Đầy đủ option của exports đây :https://linux.die.net/man/5/exports
VD: để share thư mục /var/ftp/pub chỉ cho phép đọc cùng các option sync/no_subtree_check allowed thì thêm dòng phía dưới vào /etc/exports:
/var/ftp/pub 192.168.54.0/255.255.255.0(ro,sync,no_subtree_check)
Nếu dùng kodi thì các bác share giống của em này:
/mnt/share 192.168.1.0/255.255.255.0(rw,all_squash,insecure)
đọc từ hướng dẫn của kodi đấy.
Đối với giao diện đồ họa, do mỗi phiên bản mỗi khác, nên chắc chả cần dịch ra đâu, phí công đọc của các bác thôi. sau khi share, hãy kiểm tra file exports này lần cuối:
su -c 'vim /etc/exports'
nhập password root vào, nó hiện ra dòng mình add vào là ok (nếu dùng giao diện đồ họa cũng sẽ add vào đây, và cũng kiểm tra bằng cách này). sau khi kiểm tra xong, ra khỏi vi và chạy lệnh này để restart dịch vụ nfs server để cập nhật thay đổi (fedora 17):
su -c 'systemctl restart nfs-server.service'
không có thông báo lỗi xuất hiện. tốt.
Chú ý: nếu file 'exports' bị chép đè bởi superuser (root) bằng cách copy/paste hoặc xóa đi tạo mới thì sẽ có khả năng nhãn SEL báo lỗi (SEL - Security enhanced Linux là cái gì thì click vào đây, hiểu nôm nà là 1 cái module được thêm vào kernel để hỗ trợ quyền truy cập ứng dụng, có nghĩa là nó được quyền khóa cái ứng dụng các bác muốn xài đấy). Trong trường hợp đó thì chạy lệnh này để phục hồi nhãn SEL lỗi.
su -c 'restorecon /etc/exports'
Tương tự vậy, các bác phải phục hồi những nhãn SEL này ở cái file cấu hình khác bị các bác sửa nếu có thông báo lỗi từ nó, ví dụ file hosts.allow chả hạn.
Trong những phiên bản fedora cũ như fedora 14 chả hạn. systemctl còn chưa được đưa vào thì restart dịch vụ bằng cách này:
su -c 'service nfs restart'
và thông báo sẽ hiện ra như thế này:
Shutting down NFS mountd: [ OK ]
Shutting down NFS daemon: [ OK ]
Shutting down NFS quotas: [ OK ]
Shutting down NFS services: [ OK ]
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS daemon: [ OK ]
Starting NFS mountd: [ OK ]
vậy là ok, cứ 1 dòng là 1 thư mục hoặc volume được share, cứ thế ta hành sự.
Bài viết tới đây là đủ cho các bác share 1 thư mục chứa phim để có thể dùng kodi truy cập. phần phụ em tự viết sẽ bổ sung vấn đề tượng lửa, cách dùng nano để cấu hình.

Phần phụ.

cách dùng nano.

do em từ debian/ubuntu qua nên quen dùng anh này hơn vi :D mà cũng dễ xài đơn giản :D

Trước tiên, cài đặt nó đã:

sudo dnf install nano

cách dùng

http://thuthuatvietnam.com/huong-dan-su-dung-nano-editor-trong-linux.html
đó là nếu muốn đọc hết cụ thể, nói ngắn gọn là như này, VD edit file exports, chạy lệnh sau
sudo nano /etc/exports
các bác dùng tổ hợp sau ctrl+shift+v để paste dòng cấu hình vào, hoặc gõ tay nếu muốn.
thoát ra bằng tổ hợp ctrl + Xbấm Y và enter để save.

về tường lửa.

cũng như bên ubuntu dùng 1 chương trình để đơn giản hóa việc cấu hình firewall là ufw. (chớ chả lẽ config bằng iptable gốc thì bỏ mẹ). Fedora cũng vậy, họ dùng firewalld để làm công việc này, cụ thể nó đây https://fedoraproject.org/wiki/Firewalld. thôi dài dòng văn tự, thể hiện vậy được rồi, chạy cho em 3 lệnh này là được.
sudo firewall-cmd --add-service nfs --permanent
sudo firewall-cmd --add-service rpc-bind --permanent
sudo firewall-cmd reload
vậy là xong rồi đấy.

Không có nhận xét nào:

Đăng nhận xét