Automatikus telepítés

Automatikus módszer: a fiókból elérhető egyetlen szkript előkészíti az egész szervert (Apache + PHP webes réteg, adatbázis, biztonsági eszközök, cron). Ezután már csak telepíteni kell a panelt, kiállítani az SSL-t és megadni a licencet. Működik Ubuntu/Debian alatt: friss VPS-en mindent a nulláról állít be, egy már beállított szerveren pedig csak kiegészítő módon (a „Beállított szerver” profil, 01. lépés). Az alábbi parancsok sorrendben követik egymást, csak lapozzon fentről lefelé. Friss VPS-en minden lépés sorban alkalmazható; ha a szerver már be van állítva, vagy hosztingpanel van rajta, a munka egy részét a szkript szándékosan Önre hagyja — hogy pontosan mit, azt a futása végén kiírja (a kimenet értelmezése a 01. lépésben található).

A parancsokban szereplő helykitöltő értékeket cserélje a sajátjaira: monitor.example.com — az Ön domainje; 203.0.113.10 — a szerver valódi IP-címe; /var/www/monitor — a panel gyökere (ahol a public/, assets/, config.php található); az adatbázis jelszavát találja ki saját maga.
A teljes csomag („Teljes védelem”) friss VPS-re készült. Tiszta Ubuntu/Debian rendszeren a nulláról állítja be a biztonsági rendszert — Fail2ban (jail.local), root-crontab, UFW-szabályok, Apache-konfiguráció. Ha a szerver már be van állítva (működő panel, weboldalak, levelezés, saját jailek) — válassza a „Beállított szerver” profilt: ez csak kiegészítő módosításokat végez, és nem nyúl az Ön tűzfalához, a Fail2banhez, a levelezéshez, az SSH-hoz és a sysctl-hez. Hosztingpanel észlelése esetén a szkript magától erre a módra vált. Az első futtatás előtt bekapcsolhatja a szárazpróbát (jelölőnégyzet a fiókban) — ez megmutatja, mi történne, anélkül hogy bármit megváltoztatna. Éles szerveren a biztonság kedvéért készítsen pillanatképet (snapshot).

01. Automatikus beállítási parancs a fiókból

A parancsot a saját fiókjában találja: my.arciveo.com → „Szerver beállítása” szakasz (az Arcivéo Security Monitor megrendelése után érhető el). A fiókjához van kötve, és személyes tokent tartalmaz.

A szkript az egész szervert előkészíti: webes réteg (Apache + PHP), adatbázis, SSL-eszközök, a teljes védelmi eszközkészlet és a cron-feladatok (Lynis, SMART, debsums, Logwatch, napi jelentés, ipsum frissítése).

1) Válassza ki a védelmi szintet (a fiókban, a parancs másolása előtt):

  • Teljes védelem (ajánlott) — UFW (tűzfal), Fail2ban, CrowdSec + bouncer, ipsum (IP-tiltólista), Suricata (IDS/IPS), Falco, ModSecurity + OWASP CRS (WAF), PSAD, mod_evasive (DoS-védelem), AIDE (fájlintegritás), debsums, ClamAV + maldet (vírusirtó), Auditd, AppArmor, Monit, Lynis (audit), Logwatch, automatikus biztonsági frissítések.
  • Könnyített — kevés RAM-mal rendelkező VPS-ekhez: alapkészlet a nehéz komponensek nélkül.
  • Beállított szerver (hosting-panel) — már működő, panellel (HestiaCP stb.), webhelyekkel és levelezéssel rendelkező szerverhez: csak hozzáadó jellegű módosítások (eszközök utólagos telepítése, cron, sudo-szabályok), a tűzfal, a Fail2ban, a levelezés, az SSH és a sysctl változatlan marad. Panellel rendelkező szerveren a szkript magától ezt a módot választja.
Száraz futtatás. A fiókban bejelölheti a „Száraz futtatás” lehetőséget — ekkor a parancs csak megmutatja, mit telepítene és módosítana a szkript, majd befejeződik anélkül, hogy bármihez hozzányúlna. Már beállított szerveren hasznos: előbb próbafuttatás, majd valódi indítás jelölés nélkül.

