Kūrėjo nešiojamasis kompiuteris praranda ryšį jungdamasis prie privataus RDS galinio taško, nors tie patys prisijungimo duomenys veikia iš bastiono prieglobos. Niekas nenukrito. Keliui tarp to nešiojamojo kompiuterio ir duomenų bazės trūksta vieno iš trijų dalykų: išsprendžiamo vardo, maršruto, kuris neša srautą, arba saugos grupės taisyklės, kuri praleidžia šaltinį, kurį duomenų bazė iš tikrųjų mato. Išsiaiškinkite, ko trūksta, prieš keisdami kitus du.

Skaitykite nesėkmę tinkamame sluoksnyje

Laiko limito klaida nėra viena klaida. Vardas, kuris neišsprendžiamas, nepavyksta anksčiau, nei paketas palieka mašiną. Adresas be maršruto siunčia paketus į juodąją skylę. Filtruojamas prievadas sukuria laukimą, kuris atrodo lygiai kaip netinkamas prieglobos kompiuteris. Vykdykite veiksmus iš eilės ir sustokite ties pirmuoju, kuris nepavyksta.

dig +short db.internal.example
nc -vz db.internal.example 5432

Jei vardas grąžina viešą adresą arba nieko, tunelis dar nėra problema.

Jei vardas išsprendžiamas, o prievado testas pakimba, palyginkite išspręstą adresą su adresu, kurį praneša duomenų bazė. Valdomas galinis taškas gali išspręsti į privatų adresą VPC viduje ir į nieką naudingo už jo, o adresas, nukopijuotas iš senos paieškos, rodys į prieglobą, kuri nebatsako.

Atskirkite tunelį nuo maršruto

Kliento VPN prisijungimas automatiškai nenukreipia kiekvieno privataus diapazono. Profilis neša maršrutus, kuriuos stumia paslauga, o klientas gali įdiegti tik kai kuriuos. Pažiūrėkite, kuriuos diapazonus klientas iš tikrųjų pridėjo ir ar duomenų bazės adresas patenka į vieną jų.

ip route get 10.20.40.15
ip addr show tun0

Maršrutas, nukreiptas į tunelio sąsają, būtinas; jo nepakanka, nes priešinga pusė vis tiek turi priimti srautą.

Suskaidyto tunelio profiliai yra įprastas šios pusinės nesėkmės šaltinis. Jie veikia programai, kuriai profilis buvo sukurtas, ir palieka duomenų bazės diapazoną už tunelio, o tai sukuria būtent tą laiko limitą, kokį sukurtų užkarda.

Suderinkite saugos grupę su tikruoju šaltiniu

RDS saugos grupė praleidžia šaltinius, o ne žmones. Priklausomai nuo architektūros šaltinis gali būti VPN klientų telkinys, bastiono privatus adresas arba NAT adresas, į kurį išverčiamas srautas. Skaitykite taisyklę ir tikrąjį paketo šaltinį kartu.

aws ec2 describe-security-groups --group-ids sg-0123456789abcdef0 \
  --query 'SecurityGroups[].IpPermissions'

Taisyklė vienam nešiojamojo kompiuterio namų adresui yra priežiūros problema, o ne prieigos dizainas.

Kai kelyje yra kliento VPN arba NAT tarpinė, duomenų bazė gali matyti vertėjo adresą vietoj kūrėjo tunelio adreso. Štai kodėl taisyklė, nukopijuota iš veikiančios bastiono sąrankos, gali nepavykti nešiojamajam kompiuteriui: du keliai ateina iš skirtingų šaltinių, nors abu atrodo vidiniai.

Teikite pirmenybę siauram keliui prieš platų

Kai vienam kūrėjui reikia vienos duomenų bazės, sesija pagrįstas perdavimas dažnai pigiau eksploatuoti nei visas tinklo tunelis. Vietinis klientas prisijungia prie persiųsto prievado, o nuotolinis komponentas sukuria duomenų bazės ryšį iš tinklo vidaus.

ssh -N -L 5432:db.internal.example:5432 bastion.internal.example

Šiame dizaine palikite TLS tikrinimą nepaliestą. Klientas vis tiek turėtų tikrinti serverio sertifikatą pagal vardą, kurio tikisi; vietinis persiųstas prievadas nėra priežastis išjungti tikrinimą, o jį išjungus paslepiama būtent ta tapatybės problema, kurią verta pagauti.

Pasirinkimas tarp viso tunelio ir siauro perdavimo yra sprendimas dėl apimties, o ne dėl saugumo teatro.

Palikite po savęs pakartojamą kelią

Dokumentuokite galinio taško vardą, o ne išspręstą adresą, šaltinio diapazoną, kurį praleidžia saugos grupė, ir duomenų bazės vaidmenį, kurį naudoja kūrėjas. Šie trys faktai paaiškina daugumą būsimų nesėkmių be skambučio. Pridėkite ir kliento profilio versiją, nes profilio pakeitimas gali pašalinti maršrutą, kurį nešė senasis.

Tada vieną kartą išbandykite neigiamą atvejį: klientas už patvirtinto šaltinio ribų vis tiek turėtų būti atmetamas.

Privati duomenų bazė, kuri veikia tik tam žmogui, kuris ją nustatė, nėra privati prieiga; tai nedokumentuota išimtis, laukianti, kol bus vėl atrasta. Užrašykite kelią, ir kitas kūrėjas paveldės metodą, o ne paslaptį.

Susiję straipsniai