Athraíonn sé cé acu suíomh a fhreagraíonn iarratas nuair a dhírítear hóst fíorúil Subversion chuig seoladh VPN, ní cé atá ceadaithe ceann a sheoladh. Tarlaíonn an tseiceáil rochtana níos déanaí, de réir na rialacha sa rannán a mheaitseáil an URL, agus ní théann ainm hóist riamh isteach sa chinneadh sin. Más é ServerName an t-aon athrú a rinne tú, tá an stóras chomh hinrochtana céanna agus a bhí inné. Caithfear freagra a thabhairt ar dhá cheist ar leith sa chumraíocht: cén soicéad a ghlac an nasc agus cén féiniúlacht a bhí ag an iarratas.

Cad a shocraíonn ServerName i ndáiríre

Déanann óstáil fhíorúil bunaithe ar ainm comparáid idir an ceanntásc Host agus iontrálacha ServerName agus ServerAlias, roghnaíonn sé aon hóst amháin agus ligeann don hóst sin an t-iarratas a láimhseáil. Ghlac soicéad Listen a bhaineann leis an bhfreastalaí, ní leis an hóst, leis an nasc féin níos luaithe. Sin an fáth nach dtugann ainm atá cosúil le príobháideach aon chosaint: is féidir le haon chliant a shroicheann an soicéad an ceanntásc Host sin a sheoladh. Is eochair ródaithe é an t-ainm, agus is é an té a ghlaonn a roghnaíonn eochracha ródaithe.

Is féidir leat an mhapáil a fheiceáil gan buille faoi thuairim. Priontálann apachectl -S gach hóst, a phort agus a ainmneacha, agus cuireann sé in iúl cé acu ceann is réamhshocraithe don seoladh.

Is é RequireAll an coimeádán a fhágann go bhfuil an dá sheiceáil éigeantach

Ceanglaíonn Apache 2.4 treoracha Require aon rannáin amháin in RequireAny intuigthe, mar sin ciallaíonn dhá threoir lom go bhfuil ceann amháin acu leor. Cuir an coimeádán leis agus iompaíonn an bhrí:

<Location /svn/repo>
    AuthType Basic
    AuthName "Subversion"
    AuthBasicProvider file
    AuthUserFile /etc/apache2/svn.htpasswd
    <RequireAll>
        Require ip 10.8.0.0/24
        Require valid-user
    </RequireAll>
</Location>

Teastaíonn an dá choinníoll ó RequireAll: seoladh foinse laistigh de raon an tolláin agus úsáideoir a nglacann an stóras leis. Sin an rud ba chóir a bheith i gceist le VPN-amháin d’URL Subversion. Déanann tagairt mod_authz_core doiciméadú ar rialacha an choimeádáin. Coinnigh an bloc laistigh den Location atá ann cheana don stóras agus fág na treoracha DAV atá ag obair cheana ina n-áit, mar ní chuireann an píosa seo in ionad AuthType ná an comhad focal faire ná údarú ag leibhéal an chosáin.

Tagann an tástáil foinse ó mod_authz_host, mar sin dearbhaigh go bhfuil sé luchtaithe sula ndéanfaidh tú dífhabhtú ar aon rud eile: apachectl -M | grep authz_host.

Is é an seoladh a mheasann Apache ná seoladh an tsoicéid

Déanann Require ip comparáid leis an seoladh a thaifead Apache don nasc, agus ní hé sin an seoladh a cheapann an cliant atá aige i gcónaí.

Nuair a ródálann an VPN a sheoltaí gan aistriúchán, feiceann Apache seoladh an tolláin agus meaitseálann 10.8.0.0/24. Nuair a dhéanann geata aistriúchán, feiceann Apache an geata agus ní mheaitseálann an riail rud ar bith go ciúin; tarlaíonn an rud céanna taobh thiar de chothromóir ualaigh a chríochnaíonn TLS os comhair an hóist. Tá mod_remoteip ann don chás sin. Cuireann RemoteIPHeader X-Forwarded-For mar aon le RemoteIPTrustedProxy don chothromóir in ionad an tseolta thaifeadta, agus is ansin amháin a bhíonn rud éigin ag an raon le cur i gcomparáid.

Is measa muinín a chur i gceanntásc seolta treallach ná gan aon riail a bheith agat. Is féidir le haon chliant X-Forwarded-For a sheoladh ina bhfuil 10.8.0.9 agus seiceáil raoin a shásamh nár cumhdaíodh riamh le hop iontaofa.

Cuir an t-éisteoir agus polasaí an stórais ina sraitheanna

Is rialú ar leith é an ceangal agus go minic an ceann is simplí. Socraíonn Listen 10.8.0.1:443 cé na soicéid a bhíonn ann, agus ní féidir le hiarratas hóst a roghnú ar shoicéad nár osclaíodh riamh. Is é an costas ord an tosaithe: má tá comhéadan an tolláin síos nuair a thosaíonn Apache, teipeann an ceangal agus ní éiríonn an tseirbhís. Péireáil le hord na n-aonad é, nó ceangail le seoladh atá ann go neamhspleách ar an tollán.

Fanann ceadanna cosáin in AuthzSVNAccessFile. Ní hionann cuntas bailí don suíomh agus cead scríofa chuig cosán tionscadail, agus ní athraíonn riail an líonra sin.

Bí airdeallach ar chónascadh rannán nuair a bhíonn an bloc i gcomhad atá san áireamh. Cónascann Apache coimeádáin údaraithe trasna rannán neadaithe agus is féidir leis an rannán meaitseála is sonraí an ceanglas a chur in ionad a chur leis, mar sin b’fhéidir nach sroicheann riail ar /svn /svn/repo/trunk nuair a shainíonn rannán níos cúinge a cheann féin.

Cruthaigh an dá dhiúltú sula ndeir tú go bhfuil sé críochnaithe

Tástáil ceithre iarratas, ní aon cheann amháin. Laistigh den VPN le cuntas bailí ba cheart duit liosta an stórais a fháil. Laistigh den VPN le focal faire mícheart ba cheart duit 401 a fháil seachas liosta. Ón taobh amuigh den VPN le dintiúir bhailí ba cheart duit 403 a fháil, agus caithfidh an t-iarratas poiblí céanna chuig ainm hóist eile teip ar an mbealach céanna.

Is leor aon ordú amháin in aghaidh an cháis: curl -sI -u user:pass https://svn.example.com/svn/repo/, ansin léigh an líne stádais. Déan an cás oibre a athrá tríd an bhfíorchliant freisin, mar cleachtaíonn svn info na modhanna DAV a úsáidfidh commits agus nuashonruithe.

Mura n-aontaíonn aon cheann de na ceithre thoradh leis an bpolasaí a bhí beartaithe agat, níl an chumraíocht críochnaithe, agus ní athróidh athainmniú an hóist sin.

Ailt ghaolmhara