Ku xaddid martigeliyaha Subversion isticmaalayaasha VPN adoo adeegsanaya Apache 2.4
ServerName wuxuu doortaa martigeliyaha macmalka ah; ma xaddido cidda isku xirta. Dalbo xadka VPN iyo isticmaale kayd dhab ah, kadibna caddee labada diidmo.
U jiheynta martigeliyaha macmalka ah ee Subversion ciwaanka VPN waxay beddelaysaa goobta ka jawaabta codsiga, ma aha cidda loo ogol yahay inay diraan. Hubinta gelitaanka waxay dhacdaa mar dambe, sida qawaaniinta qaybta u dhiganta URL-ka, magaca martigeliyahana marnaba ma galo go'aankaas. Haddii ServerName uu ahaa isbeddelkaaga kaliya, kaydka ayaa si la mid ah loo heli karaa sida shalay. Laba su'aalood oo kala duwan ayaa laga jawaabayaa habaynta: soo-koodhka kee ayaa aqbalay xiriirka iyo aqoonsiga kee ayaa codsiga qaaday.
Waxa ServerName dhab ahaan go'aansado
Martigelinta macmalka ah ee ku salaysan magaca waxay isbarbardhigtaa madaxa Host iyo gelitaannada ServerName iyo ServerAlias, waxay doorataa hal martigeliye oo u ogolaataa inuu maareeyo codsiga. Xiriirka laftiisa waxaa horay u aqbalay soo-koodhka Listen oo ka tirsan serverka, ma aha martigeliyaha. Sidaas darteed magac u eg mid gaar ah ma bixiyo wax difaac ah: macmiil kasta oo gaara soo-koodhka wuu diri karaa madaxaas Host. Magacu waa fure marin, furayaasha marinkana waxaa doorta kan wacaya.
Waxaad arki kartaa khariidaynta adigoon mala-awaal. apachectl -S waxay daabacdaa martigeliye kasta, dekeddiisa iyo magacyadiisa, waxayna calaamadiso midka ugu caansan ciwaanka.
RequireAll waa weelka labada hubin ka dhigaya waajib
Apache 2.4 waxay ku duubtaa tilmaamaha Require ee hal qayb gudaha RequireAny aan caddayn, marka laba tilmaamood oo qaawan macneheedu waa midkood kasta wuu ku filan yahay. Ku dar weelka oo macnuhu rogmado:
<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>RequireAll wuxuu dalbanayaa labada shuruudood: ciwaanka isha gudaha xadka tunnelka iyo isticmaalaha kaydku aqbalo. Taasi waa waxa kaliya-VPN ay tahay inay ka dhigan tahay URL Subversion. Tixraaca mod_authz_core waxay diiwaangelisaa qawaaniinta weelka. Ku hay block-ka gudaha Location-ka jira ee kaydka oo ka tag tilmaamaha DAV ee horey u shaqeeya meeshooda, sababtoo ah qaybtani ma beddelo AuthType ama faylka furaha sirta ama ogolaanshaha heerka wadada.
Imtixaanka isha wuxuu ka yimaaddaa mod_authz_host, marka hubi inuu raran yahay ka hor intaadan wax kale hagaajin: apachectl -M | grep authz_host.
Ciwaanka Apache qiimeeyo waa ciwaanka soo-koodhka
Require ip waxay isbarbardhigtaa ciwaanka Apache u diiwaangeliyay xiriirka, kaas oo aan had iyo jeer ahayn ciwaanka macmiilku u malaynayo inuu haysto.
Marka VPN uu marin ugu sameeyo ciwaannadiisa iyada oo aan tarjumaad lahayn, Apache wuxuu arkaa ciwaanka tunnelka oo 10.8.0.0/24 wuu dhigmaa. Marka albaabku tarjumo, Apache wuxuu arkaa albaabka oo qaanuunku aamusnaan waxba kuma dhigmaan; isla waxaas ayaa dhaca gadaasha dheellitirka culayska ee TLS ku dhammeeya martigeliyaha hortiisa. Xaaladdaas waxaa jira mod_remoteip. RemoteIPHeader X-Forwarded-For oo ay la socoto RemoteIPTrustedProxy ee dheellitirka waxay beddelaa ciwaanka la diiwaangeliyay, markaas oo kaliya ayaa xadku wax u leeyahay inuu isbarbardhigto.
Aaminaadda madax kasta oo gudbin ah waa ka xun tahay inaadan qaanuun haba yaraatee lahaan. Macmiil kasta wuu diri karaa X-Forwarded-For oo ay ku jirto 10.8.0.9 oo wuxuu buuxin karaa hubin xad ah oo aan waligeed ku xirmin tallaabo la aamini karo.
U dheji dhegeystaha iyo siyaasadda kaydka lakabyo
Xidhitaanku waa kontorool gooni ah oo inta badan ka fudud. Listen 10.8.0.1:443 wuxuu go'aansadaa soo-koodhyada jira, codsiguna ma dooran karo martigeliye soo-koodh aan waligiis la furin. Qiimuhu waa nidaamka bilowga: haddii interface-ka tunnelku hoos yahay marka Apache bilaabmo, xidhitaanku wuu guuldarraystaa oo adeeggu ma soo kaco. La lammaani nidaamka unugyada, ama ku xidh ciwaan si madaxbannaan u jira tunnelka.
Ogolaanshaha wadadu wuxuu ku sii jiraa AuthzSVNAccessFile. Akoon sax ah oo goobta ku habboon ma aha isla ogolaanshaha gelitaanka qorista wadada mashruuca, qaanuunka shabakadduna taas ma beddelo.
Fiiro gaar ah u yeelo isku-darka qaybaha marka block-ku ku jiro fayl lagu daray. Apache wuxuu isku daraa weelasha ogolaanshaha qaybaha is dhexgalay oo qaybta ugu gaar ah ee u dhiganta waxay beddeli kartaa shuruudda halkii ay ku dari lahayd, sidaas darteed qaanuunka /svn laga yaabee inuusan gaarin /svn/repo/trunk marka qayb dhuuban ay qeexdo tan u gaar ah.
Caddee labada diidmo ka hor intaadan dhammaystiran ku sheegin
Tijaabi afar codsi, ma aha mid. Gudaha VPN oo leh akoon sax ah waa inaad heshaa liiska kaydka. Gudaha VPN oo leh furaha sirta khaldan waa inaad heshaa 401 halkii liis. Dibadda VPN oo leh aqoonsi sax ah waa inaad heshaa 403, codsiga dadweynaha ee magac martigeliye kale waa inuu si la mid ah u guuldarraystaa.
Hal amar xaalad kasta waa ku filan yahay: curl -sI -u user:pass https://svn.example.com/svn/repo/, kadibna akhri safka xaaladda. Ku celi xaaladda shaqaysa macmiilka dhabta ah sidoo kale, sababtoo ah svn info wuxuu tababaraa hababka DAV ee commit-yada iyo cusboonaysiintu isticmaali doonaan.
Haddii mid ka mid ah afar natiijadood uusan waafaqsanayn siyaasadda aad ula jeeday, habayntu ma dhammaan, magaca martigeliyahana beddelkiisu taas ma beddelo.