openSUSE Leap 16.0をインストール #10 - SELinux ― 2026/01/04 08:40
長期休暇だったので、セキュリティモジュールをAppArmorからSELinuxへ移行したが、苦戦した。
今回の教訓
1. 素性の良いソフトを使い、標準ポリシーに任せる
- モダンなMTAとしてOpenSMTPDを使っていたが、SELinuxから激しくdenyされたので、 標準ポリシーとの親和性が高いPostfixに移行した。
- Webサーバは、httpd_tの枠組みの中で 各リソースに適切なラベルを貼り、最小権限を設定した。
2. Leapの作り込みが甘く、過度の期待は禁物
- freshclamが書き込む「ログへの書き込み権限」がなかった。
- clamdではユーザのホームディレクトリをスキャンしたら拒否された。
3. 対応してないソフトの保護は大変
- 標準ポリシーが存在しないため、プロセスドメインからデータ領域のラベルまで、副操縦士に相談しながらすべて手作業で定義した。
- 当初は一日に数百件ものアクセス拒否に対応することになり、心が折れそうになった。Auditログは難解で、解析を副操縦士に助けてもらった。
4. バックアップ時にはSELinuxラベルの保持を忘れずに
- Wikiの操作を間違えてtarファイルからリストアしたら、ラベルが変わってサービスがファイルを読めずエラーになった。
と個人が運用するサーバ管理には、SELinuxは導入ハードルが高すぎると思った。
それから、libapparmorのパッケージを削除するとphp-fpmが自動削除されるのでwiki利用者は注意が必要です。
本日の衛星: RS-44で交信。ArcticSat-1, UmKA-1のSSTVを受像。
openSUSE Leap 16.0をインストール #9 - QEMU ― 2025/12/26 19:29
Leap 16.0ではVirtualBoxが利用できない状態なのでQEMUに移行した。
VirtualBoxのVDI形式のディスクをQCOW2形式に変換して、仮想NAT環境でOSが正常に立ち上がることを確認。
VMをLAN内のセグメントに組み込むため、物理NIC(eth0)をブリッジ(br0)に組み込んだ。 libvirt XML定義ファイルは副操縦士に作成してもらい、virsh defineでVMを登録したが、 シャットダウンが正常に機能しなかったので、ACPIを明示的に有効にした。 また最初に使ったマシンタイプ「i440fx」はVNC解像度に制限があったので、 最新の「q35」に構成変更してます。
仮想マシンの操作はCockpitから操作すれば簡単!だった。実行/シャットダウンだけではなく、コンソール操作やVMのインポート,共有ディレクトリーの設定などの管理もできて便利です。
本日の衛星: ArcticSat-1を受像。
openBCMユニットファイルのモダナイズ ― 2025/12/23 13:28
bcmの起動には、公式マニュアルにある"昔ながらのinitスクリプト"をsystemdで動かすユニットファイルを使用してきた。 中身はスクリプト/bcm/startbcmを起動するだけと非常にシンプルだったので、systemdの機能をフル活用したユニットファイルに変更してみた。
- bcm本体を直接起動+実行時のカレントディレクトリを固定して、startbcmを廃止
- ログはjournalctlに統合(/dev/tty8を使わない)
- 「ネットが本当に使える状態」まで待つnetwork-online.targetに変更して、起動順序を保証
- プロセスが落ちたら自動再起動(Restart=on-failure)を追加
本日の衛星: ArcticSat-1を受像。あのNGHamプロトコルを採用したFloripaSat-2A/2Bは打ち上げ失敗で残念。
gr-satellitesを仮想環境にインストール ― 2025/12/10 16:48
Pi4(Bookworm)で、新たにgr-satellites 5.8.0用のPython仮想環境を作成した。 以前に設定したgrsat 5.7.0環境で使うPYTHONPATHが設定されたままだったので、新仮想環境内でpip installしてないのにgrsat 5.7.0環境のライブラリが混ざって見えた。 これは、仮想環境の独立性を崩すPYTHONPATHの落とし穴だった。
環境変数PYHONPATHをリセットし、 システムにインストール済みのパッケージ(apt経由のGNU Radioなど)が新規作成する仮想環境から見えるようにし、 cmake時にインストール先を仮想環境に指定・pythonバインディング生成時に新仮想環境内のpythonを使用するよう指定して、makeし直した (その手順はgistに記載)。
これによりPYTHONPATH+LD_LIBRARY_PATHの指定が不要となり、仮想環境内でのライブラリの依存関係が適切になったハズ(だと思いたい)。
いまは、この新しいgrsat環境がsatnogs-client 2.1で問題なく動作するかを確認してます。
本日の衛星:TUBINをデコード。Mobitex-NX framingをGRC 3.10な環境で処理できて感動してます。
openSUSE Leap 16.0をインストール #8 ― 2025/12/04 15:47
Leap 16.0にバージョンアップしてから2ヶ月経ったが、調整作業が細々と続いてます。
- パッケージ更新はCockpitから不定期にマニュアル操作で実施するルーチンが身についた。
- ネットワーク管理ツールをwickedからNetworkManagerに切り替えた。CockpitからもGUIで操作できるようになった。
- IMEはkkcからAnthyに乗り換えた。中点の入力に難儀したので。
- php-fpmが不定期に停止すると思ったら、自動起動の有効化を忘れてた💦。
本日の衛星: ArcticSat-1のSSTVを受像。
最近のコメント