Մուտքագրեք նույն օգտվողի անունը երկու տարբեր ուղիներից, և MariaDB-ն կարող է ձեզ նույնականացնել որպես երկու տարբեր հաշիվ։ Հաշիվները բանալավորվում են օգտվողի և հոսթի վրա միասին, ուստի 'reporter'@'localhost' և 'reporter'@'10.90.0.23' առանձին տողեր են՝ առանձին գաղտնաբառերով և առանձին թույլտվություններով։ VPN-ի միջով հետաքրքիր հարցը ոչ թե այն է, թե ինչ անուն է մուտքագրել օգտվողը, այլ այն, թե որ աղբյուր հասցեն է տեսել սերվերը։

Որոշեք այն աղբյուրը, որը սերվերը իրականում տեսնում է

Աշխատեք հետընթաց՝ տվյալների բազայի հոսթից, ոչ թե նոթբուքից։ Այն հասցեն, որը հաճախորդը կարծում է, թե ունի, ընդամենը մի քանի հնարավորություններից մեկն է:

PathSource MariaDB sees
Routed tunnel, no translationThe client's inner VPN address
Gateway source translationThe gateway's translated address
SSH local forwardThe SSH server's address
Public exit, no tunnelWhatever the ISP handed out

Օգտագործեք սերվերի կողմի ապացույցները՝ որոշելու համար։ Միացումների մատյանը, ակտիվ սեսիաների ցանկը կամ ընդհանուր մատյանի ժամանակավոր գրառումը ցույց են տալիս այն հասցեն, որը սերվերն ընդունել է։ Նոթբուքի հանրային IP-ն զննարկիչից այլ փաստ է և հաճախ մոլորեցնող։

Համապատասխանեցրեք այն հաշիվը, որը ընտրել է MariaDB-ն

Հաշվի ընտրությունը հետևում է փաստաթղթավորված հերթականությանը, այլ ոչ թե թույլտվությունների միավորմանը։ Հոսթի ճշգրիտ համընկնումը գերակայում է ձևանմուշ նշանի նկատմամբ, և անանուն օգտվողի տողերը մասնակցում են համընկնմանն այնպես, որ զարմացնում է նրանց, ովքեր ենթադրում են, որ միայն անունն է որոշում։ Սերվերն ընտրում է մեկ տող, այն չի միավորում յուրաքանչյուր համանուն տողի արտոնությունները։ Հղումը մեկ անգամ կարդալն ավելի արժեքավոր է, քան կես օր գուշակություններ փորձելը։

Դա նշանակում է, որ 'reporter'@'%'-ին թույլտվություն ավելացնելը կարող է ոչինչ չփոխել, եթե սեսիան նույնականացել է որպես 'reporter'@'10.90.0.23'։ Ուղղումը պետք է ընկնի այն տողի վրա, որն ընտրվել էր, դրա համար հաշվի նույնականացումը գալիս է թույլտվությունների խմբագրումից առաջ։

Կարդացեք այն հաշիվը, որն իրականում օգտագործում է սեսիան

SELECT USER(), CURRENT_USER();
SHOW GRANTS;

CURRENT_USER()-ը նշում է այն հաշիվը, որը նույնականացրել է սեսիան, իսկ USER()-ը հաղորդում է, թե ինչ է խնդրել հաճախորդը և կարող է տարբերվել։ Գործարկեք դրանք որպես սովորական վերին մակարդակի հարցումներ, ոչ թե սահմանող համատեքստով պահված ռուտինայի ներսից, հակառակ դեպքում պատասխանները նկարագրում են ռուտինայի սեփականատիրոջը, այլ ոչ թե ձեր սեսիան։

Չհաջողված մուտքը չի կարող գործարկել այս ամենից ոչինչ, և սա այն դեպքն է, երբ ադմինիստրատորը պետք է ստուգի հաշիվների սահմանումները և սերվերի միացման ապացույցները։ Պլանավորեք դրա համար. մերժված մուտքը վրիպազերծող մարդը սովորաբար SQL սեսիա չունի հարցում անելու համար։

Առանձնացրեք հասանելիությունը նույնականացումից

Սխալի տեքստը ձեզ ասում է, թե որ շերտում եք։ Մերժված միացումը կամ ժամանակի սպառումը նշանակում է, որ հաճախորդը երբեք չի հասել լսողին, ուստի հաշիվը և դրա գաղտնաբառը դեռ հարցականի տակ չեն։ Հասանելիությունը մերժելու պատասխանը նշանակում է, որ սերվերը պատասխանել է, ինչը ապացուցում է հասանելիությունը և մատնանշում է հաշիվը, հոսթի համընկնումը կամ վկայագիրը։

Ցանցային նախապայմանները իրենց սեփական ցանկն են. լսող, որը կապված է նախատեսված հասցեին, ոչ միայն loopback-ին, թույլատրված երթևեկություն դեպի կարգավորված պորտ և վերադարձի ուղի պատասխանի համար։ Յուրաքանչյուրը կարող է ինքնուրույն ձախողվել, և աշխատող թունելը չի ենթադրում դրանցից ոչ մեկը։ Loopback-ի վրա լսողն ընդունում է տեղական միացումները և մերժում է յուրաքանչյուր հեռավոր միացում, ինչը ստեղծում է մերժված միացում, որը նման է հրդեպատի արգելափակման։

Ստուգեք կապակցման հասցեն նախքան ցանցային թիմին տոմս բացելը։ Տվյալների բազայի հոսթի վրա ss -lntp-ը ցույց է տալիս, թե որ հասցեն և պորտն են իրականում լսում, և այդ մեկ տողը բացառում է գուշակությունների մի ամբողջ կատեգորիա։

Ուղղեք նեղ շրջանակում, ապա փորձարկեք երկու ուղղություններով

Ստեղծեք նախատեսված հոսթով որակավորված հաշիվը կազմակերպության հաստատված գործընթացով՝ աջակցվող պահոցից վկայագրով, այլ ոչ թե տոմսում փակցված ընդհանուրով։ Տրամադրեք միայն այն սխեմայի գործողությունները, որոնք անհրաժեշտ են առաջադրանքին։ Չհաջողված հեռավոր մուտքը root հաշվի, բոլորին-տրամադրելու քաղաքականության կամ ընդհանուր ձևանմուշ հոսթի վերածելը թույլ է տալիս թեստն անցնել և հեռացնում է այն վերահսկողությունը, որը դուք փորձարկում էիք։ Շտապ ավելացված թույլտվությունն այն է, որը հետագայում ոչ ոք չի հեռացնում։

Կրկին փորձարկեք թարմ սեսիայով նախատեսված ուղիով, ապա ստուգեք բացասական դեպքերը։ Ուղին, որը պետք է արգելափակված լինի, պետք է մնա արգելափակված, և գործողությունը, որը չի տրամադրվել, պետք է մնա մերժված։ Այս երկու ստուգումներն են, որ տարբերում են վերանորոգված հաշիվը ընդլայնվածից։

Վերջում գրանցեք դիտարկված աղբյուրի հասցեն և հաշվի անունը միասին։ Թունելը ապահովում է հասանելիությունը, MariaDB-ն դեռ ընտրում և լիազորում է իր սեփական հաշիվը, և հաջորդ մարդուն անհրաժեշտ են երկու փաստերն էլ՝ ձեր արդյունքը վերարտադրելու համար։

Առնչվող հոդվածներ