コンテンツにスキップ

mvdlx082 構築メモ

1. Index

2. Doc

3. LinuxサーバをADサーバのDNSに登録する

ADサーバ(mvddchq2、mvddcsa2)は社内マシン用のDNSサーバーも兼用している。
登録されていないと名前解決できず、mvdlx###でアクセスできない。 ポイントは以下。 * Windowsはドメイン加入時にDNSに自動登録される
* Linuxはドメイン加入時にDNSに自動登録されない → 登録が必要!!!

  1. ADサーバ(mvddchq2、mvddcsa2)にリモートデスクトップで接続する。
    2つのサーバはレプリケーション(多重化)されているため、どちらにアクセスしてもよい。
  2. DNSツールを起動>前方参照ゾーン>maviss.local>空白部分を右クリック>新しいホスト alt text
  3. 登録したいマシン名とIPアドレスを記載>ホストの追加 alt text

4. 管理アカウント

OSインストール時にちゃんと設定したので、ここでの設定は不要。
他のマシンと同じ設定にしている。

5. Host名の変更

Linuxサーバのホスト名を変更する方法参照。
nmcli general hostname {変更するホスト名}

6. SSHの暗号化ポリシーを変更する

RHEL8からssh等で使える暗号化ポリシーがサービス個別ではなくシステム全体で設定するようになった。
設定をしていないと「RHEL9サーバに古いOSからsshしようとして、no hostkey alg となり接続できない!」という現象に遭遇することになる。
※ 以前は/etc/ssh/sshd_configに必要なアルゴリズム等を記述できたが、RHEL8からは記述しても有効にならないので注意

  1. ポリシーを変更する。 Rocky8: update-crypto-policies --set DEFAULT:AD-SUPPORT
    Rocky9: update-crypto-policies --set DEFAULT:AD-SUPPORT-LEGACY
  2. 仮想マシンをリブートする
    reboot

7. ホスト側で仮想ブリッジを設定する

OSインストール時にちゃんと設定したので、ここでの設定は不要。
IPアドレス直打ち&ホスト名でSSHできることを確認。

8. dnfの更新

dnf update -y 
dnf upgrade -y

9. SELinux無効化

  1. 「/etc/selinux/config」を編集しSELINUXをディスエーブルする
    SELINUX=disabled
  2. OSの再起動
    reboot
  3. 設定の確認
    getenforce

9.1. リモートデスクトップ設定

9.1.1. XRDPをインストールする

Xrdp は Epel リポジトリから入手できる

dnf install -y epel-release
dnf install -y xrdp

9.1.2. XRDPの開始と有効化

systemctl enable xrdp --now
次のログが出て起動&自動起動設定がなされる

9.1.3. XRDPが起動しているか確認

systemctl status xrdp
active(running)になっていればOK

9.1.4. ファイアウォールの設定

Xrdp はポート 3389 でリッスンされる
1. 設定と確認

firewall-cmd --list-ports
firewall-cmd --add-port=3389/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports

9.2. VNC設定

9.2.1. Tigervncをインストールする(dnf install -y tigervnc-server)

  1. パッケージマネージャでインストールする
    dnf install -y tigervnc-server
  2. 適当にコマンドを打って確認
    vncserver -list

9.2.2. VNCのパラメータを設定する

最近のTigerVNCでは、vncserver コマンドが非推奨となり、
代わりに systemd を使用してVNCサーバーを起動する方式に変更されています。
vncserverのデフォルト設定を開き変更を行う。
code /etc/tigervnc/vncserver-config-defaults
以下の設定をコメントアウトor編集する

session=gnome
geometry=1920x1080

9.2.3. セッションのユーザマッピングを設定する

vncpasswdを設定してからでないとvncserverが起動しなかったので注意。 設定変更前に.vncを作成してしまっている場合も起動しなかったので注意。

9.2.3.1. vncserver.usersを開きユーザマッピングを記入する

code /etc/tigervnc/vncserver.users 以下の設定を追記する

