Asgjë nuk është gabim me aplikacionin dhe asgjë nuk është gabim me tunelin, dhe megjithatë paneli nuk ngarkohet. Kur një shërbim punon me network_mode: service:vpn, ndan hapësirën e emrave të rrjetit të kontejnerit VPN, që do të thotë se dëgjuesi dhe portat e publikuara i takojnë asaj hapësire emrash dhe jo shërbimit. Prej kësaj rrjedhin tri vendime: ku lidhet aplikacioni, cili kontejner publikon portën dhe sa e ngushtë është rruga e menaxhimit. Vendosi në rendin e gabuar dhe çdo rregullim i veçantë duket i saktë, ndërsa kombinimi nuk mund të punojë.

Kujt i takon hapësira e emrave të portës

Në një hapësirë emrash të përbashkët, shtimi i një zëri ports: te shërbimi i varur nuk bën asgjë të dobishme, dhe disa opsione rrjeti nuk mbështeten për të sipas projektimit. Publikoje në vend të kësaj në kontejnerin që zotëron hapësirën e emrave. Po ai kontejner është edhe ai adresa e të cilit shfaqet në host, ndaj hartëzimi lexohet si një zë i vetëm dhe jo një për çdo shërbim.

services:
  vpn:
    image: vpn-client-image
    cap_add: [NET_ADMIN]
    ports:
      - "127.0.0.1:8080:8080"
  app:
    network_mode: "service:vpn"

Vëre adresën në të majtë të hartëzimit. Lidhja me 127.0.0.1 e mban portën e publikuar në loopback-un e hostit, që zakonisht është ajo që kërkon një ndërfaqe menaxhimi. Lidhja me 0.0.0.0 e ekspozon në çdo ndërfaqe të hostit, dhe ky është një vendim tjetër sigurie, jo komoditet.

Bëje aplikacionin të dëgjojë atje ku hapësira e emrave e pret

Një dëgjues i lidhur me 127.0.0.1 brenda hapësirës së emrave është i arritshëm vetëm nga brenda asaj hapësire. Portat e publikuara të hostit vijnë nga jashtë, ndaj aplikacioni duhet të lidhë një adresë më të gjerë që hartëzimi të punojë. Ky është një ndryshim prej një rreshti në shumicën e serverëve, dhe është pikërisht hapi që njerëzit e kapërcejnë pasi kopjojnë një udhëzues forcimi të shkruar për një vendosje pa kontejnerë.

docker compose exec app ss -lntp
docker port vpn
curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8080/

Lista e dëgjuesve brenda aplikacionit thotë të vërtetën për adresën e lidhjes, dhe docker port tregon çfarë publikoi vërtet pronari. Nëse i pari tregon 127.0.0.1 dhe i dyti tregon një hartëzim në host, e ke gjetur mospërputhjen pa prekur konfigurimin e VPN-së.

Zgjidh si hyn rruga e menaxhimit

Ka tri rregullime të arsyeshme. Publiko në kontejnerin VPN dhe arrije nga hosti ose nga rrjeti lokal. Vendos një përfaqësues të kundërt përpara hapësirës së emrave dhe jepi përfaqësuesit portën e vetme të ekspozuar. Ose mbaj panelin të arritshëm vetëm nga brenda hapësirës së emrave përmes një sesioni exec ose një tuneli SSH, që është ekspozimi më i vogël dhe komoditeti më i vogël.

Cili përshtatet varet nga kush e ka nevojë ndërfaqen dhe nga ku. Një administrator i vetëm në të njëjtin host kënaqet me një lidhje loopback. Një ekip që e arrin përmes VPN-së ka nevojë për një rrugë të menduar dhe një pronar të emërtuar. Zgjedhja e opsionit të përfaqësuesit të jep TLS dhe regjistra aksesi, me koston e një komponenti tjetër për t’u mbajtur i përditësuar.

Hap portën e menaxhimit pa hapur gjithçka

Politika e vetë klientit VPN për akses lokal ose bllokim mund të hedhë poshtë një kërkesë menaxhimi në hyrje edhe kur tuneli në dalje punon në mënyrë të përsosur. Lejo një përjashtim të dokumentuar për burimin dhe portën e synuar, pastaj konfirmo se mbrojtja e zakonshme e tunelit është e pandryshuar. Çaktivizimi i çelësit të ndalimit që të ngarkohet një panel shkëmben një kontroll të vërtetë me një skedë shfletuesi.

Lëre vërtetimin e vetë aplikacionit të aktivizuar. Të qenit brenda një stivë të lidhur me VPN nuk autorizon çdo përdorues lokal ose çdo pajisje që mund të arrijë hostin, dhe një panel administrimi pa vërtetim pas një tuneli mbetet një panel administrimi pa vërtetim.

Verifiko nga pajisja e menaxhimit, pastaj verifiko përsëri më vonë

Provo nga makina që do ta menaxhojë vërtet shërbimin, jo nga hosti, dhe pastaj verifiko veçmas rrugën e internetit që kërkon aplikacioni. Suksesi në menaxhim dëshmon një drejtim dhe nuk thotë asgjë për daljen.

Provo përsëri pasi stiva të rikrijohet. Një pronar rrjeti i zëvendësuar ndryshon hapësirën e emrave ku lidhet aplikacioni, dhe një URL që punonte para një përditësimi mund të mos tregojë më askund pas saj. Shkruaj hartëzimin e publikuar dhe adresën e lidhjes, që rindërtimi tjetër të jetë një kontroll dy minutash dhe jo një hetim i përsëritur.

Artikuj të ngjashëm