התקנה אוטומטית

השיטה האוטומטית: סקריפט אחד מהאזור האישי מכין את כל השרת (מחסנית ווב Apache + PHP, מסד נתונים, כלי אבטחה, cron). לאחר מכן — פריסת הפאנל, הנפקת SSL והזנת הרישיון. עובד על Ubuntu/Debian: על VPS חדש מגדיר הכול מאפס, ועל שרת שכבר מוגדר — רק תוספות (פרופיל “שרת מוגדר”, שלב 01). כל הפקודות שלהלן — לפי הסדר, פשוט גללו מלמעלה למטה.

ערכי מציין־מקום בפקודות החליפו בשלכם: monitor.example.com — הדומיין שלכם; 203.0.113.10 — כתובת ה־IP האמיתית של השרת; /var/www/monitor — שורש הפאנל (היכן שנמצאים public/, assets/, config.php); סיסמת מסד הנתונים — בחרו משלכם.
הערכה המלאה (“הגנה מלאה”) מיועדת ל־VPS חדש. על Ubuntu/Debian נקייה היא מגדירה מערכת אבטחה מאפס — Fail2ban (jail.local), root-crontab, כללי UFW, קונפיג Apache. אם השרת כבר מוגדר (פאנל פעיל, אתרים, דואר, jail משלכם) — בחרו את הפרופיל “שרת מוגדר”: הוא מבצע רק שינויים תוספתיים ואינו נוגע בחומת האש, ב־Fail2ban, בדואר, ב־SSH וב־sysctl שלכם. בעת זיהוי פאנל אירוח הסקריפט עובר למצב זה בעצמו. לפני ההרצה הראשונה אפשר להפעיל הרצה יבשה (סימון באזור האישי) — היא תציג מה ייעשה, בלי לשנות דבר. על שרת פעיל, ליתר ביטחון, צרו תמונת מצב (snapshot).

01. פקודת ההגדרה האוטומטית מהאזור האישי

את הפקודה תמצאו באזור האישי שלכם my.arciveo.com ← מדור “הגדרת השרת” (זמין לאחר הפעלת Arcivéo Monitor). היא משויכת לחשבון שלכם ומכילה טוקן אישי.

הסקריפט מכין את השרת כולו: מחסנית ה-web ‏(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, עדכוני אבטחה אוטומטיים.
  • מוקלת — ל-VPS עם מעט זיכרון RAM: מערך בסיסי ללא רכיבים כבדים.
  • שרת מוגדר (פאנל אחסון) — לשרת שכבר פועל עם פאנל (HestiaCP וכדומה), אתרים ודואר: רק שינויים תוספתיים (התקנת כלים משלימה, cron, כללי sudo), בעוד חומת האש, Fail2ban, הדואר, SSH ו-sysctl נשארים כפי שהם. בשרת עם פאנל הסקריפט בוחר מצב זה בעצמו.
הרצה יבשה. באזור האישי אפשר לסמן “הרצה יבשה” — אז הפקודה רק תציג מה הסקריפט יתקין וישנה, ותסתיים מבלי לגעת בכלום. שימושי בשרת שכבר מוגדר: קודם הרצה יבשה, אחר כך הפעלה אמיתית ללא הסימון.

2) הריצו על השרת כ-root את הפקודה מהאזור האישי — היא נראית כך:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
שמרו את הפקודה בסוד — היא משויכת לחשבון שלכם. לקישור יש תוקף מוגבל; אם פג, לחצו באזור האישי על “קבל קישור חדש”.
לאחר ההגדרה האוטומטית שרת ה-web הוא 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

לאחר כמה דקות (לפעמים עד שעה) בדקו שהדומיין מצביע על השרת:

dig +short monitor.example.com # אמור להחזיר את ה-IP שלכם # או, אם אין dig: getent hosts monitor.example.com
אישור ה-SSL (שלב 06) מונפק רק לדומיין — לכן ה-DNS חייב להצביע על השרת לפני הנפקת האישור.

