第3章:環境調整とISPConfig 3 インストール

3.1 sudo のパスワード省略設定(自動化)

以下のコマンドを実行し、ymatsuki ユーザーにパスワードなしの sudo 権限を付与せよ。

echo "ymatsuki ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/ymatsuki && sudo chmod 440 /etc/sudoers.d/ymatsuki

3.2 ISPConfig 3 のインストール

以下のコマンドを一括で実行せよ。

wget -O - https://get.ispconfig.org | sudo sh -s -- \
  --use-ftp-ports=40110-40210 \
  --use-php=5.6,7.0,7.1,7.2,7.3,7.4,8.1,8.2,8.3,8.4,8.5 \
  --monit \
  --unattended-upgrades
            

【警告】

3.2.1 【必須】PHP 8.3 互換性パッチの適用

Ubuntu 24.04 標準の PHP 8.3 環境では、ISPConfig 3.3.1p1 のフォーム保存処理に不備がある。日本語化や設定変更を行う前に、以下のパッチを必ず執行せよ。これを怠ると設定が保存されない。

sed -i "s/if(count($this->formDef\\[tabs\\]\\[$tab\\]\\[fields\\]) == 0)/if(empty($this->formDef\\[tabs\\]\\[$tab\\]\\[fields\\]))/g" /usr/local/ispconfig/interface/lib/classes/tform_base.inc.php\nsystemctl restart php8.3-fpm
インストール完了後、画面の最後に admin および MySQL root のパスワードが表示される。これを見逃すと後のログインやDB移行が不能になるため、確実に控えること。

3.3 管理画面への初回ログインと確認

インストールが正常に終了したら、ブラウザから管理コンソールへアクセスし、ログインを確認する。

3.4 管理コンソール(8080)のアクセス制限

上段F/Wに加え、サーバー自身でもプライベートIP(192.168.0.0/16)以外の接続を拒否する設定を行う。

1. UFWの設定

sudo ufw insert 1 allow from 192.168.0.0/16 to any port 8080 comment 'ISPConfig Local Only'

2. Apache設定の変更

ファイル: /etc/apache2/sites-available/ispconfig.vhost

<Directory /usr/local/ispconfig/interface/web>
    # ...既存設定...
    <RequireAny>
        Require ip 127.0.0.1
        Require ip 192.168.0.0/16
    </RequireAny>
</Directory>
            

注意: ISPConfigをアップデート(Reconfigure Services)すると、Apacheの .vhost ファイルは上書きされる場合がある。その際は再設定が必要だ。