Tuneli yako imewashwa, huduma inasikiliza, na LAN ya ofisi bado haipati chochote kurudi. Hakuna aliyevunja VPN. Kwa upande wa LAN, anwani ya tuneli ya kompyuta mpakato haipo hadi kitu kiambie LAN jinsi ya kuifikia, na jibu linapaswa kurudi kwa njia ile ile ambayo ombi lilitoka. Nimewaona watu wakijenga upya tuneli iliyo sawa kabisa mara tatu kabla ya mtu yeyote kuangalia njia ya kurudi.

Si tuneli iliyovunjika

Ncha zote mbili zimekaa kwenye safu za kibinafsi, jambo ambalo ni hali ya kawaida na si usanidi mbaya. Anwani kama 10.8.0.6 ni ya kweli ndani ya tuneli na haipo mahali pengine popote, kwa hiyo LAN haina sababu ya kutuma chochote huko. Kabla ya kugusa upangaji njia, thibitisha kwamba huduma inafikiwa ndani ya tuneli: kwenye mteja, ss -ltn inaonyesha kama msikilizaji amefungwa kwa 127.0.0.1, kwa kiolesura cha LAN au kwa anwani ya tuneli. Daemon iliyofungwa kwa loopback pekee haijibu mtu yeyote isipokuwa yenyewe, na hakuna njia, DNAT au uelekezaji wa bandari unaobadilisha hilo.

Proksi kwenye bandari 80 au 443 ni chombo kingine chenye mwonekano mwingine. Huhamisha maombi, si pakiti, kwa hiyo ni tabaka lisilofaa kwa muunganisho mbichi wa hifadhidata, na kunyanyua mkono kuelekea kwake ndiyo njia ambayo tatizo hili huishia vyombo vitatu kwa kina kabla ya mtu yeyote kupima kitu.

Umbo la njia: iambie LAN mahali bwawa liko

Njia isiyobadilika kwenye lango la LAN ni jibu safi zaidi wakati LAN na bwawa la tuneli hazipishani. Elekeza bwawa kwenye mashine inayomaliza tuneli:

ip route add 10.8.0.0/24 via 192.168.1.12
route add -p 10.8.0.0 mask 255.255.255.0 192.168.1.12   # Windows, persistent

Hilo hutengeneza mwelekeo mmoja tu, ndiyo sababu matoleo nusu kamili ya mabadiliko haya yanaonekana kama maendeleo. Upande wa tuneli unahitaji nusu inayolingana, vinginevyo jibu linaondoka kwa mteja kwa njia yake ya msingi na kufa njiani:

push "route 192.168.1.0 255.255.255.0"

Kwa subnet iliyo nyuma ya mteja mmoja badala ya nyuma ya seva, seva inahitaji njia ya mfumo na ingizo la iroute katika faili ya mteja huyo chini ya client-config-dir. Bila iroute, OpenVPN inajua kiambishi kipo na haijui ni mteja gani anamiliki: pakiti zinafika na daemon haina cha kuzipa.

Hapa kuna hekaya inayostahili jina. Njia hufanya anwani ifikike; haifanyi upande wa pili uwe tayari kujibu. Washirika wa tovuti-kwa-tovuti huongeza tabaka lingine juu, kwa sababu lango la mbali linakubali vyanzo vilivyo ndani ya viambishi vya sera yake pekee, na kompyuta mpakato inayotoka kwenye bwawa la nyumbani haiko ndani yao.

Umbo la NAT: DNAT ndani, na mstari wa SNAT ambao kila mtu anaupuuza

Wakati huwezi kugusa lango la LAN, au unataka kuchapisha bandari moja hasa, tafsiri kwenye mwenyeji wa VPN hufanya kazi bila njia yoyote kwenye LAN. Chapisha bandari, ipeleke mbele, na utafsiri chanzo njiani kuingia tunelini:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j DNAT --to-destination 10.8.0.6:3000
iptables -A FORWARD -i eth0 -o tun0 -p tcp -d 10.8.0.6 --dport 3000 -j ACCEPT
iptables -t nat -A POSTROUTING -o tun0 -d 10.8.0.6 -p tcp --dport 3000 -j SNAT --to-source 10.8.0.1

