Forrit inni í VPN-nafnrými er ekki aðgengilegt frá LAN
Netnafnrými gefur einu forriti sinn eigin göng og sitt eigið loopback. Birtu aðeins portið með socat-stökki eða veth-pari í stað vélarinnar.
Þjónustan þín virkar á vélinni, göngin eru uppi, og samt bíður vafrinn á skrifborðinu þínu enn eftir svari. Ekkert er brotið í venjulegri merkingu: forritið hlustar inni í netnafnrými, og sá stakkur er ósýnilegur LAN-inu. Loopback þess tilheyrir nafnrýminu, svo biðlari á annarri vél hefur ekkert netfang sem nær portinu. Eitt viljandi stökk, eða eitt veth-par, lagar þetta án þess að flytja restina af vélinni.
Af hverju ekkert svarar á LAN-netfanginu
Nafnrými er heill netstakkur: tengi, leiðir, eldveggsreglur og einkaloopback. Ferli sem ræst er í gegnum ip netns exec sér þennan stakk og ekkert annað, svo netfangið sem það bindur sig við leysist aðeins inni í nafnrýminu. Eigið 127.0.0.1 vélarinnar er gjörólíkt loopback.
Þess vegna mistekst curl á vélinni á meðan sama skipun inni í nafnrýminu tekst. Forritið er heilbrigt; netfangið er einfaldlega ekki til í stakk vélarinnar.
Birtu eitt port með socat-stökki
socat brúar stakkana tvo í notendarýminu, sem er nóg þegar eitt TCP-port á að fara yfir. Hlið vélarinnar hlustar á LAN-inu og ræsir fyrir hverja samþykkta tengingu annað socat inni í nafnrýminu sem tengist loopback forritsins. Innra ferlið nær í forritið nákvæmlega eins og staðbundinn biðlari myndi gera. Ekkert breytist í leiðavali nafnrýmisins, svo forritið heldur áfram að nota göngin sem eina útganginn.
socat TCP-LISTEN:9100,reuseaddr,fork EXEC:'ip netns exec vpn socat STDIO tcp-connect:127.0.0.1:9100',nofork
Ytra ferlið þarf root eða getu til að ganga inn í nafnrýmið. Ef VPN dettur missir forritið leið sína og birt port mistekst lokað, sem er sú hegðun sem þú vilt frá fangelsi.
Notaðu veth-par þegar fleiri en eitt port fer yfir
veth-par er rétta svarið þegar nokkur port eða samskiptareglur þurfa að fara yfir, eða þegar aðrar vélar þurfa að hefja tengingar. Annar endinn verður eftir í vélinni, hinn flyst inn í nafnrýmið, og lítill /30 gefur báðum hliðum stöðugt netfang. Leið vélarinnar sendir þá netfang nafnrýmisins yfir parið.
ip link add veth0 type veth peer name veth1
ip link set veth1 netns vpn
ip addr add 10.77.0.1/30 dev veth0
ip link set veth0 up
ip netns exec vpn ip addr add 10.77.0.2/30 dev veth1
ip netns exec vpn ip link set veth1 up
Bættu ekki við sjálfgefinni leið í gegnum vélina nema þú ætlir að brjóta fangelsið. Göngin eiga að vera útgangurinn, svo aðeins birt þjónustunetfang er aðgengilegt yfir parið. Gefðu nafnrýminu líka sína eigin resolver-skrá, því ip netns exec les /etc/netns/vpn/resolv.conf og án hennar er nafnaupplausn inni í fangelsinu tóm.
Prófaðu frá annarri vél, ekki frá vélinni sjálfri
Keyrðu prófið frá annarri vél, því vélin getur náð í staðbundinn hlustanda á leiðum sem segja ekkert um LAN-ið. Athugaðu fyrst við hvað forritið bindur sig í raun inni í nafnrýminu, tengdu þig svo að utan við birt netfang. Að binda sig við hvert netfang þar víkkar ekki fangelsið, því algildistáknið tilheyrir enn nafnrýminu og LAN-ið getur ekki séð það.
ip netns exec vpn ss -lntp
Ef tenging frá vélinni virkar og tenging frá LAN-inu ekki, þá vantar stökkið eða leiðina, ekki bindinetfangið. Ræstu OpenVPN inni í nafnrýminu í stað þess að flytja lifandi tun-tæki inn í það, því flutningur tengisins slekkur á því og getur hreinsað leiðir sem þú getur þá ekki lagað að utan. Hafðu endurheimtarskipanirnar á stjórnborðinu, ekki inni í fangelsinu.