NISサーバ・クライアントの構築手順メモ
| 登録日 | :2024/02/28 04:42 |
|---|---|
| カテゴリ | :Linux |
RockyLinux8にて、NISサービスによるユーザ認証環境の構築をおこなった手順をメモします。以下の手順で簡単に構築することができました。
前提条件として、NISサーバになるノードの/homeは、NISクライアントになるノードからマウントしておく方がいいと思います。
1 NISサーバの構築手順
ソフトウェアのインストール
[root@manage ~]# dnf -y install ypserv rpcbind
2 NIS ドメイン設定
[root@manage ~]# ypdomainname mydomain
[root@manage ~]# echo "NISDOMAIN=mydomain" >> /etc/sysconfig/network
3 アクセス許可する NIS クライアントの範囲を指定
ファイルを新規作成して、IPアドレスの範囲を記述します。
[root@manage ~]# vi /var/yp/securenets
255.0.0.0 127.0.0.0
255.255.255.0 10.0.0.0
4 NIS ドメインに属するホストを登録 (サーバー/クライアント)
※Linuxの/etc/hostsに管理サーバとクライアントノードの名前解決を定義するだけです。
[root@manage ~]# vi /etc/hosts
10.0.0.30 manage
10.0.0.51 node01
.....
5 NIS関連サービスが自動起動するようにenableとする。
[root@dlp ~]# systemctl enable --now rpcbind ypserv ypxfrd yppasswdd nis-domainname
6 NIS データベース更新
[root@manage ~]# /usr/lib64/yp/ypinit -m
At this point, we have to construct a list of the hosts which will run NIS
servers. manage is in the list of NIS server hosts. Please continue to add
the names for the other hosts, one per line. When you are done with the
list, type a <control D>.
next host to add: manage
next host to add: # Ctrl + D キー
The current list of NIS servers looks like this:
manage
Is this correct? [y/n: y] y
We need a few minutes to build the databases...
Building /var/yp/srv.world/ypservers...
Running /var/yp/Makefile...
gmake[1]: Entering directory '/var/yp/mydomain'
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating hosts.byname...
Updating hosts.byaddr...
Updating rpc.byname...
Updating rpc.bynumber...
Updating services.byname...
Updating services.byservicename...
Updating netid.byname...
Updating protocols.bynumber...
Updating protocols.byname...
Updating mail.aliases...
gmake[1]: Leaving directory '/var/yp/mydomain'
manage has been set up as a NIS master server.
Now you can run ypinit -s manage on all slave server.
7 設定の確認
[root@manage ~]# cd /etc/sysconfig/
[root@manage sysconfig]# cat network
# Created by anaconda
NISDOMAIN=mydomain
8 サービスの起動を確認する
9 必要に応じてSecurity設定(SELinux, Firewall)
SELinuxの設定
sudo setsebool -P allow_ypbind 1
sudo setsebool -P nis_enabled 1
Firewallの設定
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-port=834/udp
sudo firewall-cmd --permanent --add-port=834/tcp
sudo firewall-cmd --permanent --add-port=835/udp
sudo firewall-cmd --permanent --add-port=835/tcp
sudo firewall-cmd --reload
[root@nis2 ~]# sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: cockpit dhcpv6-client rpc-bind ssh
ports: 834/udp 834/tcp 835/udp 835/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@nis2 ~]# sudo systemctl restart rpcbind ypserv
チェックしたところ、上記のFirewall設定ではNISクライアントからNISサーバに接続できないことがわかった。そのため、今のところNISサーバ側のfirewalldを無効化しておく必要がある。
2 NISクライアントの構築手順
1 ソフトウェアのインストール
[root@newhead ~]# dnf -y install ypbind rpcbind oddjob-mkhomedir
メタデータの期限切れの最終確認: 0:03:07 前の 2024年02月27日 05時29分08秒 に実施 しました。
パッケージ ypbind-3:2.5-2.el8.x86_64 は既にインストールされています。
パッケージ rpcbind-1.2.5-10.el8.x86_64 は既にインストールされています。
パッケージ oddjob-mkhomedir-0.34.7-3.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
2 NISクライアントの設定
NISサーバで設定したドメインなどの設定を行う
[root@newhead ~]# ypdomainname mydomain
[root@newhead ~]# echo "NISDOMAIN=mydomain" >> /etc/sysconfig/network
/etc/yp.confの最終行に追記
domain (NIS ドメイン) server (NIS サーバー)]
[root@newhead ~]# vi /etc/yp.conf
domain mydomain server manage
※domain your_nis_domain server your_nis_server_ip
NISクライアントの有効
[root@newhead ~]# authselect select nis --force
バックアップは /var/lib/authselect/backups/2024-02-26-20-36-28.vnL6xx に保存されました
プロファイル "nis" が設定されました。
以下の nsswitch マップはプロファイルで上書きされます:
- aliases
- automount
- ethers
- group
- hosts
- initgroups
- netgroup
- networks
- passwd
- protocols
- publickey
- rpc
- services
- shadow
Make sure that NIS service is configured and enabled. See NIS documentation for more information.
3 各サービスの自動起動設定
[root@newhead ~]# systemctl enable --now rpcbind ypbind nis-domainname oddjobd
Created symlink /etc/systemd/system/multi-user.target.wants/ypbind.service → /usr/lib/systemd/system/ypbind.service.
Created symlink /etc/systemd/system/multi-user.target.wants/oddjobd.service → /usr/lib/systemd/system/oddjobd.service.
[root@newhead ~]#
4 NISサーバの参照先の確認
[root@newhead ~]# ypwhich
manage
5 サービスが起動していることを確認
3 NISユーザの登録手順
1 管理サーバでユーザを作成します。
[root@manage sysconfig]# useradd user02
[root@manage sysconfig]# passwd user02
ユーザー user02 のパスワードを変更。
新しいパスワード:
よくないパスワード: このパスワードは辞書チェックに失敗しました - 単純/系統的すぎます
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。
2 NISデータベースに登録します
[root@manage sysconfig]# cd /var/yp/
[root@manage yp]# make
gmake[1]: ディレクトリ '/var/yp/mydomain' に入ります
Updating passwd.byname...
Updating passwd.byuid...
Updating group.byname...
Updating group.bygid...
Updating netid.byname...
gmake[1]: ディレクトリ '/var/yp/mydomain' から出ます
[root@manage yp]#
3 クライアントのノードから、NISサーバで登録したユーザでログインできることを確認します。
TeraTermなどをつかってログインしてみること。
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Tue Feb 27 11:07:45 2024 from 192.168.56.1
[user02@newhead ~]$
4 クライアントでNIS パスワード変更
[rocky@node01 ~]$ yppasswd
Changing NIS account information for rocky on manage.
Please enter old password: # 現在のパスワード
Changing NIS password for rocky on manage.
Please enter new password: # 新しいパスワード
Please retype new password:
The NIS password has been changed on manage.
新しいパスワードでログインできるかを確認して完了です。
5 必要に応じてSecurity設定(SELinux, Firewall)
SELinuxの設定
sudo setsebool -P allow_ypbind 1
sudo setsebool -P nis_enabled 1
SELinxuの設定確認
getsebool -a | grep nis
Firewallの設定
sudo firewall-cmd --permanent --add-service=rpc-bind
sudo firewall-cmd --permanent --add-service=ypbind
sudo firewall-cmd --reload
Appendix 参考サイト
以下のサイト情報を参考にさせていただきました。
NISサーバの構築
NISクライアント