自動インストール

自動インストール方法:アカウントから取得したスクリプト1本でサーバー全体を準備します (Apache + PHP のウェブスタック、データベース、セキュリティツール、cron)。あとは パネルを配置し、SSL を発行してライセンスを入力するだけです。Ubuntu/Debian で動作します。新しい VPS ではすべてをゼロから構築し、構築済みのサーバーでは追加のみを行います(プロファイル「構築済みサーバー」、ステップ 01)。 以下のコマンドはすべて順番どおりです。上から下へ読み進めてください。

コマンド内のプレースホルダー値はご自身のものに置き換えてください:monitor.example.com はあなたのドメイン、203.0.113.10 はサーバーの実際の IP、/var/www/monitor はパネルのルート(public/assets/config.php が置かれる場所)です。DB のパスワードはご自身で決めてください。
フルセット(「フル保護」)は新しい VPS 向けです。 まっさらな Ubuntu/Debian では、セキュリティシステムをゼロから構築します — Fail2ban(jail.local)、root の crontab、UFW ルール、Apache 設定。サーバーがすでに構築済みの場合(稼働中のパネル、サイト、メール、独自の jail)は、プロファイル「構築済みサーバー」を選んでください。追加的な変更のみを行い、ファイアウォール、Fail2ban、メール、SSH、sysctl には手を加えません。ホスティングパネルを検出すると、スクリプトは自動的にこのモードへ切り替わります。初回実行の前にドライラン(アカウントのチェックボックス)を有効にできます。何も変更せずに、実行される内容を表示します。稼働中のサーバーでは念のためスナップショット(snapshot)を取得してください。

01. アカウントからの自動設定コマンド

コマンドはご自身のアカウント my.arciveo.com「サーバー設定」セクション(Arcivéo Monitor のお申し込み後に利用可能)で取得します。コマンドはお客様のアカウントに紐づき、個人用トークンを含みます。

このスクリプトはサーバー全体を準備します。ウェブスタック(Apache + PHP)、データベース、SSL 用ツール、保護ツール一式および cron ジョブ(Lynis、SMART、debsums、Logwatch、日次レポート、ipsum の更新)。

1) 保護レベルを選択(コマンドをコピーする前に、アカウントで):

  • フル保護(推奨)— UFW(ファイアウォール)、Fail2ban、CrowdSec + bouncer、ipsum(IP ブロックリスト)、Suricata(IDS/IPS)、Falco、ModSecurity + OWASP CRS(WAF)、PSAD、mod_evasive(アンチ DoS)、AIDE(ファイル整合性)、debsums、ClamAV + maldet(アンチウイルス)、Auditd、AppArmor、Monit、Lynis(監査)、Logwatch、セキュリティ自動更新。
  • 軽量版 — RAM の少ない VPS 向け:重いコンポーネントを除いた基本セット。
  • 設定済みサーバー(ホスティングパネル) — パネル(HestiaCP など)、サイト、メールがすでに稼働中のサーバー向け:追加的な変更のみ(ツールの追加インストール、cron、sudo ルール)で、ファイアウォール、Fail2ban、メール、SSH、sysctl はそのまま維持されます。パネル付きサーバーではスクリプトが自動でこのモードを選びます。
ドライラン。アカウントで「ドライラン」にチェックを入れると、コマンドはスクリプトがインストール・変更する内容を表示するだけで、何も変更せずに終了します。設定済みサーバーで便利です:まずドライラン、次にチェックを外して実際に実行。

2) サーバー上で root として実行してください。アカウントのコマンドは次のようになります:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
コマンドは秘密にしてください — お客様のアカウントに紐づいています。リンクには有効期限があります。期限切れの場合は、アカウントで「新しいリンクを取得」をクリックしてください。
自動設定後、ウェブサーバーは Apache + PHP-FPM になり、セキュリティツールと cron ジョブはすでにインストール済みで「そのまま」動作します — 追加の設定は不要です。

