Macmiilku wuxuu helaa cinwaan, serverku wuxuu ka jawaabaa ping, haddana bog kastaa wuu waqti dhaafaa. Dadka badankood waxay billaabaan inay tafatiraan borofaylka macmiilka markan, taasoo badanaa ah dadaal aan faa'iido lahayn: marka tunnelku kor u kaco, serverku waa inuu u dhaqmo sida router. Saddex shuruudood waa inay isku mar buuxsamaan ka hor inta xirmo baxdo oo jawaab soo noqoto, calaamadduna waa isku mid mid kasta oo maqan.

Sababta tunnel shaqeeya uu wali u lahayn marin bax

Kernelku waa inuu xirmooyinka u gudbiyaa inta u dhaxaysa interface-yada, taasoo ku xiran si caadi ah inta badan qaybinta Linux. Taraafikku waa in loo tarjumaa cinwaan ay dunida dibadda ka jawaabi karto, haddii aan router kasta oo sarreeya uusan hore u aqoon wadada dib ugu noqota subnet-ka tunnelka. Wadada gudbinta firewallku waa inay u ogolaataa taraafikka labada jiho, oo ay ku jiraan jawaabaha.

Mid kastaa si gooni ah ayaa loo hagaajin karaa, waana taas dabin. Gudbinta oo la shido iyada oo aan la hayn qaanuun tarjumaad waxay ka dhigtaa xirmooyinka inay baxaan iyagoo leh isha gaarka ah oo aan lahayn waddo dib u noqosho. Tarjumaad lagu daro iyada oo aan lahayn qaanuun gudbin waxay ka dhigtaa kernelku inuu xirmada tuuro tallaabo ka dib.

Sidaas darteed tijaabi saddexda lakab halkii aad ka tijaabin lahayd macmiilka, oo beddel mid kasta mar si natiijadu macne u yeelato.

Gudbintu waa shidhka kernel oo waa inaad ka dhigtaa mid joogto ah

Hubi qiimaha hadda jira ka hor intaadan beddelin, ka dibna dhig, oo xaqiiji in isbeddelku dhaqan galay.

sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
sysctl net.ipv4.ip_forward

Amarka koowaad wuxuu soo sheegaa qiimaha hadda jira, kan labaad wuxuu dhigaa inta lagu jiro shaqada, kan saddexaadna wuxuu caddeeyaa in qoraalku shaqeeyay. Qiimaha shaqada wuxuu lumaa dib u bilaabista xigta, taas darteed fadhi shaqaynaya ayaa dhici kara ka dib dayactir iyada oo aan lahayn isbeddel qaabeynta.

Ka dhig mid joogto ah fayl ku jira /etc/sysctl.d/, ka dibna isticmaal faylkaas halkii aad dib u bilaabi lahayd si aad u ogaato. FreeBSD gudaha waxa u dhigma net.inet.ip.forwarding, iyo joogtaynta gateway_enable=YES oo ku jira rc.conf. Qalabka soo sheega gudbin la damiyay wuxuu sharraxayaa fasalka dhan ee warbixinada «xirmooyinku way yimaadaan waxna dib uma soo noqdaan». Hubi goobta sidoo kale ka dib cusboonaysiin kasta, sababtoo ah kernel dib loo dhisay ama sawir qalab la beddelay ayaa dib u dejin kara iyada oo aan cidna u sheegin.

Dooro masquerade ama hal cinwaan tarjumaad go'an

Iyada oo leh cinwaan dibadeed firfircoon, masquerading waa qaabka saxda ah ee ugu fudud. U magacow subnet-ka tunnelka isha iyo interface-ka dibadda bixitaanka.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -o eth0 -j MASQUERADE

Iyada oo leh cinwaan dadweyne taagan, tarjumaadda isha oo si sax ah loo gudbiyo cinwaankaas waa mid la saadaalin karo oo sahlan in la baaro.

iptables -t nat -A POSTROUTING -s 10.9.0.0/24 -j SNAT --to-source 198.51.100.10

