Egy nyitott címen futó Adminer-példány az egyik leghalkabb módja az adatbázis elveszítésének. Valaki üzembe helyezi az egyetlen PHP-fájlt egy tábla ellenőrzéséhez, az URL működik, és a fájl hónapokig ott marad, amíg egy elavult másolat támadási felületté nem válik. Ezért szentel ez a Linux VPS-en lévő Adminer telepítési útmutató ugyanannyi teret a biztonságnak, mint az üzemeltetésnek.
Az Adminer egyetlen PHP-fájl (kb. 503 KB a teljes buildben), amely MySQL-t, MariaDB-t, PostgreSQL-t, SQLite-ot és számos más adatbázist támogat. Rendkívül egyszerű üzembe helyezni, ami pontosan az oka annak, hogy sokszor gondatlanul telepítik.
Telepíti azt egy modern Ubuntu vagy Debian VPS-re Nginx-szel és PHP-FPM-mel, hozzáad HTTP-hitelesítést, IP-engedélylistát és HTTPS-t Let's Encrypttel, és egy egyértelmű szabállyal zárja le arról, mikor kell teljesen kihagyni a nyilvános beállítást, és helyette SSH-alagúton keresztül elérni az Adminert.
Röviden
- Az Adminer egy PHP-fájl, amelyet a következővel tölt le egy webgyökérbe:
wgetwebgyökérbe tölt le; Nginx és PHP-FPM kiszolgálja. - Egy nyilvános Adminer-példányhoz mindhárom szükséges: egy HTTP-hitelesítési réteg, egy IP-engedélylista és HTTPS. Egyikük önmagában nem elegendő.
- A legérzékenyebb adatbázisoknál egyáltalán ne tegye ki az Adminert: kösse a következőhöz:
localhostés SSH-alagúton keresztül érje el. - A frissítés egyetlen parancs: futtassa újra a
wgetletöltési parancsot. A legújabb biztonsági kiadások miatt a naprakész tartás valódi üzemeltetési feladat, nem csupán ajánlott.
Előfeltételek: Mire lesz szüksége a telepítés előtt
Ez az útmutató az Ubuntu 26.04-et és 24.04-et, valamint a Debian 13-at célozza meg, Ubuntu 22.04 és Debian 12 kompatibilitási megjegyzésekkel. Az alapértelmezett PHP-FPM verziók: 8.5 az Ubuntu 26.04-en, 8.3 az Ubuntu 24.04-en, 8.4 a Debian 13-on, 8.2 a Debian 12-n és 8.1 az Ubuntu 22.04-en.
- Ubuntu 22.04, Ubuntu 24.04, Ubuntu 26.04, Debian 12 vagy Debian 13 operációs rendszert futtató Linux VPS, amelyen van egy
sudohozzáférés - Már futó adatbázis-kiszolgáló (MySQL, MariaDB vagy PostgreSQL), akár ezen a VPS-en, akár egy olyanon, amelyet az Adminer elérheti a hálózaton. Ez az útmutató nem telepít adatbázist; azt az eszközt telepíti, amellyel az adatbázist kezeli.
- PHP-FPM az operációs rendszer által támogatott adattárakból. Bár az Adminer lefordított fájlja támogatja a PHP 5.3+ verziót, használja a fent felsorolt, az aktuális disztribúció által biztosított verziót ahelyett, hogy elavult PHP-kiadást telepítene.
- A nyilvános HTTPS-beállításhoz a VPS-re feloldó hosztnévre, valamint a 80-as és 443-as TCP bejövő portok elérhetőségére van szükség. Certbot Nginx munkafolyamat HTTP-01 érvényesítést használ a 80-as porton. A Let's Encrypt most már támogatja a rövid életű IP-cím tanúsítványok, de a Certbot nem telepíti ezeket automatikusan a Nginx-munkafolyamatán keresztül, ezért ez az útmutató hosztnevet használ.
Megjegyzés: Ez az útmutató szándékosan Nginx-et használ. Ha Apache-t futtat, a letöltési és a biztonsági megerősítési logika még mindig érvényes, de az alábbi szerverblokk-konfiguráció nem.
Nginx és PHP-FPM telepítése
Kezdje a csomagindex frissítésével, majd telepítse a Nginx-et és a PHP-FPM-et a kiszolgálóhoz szükséges PHP adatbázis-bővítménnyel együtt:
sudo apt update
sudo apt install -y nginx php-fpm php-mysql
PostgreSQL háttérkiszolgálóhoz telepítse a php-pgsql helyett vagy mellett php-mysql:
sudo apt install -y php-pgsql
Ellenőrizze, hogy a PHP-FPM-szoftvercsatorna létezik:
ls /run/php/
Egyezze meg a szoftvercsatorna fájlnevét a fent felsorolt verzióval, például php8.5-fpm.sock Ubuntu 26.04-en, php8.3-fpm.sock Ubuntu 24.04-en, vagy php8.4-fpm.sock Debian 13-on. Ha a várt szoftvercsatorna hiányzik, ellenőrizze a megfelelő szolgáltatást a következővel: systemctl status php8.5-fpm, cserélve a 8.5 az operációs rendszerre telepített verzióra.
Profi tipp: A szoftvercsatorna-eltérés az egyik lehetséges oka a
502 Bad Gateway. Egyezze meg afastcgi_passa fájlnévhez alatta/run/php/, ellenőrizze, hogy a megfelelő PHP-FPM-szolgáltatás fut, majd ellenőrizze a/var/log/nginx/error.logha a hiba fennmarad.
Az Adminer letöltése
Hozzon létre egy könyvtárat az Adminer kiszolgálásához, majd töltse le oda az egyetlen fájlt. latest.php URL mindig az aktuális stabil kiadásra mutat:
sudo mkdir -p /var/www/adminer
sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.php
Ha csak MySQL-lel vagy MariaDB-vel dolgozik, a csak MySQL-es build kisebb (kb. 406 KB), és ugyanúgy tölthető le:
sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest-mysql.php
Tartsa az Adminer könyvtárat root tulajdonában, miközben olvasási hozzáférést ad a PHP-FPM-nek:
sudo chown -R root:root /var/www/adminer
sudo chmod 755 /var/www/adminer
sudo chmod 644 /var/www/adminer/adminer.php
You do not need to track the version number: the latest.php Az URL azt jelenti, hogy a letöltés újbóli futtatása az Ön frissítési útja is, amelyre a karbantartási szakasz visszatér.
Az Nginx szerverblokk konfigurálása
Hozzon létre egy szerverblokot, amely az Adminer könyvtárat szolgálja ki és továbbítja a .php kéréseket a korábban azonosított PHP-FPM szoftvercsatornához. Nyisson meg egy új sitefájlt:
sudo nano /etc/nginx/sites-available/adminer
Illessze be az alábbiakat, cserélve a db.example.com a már a VPS-re mutató hosztnévvel, és győződjön meg arról, hogy a fastcgi_pass szoftvercsatorna megegyezik a PHP-verziójával:
# /etc/nginx/sites-available/adminer
server {
listen 80;
server_name db.example.com;
root /var/www/adminer;
location = / {
return 302 /adminer.php;
}
location = /adminer.php {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
return 404;
}
}
Engedélyezze a webhelyet szimbolikus link létrehozásával ide: sites-enabled, majd tesztelje a konfigurációt anélkül, hogy még újra betöltené az Nginx-et:
sudo ln -s /etc/nginx/sites-available/adminer /etc/nginx/sites-enabled/
sudo nginx -t
nginx -t azt kell jelentenie, hogy a szintaxis érvényes és a teszt sikeres. Ne töltse be újra még az Nginx-et, mert a webhely nem rendelkezik hitelesítéssel vagy IP-korlátozással. Folytassa e két biztonsági megerősítési lépéssel; az IP-korlátozási lépés hajtja végre az első újratöltést, miután mindkét védelem be van állítva.
Zárja le: Hitelesítés, IP-korlátozás és HTTPS
Egy nyilvános Adminer-példány közvetlenül az adatbázis-hitelesítő adatai előtt áll, ezért rétegzett védelemre van szüksége, nem egyetlen zárkára. Az alábbi három réteg különböző feladatokat végez: a HTTP-hitelesítés megállít mindenkit jelszó nélkül a webszerveren, az IP-engedélylista megakadályozza a nem jóváhagyott címekről érkező kapcsolatokat, a HTTPS pedig megakadályozza, hogy a beírt hitelesítő adatok egyszerű szövegként haladjanak át a hálózaton. Adja hozzá mindhárom réteget. Egyik sem helyettesíti a másik kettőt.
HTTP alapszintű hitelesítés hozzáadása
Telepítse a htpasswd segédprogramot, amely a apache2-utils csomagban az Ubuntu és Debian rendszereken:
sudo apt install -y apache2-utils
Hozzon létre egy jelszófájlt és egy felhasználót (a rendszer kéri a jelszót):
sudo htpasswd -B -C 10 -c /etc/nginx/.htpasswd adminuser
sudo chown root:www-data /etc/nginx/.htpasswd
sudo chmod 640 /etc/nginx/.htpasswd
Adja hozzá az irányelveket az Adminer PHP pontos helyéhez, hogy maga a PHP-kérés is védve legyen:
location = /adminer.php {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
Mindkét direktíva dokumentálva van a Nginx HTTP auth_basic modulreferencia. Futtat sudo nginx -t a konfiguráció érvényesítéséhez, de még ne töltse be újra az Nginx-et; ezután kerül hozzáadásra az IP-engedélylista. Ne küldje el az alapszintű hitelesítési adatokat egyszerű HTTP-n keresztül; várjon az HTTPS engedélyezéséig alább.
Hozzáférés korlátozása IP-cím szerint
Az alapszintű hitelesítés blokkolja a nem hitelesített felhasználókat, de az Nginx még mindig kap kéréseket minden forrásból. Cserélje le a meglévő Adminer PHP-helyet a következő kombinált blokkra, hogy az IP-szabályok és az alapszintű hitelesítési irányelvek egy helyen maradjanak:
location = /adminer.php {
satisfy all;
allow 203.0.113.10;
allow 203.0.113.0/28;
deny all;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
Cserélje ki a példacímeket a tényleges nyilvános IP-címére vagy megbízható hálózati tartományára. Csak a allow bejegyzéseket, amelyekre szüksége van, és törölje a fel nem használt példákat. Az első bejegyzés egyetlen címet mutat be, a második pedig egy CIDR-tartományt. Az Nginx visszaadja a 403 Forbidden azon címeknek, amelyek nem felelnek meg egyetlen allow allow szabálynak sem. Nginx hozzáférési modulreferencia dokumentálja az irányelvek szintaxisát. Tesztelje és töltse be újra az Nginx-et:
sudo nginx -t && sudo systemctl reload nginx
HTTPS engedélyezése Let's Encrypttel
A VPS-re mutató domainnel telepítse a Certbotot és Nginx-pluginjét, majd kérjen tanúsítványt:
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d db.example.com
A Certbot szerkeszti a szerverblokját, hogy a 443-as porton HTTPS-t szolgáljon ki, és felajánlja a HTTP HTTPS-re irányítását; fogadja el az átirányítást. Megújítási időzítőt is telepít, így a tanúsítvány automatikusan megújul lejárat előtt. A megújítási útvonalat a következővel erősítheti meg: sudo certbot renew --dry-run, amelynek hibamentesen kell befejeződnie.
Most látogasson el a https://db.example.com/adminer.php egy engedélyezett címről, és erősítse meg, hogy az Nginx kéri az alapszintű hitelesítési adatokat, mielőtt az Adminer betöltődik.
Válasszon hozzáférési modellt: Nyilvános HTTPS vs. SSH-alagút
A fenti beállítás akkor megfelelő, ha böngészőhozzáférésre van szüksége egy adatbázishoz több gépről, vagy ha SSH-munkamenet nyitása nem praktikus. Ez nem az egyetlen modell, és egy érzékeny adatbázishoz nem a legvédelmesebb.
Érzékeny beállításoknál ne tegye nyilvánosan elérhetővé az Adminert. Az Adminer hivatalos biztonsági útmutatása javasolja, hogy tegye elérhetetlenné a nyilvános internetről, amikor csak lehetséges. Ha csak alagúton keresztüli hozzáférést választ, cserélje le a nyilvános Nginx szerverblokot erre a csak loopbackes konfigurációra, és hagyja ki a nyilvános HTTPS-beállítást:
# /etc/nginx/sites-available/adminer
server {
listen 127.0.0.1:8080 default_server;
server_name _;
root /var/www/adminer;
location = / {
return 302 /adminer.php;
}
location = /adminer.php {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location / {
return 404;
}
}
Tesztelje és töltse be újra a csereonfigurációt:
sudo nginx -t && sudo systemctl reload nginx
Ezután nyissa meg az alagutat a saját gépéről:
ssh -N -L 127.0.0.1:8080:127.0.0.1:8080 user@your-server-ip
Az alagút futásával nyissa meg http://127.0.0.1:8080/adminer.php. Az Nginx csak a VPS loopback-interfészén keresztül fogad el Adminer-kapcsolatokat, míg az SSH a titkosított kapcsolatán keresztül szállítja a forgalmat. Ez a OpenSSH helyi továbbítási dokumentáció.
Használja a nyilvános HTTPS, Alapszintű hitelesítés és IP-engedélylista beállítását, ha közvetlen böngészőhozzáférésre van szüksége több gépről. Ha nyilvános hozzáférés nem szükséges, részesítse előnyben a csak loopbackes SSH-beállítást.
Fő tanulság: A legbiztonságosabb Adminer az, amelyik soha nem érhető el a nyilvános internetről.
Az Adminer frissen tartása
Az elfelejtett példány az igazi kockázat itt, és érdemes ütemezett feladatként kezelni, nem utólagos gondolatként. Az Adminer frissítése egyetlen parancs, ugyanaz a wget parancsot, amellyel telepítette, mert latest.php mindig az aktuális kiadást tölti le:
sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.php
Ez nem elméleti aggodalom. Adminer 5.4.3, 2026. július 9-én kiadott verzió, egyetlen kiadásban kezelt hét GitHub biztonsági figyelmeztetést. A korábbi tanácsadás a CVE-2026-25892 megmutatta, hogy még az Adminer verziólekérdező végpontja is átalakítható hitelesítés nélküli szolgáltatásmegtagadási vektorrá; a problémát az 5.4.2 verzióban javították. Egy elavult másolat nyilvánosan dokumentált sebezhetőségeket halmoz fel, ezért frissítése rutinszerű karbantartásnak kell lennie.
Megjegyzés: Maradjon az aktuális upstream Adminer-kiadáson. az AdminerEvo tárhely 2025 januárjában archiválva lett és nem aktívan karbantartott alternatíva.
Telepítés VPS-en
Ha inkább kihagyná a kézi lépéseket, az Adminer egy kattintásos telepítésként elérhető a a Cloudzy marketplace egy Cloudzy Linux VPS. A piactér képe Apache-ot, Basic Auth-ot és önaláírt tanúsítványt használ, tehát eltér a fenti Nginx, IP-engedélylista és Let's Encrypt veremtől. Tekintse át ezeket a biztonsági különbségeket, mielőtt produkciós adatbázis-hitelesítési adatokat adna meg.
Az Adminer saját lábnyoma elhanyagolható; az adatbázis határozza meg a méretezést. A CPU-t, a memóriát és a tárhelyet az adatbázis adat- és indexmérete, a lekérdezési terhelés, a csatlakozások száma, a biztonsági mentések és a várható növekedés alapján válassza, nem az Adminer alapján.
Gyakran ismételt kérdések
Biztonságos-e az Adminert nyilvánosan elérhetővé tenni egy VPS-en?
Önmagában nem. Ha nyilvánosan kell elérhetővé tenni az Adminert, helyezze azt HTTP Basic Authentication, IP-engedélylista és HTTPS mögé együtt. Ezek a vezérlők csökkentik a kockázatot, de nem teszik kockázatmentessé a nyilvános elérhetőséget. Érzékeny adatbázisoknál kösse az Adminert a következőhöz: localhost és SSH-alagúton keresztül érje el.
Hogyan férhetek hozzá az Adminerhez anélkül, hogy az interneten elérhetővé tenném?
Konfigurálja a fent látható, csak loopbackes Nginx szerverblokot úgy, hogy az Adminer hallgasson a 127.0.0.1:8080paranccsal, majd futtasd a ssh -N -L 127.0.0.1:8080:127.0.0.1:8080 user@your-server-ip a saját gépén. Nyissa meg a http://127.0.0.1:8080/adminer.php amíg az alagút fut.
Tud az Adminer PostgreSQL-hez is csatlakozni, nemcsak MySQL-hez?
Igen. Az Adminer alapból támogatja a MySQL-t, MariaDB-t, PostgreSQL-t, SQLite-ot, MS SQL-t és Oracle-t, bővítményeken keresztül több adatbázis is elérhető. Telepítse az adatbázisához megfelelő PHP-kiterjesztést, például php-pgsql a PostgreSQL-hez, hogy a PHP kommunikálni tudjon vele.
Hogyan tartsam az Adminert frissen?
Futtassa újra a letöltési parancsot: sudo wget -O /var/www/adminer/adminer.php https://www.adminer.org/latest.phpA latest.php URL mindig a jelenlegi stabil kiadást adja vissza, tehát ez felülírja a másolatát a legújabb verzióval. A legújabb biztonsági kiadások miatt érdemes ezt ütemezetten elvégezni, nem csak amikor emlékszel rá.
A apt csomagból kell-e telepíteni az Adminert, vagy közvetlenül letölteni?
Töltse le közvetlenül az egyetlen fájlt. Ez azonnal biztosítja az aktuális verziót, és a frissítéseket egysorossá teszi, míg egy disztribúciós csomag elmaradhat a hivatalos kiadástól. A közvetlen fájl ugyanaz az eszköz, rövidebb úttal a legújabb biztonsági javításokhoz.