コンテンツにスキップ

mvdlx081 構築メモ

Doc

Remote Desktop * How To Install XRDP on Rocky Linux 9

Active Directory
* 第3章 realmd を使用した Active Directory ドメインへの接続 * RHEL 8 の AD-SUPPORT サブポリシーと RHEL 9 の AD-SUPPORT-LEGACY サブポリシー * RHEL8から変わった暗号化ポリシーの設定方法

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

ホストサーバ上に仮想サーバを立て他だけでもネットワークと接続できブラウザで検索できる(ホストサーバがネットワークと接続されていれば)
しかし、仮想サーバに固定IPを設定すると仮想サーバがネットワークと分断されブラウザ検索ができなくなる。

仮想サーバがdefaultネットワークを使用しているためなので、ホスト側の設定を変更しブリッジ接続をしてあげる必要がある。 192.168.122.0/24 のネットワークが libvirt によって作られている。 alt text

ネットワークソースをホストサーバで作成したbr0に変更する。(詳細はmvdlx080を参照)
alt text

仮想環境のデバイス情報を確認

[root@mvdlx081 ~]# nmcli d 
device     TYPE     STATE           CONNECTION
lo         loopback 接続済み(外部)  lo
enp8s0     ethernet 切断済み         --

etgernetにつながっていないので接続してあげる

[root@mvdlx081 ~]# nmcli d connect enp8s0
デバイス 'enp8s0'が '195432f7-f631-4aa4-a2d6-5ba3f6e5a436' で正常にアクティベートされました。

再度、仮想環境のデバイス情報を確認

[root@mvdlx081 ~]# nmcli d 
device     TYPE     STATE           CONNECTION
enp8s0     ethernet 接続済み         enp8s0
lo         loopback 接続済み(外部)  lo

接続を確認

[root@mvdlx081 ~]# nmcli c
device     UUID                                   TYPE       DEVICE
enp8s0     195432f7-f631-4aa4-a2d6-5ba3f6e5a436   ethernet   enp8s0
lo         68758480-6da1-3497-87fd-75771eff71a3   ethernet   lo

nmcliで設定してもいいけどGUIでIPアドレス/ネットマスク(255.255.128.0 -> /21)/ゲートウェイ/DNSを設定する alt text

管理アカウント

root

パスワード:MavissDesign1119_sne ※ vncでrootにログインするときはパスワードは別に設定されている → 20131119

tuser

パスワード:Maviss

仮想サーバの初期設定

Host名の変更

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

dnfの更新

dnf update -y 
dnf upgrade -y

SELinux無効化

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

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

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

手順 1. XRDPをインストールする 2. XRDPの開始と有効化 3. XRDPが起動しているか確認 4. ファイアウォールの設定 5. リモートデスクトップの画面が真っ黒になる場合の対処

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

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

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

2. XRDPの開始と有効化

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

[root@mvdlx081 ~]# systemctl enable xrdp --now
Created symlink /etc/systemd/system/multi-user.target.wants/xrdp.service → /usr/lib/systemd/system/xrdp.service

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

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