2) Futtassa a szerveren root alatt a fiókból származó parancsot — így néz ki:

curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN" | sudo bash
A parancsot tartsa titokban — a fiókjához van kötve. A hivatkozás érvényessége korlátozott; ha lejárt, kattintson a fiókban az „Új hivatkozás kérése” gombra.
Az automatikus beállítás után a webszerver Apache + PHP-FPM, a biztonsági eszközök és a cron-feladatok pedig már telepítve vannak, és „dobozból” működnek.

3) Olvassa el a kimenetet a végén — ott áll, mi maradt Önre. A szkript egy ellenőrzési blokkal és a „Következő lépés — a panel telepítése” listával zárja a munkát. Egyes lépéseket szándékosan nem végez el: hogy pontosan melyeket, az a választott profiltól és attól függ, mit talált a szerveren. Vesse össze az alábbi listával — csak azokat a pontokat kell elvégeznie, amelyek sorai megjelentek az Ön kimenetében.

  • Control panel detected (…) — a webhely magának a hosztingpanelnek az eszközeivel jön létre, vhostot a szkript nem hoz létre. 03. lépés, „Hosztingpanellel rendelkező szerver” ág.
  • No vhost created (no domain given) — a „Beállított szerver” profil domain nélkül: a név nélküli vhost alapértelmezett webhellyé válna, és elfogná az Ön saját webhelyeit, ezért nem jött létre. 03. lépés, „Vhost létrehozása kézzel” ág.
  • sudo rules NOT written — a szkript nem tudta megállapítani, melyik fiók alatt fut a panel. Ez szokásos helyzet: a panel fájljai már az automatikus beállítás után kerülnek fel, így még nem volt miből meghatározni. E szabályok nélkül a modulok nem látják a rendszeradatokat. 04. lépés, „A webszerver sudo-ja” blokk.
  • ! Nginx does not read .htaccess — az Apache előtt Nginx áll, és a tiltás beírása annak konfigurációjába automatikusan nem sikerült. Ezt mindenképpen végezze el: különben a data/, keys/, database/ és a config.php a .htaccess megkerülésével kifelé is elérhető lesz. 03. lépés, „Ha az Apache előtt Nginx áll” blokk.
  • UFW installed but inactive — a tűzfal telepítve van, de ki van kapcsolva: beállított szerveren a szkript nem kapcsolja be magától, nehogy elvágja Öntől a hozzáférést. Kapcsolja be saját maga, mindenképpen engedélyezve a saját SSH-portját:
    sudo ufw allow OpenSSH # nem szokványos SSH-port: sudo ufw allow 2222/tcp sudo ufw allow 80,443/tcp sudo ufw enable
  • Fail2ban installed but not running — indítsa el: sudo systemctl enable --now fail2ban.
  • Database server present … but not running — indítsa el az adatbázis-kiszolgálót a 04. lépés előtt: sudo systemctl enable --now mariadb (vagy mysql — attól függően, melyik van telepítve).
  • Certbot skipped — issue SSL in … — a tanúsítványt a hosztingpanel Let's Encrypt kapcsolója állítja ki; a 06. lépésre nincs szüksége.
Ha az ellenőrzési blokkban minden rendben van, az utolsó sor: All checks passed. A ! jellel megjelölt pontok figyelmet igényelnek; a részletek a naplóba kerülnek, amelynek elérési útját a szkript a legvégén kiírja (Log: …).

02. Domain és DNS

Ahhoz, hogy a dashboardot egy monitor.example.com típusú címen nyithassa meg, és ingyenes SSL-t kapjon, a domainnek a szerverre kell mutatnia. A DNS vezérlőpultján (a regisztrátornál vagy a tárhelyszolgáltatónál) hozzon létre egy A-rekordot:

Típus: A Név: monitor (aldomain → monitor.example.com) vagy @ (gyökérdomain → example.com) Érték: 203.0.113.10 ← a szervere IP-címe TTL: 3600

Néhány perc múlva (néha akár egy óra is lehet) ellenőrizze, hogy a domain a szerverre mutat-e:

dig +short monitor.example.com # a szervere IP-címét kell visszaadnia # vagy, ha nincs dig: getent hosts monitor.example.com
Az SSL-tanúsítvány (06. lépés) csak domainre állítható ki – ezért a DNS-nek a tanúsítvány kibocsátása előtt a szerverre kell mutatnia.

03. A panel fájljainak feltöltése

Szokásos eset (friss VPS). Az automatikus beállítás már létrehozta a panel /var/www/monitor könyvtárát, és beállította az Apache-oldalt (DocumentRoot a panel gyökerén, PHP-FPM, AllowOverride a .htaccess számára). A szkript kimenetében ez a vhost … → DocumentRoot … sor. Külön nem kell könyvtárat és vhostot létrehozni — csak töltse fel a fájlokat és állítsa be a jogosultságokat.
Két eset, amikor a vhost NEM jött létre — a szkript ezt a munkája végén kifejezetten jelzi. Ilyenkor előbb hajtsa végre az alábbi megfelelő ágat, és csak azután töltse fel a fájlokat.

„Hosztingpanellel rendelkező szerver” ág (a kimenetben: Control panel detected (…)). Ilyen szerveren a webhelyekkel a panel rendelkezik, és a szkript szándékosan nem hoz létre saját vhostot — azt a panel az első konfigurációújragenerálásnál felülírná. A sorrend a következő:

  1. Hozza létre a webdomaint a hosztingpanelben (HestiaCP stb.) — annak DocumentRoot értéke marad, ahogy van.
  2. Töltse fel a disztribúciót teljes egészében ennek a domainnek a public_html könyvtárába: az index.php, api/, assets/ mellett ott kell lennie a szolgáltatási config.php, includes/, data/, tmp/, logs/, keys/, cron/, database/ elemeknek is. Semmit sem kell a webgyökér fölé kiemelni: a szolgáltatási mappákat a disztribúció .htaccess fájlja zárja le, Nginx alatt pedig az a tiltás, amelyet a szkript beírt a domain konfigurációjába.
  3. Az SSL-t magának a panelnek a Let's Encrypt kapcsolója állítja ki — a 06. lépést hagyja ki.
  4. Ezután jönnek a jogosultságok (lejjebb ebben a lépésben), az adatbázis (04. lépés) és a config.php (05. lépés). A parancsokban az útvonalakat cserélje erre: /home/fiók/web/domain/public_html, a tulajdonost pedig www-data helyett ennek a domainnek a felhasználójára.

„Vhost létrehozása kézzel” ág (a kimenetben: No vhost created (no domain given)). Ez csak a „Beállított szerver” profilnál fordul elő, amikor a domaint nem adták át. A legegyszerűbb megoldás: futtassa újra a fiókból származó parancsot, immár a domaint megadva:

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

Az ismételt futtatás biztonságos: a már elvégzett munka nem duplázódik. Ha viszont a vhostot kézzel kell létrehozni — itt van ugyanaz a konfiguráció, amelyet a telepítő ír ki:

sudo mkdir -p /var/www/monitor # A PHP-FPM socketjét automatikusan határozzuk meg — a PHP verziója szerverenként eltér. 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
A ServerName itt kötelező. A név nélküli vhost az Apache alapértelmezett webhelyévé válik, és elkezd válaszolni az ugyanezen a szerveren lévő idegen domainek helyett is. Ugyanezért ne kapcsolja ki a 000-default.conf fájlt beállított szerveren: ezt a webhelyet átalakíthatták valaki éles oldalává — friss VPS-en a telepítő magától eltávolítja, itt viszont ezt nem kell megtennie.
Ha az Apache előtt Nginx áll (a kimenetben: ! Nginx does not read .htaccess). Az Nginx a statikus fájlokat közvetlenül a lemezről adja ki, és a .htaccess fájlt nem olvassa — így a szolgáltatási mappák kifelé nyitva maradnak, jóllehet az Apache helyesen lezárja őket. A szkript előre elkészítette a tiltásokat tartalmazó fájlt; ezt az Ön webhelyének server{} blokkjában kell beilleszteni, majd újra kell tölteni az Nginxet:
include /etc/nginx/snippets/arciveo-deny.conf;
sudo nginx -t && sudo systemctl reload nginx # Ellenőrzés: 403-at kell visszaadnia, nem a fájl tartalmát curl -sI https://monitor.example.com/config.php | head -1
A panel fájljai (a disztribúció archívuma) a vásárlás után a fiókban tölthetők le: my.arciveo.com → „Letöltések”. Csomagolja ki az archívumot, mielőtt feltöltené a szerverre.