:1=root
:2=tuser
9.2.3.2. 設定したユーザでログインパスワードを設定する

ユーザごとにパスワードを設定する
vncpasswd
rootは「20131119」 tuserは「Maviss」

vnc接続のキャッシュも削除しておく
restorecon -RFv ~/.vnc

9.2.3.3. XVNCのセッションを殺す

初めにリモートデスクトップをやっているとvncserverが起動しない。
VNCに関するセッションをすべて殺しデーモンを再起動する。

pkill Xvnc
systemctl restart xrdp
systemctl status xrdp

systemctl restart xrdp-sesman
systemctl status xrdp-sesman
9.2.3.4. デーモンのスタート & 自動起動設定 & 確認

vnserver@:1は一度再起動してあげないと立ち上がらない。
reboot

systemctl enable --now vncserver@:1
systemctl status vncserver@:1

systemctl enable --now vncserver@:2
systemctl status vncserver@:2

ログがActive (running)になっていればOK

9.2.3.5. ファイアウォールの設定を変更しVNCのアクセスポートを開く
firewall-cmd --list-ports
firewall-cmd --add-service=vnc-server
firewall-cmd --runtime-to-permanent
firewall-cmd --permanent --add-port=5900-5999/tcp
firewall-cmd --reload
firewall-cmd --list-ports
9.2.3.6. 接続できない時はウィンドウシステムの確認を行う
  1. 現在のウィンドウシステムを確認する。 X11 または tty であれば設定不要 waylandと表示された場合はそのままではTigervncが使えない echo $XDG_SESSION_TYPE
  2. ウィンドウシステムを変更する(waylandの場合) vi /etc/gdm/custom.conf Waylandの許可設定が#でコメントされているので設定を外してあげる
