Lab009: CentOS - Quản lí xác thực người dùng tập trung bằng NIS

 "NIS - Network Information Services"


**
**

I Thiết lập môi trường thực hành

1.1 Topo mạng

Để thực hiện yêu cầu bài toán, ta sẽ thiết lập hệ thống mạng như sau:
  • NIS-Server (số hiệu CentOS8-05) có địa chỉ IP cố định 10.1.1.20/24 kết nối với Switch (Private01) thông qua Interface eth1. Với DomainName "tlu.vn" và HostName "lpi.tlu.vn" (tức LocalHost là lpi).
  • NIS-Slave (số hiệu CentOS8-06) có địa chỉ IP cố định 10.1.1.30/24 kết nối với Switch (Private01) thông qua Interface eth1.
  • Client (số hiệu CentOS-01) nhận địa chỉ IP động 10.1.1.xxx/24 từ DHCP-Server (CentOS8-05) kết nối với Switch (Private01) thông qua Interface eth1.
Các bước thiết lập Global Setting trên nền tảng Hyper-V để xây dựng hệ thống mạng như trên mình đã hướng dẫn trong các bài Lab trước (DHCP, NFS) nên từ đây trở về sau mình sẽ không nhắc lại, tránh gây dài dòng không cần thiết.
**

1.2 Các bước thực hiện

Tiếp tục là một nguyên tắc bất dịch, trước khi thực hiện nghiệp vụ, chúng ta nên phân chia toàn bộ lưu trình thành từng bước cụ thể và viết rõ các bước đó ra. Néu không có một tư duy mạch lạc, chúng ta sẽ dễ dàng rối trí với dấu nhắc lệnh của Linux.
Với NIS-Server ta cần tiến hành:
  • Cài đặt gói ypbind, ypserv.
  • Cấu hình DomainName và HostName.
  • Khai báo dải mạng được phép nhận dịch vụ từ NIS-Server.
  • Khai báo HostDomain.
  • Khởi động dịch vụ NIS, khởi tạo Database
  • Khai báo dịch vụ NIS với FirewallD và SELinux
Với NIS-Client cần tiến hành:
  • Cài đặt gói ypbind, rpcbind, oddjob-mkhomedir.
  • Khai báo Domain của NIS-Server.
  • Chỉnh sửa nguồn xác thực của Client (authselect).
  • Khai báo NIS với SELinux.
**

II Cấu hình dịch vụ NIS

2.1 Cài đặt NIS-Server

2.1.1 Cấu hình Domain và khởi tạo Database

Cài đặt gói NIS:
sudo dnf install -y ypbind ypserv
Khai báo DomainName bằng cách chỉnh sửa file:
sudo nvim /etc/sysconfig/network
Trong ví dụ này, mình sẽ lấy NISDomainName ví dụ là tlu.vn:
NISDOMAIN="tlu.vn"
Chỉnh sửa HostName của NIS-Server bằng cách chỉnh sửa file /etc/hotstname:
sudo nvim /etc/hostname
Nội dung:
lpi.tlu.vn
Sau đó, chúng ta cần Logout hoặc Restart để NIS-Server nhận cấu hình:
Tạo mới một file để cấu hình dải mạng có thể nhận dịch vụ từ NIS-Server:
sudo nvim /var/yp/securenets
Nội dung:
# specify range of network you allow to access NIS clients
255.0.0.0       127.0.0.0
255.255.255.0   10.1.1.0
Khai báo HostDomain:
sudo nvim /etc/hosts
Khai báo thêm nội dung. Cần chú ý, tham số khai báo tại bước này sẽ ảnh hưởng đến bước khởi tạo Database:
# add hosts that are in NIS domain (server/client)
#
10.1.1.20   lpi.tlu.vn lpi
10.1.1.100   node01.tlu.vn node01 # Client's IP Address
Sau đó, chúng ta khởi động dịch vụ NIS lên và cho phép khởi động cùng HDH:
sudo systemctl start rpcbind ypserv ypxfrd yppasswdd nis-domainname
sudo systemctl enable rpcbind ypserv ypxfrd yppasswdd nis-domainname
Và kiểm tra trạng thái các dịch vụ bằng câu lệnh:
sudo systemctl status rpcbind ypserv ypxfrd yppasswdd nis-domainname
Khởi tạo NIS Database. Cần chú ý giá trị "Next host to add" đã được đọc và lấy từ tham số cấu hình trong file /etc/hosts ở bước trước:
sudo /usr/lib64/yp/ypinit -m
Khai báo dịch vụ NIS với FirewallD bằng cách chỉnh sửa Network Global Setting:
sudo nvim /etc/sysconfig/network
Chèn thêm nội dung sau vào cuối file:
YPSERV_ARGS="-p 944"
YPXFRD_ARGS="-p 945"
Tiếp tục chỉnh sửa file cấu hình:
sudo nvim /etc/sysconfig/yppasswdd
Nội dung:
YPPASSWDD_ARGS="--port 950"
Sau khi hoàn thành chỉnh sửa 2 file config trên, ta khai báo port và khởi động lại FirewallD:
sudo systemctl restart rpcbind ypserv ypxfrd yppasswdd
sudo firewall-cmd --add-service=rpc-bind --permanent
sudo firewall-cmd --add-port={944-951/tcp,944-951/udp} --permanent
sudo firewall-cmd --reload
Khai báo SELinux:
sudo setsebool -P nis_enabled on
sudo setsebool -P domain_can_mmap_files on
**

