A phpMyAdmin telepítése az Nginx segítségével Debian 12, 11 vagy 10 rendszeren

A phpMyAdmin egy széles körben használt, PHP nyelven írt nyílt forráskódú eszköz, amelyet a MySQL és a MariaDB adminisztrációjának kezelésére terveztek a weben. Intuitív grafikus felületet kínál különféle adatbázis-műveletek végrehajtásához, például adatbázisok, táblák, mezők vagy sorok létrehozásához, módosításához és törléséhez, SQL utasítások végrehajtásához és felhasználói engedélyek kezeléséhez. A phpMyAdmin telepítése Debian 12, 11 vagy 10 rendszeren magában foglalja a LEMP verem (Linux, NGINX, MySQL/MariaDB, PHP) manuális beállítását, majd a phpMyAdmin legújabb verziójának letöltését és konfigurálását.

A phpMyAdmin használata leegyszerűsíti az adatbázis-kezelést, így azok számára is elérhetővé válik, akik esetleg nem érzik jól magukat a parancssor használatával az adatbázis-műveletekhez. Ez az útmutató végigvezeti a LEMP verem kézi telepítésének, a phpMyAdmin konfigurálásának és a beállítás biztonságossá tételének lépésein.

Telepítse a LEMP Stack-et a Debian for phpMyAdmin rendszerre

1. lépés: A Debian rendszer frissítése

Kezdje el frissíteni a Debian rendszert a legújabb csomagokkal a biztonságos és hibamentes beállítás érdekében. Ennek a proaktív lépésnek az a célja, hogy csökkentse az ütközések valószínűségét a telepítési folyamat során.

sudo apt update && sudo apt upgrade

Ha frissíti a kernelt vagy sok csomagot, újra kell indítani.

2. lépés: Telepítse az Nginxet

Először telepítse az Nginx-et a LEMP-verem létrehozásához. Hajtsa végre a következő parancsot:

sudo apt install nginx

Általában a rendszer a telepítés után alapértelmezés szerint engedélyezi az Nginx szolgáltatást. Azonban mindig körültekintően ellenőrizze állapotát, és győződjön meg arról, hogy az elvárt módon működik:

systemctl status nginx

Ha a szerver nem aktív, használja a következő parancsot az Nginx engedélyezéséhez, és győződjön meg arról, hogy minden újraindításkor automatikusan elindul:

sudo systemctl enable nginx --now

Ez a parancs telepíti az Nginx alapértelmezett verzióját.

Megjegyzés: Ha érdekli az Nginx legfrissebb stabil vagy főbb verziójának telepítése, fontolja meg a következő útmutatónkat: az Nginx frissítése Debian 12, 11 vagy 10 Linux rendszeren.

3. lépés: Telepítse a MariaDB-t

Ezután telepítse az adatbázis-összetevőt a LEMP verembeállításban. Sokan a MariaDB-t választják a MySQL helyett, kiváló teljesítménye és további szolgáltatásai miatt.

A MariaDB telepítéséhez futtassa a következőt:

sudo apt install mariadb-server mariadb-client

Megjegyzés: Ha a MariaDB egy másik verzióját szeretné telepíteni a hivatalos MariaDB.org tárolókból, tekintse meg útmutatónkat a MariaDB 11.x vagy 10.x telepítése Debian 12, 11 vagy 10 Linuxra.

A befejezés után erősítse meg a MariaDB szolgáltatás engedélyezését és megfelelő működését, hasonlóan az Nginx ellenőrzéséhez:

systemctl status mariadb

Ha a MariaDB nincs aktiválva, az alábbi paranccsal aktiválja, és győződjön meg arról, hogy újraindításkor elindul.

sudo systemctl enable mariadb --now

A MariaDB biztonságának megerősítéséhez futtassa a mellékelt biztonsági szkriptet, mysql_secure_installation, a telepítési folyamat során. A friss MariaDB-telepítés alapértelmezett beállításai gyakran hagynak olyan sebezhetőségeket, amelyeket a rosszindulatú szereplők kihasználhatnak.

sudo mysql_secure_installation

A biztonsági szkript végrehajtása számos lépésen végigvezeti Önt a MariaDB biztonságának megerősítéséhez. Ezek a lépések magukban foglalják a root jelszó beállítását, a távoli hozzáférés korlátozását, a névtelen felhasználói fiókok törlését és a tesztadatbázis eltávolítását.

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer 'n'.

