Introduksjon
relasjonsdatabasebehandlingssystemer som MySQL og MariaDB er nødvendig for en betydelig del av nettsteder og applikasjoner. Men ikke alle brukere føler seg komfortabel administrere sine data fra kommandolinjen.
for å løse dette problemet ble et prosjekt kalt phpMyAdmin opprettet for å tilby et alternativ i form av et nettbasert styringsgrensesnitt. I denne veiledningen vil vi demonstrere hvordan du installerer og sikrer en phpmyadmin-konfigurasjon på En CentOS 7-server. Vi vil bygge dette oppsettet på Toppen Av Apache webserver, den mest populære webserveren i verden.
Forutsetninger
Før vi begynner, er det noen krav som må avgjøres.
for å sikre at du har en solid base for å bygge dette systemet på, bør du kjøre gjennom vår første serveroppsettguide For CentOS 7. Dette vil blant annet lede deg gjennom å sette opp en ikke-rotbruker med sudo
tilgang for administrative kommandoer.
den andre forutsetningen som må oppfylles for å starte på denne veiledningen, er å installere EN LAMP (Linux, Apache, MariaDB og PHP) stabel på CentOS 7-serveren. Dette er plattformen vi vil bruke til å betjene vårt phpmyadmin-grensesnitt (MariaDB er også databasebehandlingsprogramvaren vi ønsker å administrere). Hvis du ennå ikke har EN LAMP-installasjon på serveren din, følg vår veiledning om å installere LAMP på CentOS 7.
når serveren din er i en fungerende tilstand etter å ha fulgt disse veiledningene, kan du fortsette med resten av denne siden.
Trinn En — Installer phpMyAdmin
MED VÅR LAMP-plattform allerede på plass, kan vi begynne med en gang med å installere phpmyadmin-programvaren. Dessverre er phpMyAdmin ikke tilgjengelig i CentOS 7s standardregister.
for å få pakkene vi trenger, må vi legge til en ekstra repo i systemet vårt. EPEL repo (Ekstra Pakker For Enterprise Linux) inneholder mange ekstra pakker, inkludert phpmyadmin-pakken vi leter etter.
EPEL-depotet kan gjøres tilgjengelig for serveren din ved å installere en spesiell pakke kalt epel-release
. Dette vil omkonfigurere depotlisten din og gi deg tilgang til EPEL-pakkene.
for å installere, skriv bare:
sudo yum install epel-release
Nå SOM EPEL repo er konfigurert, kan du installere phpmyadmin-pakken ved hjelp av pakkesystemet yum
ved å skrive:
sudo yum install phpmyadmin
installasjonen vil nå fullføres. Installasjonen inkluderte En Apache-konfigurasjonsfil som allerede er satt på plass. Vi må endre dette litt for å få det til å fungere riktig for vår installasjon.
Åpne filen i teksteditoren din nå, slik at vi kan gjøre noen endringer:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Inne ser Vi noen katalogblokker med noen betinget logikk for å forklare tilgangspolicyen for katalogen vår. Det er to forskjellige kataloger som er definert, og innenfor disse konfigurasjonene som vil være gyldige for Både Apache 2.2 og Apache 2.4 (som vi kjører).
for Øyeblikket er dette oppsettet konfigurert til å nekte tilgang til en tilkobling som ikke blir gjort fra selve serveren. Siden vi jobber på vår server eksternt, må vi endre noen linjer for å angi IP-adressen til hjemmeforbindelsen din.
Endre alle linjer som leser Require ip 127.0.0.1
eller Allow from 127.0.0.1
for å referere TIL ip-adressen til hjemmetilkoblingen din. Hvis DU trenger HJELP til å finne IP-adressen til hjemmeforbindelsen din, kan du sjekke ut neste avsnitt. Det bør være fire steder i filen som må endres:
. . .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 ferdig, start Apache webserveren For å implementere endringene dine ved å skrive:
sudo systemctl restart httpd.service
med det er vår phpMyAdmin-installasjon nå operativ. For å få tilgang til grensesnittet, gå til serverens domenenavn eller offentlige IP-adresse etterfulgt av /phpMyAdmin
, i nettleseren din:
http://server_domain_or_IP/phpMyAdmin
for å logge på, bruk et brukernavn / passord par av en gyldig MariaDB-bruker. Brukeren root
Og MariaDB administrative passord er et godt valg for å komme i gang. Du vil da kunne få tilgang til det administrative grensesnittet:
Finn DIN IP-Adresse
DU må kjenne IP-adressen til datamaskinen du bruker for å få tilgang til databasene dine for å fullføre trinnet ovenfor. Dette er en sikkerhetsforanstaltning slik at uautoriserte personer ikke kan koble til serveren din.
Merk: DETTE ER IKKE IP-adressen TIL VPS, DET ER IP-adressen til hjemme-eller arbeidsdatamaskinen din.
du kan finne UT hvordan greater web ser IP-adressen din ved å besøke et av disse nettstedene i nettleseren din:
- HVA ER MIN IP-Adresse?
- Hva ER MIN IP?
- MIN IP-Adresse
Sammenlign noen forskjellige nettsteder og sørg for at De alle gir deg samme verdi. Bruk denne verdien i konfigurasjonsfilen ovenfor.
Trinn To — Sikre phpMyAdmin-Forekomsten
phpMyAdmin-forekomsten som er installert på serveren vår, skal være helt brukbar på dette punktet. Men ved å installere et webgrensesnitt har vi utsatt Vårt MySQL-system til omverdenen.
selv med den medfølgende autentiseringsskjermen, er dette et ganske problem. På grunn av phpmyadmins popularitet kombinert med den store mengden data det gir tilgang til, er installasjoner som disse vanlige mål for angripere.
Vi vil implementere to enkle strategier for å redusere sjansene for at installasjonen vår blir målrettet og kompromittert. Vi vil endre plasseringen av grensesnittet fra /phpMyAdmin
til noe annet å omgå noen av de automatiserte bot brute-force forsøk. Vi vil også opprette en ekstra autentiseringsgateway på webservernivå som må sendes før du kommer til phpmyadmin-påloggingsskjermen.
Endre Appens Tilgangsplassering
For at Vår Apache-webserver skal fungere med phpMyAdmin, bruker vår phpMyAdmin Apache-konfigurasjonsfil et alias for å peke på katalogplasseringen til filene.
for å endre NETTADRESSEN der phpMyAdmin-grensesnittet kan nås, trenger vi bare å omdøpe aliaset. Åpne phpMyAdmin Apache-konfigurasjonsfilen nå:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
Mot toppen av filen ser du to linjer som ser slik ut:
Alias /phpMyAdmin /usr/share/phpMyAdminAlias /phpmyadmin /usr/share/phpMyAdmin
disse to linjene er våre aliaser, noe som betyr at hvis vi får tilgang til nettstedets domenenavn eller IP-adresse, etterfulgt av enten /phpMyAdmin
eller /phpmyadmin
, vil vi bli servert innholdet på /usr/share/phpMyAdmin
.
Vi vil deaktivere disse spesifikke aliasene siden de er tungt målrettet av bots og ondsinnede brukere. I stedet bør vi bestemme oss for vårt eget alias. Det skal være lett å huske, men ikke lett å gjette. Det bør ikke angi formålet MED URL-plasseringen. I vårt tilfelle går vi med /nothingtosee
.
for å bruke våre planlagte endringer, bør vi fjerne eller kommentere de eksisterende linjene og legge til våre egne:
# Alias /phpMyAdmin /usr/share/phpMyAdmin# Alias /phpmyadmin /usr/share/phpMyAdminAlias /nothingtosee /usr/share/phpMyAdmin
når du er ferdig, lagrer og lukker du filen.
start webtjenesten på nytt for å implementere endringene:
sudo systemctl restart httpd.service
Nå, hvis du går til forrige plassering av phpmyadmin-installasjonen, får du en 404-feil:
http://server_domain_or_IP/phpMyAdmin
imidlertid vil phpmyadmin-grensesnittet være tilgjengelig på det nye stedet vi valgte:
http://server_domain_or_IP/nothingtosee
Sette opp En Webserverautentiseringsport
den neste funksjonen vi ønsket for installasjonen var en godkjenningsprompt om at en bruker ville bli pålagt å passere før noen gang ser phpmyadmin innloggingsskjermbildet.
Heldigvis gir De Fleste webservere, inkludert Apache, denne funksjonen innfødt. Vi trenger bare å endre Vår Apache konfigurasjonsfil for å bruke en autorisasjonsfil.
Åpne phpMyAdmin Apache-konfigurasjonsfilen i teksteditoren din igjen:
sudo nano /etc/httpd/conf.d/phpMyAdmin.conf
innenfor katalogblokken /usr/share/phpMyAdmin
, men utenfor noen av blokkene inne, må vi legge til et overstyringsdirektiv. Det vil se slik ut:
. . .<Directory /usr/share/phpMyAdmin/> AllowOverride All <IfModule mod_authz_core.c> . . .</Directory>. . .
Dette vil tillate oss å spesifisere flere konfigurasjonsdetaljer i en fil som heter .htaccess
som ligger i phpmyadmin-katalogen selv. Vi vil bruke denne filen til å sette opp vår passordautentisering.
Lagre og lukk filen når du er ferdig.
Start webtjenesten på nytt for å implementere denne endringen:
sudo systemctl restart httpd.service
Opprett en .htaccess File
Nå som Vi har overstyringsdirektivet i vår konfigurasjon, Vil Apache se etter en fil som heter .htaccess
i katalogen /usr/share/phpMyAdmin
. Hvis den finner en, vil den bruke direktivene som finnes i å supplere sine tidligere konfigurasjonsdata.
Vårt neste trinn er å lage .htaccess
– filen i den katalogen. Bruk din tekst editor for å gjøre det nå:
sudo nano /usr/share/phpMyAdmin/.htaccess
Innenfor denne filen må vi skrive inn følgende informasjon:
AuthType BasicAuthName "Admin Login"AuthUserFile /etc/httpd/pma_passRequire valid-user
La oss gå over hva hver av disse linjene betyr:
- AuthType Basic: Denne linjen angir godkjenningstypen som vi implementerer. Denne typen vil implementere passordautentisering ved hjelp av en passordfil.
- AuthName: dette angir meldingen for dialogboksen godkjenning. Du bør holde denne generiske slik at uautoriserte brukere ikke vil få kunnskap om hva som blir beskyttet.
- AuthUserFile: dette angir plasseringen av den faktiske passordfilen som skal brukes til godkjenning. Dette bør være utenfor katalogene som blir servert. Vi vil lage denne filen om et oyeblikk.
- Krev gyldig-bruker: Dette angir at bare godkjente brukere skal få tilgang til denne ressursen. Dette er det som faktisk stopper uautoriserte brukere fra å komme inn.
når du er ferdig med å skrive inn denne informasjonen, lagrer og lukker du filen.
Opprett Passordfilen For Godkjenning
Nå som vi har angitt plasseringen for passordfilen vår ved bruk av AuthUserFile
– direktivet i vår .htaccess
– fil, må vi opprette og fylle ut passordfilen.
Dette kan oppnås ved Bruk Av Et Apache-verktøy kalt htpasswd
. Vi påberoper kommandoen ved å sende den stedet der vi ønsker å lage filen og brukernavnet vi ønsker å legge inn autentiseringsdetaljer for:
sudo htpasswd -c /etc/httpd/pma_pass username
flagget -c
indikerer at dette vil opprette en innledende fil. Katalogplasseringen er banen og filnavnet som skal brukes for filen. Brukernavnet er den første brukeren vi ønsker å legge til. Du blir bedt om å skrive inn og bekrefte et passord for brukeren.
hvis du vil legge til flere brukere for å godkjenne, kan du ringe samme kommando igjen uten flagget -c
og med et nytt brukernavn:
sudo htpasswd /etc/httpd/pma_pass seconduser
med vår passordfil opprettet, har en autentiseringsgateway blitt implementert, og vi skal nå se en passordprompt neste gang vi besøker nettstedet vårt:
http://server_domain_or_IP/nothingtosee
Når du skriver inn legitimasjonene dine, blir du tatt til den normale phpmyadmin-påloggingssiden. Dette ekstra beskyttelseslaget vil bidra til å holde MySQL-loggene rene for autentiseringsforsøk i tillegg til den ekstra sikkerhetsfordelen.
Konklusjon
du kan nå administrere MySQL-databasene dine fra et rimelig sikkert webgrensesnitt. DETTE BRUKERGRENSESNITTET avslører det meste av funksjonaliteten som er tilgjengelig fra MySQL-ledeteksten. Du kan vise databaser og skjema, utføre spørringer og opprette nye datasett og strukturer.