なかのにっき

最新版はこちら。 いろいろ危ない世の中になってきたので、static に生成した html での公開に切り替えました。ご了承ください。


hns - 日記自動生成システム - Version 2.19.9

先月 2025年09月 来月
日 月 火 水 木 金 土
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

2025年09月01日(月)

#1 samba-ad-dc の ldap を見るように Linux ホストを設定

samba-ad-dc は LDAP/DNS サーバを兼ねるので、いまの ldap クライアントの見る先を変える必要がある。 これまでは libpam-ldap / libnss-ldap でやっていた わけだが、最近は sssd というのが標準だそうで。ということで 例によって ChatGPT さん に教えていただきつつ。

@ サーバ側の設定:

匿名バインドができないので、読み取りのユーザを作る。
samba-tool user add ldapbind (PASSWORD) --description="LDAP Bind account"
配布用の証明書 /var/lib/samba/private/tls/ca.pem を取り出しておく。

@ クライアント側の設定:

  1. パッケージのインストール
    apt install sssd sssd-tools libpam-sss libnss-sss
    
  2. サーバの証明書をコピーして読み込み
    # cp ca.pem /usr/local/share/ca-certificates/samba-ca.crt
    # update-ca-certificate
    
  3. /etc/resolve.conf を編集 samba-dc-ad が提供している名前を見にいくようにする。うちだとこんな。
    domain emplab.st.seikei.ac.jp
    search emplab.st.seikei.ac.jp fslab.st.seikei.ac.jp
    nameserver 172.28.0.136
    
  4. /etc/sssd/sssd.conf を編集する
    [sssd]
    services = nss, pam
    config_file_version = 2
    domains = EMPLAB.ST.SEIKEI.AC.JP
    
    [domain/EMPLAB.ST.SEIKEI.AC.JP]
    id_provider = ldap
    auth_provider = ldap
    ldap_uri = ldaps://migrate.emplab.st.seikei.ac.jp:636
    ldap_search_base = dc=emplab,dc=st,dc=seikei,dc=ac,dc=jp
    ldap_default_bind_dn = cn=ldapbind,cn=Users,dc=emplab,dc=st,dc=seikei,dc=ac,dc=jp
    ldap_default_authtok = パスワード
    ldap_id_mapping = False
    
    という感じで。ldap_uri は FQDN にしておかないと warning が出る。ファイルは 600 にしておく。
  5. /etc/nsswitch.conf を編集 こんな感じになるはず
    passwd:		files systemd sss
    group:		files systemd sss
    shadow:		files systemd sss
    
  6. pam の更新 /etc/pam.d/ の common-account, common-auth, common-password, common-session に nss のエントリーが入っていることを確認し(これはパッケージャが実行)、pam-auth-update で sssd を有効化
  7. デーモンを起動
    sudo systemctl enable sssd --now
    
  8. 動作確認
    getent passwd nakano
    id nakano
    
    という感じで。
タイミングは微妙だが、nscd と nslcd は停止、パッケージごと削除したほうがよさげ。

#2 samba そのほか

@ homeDirectory と homeDrive:

samba-tool user add のときには設定するオプションがあるが、あとから書き換えるのは samba-tool user edit でエディタ使わないといけないので結構たいへん。

@ 2 代目:

謎の sssd 起動時エラーに延々悩んでいたら sssd-ldap が入っていなかった… こんなのでもずっと付き合ってくれる ChatGPT さん素敵。

2025年09月03日(水)

#1 migrate に RAID1 を構成