2.2.2 Tạo tài khoản trên NIS-Server

Trong phần này, chúng ta sẽ khởi tạo các User để cấp phát cho Client đăng nhập vào máy của họ trong tương lai. Chọn ví dụ UseName "nis01" và Password "nis" cho dễ nhớ.
sudo useradd nis01
sudo passwd nis01
Và cập nhật dữ liệu người dùng vừa tạo vào Database của NIS:
cd /var/yp
sudo make
**

2.2 Cài đặt NIS-Client

Trên máy Client, ta cài đặt các gói sau:
sudo dnf -y install ypbind rpcbind oddjob-mkhomedir
sudo ypdomainname tlu.vn
Khai báo NIS DomainName bằng cách chỉnh sửa Global Network Setting trong file /etc/sysconfig/network:
sudo nvim /etc/sysconfig/network
Nội dung:
NISDOMAIN="tlu.vn"
Khai báo địa chỉ IP tương ứng với Domain của NIS-Server bằng cách chỉnh sửa file /etc/hosts:
sudo nvim /etc/hosts
Thêm đoạn mã với cú pháp <NIS-Server IPAddr> <NIS-Server Domain> <NIS-Server LocalHost>:
Để kiểm tra xem cấu hình file  Hosts có phân giải được IP của NIS-Server hay không, ta sẽ tử ping tới NIS-Server bằng tên miền lpi.tlu.vn của Server:
ping lpi.tlu.vn
Cấu hình NIS:
sudo nvim /etc/yp.conf
Nội dung theo cú pháp domain <DomainName> server <NIS-Server Domain>:
domain tlu.vn server lpi.tlu.vn
Chỉnh sửa nguồn xác thực của máy Client từ Local sang dịch vụ NIS được cấp bới NIS-Server:
sudo authselect select nis --force
sudo authselect enable-feature with-mkhomedir
Khai báo dịch vụ NIS với SELinux:
sudo setsebool -P nis_enabled on
Khởi động dịch vụ NIS và cho phép nó khởi động cùng hệ điều hành:
systemctl start rpcbind ypbind nis-domainname oddjobd
systemctl enable rpcbind ypbind nis-domainname oddjobd
**
dnf -y install ypbind rpcbind oddjob-mkhomedir
ypdomainname tlu.vn
echo "NISDOMAIN=tlu.vn" >> /etc/sysconfig/network
echo "# [domain (NIS domain) server (NIS server)]" >> /etc/yp.conf
echo "domain tlu.vn server lpi.tlu.vn" >> /etc/yp.conf
authselect select nis --force
**

Nhận xét

Bài đăng phổ biến