MariaDB oor VPN: watter user@host sien die bediener?
Die rekening word deur gebruiker en gasheer saam gekies. Vind die bron wat die bediener gesien het, lees CURRENT_USER() en herstel dan daardie ry, nie die toekenning nie.
Tik dieselfde gebruikernaam vanaf twee verskillende paaie en MariaDB kan jou as twee verskillende rekeninge verifieer. Rekeninge word op gebruiker en gasheer saam gesleutel, dus is 'reporter'@'localhost' en 'reporter'@'10.90.0.23' afsonderlike rye met afsonderlike wagwoorde en afsonderlike toekennings. Oor 'n VPN is die interessante vraag nie watter naam die gebruiker getik het nie, maar watter bronadres die bediener gesien het.
Bepaal die bron wat die bediener werklik sien
Werk terug vanaf die databasisgasheer, nie vanaf die skootrekenaar nie. Die adres wat die kliënt dink hy het, is slegs een van verskeie moontlikhede:
| Path | Source MariaDB sees |
|---|---|
| Routed tunnel, no translation | The client's inner VPN address |
| Gateway source translation | The gateway's translated address |
| SSH local forward | The SSH server's address |
| Public exit, no tunnel | Whatever the ISP handed out |
Gebruik bedienerkant-getuienis om dit te besleg. 'n Verbindingslog, 'n lys van aktiewe sessies of 'n tydelike algemene log-inskrywing wys die adres wat die bediener aanvaar het. Die skootrekenaar se openbare IP vanaf 'n blaaier is 'n ander feit en dikwels 'n misleidende een.
Vind die rekening wat MariaDB gekies het
Rekeningkeuse volg gedokumenteerde ordening eerder as 'n vereniging van toekennings. 'n Presiese gasheerpassing het voorrang bo 'n wildcard, en anonieme gebruikerrye neem deel aan passing op maniere wat mense verras wat aanneem die naam alleen besluit. Die bediener kies een ry; dit voeg nie die voorregte van elke soortgelyk genoemde ry saam nie. Om die verwysing een keer te lees is meer werd as 'n middag se raaiwerk.
Dit beteken dat die byvoeging van 'n toekenning aan 'reporter'@'%' niks mag verander as die sessie as 'reporter'@'10.90.0.23' verifieer het nie. Die regstelling moet op die ry beland wat gekies is, en daarom kom die identifisering van die rekening voor die wysiging van toekennings.
Lees die rekening wat die sessie werklik gebruik
SELECT USER(), CURRENT_USER();
SHOW GRANTS;
CURRENT_USER() noem die rekening wat die sessie verifieer het; USER() rapporteer wat die kliënt gevra het en kan verskil. Voer dit as gewone topvlak-navrae uit, nie vanuit 'n gestoorde roetine met 'n definieerder-konteks nie, anders beskryf die antwoorde die roetine se eienaar in plaas van jou sessie.
'n Mislukte aanmelding kan niks hiervan uitvoer nie, en dit is die geval waar 'n administrateur eerder die rekeningdefinisies en die bediener se verbindinggetuienis moet inspekteer. Beplan daarvoor: die persoon wat 'n verwerpte aanmelding ontfout, het gewoonlik geen SQL-sessie om navraag te doen nie.
Skei bereikbaarheid van verifiëring
Die foutteks vertel jou in watter laag jy is. 'n Geweierde verbinding of 'n time-out beteken die kliënt het nooit 'n luisteraar bereik nie, so die rekening en sy wagwoord is nog nie ter sprake nie. 'n Toegang-geweier-antwoord beteken die bediener het geantwoord, wat bereikbaarheid bewys en na die rekening, die gasheerpassing of die geloofsbrief wys.
Netwerkvereistes is hul eie lys: 'n luisteraar wat aan die bedoelde adres gebind is en nie net aan loopback nie, toegelate verkeer na die gekonfigureerde poort, en 'n terugroete vir die antwoord. Elkeen kan onafhanklik misluk, en 'n werkende tonnel impliseer nie een van hulle nie. 'n Luisteraar op loopback aanvaar plaaslike verbindings en weier elke afgeleë een, wat 'n geweierde verbinding lewer wat soos 'n firewallblok lyk.
Kontroleer die bindadres voordat jy 'n kaartjie by die netwerkspan oopmaak. ss -lntp op die databasisgasheer wys watter adres en poort werklik luister, en daardie enkele reël skakel 'n hele kategorie raaiskote uit.
Herstel noukeurig en toets dan beide rigtings
Skep die beoogde gasheergekwalifiseerde rekening deur die organisasie se goedgekeurde proses, met 'n geloofsbrief uit die ondersteunde stoor eerder as een wat in 'n kaartjie geplak is. Verleen slegs die skema-bewerkings wat die taak nodig het. Om 'n mislukte afgeleë aanmelding in 'n root-rekening, 'n verleen-alles-beleid of 'n oorkoepelende wildcard-gasheer te verander, laat die toets slaag en verwyder die beheer wat jy getoets het. Die toekenning wat jy haastig bygevoeg het, is die een wat niemand later verwyder nie.
Toets weer met 'n vars sessie deur die beoogde pad, en kontroleer dan die negatiewe gevalle. 'n Pad wat geblokkeer moet word, moet steeds geblokkeer word, en 'n bewerking wat nie toegestaan is nie, moet steeds geweier word. Daardie twee kontroles is wat 'n herstelde rekening van 'n verbrede een skei.
Laastens, teken die waargenome bronadres en die rekeningnaam saam aan. Die tonnel verskaf bereikbaarheid; MariaDB kies en magtig steeds sy eie rekening, en die volgende persoon het beide feite nodig om jou resultaat te reproduseer.