メインサーバになってもらうので、ここに /home も移すことにした。 PRIMERGY で PRAID カードを追加していない場合、オンボード SATA の RAID は Intel RSTe のソフトウェア RAID とのことなので、mdadm でやることに決定。
  1. mdadm パッケージを apt install
  2. lsblk でデバイスを確認
  3. RAID を作る
    sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdc
    
    実行すると
    o optimalize recovery speed, it is recommended to enable write-indent bitmap, do you want to enable it now? [y/N]?
    
    と聞かれるので、これは Y。データ同期を全体ではなく書き込み変更のあった領域のみにするためのものとのこと。
  4. 初期同期処理はバックグラウンドで進行。もう書き込んでいいそうだが、一応待機。 cat /proc/mdstat で状況がわかる。こんな風にでる。
    Personalities : [raid1]
    md0 : active raid1 sdc[1] sda[0]
          3906886464 blocks super 1.2 [2/2] [UU]
          [=>...................]  resync =  7.2% (281465024/3906886464) finish=347.0min speed=174100K/sec
          bitmap: 28/30 pages [112KB], 65536KB chunk
    
    unused devices: <none>
    
    resync が消えたら完了。
  5. ファイルシステムつくる
    mkfs.ext4 /dev/md0
    
  6. マウントして確認
    mkdir /mnt
    mount /dev/md0 /mnt
    df -h /mnt
    
  7. mdadm.conf にアレイ情報を確認
    mdadm --detail --scan >> /etc/mdadm/mdadm.conf
    
  8. initramfs を更新
    update-initramfs -u
    
  9. fstab に登録
    bldid /dev/md0
    
    で UUID を確認して fstab に追加。
という感じで。監視は以下の手順。
  1. /etc/mdadm/mdadm.conf に
    MAILADDR nakano
    
    を追加。
  2. systemd のユニットを有効化
    systemctl list-timers | grep mdmonitor
    
    で、素手に起きていたので OK。なければ systemctl start すればよい。

2025年09月10日(水)

#1 過去の MH フォルダのメールを Thunderbird のローカルフォルダーに突っ込む

Sylpheed Pro の強力な検索機能で幸せに暮らしていた私ですが、Sylpheed が OAUTH2 の対策に失敗して、Pro もあえなく discon となってしまい。

で、Outlook の挙動を見ていると、一定期間前のメールが受診トレイに残っていないようで。というわけで 1 ヶ月以上前のメールを検索で拾えない状況が数ヶ月(長えよ)続いていた。

しかし Thunderbird ならローカルフォルダー (設定→アカウント設定→ローカルフォルダー で HDD の領域にできる) に mbox 形式のファイルを置けば検索可能になるとのことで、やってみた。例によって ChatGPT さんに聞いたログ を置いておきます。

nmh パッケージの packf を使うと MH→mbox がすぐできる、そのファイルを Thunderbird のローカルフォルダーに置きましょう、というのが最初の suggestion だったんだけど、これはどうも件数が少なくなってしまう。JIS コードのメールが混ざると mbox のメール区切りが正しく拾えなくなっているっぽくて、結局 python の mailbox ライブラリを使う以下のようなスクリプトでちゃんと変換できた模様。
#!/usr/bin/env python3
import sys, mailbox, os

mh_dir   = sys.argv[1]              # MH フォルダのディレクトリ(例: ~/Mail/inbox)
out_mbox = sys.argv[2]              # 出力 mbox(例: ./inbox_clean.mbox)

mh = mailbox.MH(mh_dir)
mb = mailbox.mbox(out_mbox, create=True)
mb.lock()
try:
    for key in mh.iterkeys():
        msg = mh.get_message(key)   # MHの1通をRFC822として取得
        mb.add(msg)                 # mboxに“正規化”して追加(From_や >From 処理含む)
    mb.flush()
finally:
    mb.unlock()
    mb.close()
(スクリプトはこちら)
ということで、大きな mbox ファイルをボンボンと置いたところ、たぶん indexing に時間がかかったんだと思うけど、徐々に過去のメールが検索できるようになった。ということで懸案のメールをいくつか送った。やっとマトモに作業できる環境になったなあ。

2025年09月11日(木)

#1 samba AD DC その後

共有に新規ファイルを作ると uid 30000 になるという謎の現象に悩まされていたのだが(既存のファイルにはちゃんとアクセスできて読み書きできる)、ユーザ nakano を "Domain Admins" から抜いてみたら、という suggstion を例によって ChatGPT さんにもらって、たぶん解決できたっぽい。これ他に困ってるひといないかねえ。

