自動インストール

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

3) 最後の出力をお読みください。お客様に残された作業がそこに書かれています。 スクリプトはチェックのブロックと「次はパネルのインストール」という一覧で処理を終えます。一部のステップはスクリプトが意図的に実行しません。何が残るかは、選んだプロファイルと、スクリプトがサーバー上で見つけた内容によって変わります。以下の一覧と照らし合わせ、ご自身の出力に現れた行に対応する項目だけを実行してください。

  • Control panel detected (…) — サイトはホスティングパネル自身の機能で作成するため、スクリプトは vhost を作りません。ステップ 03 の「ホスティングパネル付きサーバー」の分岐へ。
  • No vhost created (no domain given) — ドメインを指定しない「構築済みサーバー」プロファイルです。名前のない vhost は既定のサイトになり、お客様自身のサイトへのアクセスを横取りしてしまうため、作成されていません。ステップ 03 の「vhost を手動で作成」の分岐へ。
  • sudo rules NOT written — スクリプトは、パネルがどのアカウントで動作しているかを判別できませんでした。これはよくある状況です。パネルのファイルは自動設定より後にアップロードされるため、判別する材料がまだ無かったのです。このルールが無いと、モジュールはシステムデータを参照できません。ステップ 04 の「ウェブサーバー用の sudo」のブロックへ。
  • ! Nginx does not read .htaccess — Apache の前段に Nginx があり、その設定に拒否ルールを自動で書き込めませんでした。必ず対応してください。そうしないと data/、keys/、database/、config.php が .htaccess を迂回して外部へ公開されます。ステップ 03 の「Apache の前段に Nginx がある場合」のブロックへ。
  • UFW installed but inactive — ファイアウォールはインストール済みですが無効です。構築済みサーバーでは、お客様のアクセスを遮断しないよう、スクリプトは自動で有効化しません。ご自身の SSH ポートを必ず許可したうえで、手動で有効化してください:
    sudo ufw allow OpenSSH # 非標準の SSH ポートの場合: sudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp sudo ufw enable
  • Fail2ban installed but not running — 起動してください:sudo systemctl enable --now fail2ban。
  • Database server present … but not running — ステップ 04 の前に DBMS を起動してください:sudo systemctl enable --now mariadb(インストールされているものに応じて mysql)。
  • Certbot skipped — issue SSL in … — 証明書はホスティングパネルの Let's Encrypt のスイッチで発行します。ステップ 06 は不要です。
チェックのブロックがすべて問題なければ、最後の行は All checks passed になります。! の付いた項目は対応が必要です。詳細はログに記録され、そのパスはスクリプトが最後に出力します(Log: …)。

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. パネルのファイルをアップロード

通常のケース(新しい VPS)。 自動設定により、パネル用ディレクトリ /var/www/monitor はすでに作成済みで、Apache サイトも設定済みです(DocumentRoot はパネルのルート、PHP-FPM、.htaccess 用の AllowOverride)。スクリプトの出力では vhost … → DocumentRoot … の行がこれにあたります。ディレクトリや vhost を別途作成する必要はありません。ファイルをアップロードして権限を設定するだけです。
vhost が作成されない 2 つのケースがあり、その場合スクリプトは実行の最後にはっきりと知らせます。まず該当する分岐を実行し、そのうえでファイルをアップロードしてください。

分岐「ホスティングパネル付きサーバー」(出力:Control panel detected (…))。このようなサーバーではサイトをパネルが管理するため、スクリプトは独自の vhost を意図的に作成しません。パネルが設定を再生成した最初のタイミングで上書きされてしまうからです。手順は次のとおりです:

  1. ホスティングパネル(HestiaCP など)でウェブドメインを作成してください。その DocumentRoot はそのままにします。
  2. 配布物をまるごとそのドメインの public_html へアップロードします。index.php、api/、assets/ と並んで、内部用の config.php、includes/、data/、tmp/、logs/、keys/、cron/、database/ も置く必要があります。ウェブルートより上へ出す必要はありません。内部用フォルダーは配布物の .htaccess で保護され、Nginx 配下ではスクリプトがドメインの設定に書き込んだ拒否ルールで保護されます。
  3. SSL はパネル自身の Let's Encrypt のスイッチで発行します — ステップ 06 は省略してください。
  4. 続いて権限(このステップの後半)、データベース(ステップ 04)、config.php(ステップ 05)です。コマンド内のパスは /home/アカウント/web/ドメイン/public_html に、所有者は www-data ではなくそのドメインのユーザーに置き換えてください。