Switch to unix_socket authentication [Y/n] Y <---- Type Y then press the ENTER KEY.
Enabled successfully!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer 'n'.

Change the root password? [Y/n] Y <---- Type Y then press the ENTER KEY.
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y <---- Type Y then press the ENTER KEY.
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y <---- Type Y then press the ENTER KEY.
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

4. lépés: Telepítse a PHP-t

Telepítse a PHP szolgáltatást a LEMP verem beállításának befejezéséhez. A PHP a PHP-FPM szolgáltatáson és a phpMyAdmin által igényelt további modulokon keresztül hídként szolgál az Nginx és a MariaDB között.

Megjegyzés: Ha a PHP egy adott verzióját szeretné telepíteni, olvassa el a következő útmutatónkat bármely PHP 8.x verzió telepítése Debian 12, 11 vagy 10 Linux alatt.

A PHP és a PHP-FPM, valamint a szükséges modulok telepítéséhez a Debian rendszeren hajtsa végre a következőket:

sudo apt install php-fpm php-mbstring php-bcmath php-xml php-mysql php-common php-gd php-cli php-curl php-zip php-gd

A PHP telepítése után ellenőrizze a PHP szolgáltatás állapotát, ugyanúgy, mint a MariaDB és az Nginx esetében.

A PHP 8.2 esetén, amely például a Debian Bookworm alapértelmezett beállítása, a konkrét parancs a következő lenne:

systemctl status php8.2-fpm

Ha a PHP szolgáltatás inaktív marad, a következő paranccsal engedélyezze, és győződjön meg arról, hogy minden újraindításkor automatikusan elindul.

sudo systemctl enable php-fpm --now

A phpMyAdmin véglegesítése Nginx és Debian segítségével

Ez a rész ismerteti a phpMyAdmin archívum beszerzésének és a szükséges könyvtárak, engedélyek és adatbázis-bejegyzések beállításának folyamatát.

1. lépés: Hozzon létre egy szuperfelhasználót a phpMyAdmin számára

Hagyományosan a phpMyAdmin a root felhasználóval érhető el. A robusztus biztonsági gyakorlatok betartása érdekében azonban hozzon létre egy különálló szuperfelhasználót a root felhasználó használata helyett. Ez a koncepció összhangban van azzal a Linux gyakorlattal, hogy a root felhasználóként való közvetlen bejelentkezés helyett egy sudo-felhasználót használnak ki.

Először hitelesítse magát a terminál felületén:

sudo mariadb -u root

Sikeres hitelesítés esetén a következő lépés egy adatbázis létrehozása a MariaDB terminálon belül.

CREATE USER PMAUSER IDENTIFIED BY 'password here change';

Ezután hozzon létre egy felhasználót, és ruházza fel a szükséges jogosultságokkal, az alábbiak szerint:

GRANT ALL PRIVILEGES ON *.* TO 'PMAUSER'@'localhost' IDENTIFIED BY 'password here change' WITH GRANT OPTION;

Helyőrző jelszó cseréje "jelszó itt változik" a biztonságos jelszóval kulcsfontosságú a parancsok végrehajtása előtt.

A felhasználó létrehozása és az engedélyek beállítása után ne felejtse el frissíteni a változtatásokhoz szükséges jogosultságokat.

FLUSH PRIVILEGES;

A MariaDB terminálból való kilépéshez használja a következő parancsot.

QUIT;

2. lépés: Töltse le a phpMyAdmin forráskódot

Ez a rész rávilágít a phpMyAdmin forrásarchívumának beszerzésére. A parancssori terminál kihasználása hatékony módszert biztosít a legújabb verzió letöltésére minden nyelven.

A phpMyAdmin archívum letöltéséhez hajtsa végre a következő parancsot a terminálon.

DATA="$(wget https://www.phpmyadmin.net/home_page/version.txt -q -O-)"
URL="$(echo $DATA | cut -d ' ' -f 3)"
VERSION="$(echo $DATA | cut -d ' ' -f 1)"
wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-all-languages.tar.gz

Ha a phpMyAdmin csak angol nyelvű verzióját szeretné, cserélje ki az előző parancs utolsó sorát a következőre:

wget https://files.phpmyadmin.net/phpMyAdmin/${VERSION}/phpMyAdmin-${VERSION}-english.tar.gz