samba-ad-dc に対して、ローカルに sssd で繋ぎにいくのはご法度らしく、winbind で繋ぐのだ、と言われて、すると getent passwd nakano とか id nakano で引いたユーザ名が Domain\name 形式になっちゃう。また shell が DC に登録した通りにうまく渡らない。まあ ad-dc サーバをメインで使わなければいいんだが。しかしもにょる。

というわけで、まあ migrate を研究室のメインサーバにできる目処が立ったので、いろいろ修正中。バックアップも見直さないと。

2025年09月12日(金)

#1 新ネットワークの dns まわり

samba-ad-dc は dns サーバを兼ねるので、既存の nsd/unbound との整合をとった。 具体的には、ドメイン emplab.st.seikei.ac.jp の正引きは samba-ad-dc に任せ、逆引き(とそれ以外の外のサーバ) を既存のサーバに forward することにした。ChatGPT さんとの会話のリンクは、ちょっと生々しいので秘密日記へ。

#2 web サーバの証明書更新

去年やったやつ の更新。csr を作るところまでは全く同じ。 NII の TSV 作成サービス で「作成開始」。

遷移したページで
TSV ファイル種別→更新申請用 TSV
証明書種別→サーバ証明書
証明書プロファイル→3: サーバ証明書(sha256WithRSAEncryption)
にして「この内容で作成を開始」

遷移したページで、CSR ファイルを読み込んだあと、去年と同様に
主体者DN→入っているのでそのまま
失効対象証明書シリアル番号→[後述]
サーバFQDN→入っているのでそのまま
利用管理者E-mail→いれる
利用管理者氏名→管理者のフルネーム(ローマ字表記が無難)
利用管理者所属→Faculty of Science and Engineering
Webサーバソフトウェア名等→apache2.4
dNSName→IPアドレスが同じで別のFQDNを持つ場合、dNSName=[CNAME]
とする。dNSName は、surf / acserv に CNAME があるのでそれを。

失効対象証明書シリアル番号は、去年置いた /etc/upki/keys/HOSTNAME.csr に対して
# openssl x509 -in HOSTNAME.csr -noout -serial
を実行すると
serial=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
というのが出てくるので XXX...X の部分をコピペ。
(0916追記)
この出力は 16 進だが、UPKI は 10 進でシリアルを与える必要があった。
echo "ibase=16; XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" | bc
で 10 進の変換値が出るので、それを入れる。

これで完了すると TSV がダウンロードできる。 あとは去年と同様の作業。秘密日記に。

2025年09月15日(月)

#1 バックアップ関係情報まとめ

日記に書くものか、という気もするが。 特にコメントなく書いてあるのは /etc/crontab のエントリ。

@ surf:

fsserv から ssh forward したポートを使って
15 3  * * *     root    /usr/local/sbin/backup2fsserv

@ acserv, eeserv:

それぞれ /etc/rsyncd.conf を設定してあって、fsserv から以下のタイミングで取得。
55 4  * * *     root    /usr/local/sbin/backup-webservers

@ fsserv:

研究室のネットワーク外にある各ホスト (surf, acserv, eeserv) と migrate のバックアップ引き受け先。 /opt に btrfs を作ってマウントしたのち、
btrfs subvolume create /opt/backup
btrfs subvolume create /opt/snapshot
する。
50 23 * * *     root    /usr/local/sbin/snap-btrfs
の中身は
#!/bin/sh

SRCDIR=/opt/backup
DUMPDIR=/opt/snapshots

TODAY=$(date +%Y/%m/%d)
DSTDIR=$DUMPDIR/$TODAY

PARENT=$(dirname "$DSTDIR")
mkdir -p $PARENT

/bin/btrfs filesystem sync $SRCDIR
/bin/btrfs subvolume snapshot -r $SRCDIR $DSTDIR
という感じで。

自分自身のバックアップは
15 4  * * *     root    /usr/local/sbin/backup2migrate
で送る。

@ migrate:

研究室のネットワークにある各ホスト (film, uhvsp, vacuum, fsserv) のバックアップ引き受け先(/etc/rsyncd.conf)。 /opt/backup & /opt/snapshot のペアに加え、自分の /home を履歴で取るために /opt/home & /opt/bhome を作ってある。
15 6    * * *   root    /usr/local/sbin/backup2fsserv
55 23   * * *   root    /usr/local/sbin/snap-btrfs
自分自身の /home は
5  1    * * *   root    /usr/local/sbin/backup-home