[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false
  1. アクセス確認
9.2.3.7. リモートデスクトップの画面が真っ黒になる場合の対処

おそらくXvncのセッションがたくさんある状態でそれが悪影響を及ぼしている。
ps aux | grep vnc

Xvncのすべてのセッションを削除しデーモンをリスタート

pkill Xvnc

systemctl restart xrdp
systemctl status xrdp

systemctl restart xrdp-sesman
systemctl status xrdp-sesman

systemctl enable --now vncserver@:1
systemctl status vncserver@:1

systemctl enable --now vncserver@:2
systemctl status vncserver@:2

上記でもうまくいかなかったのでリブートで解決 reboot

9.3. NTP設定

手順 1. chronyのインストール 2. chrony.conf の設定を変更する 3. chronyの再起動 4. 設定の確認

9.3.1. chronyのインストール

dnf install -y chrony

9.3.2. chrony.conf の設定を変更する

code /etc/chrony.conf 初期で設定されたserverおよびpoolはコメントアウト

#pool 2.rocky.pool.ntp.org iburst

.confの末尾にメイビスのドメインサーバを追加 port 0指定することで、サーバー機能は殺している。

# add settings
server mvddcsa2.maviss.local iburst
server mvddchq2.maviss.local iburst
port 0

9.3.3. chronyの再起動

systemctl restart chronyd

9.3.4. 設定の確認

chronyc sources 以下のようなログが出ればOK

[root@mvdlx081 ~]# chronyc sources
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ mvddcsa2.maviss.local         4   9   377   835  +1416us[+1290us] +/-   87ms
^* mvddchq2.maviss.local         4   7   377   116   -792us[ -816us] +/-   80ms

9.4. Active Directoryドメインサーチ設定

DNSで名前解決できるように設定を加える。
この設定をすることによりドメイン名を省略しても社内マシンにアクセスできるようになる。

9.4.1. 「/etc/NetworkManager/NetworkManager.conf」を編集する

code /etc/NetworkManager/NetworkManager.conf

[main]フィールドに「dns=none」の設定を加える

# コメント行は省略
[main]
dns=none

[logging]

9.4.2. 「/etc/resolve.conf」を編集する

code /etc/resolve.conf

ドメインとネームサーバを設定する

domain     maviss.local
nameserver 192.168.1.160
nameserver 192.168.3.160

9.4.3. NetworkManagerを再起動

systemctl restart NetworkManager

9.5. Active Directoryドメインへの接続設定

Active Directoryドメインへ参加するのにrealmdを使用する。

9.5.1. realmdをインストール

dnf install -y realmd

9.5.2. ドメインを認識できているか確認

realm discover maviss.local 次のようなログが出る

[root@mvdlx081 ~]# realm discover maviss.local
maviss.local
  type: kerberos
  realm-name: MAVISS.LOCAL
  domain-name: maviss.local
  configured: no
  server-software: active-directory
  client-software: sssd
  required-package: oddjob
  required-package: oddjob-mkhomedir
  required-package: sssd
  required-package: adcli
  required-package: samba-common-tools

パッケージ(required-package)が足りないと言われたらインストールする
dnf install -y oddjob oddjob-mkhomedir sssd adcli samba-common-tools

9.5.3. ドメインに参加する

rootでログインしないと認証がうまくいかなかった。
suでrootに昇格して上記コマンドを打っても認証が通らなかったので注意。
realm join --user=Administrator maviss.local
ログインする際のパスワードは「MavissDesign1119」

9.5.4. ドメインへのアクセスできるか確認

ユーザを作らなくてもADサーバを参照してユーザを認識できる
id hirano@maviss.local

次のようなログが出ればOK

[root@mvdlx081 ~]# id hirano@maviss.local
uid=1405801136(hirano) gid=1405800513(domain users) groups=1405800513(domain users),1405801691(mega_legato_joules),1405801435(ku_jointresearch),1405801724(passwordmanagerg),1405801345(mega_common_info),1405801328(turnkey_solution),1405801367(authenticationg),1405801732(mvd-hirata_no1),1405801444(rel_sh2a-fpga),1405801336(2020_nedo_ai),1405801486(dct_svdes),1405801838(mvd-rel-sh2a),1405801164(mvd-astaris),1405801324(mvd-edge_ai),1405801480(2nd-proper),1405801466(gov_hokkai),1405801153(mvd_fq_no1),1405801156(mvd_v_corp),1405801157(mvd_v_fpga),1405801256(mrld-next),1405801161(mvd-admin),1405801173(mvd-kosen),1405801158(mvd_v_fta),1405801163(mvd-all),1405801405(tdc_dk1),1405801172(mvd-hq)

9.5.5. ADサーバ側の管理画面に仮想マシンが登録されていることを確認

  1. リモートデスクトップで「mvddchq2」にアクセス
    ユーザ:MAVISS\dc-admin
    パスワード:MavissDesign1119_sne
  2. 「Active Directory ユーザとコンピュータ」を開きMVDLX081が登録されていることを確認
    Active Directory ユーザとコンピュータ

9.6. Active Directoryに参加者への共通設定

9.6.1. デフォルトのシェルをtcshにするので先にインストール

tcshを入れていないのにSSHしようとしてログインできずかなりはまった!!! dnf install -y tcsh

9.6.2. 「/etc/sssd/sssd.conf」を編集する

code /etc/sssd/sssd.conf maviss.localに所属する人すべてに反映される設定を記載する ※ コメントがあると無効な引数エラーが発生するので注意!!! → SSSDが起動せずはまった。。。

[sssd]
domains = maviss.local
config_file_version = 2
services = nss, pam

[domain/maviss.local]
ad_domain = maviss.local
krb5_realm = MAVISS.LOCAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/tcsh
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
dyndns_update = True
dyndns_refresh_interval = 43200
dyndns_update_ptr = true
dyndns_ttl = 3600
access_provider = ad

特定のユーザのみアクセスできるようにする場合「/etc/sssd/sssd.conf」に追記する

access_provider = simple
simple_allow_user = $
simple_allow_groups = mvd-edge_ai

9.6.3. sssdの再起動

systemctl restart sssd.service

9.6.4. ログインテスト

  1. sshでログイン可能か確認 ActiveDirectoryに設定したパスワードでログインできるはず ssh hirano@mvdlx083
  2. homeにユーザディレクトリが自動生成されていることを確認 pwd

Zabbixとの連携

エージェントのインストール

Zabbixサーバで社内サーバを監視するには各社内サーバにZabbixエージェントを入れる必要がある。 1. 公式サイト:Get Zabbixにアクセス。
2. 「Zabbix Packages」を選択 alt text 3. 「Choose your platform」で次を選択する alt text 1. ZABBIX VERSION 1. 7.0 LTS 2. OS DISTRIBUTION 1. Red Hat Enterprise Linux 2. 仮想OSはRocky Linux 9.5であるがRed Hatベースなので適切 3. ZABBIX COMPONENT 1. 9 4. DATABASE 1. --- 5. WEB SERVER 1. --- 4. 「Install and configure Zabbix for your platform」のコマンドを実行する alt text 1. uninstall EPEL's Zabbix Pacage code /etc/yum.repos.d/epel.repo sh [epel] ... excludepkgs=zabbix* 2. repogitory install sh rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-latest-7.0.el9.noarch.rpm dnf clean all 3. zabbix agent install
dnf install zabbix-agent 4. zabbix agent process start sh systemctl restart zabbix-agent systemctl enable zabbix-agent systemctl status zabbix-agent 4. Zabbix agentのポート開放 1. firewall-cmd --list-portsを実行。 2. ログを確認する。10050/tcpが空いていればOK。
22/tcp 3000/tcp 3100/tcp 3389/tcp 5900-5999/tcp 8000/tcp 8929/tcp 9000/tcp 10050/tcp 10083/tcp 3. 必要であれば10050/tcpを追加する。
firewall-cmd --zone=public --add-port=10050/tcp --permanent firewall-cmd --reload 4. Zabiixサーバの基本情報をセッティングする。 code /etc/zabbix/zabbix_agentd.conf sh Server=127.0.0.1,192.168.1.183 ServerActive=127.0.0.1,192.168.1.183 Hostname=mvdlx083 systemctl restart zabbix-agent

Zabbixサーバでの設定

  1. Zabbixの管理コンソールにアクセス
  2. 「ホスト」を選択し上部の入力欄からマシンを登録する alt text
  3. 登録内容を変更する際は一覧からマシン名をクリックする alt text OK
[root@zabbix ~]# zabbix_get -s 192.168.1.180 -p 10050 -k agent.ping
1

NG

[root@zabbix ~]# zabbix_get -s 192.168.1.181 -p 10050 -k agent.ping
zabbix_get [2908757]: Check access restrictions in Zabbix agent configuration

grep -E "^Server|^ServerActive" /etc/zabbix/zabbix_agentd.conf grep "^Hostname=" /etc/zabbix/zabbix_agentd.conf

Zabbix 6.0 以降では、セキュリティのため AllowKey を明示的に指定しないと zabbix_get のリクエストを拒否する vi /etc/zabbix/zabbix_agentd.confを実行し末尾に下記の文言を追記する。 AllowKey=system.run[*] systemctl restart zabbix-agent.service

データ領域HDDのNFSマウント

NFSではデバイス(/dev/sda1)を直接エクスポートできません。
NFSはディレクトリ単位で共有するため、まずHOST側でマウントポイントを作成し、それをNFSで共有する必要があります。

HOST側の設定

NFSサーバの設定

  1. NFSパッケージをインストール
    sudo dnf install -y nfs-utils
  2. NFSを有効化
    sudo systemctl enable --now nfs-server
  3. NFSマウントの許可設定
    code /etc/exportsに以下を追記。
    サブネット全体(192.168.1.0/21)に対してNFSマウントを許可する。
    /var/Project_80_2 192.168.1.0/24(rw,no_root_squash,async) /var/Project_80_3 192.168.1.0/24(rw,no_root_squash,async) /var/Project_80_4 192.168.1.0/24(rw,no_root_squash,async)

GUEST側の設定

  1. NFSマウント先のフォルダを作成する。 sh mkdir /var/Project_80_1 mkdir /var/Project_80_2 mkdir /var/Project_80_3 mkdir /var/Project_80_4
  2. NFSマウントを行う。 sh mount -t nfs 192.168.1.194:/var2/Project_95_2/Project_80_1_bak /var/Project_80_1/ mount -t nfs 192.168.1.180:/var/Project_80_2 /var/Project_80_2 mount -t nfs 192.168.1.180:/var/Project_80_3 /var/Project_80_3 mount -t nfs 192.168.1.180:/var/Project_80_4 /var/Project_80_4
  3. ホストマシンの再起動時に自動マウントする設定を入れる。
    code /etc/fstabに以下を追記。
    sh # mvdlx080 192.168.1.180:/var/Project_80_2 /var/Project_80_2 nfs defaults 0 0 192.168.1.180:/var/Project_80_3 /var/Project_80_3 nfs defaults 0 0 192.168.1.180:/var/Project_80_4 /var/Project_80_4 nfs defaults 0 0
  4. 192.168.1.180:/var/Project_80_X
    • NFSサーバーの共有ディレクトリ
  5. /var/Project_80_X
    • クライアント側(GEST)のマウントポイント
  6. nfs
    • ファイルシステムタイプ
  7. defaults
    • 一般的なマウントオプション(rw, suid, dev, exec, auto, nouser, async)
  8. 0 0
    • 1つ目の0 → dump(バックアップの対象外)
    • 2つ目の0 → fsck(起動時のチェックなし)
  9. デーモンのリロード。 systemctl daemon-reload

ホーム領域の縮小とツール領域の作成

/home領域の容量縮小(480GB -> 20GB)

  1. /homeのバックアップをとる。
    rsync -av /home /var/Project_80_4/buk_81_home
  2. /homeの容量を確認する
    du -sh /var/Project_80_4/buk_81_home/home/
  3. ログインしているユーザをログアウトする sh pkill -u tuser pkill -u hirano
  4. /homeを強制的にアンマウントする。
    sh umount -l /home
  5. /homeの参照元をいったん削除する(要バックアップ) lvremove /dev/rl_mvdpc118/home
  6. /homeをサイズ指定して再度作成する(容量確認の結果を反映) lvcreate -L 20G -n home rl_mvdpc118
  7. 新しい xfs ファイルシステムを作成する mkfs.xfs /dev/rl_mvdpc118/home
  8. /homeに論理ボリュームをマウントする。
    mount /dev/rl_mvdpc118/home /home
  9. バックアップデータを/home以下に戻す
    rsync -av /var/Project_80_4/buk_81_home/home/ /home/

/var/tools領域の作成と容量割り当て

  1. 空きパーティションを確認する sh lsblk fdisk -l
  2. ボリュームの空き容量を確認する vgs
  3. 新しい論理ボリュームを作成する
    lvcreate -n tools -L 442G rl_mvdpc118 or lvcreate -n tools -L 442G rl_mvdpc118
  4. 新しい論理ボリュームができていることをlsblkコマンドで確認する
    sh [root@mvdlx081 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sr0 11:0 1 1024M 0 rom vda 252:0 0 549G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2 0 547.9G 0 part ├─rl_mvdpc118-root 253:0 0 70G 0 lvm / ├─rl_mvdpc118-swap 253:1 0 15.7G 0 lvm [SWAP] ├─rl_mvdpc118-home 253:2 0 20G 0 lvm /home └─rl_mvdpc118-tools 253:3 0 442G 0 lvm
  5. 新しい xfs ファイルシステムを作成する mkfs.xfs /dev/rl_mvdpc118/tools
  6. /toolsに論理ボリュームをマウントする。
    mount /dev/rl_mvdpc118/tools /tools