02. ドメインとDNS

パネルを monitor.example.com のようなアドレスで開き、無料のSSLを取得するには、ドメインがサーバーを指している必要があります。DNS管理パネル(レジストラまたはホスティング事業者)でAレコードを作成してください:

タイプ: A 名前: monitor (サブドメイン → monitor.example.com) または @ (ドメインのルート → example.com) 値: 203.0.113.10 ← サーバーのIP TTL: 3600

数分後(場合によっては1時間ほど)に、ドメインがサーバーを指しているか確認してください:

dig +short monitor.example.com # あなたのIPが返るはずです # または、dig がない場合: getent hosts monitor.example.com
SSL証明書(ステップ06)はドメインに対してのみ発行されます。そのため証明書の発行にDNSがサーバーを指している必要があります。

03. パネルのファイルをアップロード

自動設定により、パネル用ディレクトリ /var/www/monitorすでに作成済みで、Apache サイトも設定済みです(DocumentRoot はパネルのルート、PHP-FPM、.htaccess 用の AllowOverride)。ディレクトリや vhost を別途作成する必要はありません。ファイルをアップロードして権限を設定するだけです。
パネルのファイル(配布アーカイブ)は、購入後にアカウント my.arciveo.com「ダウンロード」から取得できます。サーバーへアップロードする前にアーカイブを展開してください。

配布物の中身をアップロードしてください。展開先は /var/www/monitor(内部に public/assets/config.php などが入るように)。SFTP/SCP(FileZilla / WinSCP)またはローカル PC からの scp コマンドを使います:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
vhost にご利用のドメイン(ServerName)をすぐ反映させるには、ステップ 01 の時点で自動設定コマンドに渡します: … | sudo bash -s -- monitor.example.com(またはアカウントの「パネルのドメイン」欄で指定)。ドメインを渡さなかった場合、パネルは任意のホストおよび IP で応答し、ServerName は SSL 発行時(ステップ 06)に certbot が書き込みます。再インストールは不要です。
ファイルの権限を設定してください。これは必須の手順です。 root でアップロードしたり SFTP を使った場合、ファイルの所有者は root となり、Web サーバー(www-data)が読み取れず、パネルは空白または 403 エラーになります(ログ: .htaccess unreadable / directory not executable)。以下のコマンドで修正できます:
# ウェブルート全体の権限を正常化する: root が作成したディレクトリは # Web サーバー(www-data)からアクセスできず、これがないとパネルは空白ページか 403 を返す。 cd /var/www/monitor # 作業用フォルダは chown の前に作成する。さもないと新しいディレクトリが root:root のままとなり、 # chmod 750 では Web サーバー(www-data)が書き込めなくなる。 sudo mkdir -p data/lynis data/logwatch tmp logs sudo chown -R www-data:www-data /var/www/monitor sudo find /var/www/monitor -type d -exec chmod 755 {} \; sudo find /var/www/monitor -type f -exec chmod 644 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 750 data tmp logs

SFTP でのアップロードを自分に開放してください。 上のコマンドの後はすべてのファイルが www-data の所有になりますが、FileZilla / WinSCP はご自身のユーザーで接続するため、アップロードは SSH_FX_PERMISSION_DENIEDPermission denied)で失敗します。次の 2 つの方法のどちらかを選んでください。

方法 A — 自分のユーザーだけに ACL を付与(推奨)。 書き込み権限を得るのはご自身だけで、Web サーバーは引き続きパネルのコードを上書きできません:

sudo apt install -y acl # パネルのディレクトリ全体に対する、自分のユーザーへの書き込み権限: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # 同じルールを既定値として — あとから作成されるファイルとフォルダー用: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

方法 B — www-data グループ経由。 より簡単ですが、パネルのファイルへの書き込み権限は Web サーバーにも渡ります。PHP に脆弱性があればコードを差し替えられてしまいます。コマンドの順序は重要です — config.php と作業フォルダーは最後に閉じます:

sudo usermod -aG www-data deploy # グループへの書き込み権限 + setgid(ビット 2): SFTP でアップロードした # ファイルは www-data グループに残ります。さもないとパネルが上書きできません。 sudo find /var/www/monitor -type d -exec chmod 2775 {} \; sudo find /var/www/monitor -type f -exec chmod 664 {} \; sudo chmod 640 /var/www/monitor/config.php sudo chmod 2750 /var/www/monitor/data /var/www/monitor/tmp /var/www/monitor/logs
方法 B の後は FileZilla で接続し直してください(サーバー → 切断、その後もう一度ログイン)。新しいグループは新規ログイン時にしか反映されず、それまでは権限がないままです。確認: id deploy — グループ一覧に www-data が表示されるはずです。ls -ld /var/www/monitor — 権限は drwxrwsr-x で、x の代わりの s は setgid が設定されていることを示します。

04. データベース

データベースとユーザーを作成し、スキーマをインポートします。DBブロックはまるごとターミナルに貼り付けます(sudo mysql はunixソケットでrootログインするため、rootのパスワードは不要です)。monitor_dbmonitor_user は例の名前で、任意に設定できます。データベース名・ユーザー・パスワードは控えておき、次のステップで config.php に記入します:

# 1. データベース。パスワードはDBPASSで一度だけ設定し、全行に差し込まれます。 # ブロックはターミナルにまるごと貼り付けます。sudo mysql はunixソケットでrootログイン # (rootのパスワードは不要)。対話的な `sudo mysql -u root -p` をコピペで使わないでください # — 貼り付け時にSQL行がパスワード入力へ流れて消えてしまいます。 DBPASS='CHOOSE_A_PASSWORD' # ← この行だけ変更してください sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS monitor_db CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS 'monitor_user'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON monitor_db.* TO 'monitor_user'@'localhost'; FLUSH PRIVILEGES; SQL # 確認(monitor_db が表示されるはずです): mysql -u monitor_user -p"$DBPASS" -e "SHOW DATABASES;" # この同じパスワードを config.php → DB_PASS に記入してください。
スキーマのインポートは不要です — BDが空の場合、ブラウザで初回アクセスした際にパネルがテーブルと admin アカウントを自動作成します(database/db.sql から)。
Webサーバー用のsudo は自動設定で既に構成済みで、モジュールはすぐにシステムデータを参照できます。sudoを個別に設定する必要があるのは、PHPが標準外のユーザー(www-data 以外)で動作している場合だけです。

05. config.php の設定

パネルのルートにある config.php/var/www/monitor/config.php)は、手動で編集する必要がある唯一のファイルです。パネルのすべての設定は define() 定数として記述されています。エディタで開いてください:

sudo nano /var/www/monitor/config.php

ハイライトされた箇所を自分の値に置き換えてください。それ以外はそのままにします:

// --- データベース(ステップ 04 より) --- define('DB_HOST', 'localhost'); // そのまま define('DB_NAME', 'db_name'); // ステップ 04 で作成したもの define('DB_USER', 'user'); // ステップ 04 で作成したもの define('DB_PASS', 'db_password'); // ステップ 04 で設定したもの define('DB_CHARSET', 'utf8mb4'); // そのまま // --- アプリケーション --- define('APP_URL', 'https://monitor.example.com'); // パネルのアドレス、末尾のスラッシュなし define('TIMEZONE', 'Asia/Tokyo'); // あなたのタイムゾーン // --- セッション時間 --- define('SESSION_LIFETIME', 28800); // 再ログインまでの無操作時間、秒(28800 = 8時間)