[root@mvdlx081 ~]# systemctl status xrdp
● xrdp.service - xrdp daemon
     Loaded: loaded (/usr/lib/systemd/system/xrdp.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-02-26 16:39:23 JST; 1min 1s ago
       Docs: man:xrdp(8)
             man:xrdp.ini(5)
   Main PID: 6303 (xrdp)
      Tasks: 1 (limit: 203382)
     Memory: 1.4M
        CPU: 10ms
     CGroup: /system.slice/xrdp.service
             └─6303 /usr/sbin/xrdp --nodaemon

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

Xrdp はポート 3389 でリッスンされる

firewall-cmd --add-port=3389/tcp --permanent
firewall-cmd --reload
  1. ファイアウォールの設定の確認 firewall-cmd --list-ports or vi /etc/firewalld/zones/public.xml

5. リモートデスクトップの画面が真っ黒になる場合の対処

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

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

pkill Xvnc
systemctl restart xrdp
systemctl restart xrdp-sesman

リモートデスクトップで接続できるはず。 リモートデスクトップを切断した際にセッションが削除されず同じ状況に。。。。 対処法はまだわからず。。。

8. 接続できない時はウィンドウシステムの確認を行う
  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. アクセス確認

VNC設定

  1. Tigervncをインストールする(dnf install -y tigervnc-server)
  2. インストールされたか確認(vncserver -list)
  3. VNCのパラメータを設定する
  4. セッションのユーザマッピングを設定する

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

dnf install -y tigervnc-server

2. インストールされたか確認(vncserver -list)

vncserver -list
次のようなログが出ればOK
ワーニングの内容を端的に言うと、vncserverコマンドは使うな!デーモンの設定ファイルいじろ!

[root@mvdlx081 ~]# vncserver -list
WARNING: vncserver has been replaced by a systemd unit and is now considered deprecated and removed in upstream.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.

TigerVNC server sessions:

X DISPLAY #     PROCESS ID

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

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

session=gnome
geometry=1980x1200

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

vncpasswdを設定してからでないとvncserverが起動しなかったので注意。 設定変更前に.vncを作成してしまっている場合も起動しなかったので注意。 1. vncserver.usersを開きユーザマッピングを記入する 2. デーモンをリロードする(systemctl daemon-reload) 3. 設定したユーザでログインパスワードを設定する(vncpasswd) 4. .vncがすでにある場合は「restorecon -RFv ~/.vnc」コマンドを使う 5. デーモンのスタート&自動起動設定(systemctl enable --now vncserver@:1) 6. デーモンのステータスを確認する(systemctl status vncserver@:1) 7. ファイアウォールの設定を変更しVNCのアクセスポートを開く(firewall-cmd) 8. 接続できない時はウィンドウシステムの確認を行う

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

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

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

vncpasswd

4. .vncがすでにある場合は「restorecon -RFv ~/.vnc」コマンドを使う

restorecon -RFv ~/.vnc

5. デーモンのスタート&自動起動設定
systemctl enable --now vncserver@:1
systemctl enable --now vncserver@:2
6. デーモンのステータスを確認する
systemctl status vncserver@:1
systemctl status vncserver@:2

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

[root@mvdlx081 ~]# systemctl status vncserver@:1
● vncserver@:1.service - Remote desktop service (VNC)
     Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-02-26 13:50:27 JST; 5min ago
    Process: 3074 ExecStartPre=/usr/libexec/vncsession-restore :1 (code=exited, status=0/SUCCESS)
    Process: 3086 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS)
   Main PID: 3093 (vncsession)
      Tasks: 0 (limit: 203382)
     Memory: 1.0M
        CPU: 51ms
     CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
             ‣ 3093 /usr/sbin/vncsession root :1
7. ファイアウォールの設定を変更し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
8. 接続できない時はウィンドウシステムの確認を行う
  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. アクセス確認

NTP設定

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

1. chronyのインストール

dnf install -y chrony

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

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

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

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

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

3. chronyの再起動

systemctl restart chronyd

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

Active Directoryドメインサーチ設定

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

手順 1. 「/etc/NetworkManager/NetworkManager.conf」を編集する 2. 「/etc/resolve.conf」を編集する 3. NetworkManagerを再起動

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

code /etc/NetworkManager/NetworkManager.conf

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

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

[logging]

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

code /etc/resolve.conf

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

domain     maviss.local
nameserver 192.168.3.160
nameserver 192.168.1.160

3. NetworkManagerを再起動

systemctl restart NetworkManager

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

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

手順 1. realmdをインストール(dnf install -y realmd) 2. ドメインを認識できているか確認(realm discover maviss.local) 3. ドメインに参加する(realm join --user=administrator maviss.local) 4. ドメインへのアクセスできるか確認(id hirano@maviss.local) 5. ADサーバ側の管理画面に仮想マシンが登録されていることを確認

1. realmdをインストール

dnf install -y realmd

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

3. ドメインに参加する

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

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)

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

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

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

  1. 「/etc/sssd/sssd.conf」を編集する(vi /etc/sssd/sssd.conf)
  2. sssdの再起動(systemctl restart sssd.service)
  3. ログインテスト(ssh hirano@mvdlx081)

1. 「/etc/sssd/sssd.conf」を編集する(vi /etc/sssd/sssd.conf)

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

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

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

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

access_provider = simple
simple_allow_user = $
simple_allow_groups = mvd-edge_ai

2. sssdの再起動

systemctl restart sssd.service

3. ログインテスト

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