Mstari wa tatu ni ule unaotoweka. Ukiupuuza, mteja anaona anwani ya asili ya LAN kama chanzo, hujibu kwa njia yake ya msingi, na jibu hilo linaingia tunelini badala ya kurudi kwa LAN. Ikiwa muunganisho utaendelea, basi inategemea upangaji njia ambao hukuwahi kuupanga. Kwa SNAT mteja anaona anwani ya tuneli ya seva, kwa hiyo jibu linafuata tuneli kurudi kwa mwenyeji pekee anayeweza kubatilisha tafsiri.

Firmware ya walaji hutumia majina yake ya mnyororo na haizalishi tafsiri hiyo kwa ajili yako. Kwenye Tomato, kanuni ya kuingia inaanguka kwenye WANPREROUTING kisha kwenye mnyororo wa kuchuja kama wanin, na seti ya kanuni inayoonekana kamili bado inahitaji mstari wa POSTROUTING wa mkono. Hilo si hitilafu ya firmware; ni seti ya kanuni iliyoandikwa kwa trafiki inayoingia pekee.

Kwa nini kanuni inayoonekana sahihi bado huangusha pakiti

Mengi ya kushindwa huku hayako kwenye kanuni unayoitazama. Angalia mambo manne kwa mpangilio huu, na simama kwenye la kwanza lisiloshikilia:

  • Mpangilio wa mnyororo. iptables -I huingiza juu na -A huongeza mwishoni, kwa hiyo kanuni ya awali inayoruhusu au inayozuia huamua kwanza.
  • Mnyororo usiofaa. Trafiki inayoelekezwa kwa router yenyewe hupita INPUT, na trafiki inayopelekwa mbele haigusi kamwe. Kuchapisha huduma moja kunaweza kuhitaji kanuni katika zote mbili.
  • Bendera za mwelekeo. -i tun0 hulingana na trafiki inayotoka kwa wateja na -o tun0 na trafiki inayokwenda kwao. REJECT yenye bendera isiyofaa huzuia kitu usichokusudia.
  • Kizuizi cha chanzo. Upelekaji mbele unaokubali anwani moja ya mteja hufanya kazi kutoka kwa mteja huyo na huangusha chanzo kingine chochote bila neno.

Kanuni yenye kihesabu cha pakiti sifuri haiko njiani kabisa, na kusoma vihesabu ndiyo njia ya haraka zaidi ya kutenganisha tatizo la mnyororo usiofaa na tatizo la kanuni isiyofaa.

Upelekaji wa karibu, wakati hakuna kinachoweza kubadilishwa kwenye LAN

Upelekaji wa karibu wa SSH unakwepa swali zima. Hauhiti njia kwenye LAN, ushirikiano kutoka kwa ukuta wa moto wa mteja, au bandari iliyochapishwa mahali popote:

ssh -N -f -L 3000:10.8.0.6:3000 user@vpn-host

Huduma kisha inaonekana kwenye localhost:3000 ya mashine inayoshikilia tuneli, na mahali pengine popote hapana. Hiyo ndiyo mipaka: kituo kimoja cha kazi, bandari moja, na upelekaji hufa pamoja na kipindi isipokuwa kitu kianzishe upya. Kwa msimamizi anayekagua hifadhidata ya majaribio ni chombo sahihi. Kwa kamera au skana ambayo watu wengine wanapaswa kuifikia si hivyo, kwa sababu kila mtumiaji angehitaji upelekaji wake mwenyewe.

Thibitisha pande zote mbili kabla ya kuongeza kanuni nyingine

Tafsiri huacha alama, na kuzisoma ni bora kuliko kukisia. Kwenye mwenyeji wa VPN, conntrack -L inaonyesha kama tafsiri ilitokea, iptables -t nat -L -n -v inaonyesha kama vihesabu vilisogea, na tcpdump -ni any port 3000 inaonyesha ni anwani gani ya chanzo iliyofika kwa kweli. Kwenye mteja, ss -ltn inathibitisha kwamba msikilizaji yuko kwenye anwani ambayo tuneli inaweza kuifikia.

Kisha chagua umbo unalobakiza. Bandari moja iliyochapishwa, njia kwa bwawa zima, na upelekaji kwa msimamizi mmoja ni ahadi tatu tofauti, na kuzichanganya ndiyo njia ambayo usanidi unaofanya kazi unakuwa ule ambao hakuna anayeweza kuueleza baada ya miezi sita. Andika ni anwani gani inafikika kutoka wapi, na mtu anayefuata atakayerekebisha hili ataanzia kwenye jibu badala ya tuneli.

Makala zinazohusiana