Sådan installeres og sikres phpMyAdmin med Apache på en CentOS 7-Server

introduktion

relationelle databasestyringssystemer som MariaDB er nødvendige for en betydelig del af hjemmesider og applikationer. Imidlertid føler ikke alle brugere sig godt tilpas med at administrere deres data fra kommandolinjen.

for at løse dette problem blev et projekt kaldet phpMyAdmin oprettet for at tilbyde et alternativ i form af en internetbaseret styringsgrænseflade. I denne vejledning demonstrerer vi, hvordan du installerer og sikrer en phpMyAdmin-konfiguration på en CentOS 7-server. Vi vil bygge denne opsætning oven på Apache-serveren, den mest populære internetserver i verden.

forudsætninger

før vi begynder, er der et par krav, der skal løses.

for at sikre, at du har en solid base at bygge dette system på, skal du køre gennem vores indledende serveropsætningsvejledning til CentOS 7. Dette vil blandt andet lede dig gennem opsætning af en ikke-root-bruger med sudo adgang til administrative kommandoer.

den anden forudsætning, der skal opfyldes for at starte på denne vejledning, er at installere en LAMP (Apache, MariaDB og PHP) stak på din CentOS 7-server. Dette er den platform, som vi vil bruge til at betjene vores phpMyAdmin-interface (MariaDB er også det databasestyringsprogram, som vi ønsker at administrere). Hvis du endnu ikke har en LAMPEINSTALLATION på din server, skal du følge vores vejledning om installation af lampe på CentOS 7.

når din server er i en korrekt fungerende tilstand efter at have fulgt disse vejledninger, kan du fortsætte med resten af denne side.

trin et — Installer phpMyAdmin

med vores LAMPEPLATFORM allerede på plads, kan vi begynde med det samme med at installere phpMyAdmin-programmet. Desværre er phpMyAdmin ikke tilgængelig i CentOS 7s standardlager.

for at få de pakker, vi har brug for, skal vi tilføje en ekstra repo til vores system. EPEL repo indeholder mange ekstra pakker, herunder den phpMyAdmin-pakke, vi leder efter.

EPEL-depotet kan stilles til rådighed for din server ved at installere en speciel pakke kaldet epel-release. Dette vil omkonfigurere din lagerliste og give dig adgang til EPEL-pakkerne.

for at installere skal du bare skrive:

sudo yum install epel-release

nu hvor EPEL repo er konfigureret, kan du installere phpMyAdmin-pakken ved hjælp af yum emballagesystemet ved at skrive:

sudo yum install phpmyadmin

installationen er nu færdig. Installationen indeholdt en Apache-konfigurationsfil, der allerede er sat på plads. Vi bliver nødt til at ændre dette lidt for at få det til at fungere korrekt til vores installation.

Åbn filen i din teksteditor nu, så vi kan foretage et par ændringer:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

inde ser vi nogle katalogblokke med en vis betinget logik for at forklare adgangspolitikken for vores bibliotek. Der er to forskellige mapper, der er defineret, og inden for disse konfigurationer, der vil være gyldige for både Apache 2.2 og Apache 2.4 (som vi kører).

i øjeblikket er denne opsætning konfigureret til at nægte adgang til enhver forbindelse, der ikke oprettes fra selve serveren. Da vi arbejder på vores server eksternt, er vi nødt til at ændre nogle linjer for at specificere IP-adressen på din hjemmeforbindelse.

skift alle linjer, der læser Require ip 127.0.0.1 eller Allow from 127.0.0.1 for at henvise til din hjemmeforbindelses IP-adresse. Hvis du har brug for hjælp til at finde IP-adressen på din hjemmeforbindelse, skal du tjekke det næste afsnit. Der skal være fire placeringer i filen, der skal ændres:

. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .Require ip your_workstation_IP_address. . .Allow from your_workstation_IP_address. . .

når du er færdig, skal du genstarte Apache-serveren for at implementere dine ændringer ved at skrive:

sudo systemctl restart httpd.service

med det, vores phpMyAdmin installation er nu i drift. For at få adgang til grænsefladen skal du gå til din servers domænenavn eller offentlige IP-adresse efterfulgt af /phpMyAdmin :

http://server_domain_or_IP/phpMyAdmin

phpMyAdmin login screen