A letöltést követően a következő lépés a phpMyAdmin archívum kibontása az alábbi parancs végrehajtásával:

tar xvf phpMyAdmin-${VERSION}-all-languages.tar.gz

3. lépés: A phpMyAdmin konfigurálása

A következő fázisban az összes kibontott fájlt az mv paranccsal a /var/www/ könyvtárban lévő végső rendeltetési helyükre költöztetik.

sudo mv phpMyAdmin-*/ /var/www/phpmyadmin

Amikor a phpMyAdmin programot a forrásból telepíti, észre fogja venni, hogy alapértelmezés szerint nem létezik TMP-könyvtár. Következésképpen az lenne a legjobb, ha ezt a könyvtárat manuálisan hozza létre.

sudo mkdir /var/www/phpmyadmin/tmp

A phpMyAdmin könyvtár tartalmaz egy alapértelmezett konfigurációs példafájlt, amelyet át kell neveznie, hogy a phpMyAdmin felismerje. A CP paranccsal hozzon létre egy másolatot az alapértelmezett fájlról a /var/www/phpmyadmin/ könyvtárban, biztosítva a biztonsági mentést.

A config.sample.inc.php fájl config.inc.php fájlra való replikálásához hajtsa végre a következő parancsot:

sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

A fájl másolása után nyissa meg a kívánt szövegszerkesztővel. Ebben a példában a nano szövegszerkesztőt használjuk:

sudo nano /var/www/phpmyadmin/config.inc.php

A phpMyAdmin Blowfish titkosítást használ. A beállítás módosításához lépjen az $cfg['blowfish_secret'] sorral kezdődő sorra.

$cfg['blowfish_secret'] = ''; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Rendeljen hozzá egy 32 véletlenszerű karakterből álló karakterláncot az idézőjelbe. Használja a pwgen programot, mint kényelmes módszert a karakterlánc létrehozásához. Hajtsa végre a következő terminálparancsot a pwgen telepítéséhez:

Ez minden műveletet egyértelművé tesz, és közvetlenül a felhasználóhoz (vagy a műveletet végzőhöz) rendelhető.

sudo apt install pwgen 

A telepítés után hajtsa végre az alábbi parancsot:

pwgen -s 32 1

Ez a parancs egy 32 véletlenszerű karakterből álló sztringet generál a blowfish titkaként.

Példa a rejtjel beszúrására a konfigurációs fájlba (Ne másolj):

UvqAlsvTxRdYIyO8TnlkJsVQaWs2LfgL

Példa a konfigurációs fájlban:

A felhasználók többsége számára a fennmaradó alapértelmezett beállításoknak megfelelőnek kell lenniük. Ha azonban a szerver egy másik szerveren található a hálózaton belül, akkor meg kell keresnie és módosítania kell az $cfg['Servers'][$i]['host'] sort, hogy az tükrözze a privát IP-címet. Ennek a módosításnak az illusztrációja az alábbiakban látható:

$cfg['Servers'][$i]['host'] = '192.168.55.101';

4. lépés: Konfigurálja a phpMyAdmin fájlengedélyeket

Az engedélyek hozzárendelése a címtártulajdonoshoz a www-user számára kulcsfontosságú a kompatibilitás és a biztonság érdekében.

A chown-engedély beállítása:

sudo chown -R www-data:www-data /var/www/phpmyadmin/

A chmod engedély beállítása:

sudo find /var/www/phpmyadmin/ -type d -exec chmod 755 {} \;
sudo find /var/www/phpmyadmin/ -type f -exec chmod 644 {} \;

A következő részben megvitatjuk az Nginx szolgáltatásblokk létrehozását és beállítását a phpMyAdmin szolgáltatáshoz.

NGINX szerverblokk beállítása a phpMyAdmin számára

A phpMyAdmin webes felület eléréséhez elengedhetetlen lépésként hozzon létre egy NGINX szerver blokkot. Hozzon létre egy külön aldomaint a biztonsági intézkedések megerősítésére és a brute force támadások kivédésére, ami erősen ajánlott. Nyugodtan nevezze el ezt az aldomaint, amit megfelelőnek talál.

1. lépés: Hozzon létre Nginx Server Blockot a phpMyAdmin számára a Debian rendszeren