Töltse fel a disztribúció tartalmát ide: /var/www/monitor (hogy belül legyen a public/, assets/, config.php stb.) — SFTP/SCP-n keresztül (FileZilla / WinSCP), vagy a helyi gépről a scp paranccsal:

scp -r ./monitor/* deploy@203.0.113.10:/var/www/monitor/
Ahhoz, hogy a vhostba azonnal bekerüljön az Ön domainje (ServerName), azt már a 01. lépésben átadják az automatikus beállítás parancsának: … | sudo bash -s -- monitor.example.com (vagy megadják a domaint a fiókban a „Panel domainje” mezőben). Ha nem adta át a domaint — a panel bármely hoszton és IP-címen válaszol, a ServerName értéket pedig a certbot írja be az SSL kiállításakor (06. lépés); semmit sem kell újratelepíteni.
Állítsa be a fájlok jogosultságait — ez kötelező lépés. Ha root alatt vagy SFTP-n keresztül töltötte fel, a fájlok a root tulajdonában vannak, és a webszerver (www-data) nem tudja olvasni őket — a panel üresen vagy 403-as hibával nyílik meg (a logban: .htaccess unreadable / directory not executable). Az alábbi parancs ezt javítja:
# Normalizáljuk a teljes webgyökér jogosultságait: a root által létrehozott # könyvtár nem elérhető a webszervernek (www-data) — enélkül a panel üres oldalt vagy 403-at ad. cd /var/www/monitor # A munkakönyvtárakat a chown ELŐTT hozzuk létre — különben az új könyvtárak root:root # maradnak, és chmod 750 esetén a webszerver (www-data) nem tud beléjük írni. 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

Nyissa meg magának a fájlfeltöltést SFTP-n. A fenti parancs után minden fájl a www-data tulajdonában van, miközben a FileZilla / WinSCP a saját felhasználójával csatlakozik — a feltöltés ekkor SSH_FX_PERMISSION_DENIED (Permission denied) hibával áll le. Válasszon a két változat közül.

A változat — ACL csak a saját felhasználójának (ajánlott). Írási jogot csak Ön kap; a webszerver továbbra sem tudja felülírni a panel kódját:

sudo apt install -y acl # Írási jog a felhasználójának a teljes panelkönyvtárra: sudo setfacl -R -m u:deploy:rwX /var/www/monitor # Ugyanez alapértelmezésként — a később létrehozott fájlokra és mappákra: sudo setfacl -R -d -m u:deploy:rwX /var/www/monitor

B változat — a www-data csoporton keresztül. Egyszerűbb, de a panel fájljaira a webszerver is írási jogot kap: PHP-sebezhetőség esetén a kód lecserélhető lenne. A parancsok sorrendje számít — a config.php és a munkamappák zárása marad a végére:

sudo usermod -aG www-data deploy # Írási jog a csoportnak + setgid (a 2-es bit): az SFTP-n feltöltött fájlok # a www-data csoportban maradnak — különben a panel nem tudja felülírni őket. 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
A B változat után csatlakozzon újra a FileZillában (Kiszolgáló → Bontás, majd lépjen be újra) — az új csoport csak új bejelentkezéskor lép életbe, addig továbbra sem lesz jogosultsága. Ellenőrzés: id deploy — a csoportok listájában meg kell jelennie a www-data csoportnak; ls -ld /var/www/monitor — jogok drwxrwsr-x, az x helyén álló s betű azt jelenti, hogy a setgid be van állítva.

04. Adatbázis

Hozzon létre egy adatbázist és egy felhasználót, majd importálja a sémát. Az adatbázis-blokkot egészben illessze be a terminálba (a sudo mysql root felhasználóként lép be unix-socketen keresztül — a root jelszava nem szükséges). A monitor_db és a monitor_user csak példaértékek, tetszőleges nevet megadhat; jegyezze meg az adatbázis nevét, a felhasználót és a jelszót — ezeket a következő lépésben beírja a config.php fájlba:

# 1. Adatbázis. Az adatbázis nevét, felhasználóját és jelszavát EGYSZER kell megadni alább, és minden sorba behelyettesítődik. # A blokkot EGÉSZBEN illessze be a terminálba; a sudo mysql root felhasználóként lép be unix-socketen # (a root jelszava nem szükséges). NE használjon interaktív `sudo mysql -u root -p` parancsot # másolással — beillesztéskor az SQL-sorok a jelszókérésbe kerülnek és elvesznek. DBNAME='monitor_db' # ← az adatbázis neve, maradhat DBUSER='monitor_user' # ← az adatbázis felhasználója, maradhat DBPASS='CHOOSE_A_PASSWORD' # ← jelszó, adjon meg sajátot 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 # Ellenőrzés (a $DBNAME-t kell megjelenítenie): mysql -u "$DBUSER" -p"$DBPASS" -e "SHOW DATABASES;" # Ezt a három értéket írja be a config.php → DB_NAME, DB_USER, DB_PASS mezőkbe.
A sémát általában nem kell importálni — a panel az első böngészős belépéskor maga hozza létre a táblákat és az admin fiókot (a database/db.sql alapján), ha az adatbázis üres.

Ha a táblák mégsem jöttek létre (a panel adatbázis-kapcsolati hibát vagy üres képernyőt mutat a bejelentkezési űrlap helyett) — importálja a sémát kézzel. A parancsot a panel gyökerében kell futtatni, az értékek a fenti blokkból származnak:

# A séma importálása: cd /var/www/monitor && mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" < database/db.sql # Ellenőrzés — meg kell jelennie a táblák listájának: mysql -u "$DBUSER" -p"$DBPASS" "$DBNAME" -e "SHOW TABLES;"
Ha a $DBNAME / $DBUSER / $DBPASS változók már „elfelejtődtek” (új terminál-munkamenet) — írja be az értékeket kézzel a parancsba, vagy adja meg őket újra a fenti blokk ugyanazon három sorával.
A webszerver sudo-ja. A szabályokat általában már az automatikus beállítás beírta, és a modulok azonnal látják a rendszeradatokat. Ha viszont a szkript kimenetében szerepelt a sudo rules NOT written sor — a panel fiókját nem volt miből meghatározni (a fájlok még nem voltak feltöltve), és a szabályok nem jöttek létre. Nélkülük az olyan szakaszok, mint a tűzfal, a Fail2ban és a CrowdSec, üresek maradnak. Most, hogy a fájlok a helyükön vannak, futtassa újra a fiókból származó parancsot, a fiókot kifejezetten megnevezve:
curl -fsSL "https://my.arciveo.com/install.php?token=YOUR_TOKEN&profile=existing" | sudo ARCIVEO_USER=www-data bash -s -- monitor.example.com
A www-data helyére azt a felhasználót írja, amely alatt az Ön webhelyének PHP-ja fut (hosztingpanelen ez rendszerint a domain tulajdonosa). Így nézheti meg:
ps -o user= -C php-fpm8.3 | sort -u # a verziót írja át a sajátjára # vagy: ps aux | grep -m3 '[p]hp-fpm'
Ellenőrzés az újbóli futtatás után: a /etc/sudoers.d/monitor fájl létezik, és vannak benne az Ön felhasználóját tartalmazó sorok.

05. A config.php beállítása

A panel gyökerében lévő config.php (/var/www/monitor/config.php) az egyetlen fájl, amelyet kézzel kell szerkeszteni. A panel minden beállítása define() konstansként szerepel benne. Nyissa meg egy szerkesztőben:

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

Írja be a saját értékeit a kiemelt helyekre; a többit hagyja változatlanul:

// --- Adatbázis (a 04. lépésből) --- define('DB_HOST', 'localhost'); // hagyja define('DB_NAME', 'db_name'); // amit a 04. lépésben létrehozott define('DB_USER', 'user'); // amit a 04. lépésben létrehozott define('DB_PASS', 'db_password'); // amit a 04. lépésben megadott define('DB_CHARSET', 'utf8mb4'); // hagyja // --- Alkalmazás --- define('APP_URL', 'https://monitor.example.com'); // a panel címe, záró perjel nélkül define('TIMEZONE', 'Europe/Budapest'); // az Ön időzónája // --- Munkamenet ideje --- define('SESSION_LIFETIME', 28800); // tétlenség az újbóli belépésig, mp (28800 = 8 ó)

Mit kell módosítani:

  • DB_NAME, DB_USER, DB_PASS — pontosan ugyanaz az adatbázisnév, felhasználó és jelszó, amelyet az adatbázis létrehozásakor a 04. lépésben megadott (ha a példákat hagyta: monitor_db / monitor_user). A DB_HOST és DB_CHARSET értékét ne módosítsa.
  • APP_URL — a panel teljes címe https:// előtaggal, záró perjel nélkül és www nélkül. Egyeznie kell azzal a domainnel, amelyre a licencet aktiválja (07. lépés), különben a kulcsot elutasítja a rendszer.
  • TIMEZONE — az Ön időzónája (a lista: timedatectl list-timezones). Csak azt befolyásolja, hogyan jeleníti meg a panel a dátumokat; a cron-feladatok indítási idejét nem befolyásolja (ott a rendszer időzónája érvényes).
  • SESSION_LIFETIME — hány másodperc tétlenség után kéri a panel az újbóli belépést (alapértelmezetten 8 óra). Pl. 3600 = 1 óra, 86400 = egy nap.
  • A hibanaplózási blokkot (display_errors, log_errors, error_log) hagyja az alapértelmezetten.

Mentse el a fájlt (Ctrl+O, Enter, majd Ctrl+X), és indítsa újra a PHP-FPM-et — különben az OPcache miatt a módosítások nem lépnek életbe:

sudo systemctl restart php*-fpm
A config.php titkos fájl (tartalmazza az adatbázis jelszavát). A panel gyökerében található, amely egyben a webgyökér is, de védve van: 640 jogosultság (a 03. lépésben beállítva) és explicit tiltás a gyökér .htaccess fájljában. Ne töltse fel nyilvános tárolókba, és ne küldje el a támogatásnak valós jelszóval.
Az összes paraméter részletes ismertetése a GYIK-ben: „A config.php fájl — a panel összes beállítása”.

06. SSL kiállítása (HTTPS)

A vezérlőpult csak HTTPS-en keresztül működik. A bejelentkezési munkamenet védett cookie-t használ, a WebAuthn (2FA) pedig a szabvány szerint csak HTTPS-en működik. http:// protokollon nem tud bejelentkezni.
Hosztingpanellel rendelkező szerveren erre a lépésre nincs szükség (a szkript kimenetében: Certbot skipped — issue SSL in …). A tanúsítványt magának a panelnek a webdomainjén a Let's Encrypt kapcsoló állítja ki — így a megújításáról is a panel gondoskodik.

A certbot és az Apache-bővítmény már telepítve van az automatikus beállítás során. A domain DNS-ének már a szerverre kell mutatnia (02. lépés). Kiállítás egyetlen paranccsal:

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

Ha a panelnek a www. előtaggal is meg kell nyílnia — sorolja fel mindkét nevet egyetlen parancsban, különben a második címen a böngésző tanúsítvány-figyelmeztetést jelenít meg:

sudo certbot --apache -d monitor.example.com -d www.monitor.example.com
A második nevet csak akkor adja hozzá, ha ahhoz is tartozik A-rekord, amely erre a szerverre mutat (02. lépés). Ellenkező esetben a Let's Encrypt nem tudja ellenőrizni, és a tanúsítványt egészében nem állítja ki — beleértve a fő domaint is.
Mit kérdez a certbot:
  1. Enter email address — az Ön e-mail-címe (ide érkeznek a tanúsítvány lejáratáról szóló értesítések).
  2. Terms of Service … (Y)es/(N)o — Y.
  3. Share email with the EFF … (Y)es/(N)o — Ön dönti el.
Ezután a certbot magától kiállítja a tanúsítványt, beírja a <VirtualHost *:443> bejegyzést, beállítja a http→https átirányítást és az automatikus megújítást. A végén: Successfully enabled HTTPS.
Ha a kiállítás sikertelen — ellenőrizze, hogy a dig +short monitor.example.com visszaadja-e a szerver IP-címét, és nyitva vannak-e a 80/443 portok (sudo ufw allow 80,443/tcp).

A kiállítás után: a https://monitor.example.com lakat ikonnal nyílik meg, a http:// pedig https://-re irányít át.

07. Bejelentkezés és kezdeti beállítás

Nyissa meg a https://monitor.example.com címet, jelentkezzen be a admin / useradmin adatokkal, és haladjon végig az ellenőrzőlistán:

  1. Módosítsa az admin jelszavát — a menü „Felhasználók” szakaszában.
  2. Kapcsolja be a WebAuthn (2FA) hitelesítést — „WebAuthn kulcsok” → regisztráljon egy kulcsot/passkey-t (HTTPS szükséges). Regisztráljon egyből kettőt: ha az egyetlen kulcsát elveszíti, azzal nem tud majd bejelentkezni. Részletek.
  3. Korlátozza a hozzáférést IP alapján — „Beállítások” → „Hozzáférés korlátozása IP alapján” (bekapcsolás előtt írja be a saját IP-címét, különben kizárja magát).
  4. Adja meg a licencet — a fiókból származó ARCIVEO-… aktiválási kódot aktiválja a saját domainjére, majd illessze be a kulcsot a „Beállítások” → „Licenc” menüpontba. Részletek.
  5. Állítsa be az értesítéseket — Telegram és/vagy Email a „Beállítások” között. Részletek.
  6. Törölje a telepítőt public/start_db.php, ha megmaradt: ez engedélyezés nélkül újra tudja hozni az adatbázist. Amíg a fájl a panel gyökerében vagy a public/ mappában van, a panel piros szalaggal figyelmeztet rá.
  7. Indítsa el kézzel az első ellenőrzéseket — különben egyes szakaszok éjszakáig üresek maradnak (lásd az alábbi blokkot).
Miért üres rögtön a „Lynis-audit” és a „Logwatch”. Az automatikus beállítás telepítette az eszközöket és létrehozta a cron-feladatokat, de magukat az ellenőrzéseket nem futtatta le — azok ütemezés szerint indulnak: a Lynis 03:00-kor, a Logwatch 06:00-kor, a debsums 04:30-kor, a ClamAV 01:30-kor. Addig a szakaszok őszintén jelzik, hogy még nincsenek jelentések. Hogy ne kelljen egy napot várnia, futtassa le őket egyszer kézzel:
# Lynis-audit — az első jelentés (néhány perc): sudo /usr/local/bin/lynis-scan.sh # Logwatch napi jelentése: sudo /usr/local/bin/logwatch_daily.sh # Csomagintegritás (debsums) — nagy szerveren sokáig tart: sudo /usr/local/bin/debsums-scan.sh
A Lynis közvetlenül a panelből is elindítható — a „Lynis-audit” oldal „Audit indítása” gombjával: ez ugyanazt a szkriptet futtatja a háttérben, és magától frissíti a jelentést. Ezután minden ütemezés szerint megy, kézzel már nem kell indítani.
Az első vírusellenőrzés (sudo /usr/local/bin/clamav-scan.sh) erősen terheli a lemezt és a processzort, és akár egy óránál is tovább tarthat — éles szerveren érdemes megvárni az éjszakai, 01:30-as indítást. A „Lemezek (SMART)”, a „Teljesítmény” és a „Biztonsági frissítések” szakasz magától töltődik fel: 30 percenként, 5 percenként, illetve óránként.
Kész. Az egyes eszközök leírása a GYIK oldalon található.
Ha ezen a szerveren még egy webhelyet szeretne saját domainnel — lásd a GYIK-et: „Második webhely ezen a szerveren (még egy domain)”.