変更する項目:

  • DB_NAMEDB_USERDB_PASS — ステップ 04 でDBを作成した際に設定したデータベース名、ユーザー、パスワードと全く同じもの(例をそのまま使った場合は monitor_db / monitor_user)。DB_HOSTDB_CHARSET は触れないでください。
  • APP_URLhttps:// を含むパネルの完全なアドレス。末尾のスラッシュなしwww もなし。ライセンスを有効化するドメイン(ステップ 07)と一致している必要があります。一致しないとキーが拒否されます。
  • TIMEZONE — あなたのタイムゾーン(一覧は timedatectl list-timezones)。パネルの日付表示にのみ影響します。cron ジョブの実行時刻には影響しません(そちらはシステムのタイムゾーンに従います)。
  • SESSION_LIFETIME — 何秒間無操作でパネルが再ログインを求めるか(デフォルトは 8 時間)。例: 3600 = 1時間、86400 = 1日。
  • エラーログのブロック(display_errorslog_errorserror_log)はデフォルトのままにしてください。

ファイルを保存し(Ctrl+OEnter、続けて Ctrl+X)、PHP-FPM を再起動してください。そうしないと OPcache のせいで変更が反映されません:

sudo systemctl restart php*-fpm
config.php は機密ファイルです(DBのパスワードが入っています)。ウェブルートでもあるパネルのルートに置かれていますが、保護されています: 権限は 640(ステップ 03 で設定)で、ルートの .htaccess で明示的に拒否されています。公開リポジトリに載せたり、実際のパスワードを含めてサポートに送ったりしないでください。
全パラメータの詳しい解説は FAQ にあります: 「config.php ファイル — パネルの全設定」

06. SSL(HTTPS)を発行

ダッシュボードはHTTPS専用です。 ログインセッションはセキュアなcookieを使用し、WebAuthn(2FA)は仕様上HTTPSでのみ動作します。http:// ではログインできません。

certbot とApache用プラグインは自動セットアップで既にインストール済みです。ドメインのDNSは既にサーバーを指している必要があります(ステップ02)。発行は1コマンドで完了します:

sudo certbot --apache -d monitor.example.com
certbotが尋ねる内容:
  1. Enter email address — あなたのメールアドレス(証明書の期限切れ通知がここに届きます)。
  2. Terms of Service … (Y)es/(N)oY
  3. Share email with the EFF … (Y)es/(N)o — お好みで。
この後、certbotが自動で証明書を発行し、<VirtualHost *:443> を記述し、http→https のリダイレクトと自動更新を設定します。最後に Successfully enabled HTTPS と表示されます。
発行に失敗する場合は、dig +short monitor.example.com がサーバーのIPアドレスを返すこと、ポート80/443が開いていること(sudo ufw allow 80,443/tcp)を確認してください。

発行後: https://monitor.example.com が鍵マーク付きで開き、http://https:// にリダイレクトされます。

07. ログインと初期設定

https://monitor.example.com を開き、admin / useradmin でログインしてチェックリストを進めます:

  1. admin のパスワードを変更 — メニューの「ユーザー」セクション。
  2. WebAuthn(2FA)を有効化 — 「WebAuthn キー」→ キー/パスキーを登録(HTTPS が必要)。すぐに2つ登録してください。唯一のキーを紛失するとそのキーでのログインができなくなります。詳細
  3. IP でアクセスを制限 — 「設定」→「IP によるアクセス制限」(有効化する前に自分の IP を入力してください。さもないと自分のアクセスを遮断します)。
  4. ライセンスを入力 — アカウントの有効化コード ARCIVEO-… を自分のドメインで有効化し、キーを「設定」→「ライセンス」に貼り付けます。詳細
  5. 通知を設定 — 「設定」で Telegram および/または Email を設定。詳細
  6. インストーラーを削除 public/start_db.php が残っている場合:認証なしでデータベースを再作成できてしまいます。ファイルがパネルのルートまたは public/ にある間、パネルは赤いバナーで警告します。
完了です。セキュリティツールはすでに稼働中です — ダッシュボードにそのステータスとセキュリティ評価がすぐに表示されます。各ツールのリファレンスは FAQ にあります。
Arcivéo - Security Monitor © 2026