Kezdjük a szerverblokk létrehozásával és megnyitásával a nano szövegszerkesztővel. Hajtsa végre a következő parancsot:

sudo nano /etc/nginx/sites-available/phpmyadmin.conf

2. lépés: Konfigurálja az Nginx szerverblokkot

A szerverblokk fájl sikeres megnyitása után másolja ki és illessze be a következő szöveget a fájlba. Ügyeljen arra, hogy a domain URL-jét helyettesítse a sajátjával:

server {
  listen 80;
  listen [::]:80;
  server_name pma.example.com;
  root /var/www/phpmyadmin/;
  index index.php index.html index.htm index.nginx-debian.html;

  access_log /var/log/nginx/phpmyadmin_access.log;
  error_log /var/log/nginx/phpmyadmin_error.log;

  location / {
    try_files $uri $uri/ /index.php;
  }

  location ~ ^/(doc|sql|setup)/ {
    deny all;
  }

  location ~ \.php$ {
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include snippets/fastcgi-php.conf;
  }

  location ~ /\.ht {
    deny all;
  }
}

Íme néhány kritikus pont a fenti példával kapcsolatban:

  • /run/php/php8.2-fpm.sock; – Ennek az útvonalnak tükröznie kell a PHP-FPM használt verzióját. Például lehet 8.3, 8.1, 8.0, 7.4 stb.
  • gyökér /var/www/phpmyadmin/; – Ez az útmutatóban meghatározott útvonalra vonatkozik. Ha a phpMyAdmin máshol található, ügyeljen arra, hogy ennek megfelelően frissítse ezt a sort.

Ha Ön az egyetlen személy, aki statikus IP-címről éri el a szervert, fontolja meg a következő kód hozzáadását az első helybejegyzés fölé:

  allow <your ip address>;
  deny all; 

  location / {
    try_files $uri $uri/ /index.php;
  }

A fenti kód gyakorlatilag 403-as hibával blokkolja az oldal jogosulatlan látogatóit, és kizárólag az Ön IP-címéhez biztosít hozzáférést. Ez egy jelentős védelem a nyers erejű támadások ellen, bár lehet, hogy nem felel meg minden beállításnak.

3. lépés: Mentés és kilépés a szövegszerkesztőből

A módosítások mentéséhez nyomja le a (CTRL+O) billentyűkombinációt, a szerkesztőből való kilépéshez pedig a (CTRL+X) billentyűt.

4. lépés: Symlink létrehozása a konfigurációs fájlhoz

Ezután hozzon létre egy szimbolikus hivatkozást az elérhető helyek könyvtárból a konfigurációs fájl helyeként használható webhelyek könyvtárába:

sudo ln -s /etc/nginx/sites-available/phpmyadmin.conf /etc/nginx/sites-enabled/

5. lépés: Száraz futási teszt végrehajtása

A szárazonfutási teszt elengedhetetlen az NGINX szolgáltatás újraindítása előtt. Ez az intézkedés alapvető fontosságú élő környezetben, biztosítva, hogy a konfigurációs fájlok módosításai ne okozzanak NGINX hibákat:

sudo nginx -t

Ha a konfiguráció hibamentes, a következő kimenet fogadja Önt:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

6. lépés: Az NGINX szolgáltatás újraindítása

Végül, hogy a változtatások hatékonyak legyenek, indítsa újra az NGINX szolgáltatást:

sudo systemctl restart nginx

Ezzel zárja ezt a részt, amely az NGINX szerverblokk létrehozásáról szól a phpMyAdmin számára. A következő részben megnyílik és bejelentkezik a phpMyAdmin webes felületére.

Navigálás a phpMyAdmin webes felületen

Kezdje el a phpMyAdmin felületével való interakciót a kívánt webböngésző elindításával. Írja be a pma.example.com címet a címsorba, ügyelve arra, hogy az „example” szót lecserélje a domain nevére vagy a szerver IP-címére. Ne feledje, hogy a localhost belső környezetben is használható.

Ezt követően a phpMyAdmin bejelentkezési képernyőjére kerül, amint az a következő képen látható:

A bejelentkezési képernyőn navigálhat a hitelesítési adatok megadásával, és a „Tovább” vagy a „bejelentkezés” kiválasztásával. Ez a művelet hozzáférést biztosít a phpMyAdmin irányítópultjához, amelyet a következő kép ábrázol.