for at logge ind skal du bruge et brugernavn/adgangskodepar for en gyldig MariaDB-bruger. root bruger og MariaDB administrative adgangskode er et godt valg at komme i gang. Du vil derefter kunne få adgang til den administrative grænseflade:

phpMyAdmin admin interface

Find din IP-adresse

du skal kende IP-adressen på den computer, du bruger til at få adgang til dine databaser for at fuldføre trinnet ovenfor. Dette er en sikkerhedsforanstaltning, så uautoriserede personer ikke kan oprette forbindelse til din server.

Bemærk: Dette er ikke IP-adressen på din VPS, det er IP-adressen på dit hjem eller din arbejdscomputer.

du kan finde ud af, hvordan det større internet ser din IP-adresse ved at besøge et af disse sider i din internetsøgemaskine:

  • hvad er min IP-adresse?
  • Hvad er min IP?
  • min IP-adresse

Sammenlign et par forskellige steder, og sørg for, at de alle giver dig den samme værdi. Brug denne værdi i konfigurationsfilen ovenfor.

trin To — sikre din phpMyAdmin instans

phpMyAdmin instans installeret på vores server bør være helt anvendelig på dette tidspunkt. Ved at installere en internetgrænseflade har vi imidlertid udsat vores system for omverdenen.

selv med den medfølgende godkendelsesskærm er dette et ganske problem. På grund af phpmyadmins Popularitet kombineret med den store mængde data, den giver adgang til, er installationer som disse fælles mål for angribere.

vi implementerer to enkle strategier for at mindske chancerne for, at vores installation bliver målrettet og kompromitteret. Vi ændrer placeringen af grænsefladen fra /phpMyAdmin til noget andet for at undgå nogle af de automatiserede Bot brute-force-forsøg. Vi vil også oprette en yderligere godkendelsesport på serverniveau, der skal bestås, før vi endda kommer til phpmyadmin-loginskærmen.

ændring af programmets adgangssted

for at vores Apache-server kan fungere med phpMyAdmin, bruger vores phpMyAdmin Apache-konfigurationsfil et alias til at pege på filernes mappeplacering.

for at ændre URL ‘ en, hvor vores phpMyAdmin-interface kan fås, skal vi blot omdøbe aliaset. Åbn konfigurationsfilen phpMyAdmin Apache nu:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

mod toppen af filen vil du se to linjer, der ser sådan ud:

Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin

disse to linjer er vores aliaser, hvilket betyder, at hvis vi får adgang til vores sides domænenavn eller IP-adresse, efterfulgt af enten /phpMyAdmin eller /phpmyadmin, får vi vist indholdet på /usr/share/phpMyAdmin.

vi ønsker at deaktivere disse specifikke aliaser, da de er stærkt målrettet af bots og ondsindede brugere. I stedet skal vi beslutte os for vores eget alias. Det skal være let at huske, men ikke let at gætte. Det bør ikke angive formålet med URL-placeringen. I vores tilfælde går vi med /nothingtosee.

for at anvende vores tilsigtede ændringer skal vi fjerne eller kommentere de eksisterende linjer og tilføje vores egne:

# Alias /phpMyAdmin /usr/share/phpMyAdmin# Alias /phpmyadmin /usr/share/phpMyAdminAlias /nothingtosee /usr/share/phpMyAdmin

når du er færdig, skal du gemme og lukke filen.

for at implementere ændringerne skal du genstarte internettjenesten:

sudo systemctl restart httpd.service

hvis du nu går til den forrige placering af din phpMyAdmin-installation, får du en 404-fejl:

http://server_domain_or_IP/phpMyAdmin

phpMyAdmin 404 fejl

din phpMyAdmin-grænseflade vil dog være tilgængelig på den nye placering, vi valgte:

http://server_domain_or_IP/nothingtosee

phpMyAdmin login screen

opsætning af en Server Authentication Gate

den næste funktion, vi ønskede for vores installation var en godkendelse prompt, at en bruger ville være forpligtet til at passere før nogensinde at se phpMyAdmin login screen.

heldigvis giver de fleste internetservere, herunder Apache, denne mulighed indbygget. Vi bliver bare nødt til at ændre vores Apache-konfigurationsfil for at bruge en autorisationsfil.

Åbn phpMyAdmin Apache-konfigurationsfilen i din teksteditor igen:

sudo nano /etc/httpd/conf.d/phpMyAdmin.conf

inden for /usr/share/phpMyAdmin katalogblokken, men uden for nogen af blokkene indeni, skal vi tilføje et tilsidesættelsesdirektiv. Det vil se sådan ud:

. . .<Directory /usr/share/phpMyAdmin/> AllowOverride All <IfModule mod_authz_core.c> . . .</Directory>. . .

dette giver os mulighed for at specificere yderligere konfigurationsoplysninger i en fil kaldet .htaccess placeret i selve phpMyAdmin-biblioteket. Vi bruger denne fil til at konfigurere vores adgangskodegodkendelse.

Gem og luk filen, når du er færdig.

genstart internettjenesten for at implementere denne ændring:

sudo systemctl restart httpd.service

Opret en .htaccess-fil

nu hvor vi har tilsidesættelsesdirektivet i vores konfiguration, vil Apache lede efter en fil kaldet .htaccess i mappen /usr/share/phpMyAdmin. Hvis den finder en, vil den bruge direktiverne indeholdt i at supplere sine tidligere konfigurationsdata.

vores næste trin er at oprette .htaccess – filen i den mappe. Brug din teksteditor til at gøre det nu:

sudo nano /usr/share/phpMyAdmin/.htaccess

inden for denne fil skal vi indtaste følgende oplysninger:

AuthType BasicAuthName "Admin Login"AuthUserFile /etc/httpd/pma_passRequire valid-user

lad os gå over, hvad hver af disse linjer betyder:

  • AuthType Basic: Denne linje angiver den godkendelsestype, vi implementerer. Denne type implementerer adgangskodegodkendelse ved hjælp af en adgangskodefil.
  • AuthName: dette angiver meddelelsen til dialogboksen godkendelse. Du bør beholde denne generiske, så uautoriserede brugere ikke får viden om, hvad der beskyttes.
  • AuthUserFile: dette angiver placeringen af den faktiske adgangskodefil, der skal bruges til godkendelse. Dette bør være uden for de mapper, der bliver serveret. Vi opretter denne fil om et øjeblik.
  • Kræv gyldig-bruger: Dette angiver, at kun godkendte brugere skal have adgang til denne ressource. Dette forhindrer faktisk uautoriserede brugere i at komme ind.

når du er færdig med at indtaste disse oplysninger, skal du gemme og lukke filen.

Opret Adgangskodefilen til godkendelse

nu hvor vi har angivet placeringen for vores adgangskodefil ved hjælp af AuthUserFile direktivet i vores .htaccess fil, skal vi oprette og udfylde adgangskodefilen.

dette kan opnås ved brug af et Apache-værktøj kaldet htpasswd. Vi påkalder kommandoen ved at videregive den til det sted, hvor vi gerne vil oprette filen, og det brugernavn, vi gerne vil indtaste godkendelsesoplysninger for:

sudo htpasswd -c /etc/httpd/pma_pass username

flagget -c angiver, at dette vil oprette en indledende fil. Mappeplaceringen er stien og filnavnet, der skal bruges til filen. Brugernavnet er den første bruger, vi gerne vil tilføje. Du bliver bedt om at indtaste og bekræfte en adgangskode til brugeren.

hvis du vil tilføje yderligere brugere, der skal godkendes, kan du ringe til den samme kommando igen uden -c – flaget og med et nyt brugernavn:

sudo htpasswd /etc/httpd/pma_pass seconduser

med vores adgangskodefil oprettet, er der implementeret en godkendelsesportal, og vi skal nu se en adgangskodeprompt næste gang vi besøger vores side:

http://server_domain_or_IP/nothingtosee

Apache-Godkendelsesside

når du har indtastet dine legitimationsoplysninger, føres du til den normale phpMyAdmin-login-side. Dette ekstra beskyttelseslag hjælper med at holde dine logfiler rene for godkendelsesforsøg ud over den ekstra sikkerhedsfordel.

konklusion

du kan nu administrere dine databaser fra en rimelig sikker internetgrænseflade. Denne brugergrænseflade afslører det meste af den funktionalitet, der er tilgængelig fra kommandoprompten. Du kan få vist databaser og skema, udføre forespørgsler og oprette nye datasæt og strukturer.

You might also like

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.