なかのにっき
最新版はこちら。
いろいろ危ない世の中になってきたので、static に生成した html での公開に切り替えました。ご了承ください。
hns - 日記自動生成システム - Version 2.19.9
#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
を取り出しておく。
@
クライアント側の設定:
- パッケージのインストール
apt install sssd sssd-tools libpam-sss libnss-sss
- サーバの証明書をコピーして読み込み
# cp ca.pem /usr/local/share/ca-certificates/samba-ca.crt
# update-ca-certificate
- /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
- /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 にしておく。
- /etc/nsswitch.conf を編集 こんな感じになるはず
passwd: files systemd sss
group: files systemd sss
shadow: files systemd sss
- pam の更新 /etc/pam.d/ の common-account, common-auth, common-password, common-session
に nss のエントリーが入っていることを確認し(これはパッケージャが実行)、pam-auth-update で sssd を有効化
- デーモンを起動
sudo systemctl enable sssd --now
- 動作確認
getent passwd nakano
id nakano
という感じで。
タイミングは微妙だが、nscd と nslcd は停止、パッケージごと削除したほうがよさげ。
#2
samba そのほか
@
homeDirectory と homeDrive:
samba-tool user add のときには設定するオプションがあるが、あとから書き換えるのは samba-tool user edit でエディタ使わないといけないので結構たいへん。
@
2 代目:
謎の sssd 起動時エラーに延々悩んでいたら sssd-ldap が入っていなかった…
こんなのでもずっと付き合ってくれる ChatGPT さん素敵。
#1
migrate に RAID1 を構成
メインサーバになってもらうので、ここに /home も移すことにした。
PRIMERGY で PRAID カードを追加していない場合、オンボード SATA の RAID は Intel RSTe のソフトウェア RAID とのことなので、mdadm でやることに決定。
- mdadm パッケージを apt install
- lsblk でデバイスを確認
- 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。データ同期を全体ではなく書き込み変更のあった領域のみにするためのものとのこと。
- 初期同期処理はバックグラウンドで進行。もう書き込んでいいそうだが、一応待機。 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 が消えたら完了。
- ファイルシステムつくる
mkfs.ext4 /dev/md0
- マウントして確認
mkdir /mnt
mount /dev/md0 /mnt
df -h /mnt
- mdadm.conf にアレイ情報を確認
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
- initramfs を更新
update-initramfs -u
- fstab に登録
bldid /dev/md0
で UUID を確認して fstab に追加。
という感じで。監視は以下の手順。
- /etc/mdadm/mdadm.conf に
MAILADDR nakano
を追加。
- systemd のユニットを有効化
systemctl list-timers | grep mdmonitor
で、素手に起きていたので OK。なければ systemctl start すればよい。
#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 に時間がかかったんだと思うけど、徐々に過去のメールが検索できるようになった。ということで懸案のメールをいくつか送った。やっとマトモに作業できる環境になったなあ。
#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 を研究室のメインサーバにできる目処が立ったので、いろいろ修正中。バックアップも見直さないと。
#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 がダウンロードできる。
あとは去年と同様の作業。秘密日記に。
#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
#1
UPKI 鍵更新
連休前の作業
の続き。
シリアル番号は 16 進じゃなくて 10 進で入れる必要があって、高教センターの担当の方から差し戻しがあった。どうもすみませんでした。
ということで
0912 の日記
に追記したようにして 10 進数に変換し、
TSV ツールで「作成開始」の遷移後、「作成済み TSV の編集」タブから旧 TSV を読み込んで、シリアル番号を書き換えて再送した。
無事 NII からメールがきたので以下↓に続く。
@
サーバ作業:
おおむね
去年といっしょ。
- メールのリンクから HOSTNAME_FQDN.cer をダウンロード
- HOSTNAME.key の鍵を外して server.key に
して、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。おつかれさまでした>わたし
#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 の表示になってペンシルの書き込みもできた。やれやれである。
#1
surf を trixie に
dovecot の設定ファイルの書式が 2.3.9→2.4.0 でだいぶ変わったようで、ChatGPT さんに全面的に依存して起動するところまで持っていった。こういう ad hoc な対応は、いかにも思考停止している感じで良くない気がするけどなー。
Dovecot 設定エラー修正
以上、9 日分です。
中野武雄 (NAKANO, Takeo) <nakano@st.seikei.ac.jp>
Since 1999-10-07
中野のホームページへ