第4章:既存データ・設定の移行

D-Spec: CentOS 6 (PostfixAdmin) からの遷都と最難関のコンバート記録

4.1 異なるOS間を繋ぐSSH規律(暗号の壁の突破)

CentOS 6 の古い OpenSSH は、現代の Ubuntu 24.04 の厳格な規律では通信すら拒絶される。遷都を成功させるため、一時的に RSA 署名を許可せよ。これはデータ取得のための「妥協」ではなく、継承のための「道」である。

# Ubuntu 24.04 側で執行
echo "PubkeyAcceptedAlgorithms +ssh-rsa" | sudo tee -a /etc/ssh/sshd_config
echo "HostKeyAlgorithms +ssh-rsa" | sudo tee -a /etc/ssh/sshd_config
sudo systemctl restart ssh
            

これにより、旧サーバー(CentOS 6 / 192.168.200.228等)への SSH 接続が可能となる。

4.2 PostfixAdmin データの論理抽出

旧環境の mailbox, alias, domain テーブルこそが、我々が守るべき魂である。これらを SQL として抽出し、新世界(Ubuntu)へ送り出す。

# CentOS 6 側で執行
mysqldump -u root -p [POSTFIX_DB] domain alias mailbox --skip-extended-insert > /root/pfa_data.sql
scp /root/pfa_data.sql ymatsuki@192.168.200.227:/tmp/
            

4.3 【核心】最難関:SQLコンバート規律の執行

単なる流し込みは死を意味する。PFA と ISPConfig の構造的断絶を埋めるため、主が解析の末に導き出したこの変換 SQL こそが聖典の核心である。MD5-CRYPT 認証の維持と、ディレクトリパスの結合規律を徹底せよ。

-- 1. PFA データを一時的に dbispconfig へ展開
mysql dbispconfig < /tmp/pfa_data.sql

-- 2. ドメイン情報の移送
INSERT IGNORE INTO mail_domain (server_id, domain, active, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other) 
SELECT 1, domain, 'y', 1, 1, 'riud', 'riud', '' FROM domain WHERE domain != 'ALL';

-- 3. 【最重要】メールユーザーの変換と MD5-CRYPT の継承
-- ユーザーがこれまでのパスワードでログインし続けられる唯一の方法
INSERT INTO mail_user (server_id, email, login, password, name, maildir, quota, homedir, uid, gid, postfix, access, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other) 
SELECT 1, username, username, CONCAT('{MD5-CRYPT}', password), name, CONCAT('/home/vmail/', maildir), (quota * 1024 * 1024), '/home/vmail', 5000, 5000, 'y', 'y', 1, 1, 'riud', 'riud', '' FROM mailbox;

-- 4. エイリアス(転送設定)の継承
INSERT INTO mail_forwarding (server_id, source, destination, type, active, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other) 
SELECT 1, address, goto, 'alias', 'y', 1, 1, 'riud', 'riud', '' FROM alias WHERE address != goto;
            

※ riud 権限をデータベースレベルで付与しない限り、ISPConfig UI 上での制御権は失われる。この 4 文字が自由の鍵である。