分岐「vhost を手動で作成」(出力:No vhost created (no domain given))。これは「構築済みサーバー」プロファイルでドメインを渡さなかった場合にのみ起こります。もっとも簡単なのは、ドメインを指定してアカウントのコマンドを再実行することです:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo bash -s -- monitor.example.com

再実行は安全です。すでに完了している処理が重複することはありません。vhost を手作業で作成したい場合は、インストーラーが書き込むものと同じ設定を以下に示します:

sudo mkdir -p /var/www/monitor # PHP-FPM のソケットは自動判別する。サーバーごとに PHP のバージョンが異なるため。 PHPSOCK=$(ls -1 /run/php/php*-fpm.sock 2>/dev/null | head -1) sudo tee /etc/apache2/sites-available/arciveo-monitor.conf > /dev/null <<'EOF' <VirtualHost *:80> ServerName monitor.example.com DocumentRoot /var/www/monitor <Directory /var/www/monitor> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory> <FilesMatch "\.php$"> SetHandler "proxy:unix:__PHPSOCK__|fcgi://localhost" </FilesMatch> ErrorLog ${APACHE_LOG_DIR}/arciveo-monitor_error.log CustomLog ${APACHE_LOG_DIR}/arciveo-monitor_requests.log combined </VirtualHost> EOF sudo sed -i "s#__PHPSOCK__#${PHPSOCK}#" /etc/apache2/sites-available/arciveo-monitor.conf sudo a2ensite arciveo-monitor.conf sudo apache2ctl configtest sudo systemctl reload apache2
ここでの ServerName は必須です。名前のない vhost は Apache の既定サイトになり、同じサーバー上の他のドメイン宛のリクエストにも応答し始めます。同じ理由から、構築済みサーバーでは 000-default.conf を無効化しないでください。このサイトは誰かの稼働中のサイト用に作り替えられている可能性があります。新しい VPS ではインストーラーが自動で無効化しますが、ここではその必要はありません。
Apache の前段に Nginx がある場合(出力:! Nginx does not read .htaccess)。Nginx は静的ファイルをディスクから直接返し、.htaccess を読みません。そのため Apache は正しく保護していても、内部用フォルダーが外部へ公開されてしまいます。スクリプトが拒否ルールのファイルをあらかじめ用意していますので、ご自身のサイトの server{} ブロックで読み込み、Nginx を再読み込みしてください:
include /etc/nginx/snippets/arciveo-deny.conf;
sudo nginx -t && sudo systemctl reload nginx # 確認: ファイルの中身ではなく 403 が返るはず curl -sI https://monitor.example.com/config.php | head -1
パネルのファイル(配布アーカイブ)は、購入後にアカウント 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_DENIED(Permission 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_db と monitor_user は例の名前で、任意に設定できます。データベース名・ユーザー・パスワードは控えておき、次のステップで config.php に記入します:

# 1. データベース。データベース名・ユーザー・パスワードは下で一度だけ設定し、全行に反映されます。 # ブロックはターミナルにまるごと貼り付けます。sudo mysql はunixソケットでrootログイン # (rootのパスワードは不要)。対話的な `sudo mysql -u root -p` をコピペで使わないでください # — 貼り付け時にSQL行がパスワード入力へ流れて消えてしまいます。 DBNAME='monitor_db' # ← データベース名、そのままで可 DBUSER='monitor_user' # ← データベースユーザー、そのままで可 DBPASS='CHOOSE_A_PASSWORD' # ← パスワード、独自のものを設定 sudo mysql <<SQL CREATE DATABASE IF NOT EXISTS $DBNAME CHARACTER SET utf8mb4; CREATE USER IF NOT EXISTS '$DBUSER'@'localhost' IDENTIFIED BY '$DBPASS'; GRANT ALL ON $DBNAME.* TO '$DBUSER'@'localhost'; FLUSH PRIVILEGES; SQL # 確認($DBNAME が表示されるはずです): mysql -u "$DBUSER" -p"$DBPASS" -e "SHOW DATABASES;" # この3つの値を config.php → DB_NAME, DB_USER, DB_PASS に記入します。
通常、スキーマのインポートは不要です — データベースが空の場合、ブラウザで初回アクセスした際にパネルがテーブルと admin アカウントを自動作成します(database/db.sql から)。

テーブルが作成されなかった場合(パネルが DB 接続エラーを表示する、またはログインフォームの代わりに空白の画面になる)は、スキーマを手動でインポートしてください。コマンドはパネルのルートで実行し、値は上のブロックのものを使います:

# スキーマのインポート: cd /var/www/monitor && mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" < database/db.sql # 確認 — テーブルの一覧が表示されるはず: mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" -e "SHOW TABLES;"
変数 $DBNAME / $DBUSER / $DBPASS がすでに失われている場合(ターミナルのセッションが新しくなった場合)は、値をコマンドに直接書くか、上のブロックの同じ 3 行でもう一度設定してください。
ウェブサーバー用の sudo。 通常はルールが自動設定によってすでに書き込まれており、モジュールはすぐにシステムデータを参照できます。ただしスクリプトの出力に sudo rules NOT written の行があった場合は、パネルのアカウントを判別する材料が無く(ファイルがまだアップロードされていないため)、ルールが作成されていません。ルールが無いと、ファイアウォール、Fail2ban、CrowdSec などのセクションは空のままになります。ファイルが配置された今、アカウントを明示してアカウントのコマンドをもう一度実行してください:
curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo ARCIVEO_USER=www-data bash -s -- monitor.example.com
www-data は、ご自身のサイトの PHP が動作しているユーザーに置き換えてください(ホスティングパネルでは通常そのドメインの所有者です)。次のコマンドで確認できます:
ps -o user= -C php-fpm8.3 | sort -u # バージョンはご自身のものに置き換えてください # または: ps aux | grep -m3 '[p]hp-fpm'
再実行後の確認:/etc/sudoers.d/monitor が存在し、その中にご自身のユーザーを含む行があること。

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

ファイルを保存し(Ctrl+O、Enter、続けて 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 skipped — issue SSL in …)。証明書はパネル内のウェブドメインにある Let's Encrypt のスイッチで発行します。更新もパネルが行います。

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

sudo certbot --apache -d monitor.example.com

パネルを www. 付きでも開けるようにする場合は、両方の名前を 1 つのコマンドに列挙してください。そうしないと、もう一方のアドレスでブラウザが証明書の警告を表示します:

sudo certbot --apache -d monitor.example.com -d www.monitor.example.com
2 つ目の名前を追加するのは、そちらにもこのサーバーを指す A レコードがある場合だけにしてください(ステップ 02)。そうでないと Let's Encrypt が確認できず、メインのドメインを含めて証明書がまったく発行されません。
certbotが尋ねる内容:
  1. Enter email address — あなたのメールアドレス(証明書の期限切れ通知がここに届きます)。
  2. Terms of Service … (Y)es/(N)o — Y。
  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/ にある間、パネルは赤いバナーで警告します。
  7. 最初のチェックを手動で実行 — そうしないと、夜間まで一部のセクションが空のままになります(下のブロックを参照)。
「Lynis 監査」と「Logwatch」が最初は空である理由。 自動設定はツールをインストールし cron ジョブを登録しましたが、チェック自体は実行していません。実行はスケジュールに従います:Lynis は 03:00、Logwatch は 06:00、debsums は 04:30、ClamAV は 01:30。それまでは、レポートがまだ無いことがそのまま表示されます。1 日待たずに済ませるには、次のコマンドで一度だけ手動実行してください:
# Lynis 監査 — 最初のレポート(数分かかります): sudo /usr/local/bin/lynis-scan.sh # 24 時間分の Logwatch レポート: sudo /usr/local/bin/logwatch_daily.sh # パッケージの整合性(debsums)— 大きなサーバーでは時間がかかります: sudo /usr/local/bin/debsums-scan.sh
Lynis はパネルから直接実行することもできます — 「Lynis 監査」ページの「監査を実行」ボタンです。同じスクリプトをバックグラウンドで実行し、レポートも自動で更新します。以降はスケジュールどおりに進むため、手動での実行は不要です。
最初のウイルススキャン(sudo /usr/local/bin/clamav-scan.sh)はディスクと CPU に大きな負荷をかけ、1 時間以上かかることもあります。稼働中のサーバーでは 01:30 の夜間実行を待つほうがよいでしょう。「ディスク(SMART)」「パフォーマンス」「セキュリティ更新」の各セクションは自動的に埋まります。それぞれ 30 分ごと、5 分ごと、1 時間ごとです。
完了です。各ツールのリファレンスは FAQ にあります。
このサーバーで独自ドメインのサイトをもう1つ運用したい場合は FAQ をご覧ください: 「このサーバーに2つ目のサイト(もう1つのドメイン)」。