Hakuna kosa katika programu na hakuna kosa katika handaki, na bado dashibodi haipaki. Huduma inapofanya kazi na network_mode: service:vpn, inashiriki nafasi ya majina ya mtandao ya kontena la VPN, ikimaanisha kwamba kisikilizaji chake na bandari zilizotangazwa ni mali ya nafasi hiyo ya majina na si ya huduma. Maamuzi matatu yanafuata: wapi programu inafunga, kontena gani linatangaza bandari, na jinsi njia ya usimamizi ilivyo nyembamba. Yafanye kwa mpangilio usio sahihi na kila mpangilio mmoja utaonekana sahihi huku mchanganyiko usiweze kufanya kazi.

Nani anamiliki nafasi ya majina ya bandari

Katika nafasi ya majina inayoshirikiwa, kuongeza ingizo ports: kwa huduma tegemezi hakufanyi jambo lolote lenye manufaa, na chaguzi kadhaa za mtandao hazitumiki kwa ajili yake kwa muundo. Badala yake tangaza kwenye kontena linalomiliki nafasi ya majina. Kontena hilo pia ni lile ambalo anwani yake inaonekana kwenye mwenyeji, kwa hiyo ramani inasomwa kama ingizo moja na si moja kwa kila huduma.

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

Angalia anwani upande wa kushoto wa ramani. Kufunga kwenye 127.0.0.1 kunabakisha bandari iliyotangazwa kwenye loopback ya mwenyeji, ambayo kwa kawaida ndiyo kiolesura cha usimamizi inayotaka. Kufunga kwenye 0.0.0.0 kunaifichua kwenye kila kiolesura cha mwenyeji, na huo ni uamuzi mwingine wa usalama, si urahisi.

Fanya programu isikilize pale ambapo nafasi ya majina inatarajia

Kisikilizaji kilichofungwa kwenye 127.0.0.1 ndani ya nafasi ya majina kinafikiwa tu kutoka ndani ya nafasi hiyo. Bandari za mwenyeji zilizotangazwa zinakuja kutoka nje, kwa hiyo programu lazima ifunge anwani pana zaidi ili ramani ifanye kazi. Hii ni mabadiliko ya mstari mmoja kwenye seva nyingi, na ndiyo hatua ambayo watu wanairuka baada ya kunakili mwongozo wa uimarishaji ulioandikwa kwa usambazaji usio na kontena.

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

Orodha ya visikilizaji ndani ya programu inasema ukweli kuhusu anwani ya kufunga, na docker port inaonyesha kile mmiliki alichotangaza kwa kweli. Ikiwa ya kwanza inaonyesha 127.0.0.1 na ya pili inaonyesha ramani ya mwenyeji, umegundua kutokubaliana bila kugusa usanidi wa VPN.

Chagua jinsi njia ya usimamizi inaingia

Kuna mipangilio mitatu ya busara. Tangaza kwenye kontena la VPN na ufike kwayo kutoka kwa mwenyeji au kutoka mtandao wa karibu. Weka proksi ya kinyume mbele ya nafasi ya majina na upe proksi bandari pekee iliyofichuliwa. Au weka dashibodi ifikiwe tu kutoka ndani ya nafasi ya majina kupitia kikao cha exec au handaki la SSH, ambayo ni mfiduo mdogo zaidi na urahisi mdogo zaidi.

Ipi inafaa inategemea nani anahitaji kiolesura na kutoka wapi. Msimamizi mmoja kwenye mwenyeji huyo huyo anaridhika na kufunga kwa loopback. Timu inayofikia kwa njia ya VPN inahitaji njia iliyokusudiwa na mmiliki aliyetajwa. Kuchagua chaguo la proksi kunakupa TLS na kumbukumbu za ufikiaji, kwa gharama ya sehemu nyingine ya kuwekwa sawa.

Fungua bandari ya usimamizi bila kufungua kila kitu

Sera ya ufikiaji wa ndani au ya kufunga ya mteja wa VPN inaweza kutupa ombi la usimamizi linaloingia hata wakati handaki la kutoka linafanya kazi kikamilifu. Ruhusu msamaha mmoja ulioandikwa kwa chanzo na bandari inayokusudiwa, kisha thibitisha kwamba ulinzi wa kawaida wa handaki haujabadilika. Kuzima swichi ya dharura ili dashibodi ipakie ni kubadilisha udhibiti halisi na kichupo cha kivinjari.

Acha uthibitishaji wa programu yenyewe ukiwa umewashwa. Kuwemo ndani ya mkusanyiko uliounganishwa na VPN hakumuidhinishi kila mtumiaji wa ndani au kila kifaa kinachoweza kufikia mwenyeji, na paneli ya usimamizi isiyo na uthibitishaji nyuma ya handaki bado ni paneli ya usimamizi isiyo na uthibitishaji.

Thibitisha kutoka kifaa cha usimamizi, kisha thibitisha tena baadaye

Jaribu kutoka kwa mashine itakayosimamia huduma kwa kweli, si kutoka kwa mwenyeji, kisha thibitisha kwa pekee njia ya intaneti inayohitajika na programu. Mafanikio ya usimamizi yanathibitisha mwelekeo mmoja na hayasemi chochote kuhusu kutoka.

Jaribu tena baada ya mkusanyiko kuundwa upya. Mmiliki wa mtandao aliyebadilishwa hubadilisha nafasi ya majina ambayo programu inaambatana nayo, na URL iliyofanya kazi kabla ya sasisho inaweza isielekeze mahali popote baada yake. Andika ramani iliyotangazwa na anwani ya kufunga ili ujenzi upya ujao uwe ukaguzi wa dakika mbili na si uchunguzi uliorudiwa.

Makala zinazohusiana