Qaabka labaad wuxuu qaadaa dabin dayactir: cinwaan adag oo la qoray oo hadhow isbeddela ayaa tunnelka shaqeynaya inta gelitaanka internetka si aamusan u joogsado. Ama isticmaal masquerade ama cusboonaysii qaanuunka mar kasta oo bixiyuhu ku raro. Interface-kuna waa muhiim, sababtoo ah router la wadaaga tunnelkiisa sare waa inuu ka tarjumaa tunnelkaas halkii uu ka tarjumi lahaa WAN jireed.

Shaxda shaandhaynta waa iridda saddexaad

Gudbin iyo tarjumaad labaduba way sax noqon karaan iyada oo xirmadu wali ku dhimanayso shaxda shaandhaynta. ufw waa dembiile badan: siyaasaddiisa gudbinta waxay ku timaaddaa DROP ahaan, qaabeynta kalena waxay u ekaan kartaa mid sax ah inta ay hal goobtaas disho taraafikka. In kor loo qaado waa go'aan amni oo ula kac ah ee ma aha sanduuq calaamad.

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o tun0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Qaanuunka koowaad wuxuu oggolaadaa taraafik cusub oo tunnelka ka soo baxa, tan labaadna kaliya jawaabaha dib u soo noqda. Cidhiidhi labadaba subnet-ka tunnelka iyo meesha loo socdo, sababtoo ah oggolaansho guud oo ku yaal interface-ka tunnelku wuxuu VPN ka dhigaa barta bixitaan furan qof kasta oo awood u leh inuu xaqiijiyo.

Tunnel buul leh wuxuu u baahan yahay jawaab kale. Cinwaanku wuxuu ka tirsan yahay buulka, ma aha portka jireed, sidaas darteed addoonsiga interface-ku wuxuu meesha ka saarayaa cinwaankii uu hore u lahaa oo martigeliyaha wuxuu u muuqdaa mid aan la gaari karin ilaa buulka laftiisu mid helo, taasoo dhclient br0 bixin karto. Guuldarraas taas waxay u ekaanaysaa dhibaato VPN laakiin waa dhibaato lakabka labaad. Hubi cinwaanka buulka laftiisa ka hor intaadan taaban firewallka, sababtoo ah isbeddel shaandhayn ma hagaajin karo martigeliye aan haysan cinwaan uu wax ka diro.

Halka loo eegayo marka boggu waligiis soo raranin

Ping cinwaanka tunnelka serverka si aad u caddeyso in tunnelku jiro. Ka dib socodsiiso traceroute macmiilka ilaa cinwaan dadweyne oo akhri halka uu joogsado: serverka xirmadu way timaaddaa laakiin lama gudbiyo lama tarjumo; serverka shishiisa dhibaatadu waa sareydaan oo ka baxsan gacmahaaga.

ping -c 3 10.9.0.1
traceroute -n 198.51.100.10

Amarka koowaad wuxuu caddeeyaa in tunnelku taraafikka u qaado serverka laftiisa, kan labaadna wuxuu muujinayaa sida fog ee xirmadu dibadda u gaadho. Raad ku dhammaada cinwaanka tunnelka wuxuu tilmaamayaa gudbin ama tarjumaad serverka, halka raad ku joogsada hal bood ka dib uu tilmaamayo bixiyaha ama wadada dib u noqoshada routerka sare.

Serverka, fiiri interface-ka dibadda inta macmiilku bog soo rarayo. Taraafik ku baxa isha cinwaan gaar ah waxay ka dhigan tahay tarjumaad maqan, jawaabna gebi ahaan maqnaanshaha waxay ka dhigan tahay in wadada gudbinta ama wadada dib u noqoshada sare ay tuurayso.

Haddii macaamiisha fog ay sidoo kale u baahan yihiin inay gaadhaan martigeliyayaasha LAN-ka serverka, xusuuso in LAN-ku u baahan yahay waddo dib ugu noqota subnet-ka tunnelka. Tani waa marin-u-adeegid ee ma aha tarjumaad, waana tallaabada inta badan la illoobay marka wadada internetku ugu dambeyntii shaqeyso.

Maqaallo la xiriira