03. העלאת קבצי הפאנל

ההגדרה האוטומטית כבר יצרה את ספריית הפאנל /var/www/monitor והגדירה את אתר Apache (DocumentRoot לשורש הפאנל, PHP-FPM, AllowOverride עבור .htaccess). אין צורך ליצור בנפרד ספרייה ו-vhost — פשוט העלו את הקבצים והגדירו הרשאות.
קבצי הפאנל (ארכיון ההפצה) מורדים לאחר הרכישה באזור האישי my.arciveo.com“הורדות”. חלצו את הארכיון לפני ההעלאה לשרת.

העלו את תוכן ההפצה אל /var/www/monitor (כך שבתוכו יהיו public/, assets/, config.php וכו') — דרך SFTP/SCP (FileZilla / WinSCP) או בפקודת scp מהמחשב המקומי:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
כדי שהדומיין שלכם יירשם מיד ב-vhost (ServerName), מעבירים אותו לפקודת ההגדרה האוטומטית כבר בשלב 01: … | sudo bash -s -- monitor.example.com (או מציינים את הדומיין בשדה “דומיין הפאנל” באזור האישי). אם הדומיין לא הועבר — הפאנל עונה לכל מארח ולפי IP, ואת ServerName ירשום certbot בעת הנפקת SSL (שלב 06); אין צורך להתקין מחדש דבר.
הגדירו הרשאות לקבצים — זהו שלב חובה. אם העליתם תחת root או דרך SFTP, הקבצים שייכים ל-root, ושרת האינטרנט (www-data) לא יוכל לקרוא אותם — הפאנל ייפתח ריק או עם שגיאת 403 (ביומן: .htaccess unreadable / directory not executable). הפקודה למטה מתקנת זאת:
# מנרמלים את ההרשאות של כל שורש האתר: ספרייה שנוצרה על ידי root אינה נגישה # לשרת האינטרנט (www-data) — בלי זה הפאנל מחזיר עמוד ריק או 403. cd /var/www/monitor # את תיקיות העבודה יוצרים לפני chown — אחרת ספריות חדשות יישארו root:root # וב-chmod 750 שרת האינטרנט (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). בחרו באחת משתי האפשרויות.

אפשרות A — ACL עבור המשתמש שלכם בלבד (מומלץ). הרשאת כתיבה מקבלים רק אתם; שרת האינטרנט עדיין אינו יכול לדרוס את קוד הפאנל:

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. פשוטה יותר, אבל הרשאת כתיבה לקבצי הפאנל מקבל גם שרת האינטרנט: אם תימצא חולשה ב-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, והאות s במקום x פירושה ש-setgid מוגדר.

04. מסד נתונים

צרו מסד נתונים ומשתמש, ולאחר מכן ייבאו את הסכמה. את בלוק מסד הנתונים מדביקים לטרמינל במלואו (sudo mysql נכנס כ-root דרך unix-socket — סיסמת root אינה נדרשת). monitor_db ו-monitor_user הם שמות לדוגמה, ניתן להגדיר שמות משלכם; זכרו את שם מסד הנתונים, המשתמש והסיסמה — תזינו אותם ב-config.php בשלב הבא:

# 1. מסד נתונים. הסיסמה מוגדרת פעם אחת ב-DBPASS ומוצבת בכל השורות. # הבלוק מודבק לטרמינל במלואו; sudo mysql נכנס כ-root דרך unix-socket # (סיסמת 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.
אין צורך לייבא את הסכמה — הלוח יוצר בעצמו את הטבלאות ואת החשבון admin בכניסה הראשונה מהדפדפן (מתוך database/db.sql), אם מסד הנתונים ריק.
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/Jerusalem'); // אזור הזמן שלכם // --- זמן ההפעלה (session) --- define('SESSION_LIFETIME', 28800); // חוסר פעילות עד כניסה חוזרת, שנ' (28800 = 8 ש')

מה לשנות:

  • DB_NAME, DB_USER, DB_PASS — בדיוק אותם שם מסד, משתמש וסיסמה שהגדרתם ביצירת מסד הנתונים בשלב 04 (אם השארתם את הדוגמאות — monitor_db / monitor_user). את DB_HOST ו-DB_CHARSET אל תיגעו.
  • APP_URL — הכתובת המלאה של הפאנל עם https://, ללא לוכסן בסוף וללא www. חייבת להתאים לדומיין שעליו אתם מפעילים את הרישיון (שלב 07), אחרת המפתח יידחה.
  • TIMEZONE — אזור הזמן שלכם (רשימה — timedatectl list-timezones). משפיע רק על אופן הצגת התאריכים בפאנל; על זמן ההפעלה של משימות cron אינו משפיע (שם חל אזור הזמן של המערכת).
  • SESSION_LIFETIME — אחרי כמה שניות של חוסר פעילות הפאנל יבקש כניסה מחדש (ברירת מחדל 8 שעות). לדוגמה 3600 = שעה, 86400 = יממה.
  • בלוק רישום השגיאות (display_errors, log_errors, error_log) — השאירו כברירת מחדל.

שמרו את הקובץ (Ctrl+O, Enter, ואז Ctrl+X) והפעילו מחדש את PHP-FPM — אחרת בגלל OPcache השינויים לא יחולו:

sudo systemctl restart php*-fpm
config.php — קובץ סודי (מכיל את סיסמת המסד). הוא נמצא בשורש הפאנל, שהוא גם שורש האתר, אך מוגן: הרשאות 640 (נקבעו בשלב 03) ואיסור מפורש ב-.htaccess הראשי. אל תעלו אותו למאגרים ציבוריים ואל תעבירו אותו לתמיכה עם סיסמה אמיתית.
ניתוח מפורט של כל הפרמטרים — ב-FAQ: “הקובץ config.php — כל הגדרות הפאנל”.

06. הנפקת SSL (HTTPS)

הפאנל פועל רק דרך HTTPS. סשן ההתחברות משתמש בעוגייה מאובטחת, ו-WebAuthn (2FA) פועל לפי התקן רק ב-HTTPS. דרך http:// לא תוכל להתחבר.

certbot והתוסף ל-Apache כבר הותקנו על ידי ההגדרה האוטומטית. ה-DNS של הדומיין כבר אמור להצביע לשרת (שלב 02). הנפקה בפקודה אחת:

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” ← רשמו מפתח/passkey (דורש HTTPS). רשמו מיד שניים: אם המפתח היחיד יאבד, לא ניתן יהיה להיכנס באמצעותו. פרטים נוספים.
  3. הגבילו גישה לפי IP — “הגדרות” ← “הגבלת גישה לפי IP” (הזינו את כתובת ה-IP שלכם לפני ההפעלה, אחרת תחסמו לעצמכם את הגישה).
  4. הזינו רישיון — קוד ההפעלה ARCIVEO-… מהאזור האישי, הפעילו אותו לדומיין שלכם והדביקו את המפתח ב“הגדרות” ← “רישיון”. פרטים נוספים.
  5. הגדירו התראות — Telegram ו/או דוא"ל ב“הגדרות”. פרטים נוספים.
  6. מחקו את תוכנת ההתקנה public/start_db.php, אם היא נותרה: היא מאפשרת לשחזר את מסד הנתונים ללא הרשאה. כל עוד הקובץ נמצא בשורש הפאנל או ב-public/, הפאנל מזהיר עליו בבאנר אדום.
מוכן. כלי האבטחה כבר פועלים — הדאשבורד יציג מיד את הסטטוס שלהם ואת ציון האבטחה. מדריך לכל כלי — בFAQ.
Arcivéo - Security Monitor © 2026