Első phpMyAdmin felhasználóként érdemes megismerkednie az „állapotoldallal”. Átfogó betekintést nyújt az adatbázis állapotába és állapotába.

A statisztikai oldalon túl a phpMyAdmin egy „tanácsadó rendszert” is tartalmaz. Ez a praktikus funkció teljesítménynövelési javaslatokat kínál.

Érdemes azonban észben tartani, hogy míg a tanácsadó 24 órás várakozást javasol, a legtöbben legalább 72 órát tartanak optimálisabbnak. Ez biztosítja, hogy az adatbázis-mintavétel hosszabb ideig megtörténjen, és pontosabb ajánlásokat ad.

Ezenkívül a tanácsadó rendszer nem lehet az egyetlen alapja a változtatásoknak. A MySQL vagy MariaDB konfigurációs fájlok módosítása alapos átgondolást, alapos tesztelést és esetleg többszöri iterációt igényel. A cél a konfigurációk optimalizálása a legjobb eredmény érdekében, és ez gyakran időt vesz igénybe.

Biztonságos phpMyAdmin a Let's Encrypt SSL-tanúsítvánnyal

Hozzon létre egy SSL-tanúsítványt a Certbot segítségével

A phpMyAdmin példány biztonságának növelése érdekében futtassa az Nginxet HTTPS-en keresztül SSL-tanúsítvány használatával. Az ingyenes, automatizált és nyílt SSL-tanúsítványokat kínáló híres tanúsító hatóság, a Let's Encrypt kihasználása a legegyszerűbb módszert kínálja.

Először telepítse a Certbot csomagot, amely segít az SSL titkosítási tanúsítványok kezelésében, a következő futtatásával:

sudo apt install python3-certbot-nginx -y

A certbot csomag telepítésének befejezése után hozza létre az SSL-tanúsítványt a következő parancs végrehajtásával:

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d pma.example.com

A tanúsítvány telepítési folyamatának elindításakor:

  • Egy felszólítás érdeklődni fog az EFF-től (Electronic Frontier Foundation) érkező e-mailek fogadásáról.
  • Akár egyetért (I), akár nem (N), a rendszer automatikusan telepíti és konfigurálja a TLS-tanúsítványt.
  • A konfiguráció magában foglalja a HTTPS 301 átirányítások kényszerítését, a Strict-Transport-Security fejléc hozzáadását és az OCSP tűzés megvalósítását.
  • Ne felejtse el behelyettesíteni az e-mail-címet és a domain nevet a parancsban a pontos adatokkal.

A beállítás befejezése után az Ön URL-címe a HTTP://pma.example.com címről a HTTPS://pma.example.com címre költözik, automatikusan átirányítva a korábbi HTTP URL-hez való hozzáférést a biztonságos HTTPS URL-re.

Hozzon létre egy Cron-feladatot az SSL-megújításhoz

Hozzon létre egy cron-feladatot, amely automatikusan megújítja a tanúsítványokat a folyamat további egyszerűsítése érdekében. A Certbot automatikus megújító szkriptet biztosít erre a célra. A feladat beállítása előtt megfontoltan végezzen szárazon futási tesztet annak ellenőrzésére, hogy minden megfelelően működik a következő paranccsal:

sudo certbot renew --dry-run

Az automatikus megújítás ütemezéséhez nyissa meg a crontab fájlt a következő parancs végrehajtásával:

sudo crontab -e

Rendszeresen ellenőrizze a tanúsítvány megújítását – legalább naponta egyszer –, hogy a tanúsítvány érvényes maradjon. Ha szükségessé válik a megújítás, a szkript automatikusan frissíti a tanúsítványt. A cron szintaxis használatával állítsa be a megújítást a kívánt időpontban.

00 00 */1 * * /usr/sbin/certbot-auto renew

Következtetés

Ha a phpMyAdmin sikeresen telepítve és konfigurálva van a Debian rendszeren, hatékonyan kezelheti MySQL vagy MariaDB adatbázisait egy felhasználóbarát webes felületen keresztül. A rendszeres frissítések és biztonsági konfigurációk biztosítják, hogy az adatbázis-kezelő eszköz biztonságos és naprakész maradjon. Élvezze a phpMyAdmin által kínált kényelmet és hatékony szolgáltatásokat az adatbázisok Debian-kezeléséhez.

Joshua James

Szólj hozzá!