@ film:

30 3 * * *      root    /usr/local/sbin/backup2migrate

@ uhvsp:

45 4 * * *      root    /usr/local/sbin/backup2migrate

@ vacuum:

45 3  * * *     root    /usr/local/sbin/backup2migrate

2025年09月16日(火)

#1 UPKI 鍵更新

連休前の作業 の続き。 シリアル番号は 16 進じゃなくて 10 進で入れる必要があって、高教センターの担当の方から差し戻しがあった。どうもすみませんでした。

ということで 0912 の日記 に追記したようにして 10 進数に変換し、 TSV ツールで「作成開始」の遷移後、「作成済み TSV の編集」タブから旧 TSV を読み込んで、シリアル番号を書き換えて再送した。

無事 NII からメールがきたので以下↓に続く。

@ サーバ作業:

おおむね 去年といっしょ。 して、HOSTNAME_FQDN.cer と server.key を、去年置いた /etc/upki/keys/ のものと置換し、apache2 を restart しておわり。 もちろんそれぞれ適宜バックアップはとった。

中間 CA 証明書 (RSA) の nii-odca4g7rsa.cer は こちら によれば 2029/5/29 が有効期間末のようなので、今回は更新の必要なし。

dovecot には fullchain.cer がいるので、surf.st.seikei.ac.jp.cer と nii-odca4g7rsa.cer を cat して作成して dovecot を再起動。

それぞれの https で有効期間が 2025/9/16-2026/10/17 になっていることは確認できた。 fetchmail もちゃんと取れているようなので OK。おつかれさまでした>わたし

2025年09月21日(日)

#1 iPad で授業するときの PowerPoint のフォント

金曜の半導体基礎の授業、一応リハーサルはしたのだが、小塚ゴシックをメインにしていた pptx が、
読み取り専用 - このバージョンの Office では表示できないコンテンツが含まれているため、ファイルを編集できません。
という表示で編集がロックされ、ペンシルでの記入もできなくなってしまったのであった。どうもご迷惑をおかけしました。

しかたないのでフォントを代替する方針とした。Windows 11 には標準で Noto Sans JP / Noto Serif JP の各種ウェイトが入ったようなのでそれで。いろいろ試行錯誤したが、解決したのでポイントをまとめ。

@ pptx 側:

表示→ スライドマスターの [背景]→[フォント] →[フォントのカスタマイズ] で「日本語文字用のフォント」を編集。これまで小塚だったのを Noto Sans のシリーズにする。見出しが 無印の Noto Sans JP, 見出しが Noto Sans JP Medium くらいでちょうどいい感じ。

@ iPad 側:

ブラウザから取れる ttf だとうまく反映されなかったりで苦しんだのだが、結局
git clone https://github.com/googlefonts/noto-cjk.git
でとってきて、 noto-cjk/Sans/SubsetOTF/JP/ と noto-cjk/Serif/SubsetOTF/JP/ の各フォントを Dropbox 経由で AnyFont に読み込ませる。

このあとフォントをインストールするプロファイルをつくって、設定→一般→VPN とデバイス管理、でそのプロファイル読み込ませる。どうもひとつのプロファイルには 3 つのウェイトまでしか含められないようで、ちょっと大変だったがチマチマわけて 7 つのウェイトを登録。

これで pptx を開くと、無事に Noto Sans の表示になってペンシルの書き込みもできた。やれやれである。

2025年09月27日(土)

#1 surf を trixie に

dovecot の設定ファイルの書式が 2.3.9→2.4.0 でだいぶ変わったようで、ChatGPT さんに全面的に依存して起動するところまで持っていった。こういう ad hoc な対応は、いかにも思考停止している感じで良くない気がするけどなー。

Dovecot 設定エラー修正

以上、9 日分です。
Powered by hns-2.19.9, HyperNikkiSystem Project

中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp> Since 1999-10-07

中野のホームページへ