Kí ni ìdí tí a kò lè dé ẹ̀ka nẹ́tíwọ́kì tó wà lẹ́yìn kíláìàǹtì OpenVPN?
OpenVPN kò lè ṣe àfojúsùn ẹni tó ni LAN tó jìnnà. Àkọsílẹ̀ iroute nínú fáìlì kíláìàǹtì, ọ̀nà ìpadà àti gbígbéjáde máa ń jẹ́ kí ẹ̀ka nẹ́tíwọ́kì yẹn dé.
Ping sí àdírẹ́sì tunnel ti sáfà máa ń ṣẹ́gun, tábìlì ọ̀nà ti kíláìàǹtì fúnra rẹ̀ dàbí ẹni tó tọ́, ṣùgbọ́n LAN tó wà lẹ́yìn kíláìàǹtì yẹn kò ṣì dé. Tábìlì ìṣọ̀nà ti kíláìàǹtì dàbí ẹni tó tọ́, sáfà ní ọ̀nà tó ń tọ́ka sí tunnel, ṣùgbọ́n àwọn pákẹ́ẹ̀tì ṣì ń pòórá. Èyí ni àmì ìgbà àtijọ́ ti tunnel layer-3 tí kò mọ̀ pé ọ̀kan nínú àwọn kíláìàǹtì rẹ̀ ni ẹnu-ọ̀nà pẹ̀lú.
tun interface kò ní ìgbésẹ̀ tó tẹ̀lé fún kíláìàǹtì kọ̀ọ̀kan. Kernel máa ń rí interface kan pẹ̀lú ọ̀pọ̀ alábàáṣepọ̀, nítorí náà ìpinnu nípa kíláìàǹtì tó yẹ kí ó gba pákẹ́ẹ̀tì fún LAN tó jìnnà gbọ́dọ̀ wáyé nínú ìlànà OpenVPN. Ìpinnu yẹn ni a fi iroute ṣe, àìsí rẹ̀ kò sí ibi tí pákẹ́ẹ̀tì lè lọ.
Sáfà máa ń tọ́ ọ̀nà gbé nípasẹ̀ kíláìàǹtì, kì í ṣe nípasẹ̀ interface
Nígbà tí sáfà bá ní láti fi pákẹ́ẹ̀tì ránṣẹ́ sí àdírẹ́sì tunnel ti kíláìàǹtì, ìdáhùn kò ní ìṣiyèméjì: àdírẹ́sì náà jẹ́ ti ìpàdé kíláìàǹtì yẹn. Ṣùgbọ́n nígbà tí ibi tí ó ń lọ jẹ́ gbogbo ẹ̀ka nẹ́tíwọ́kì tó wà lẹ́yìn kíláìàǹtì yẹn, àdírẹ́sì náà kì í ṣe ti ẹnikẹ́ni tí sáfà mọ̀, ọ̀nà kernel sí tunnel sì kàn sọ "nípasẹ̀ interface yìí", kò sọ alábàáṣepọ̀ wo.
OpenVPN máa ń yanjú èyí pẹ̀lú tábìlì ìṣọ̀nà inú tó so àkọ́kọ́ ibi tí ó ń lọ mọ́ kíláìàǹtì pàtó. Tábìlì yẹn ni a fi àwọn àkọsílẹ̀ iroute kọ́, nítorí náà ọ̀nà lasan lórí ẹrọ sáfà kò tó. Ọ̀nà kernel máa ń gbé pákẹ́ẹ̀tì dé interface tunnel; ìsopọ̀ inú ni ó pinnu ìpàdé tó máa gbà á. Ìdí nìyẹn tí àtúnṣe kò fi máa ń farahàn nínú ìjáde ọ̀nà kernel.
Bí ìsopọ̀ kò bá sí, pákẹ́ẹ̀tì máa ń dé sáfà, ó bá ọ̀nà tunnel mu, a sì sọnù nítorí kò sí kíláìàǹtì tó ń béèrè ibi tí ó ń lọ. Kò sí ohun tó ń kọ àṣìṣe tó ṣe kedere, ìdí nìyẹn tí ìkùnà fi dàbí ihò dúdú tó dákẹ́ ju ìyípo ìṣọ̀nà lọ.
Kíkọ àkọsílẹ̀ iroute tó dárúkọ kíláìàǹtì
iroute wà nínú fáìlì ìṣètò àkànṣe fún kíláìàǹtì, kì í ṣe nínú ìṣètò àkọ́kọ́ ti sáfà. Tọ́ sáfà sí fódérù kan pẹ̀lú àṣàyàn client-config-dir, lẹ́yìn náà ṣẹ̀dá fáìlì tí orúkọ rẹ̀ jẹ́ orúkọ àpapọ̀ ẹ̀rí kíláìàǹtì kí o sì fi àkọ́kọ́ náà sínú rẹ̀.
Fún ẹ̀ka tí LAN rẹ̀ jẹ́ 10.20.0.0/24 tí orúkọ àpapọ̀ ẹ̀rí rẹ̀ sì jẹ́ branch-router, fáìlì tó wà ní ọ̀nà yẹn ní ìlà bí iroute 10.20.0.0 255.255.255.0. Ìṣètò àkọ́kọ́ kàn nílò àṣàyàn fódérù; àkọ́kọ́ náà wà lọ́dọ̀ kíláìàǹtì.
Orúkọ àpapọ̀ ni apá tó máa ń fọ́. Ẹ̀rí tí a gbé jáde pẹ̀lú subject mìíràn, tàbí ìgbékalẹ̀ tó ń fìdí àwọn olùṣàmúlò múlẹ̀ pẹ̀lú orúkọ olùṣàmúlò nígbà tí a fi ẹ̀rí náà sọ fáìlì lórúkọ, máa ń dá fáìlì tí a kì í kà. Ṣàyẹ̀wò orúkọ tí sáfà ń sọ fún ìpàdé gan-an, kí o sì gbé àṣàyàn tó máa jẹ́ kí kíláìàǹtì tí kò bá mu kùnà dípò kí ó so pẹ̀lú ìdákẹ́jẹ́ láìsí àwọn ọ̀nà rẹ̀ yẹ̀wò. Yíyí orúkọ fáìlì padà kí ó bá ẹ̀rí mu jẹ́ àtúnṣe ìṣẹ́jú márùn-ún tó ń dènà alẹ́ gígùn gan-an.
Kíláìàǹtì kan lè ní ọ̀pọ̀ àkọ́kọ́. Fi ìlà iroute kan kún fún nẹ́tíwọ́kì kọ̀ọ̀kan, kí o sì pa àkójọ mọ́ lẹ́gbẹ̀ẹ́ ìyókù ìṣètò kíláìàǹtì yẹn kí ìsopọ̀ lè wà ní àyẹ̀wò.
Kíkọ ọ̀nà ìpadà ní ẹ̀gbẹ́ méjèèjì
Mímú pákẹ́ẹ̀tì dé LAN tó jìnnà jẹ́ ìdajì iṣẹ́. Kíláìàǹtì gbọ́dọ̀ tún rán ìrìnàjò LAN yẹn sínú tunnel, èyí tí a sábà máa ń ṣe nípasẹ̀ títì ọ̀nà kan sí kíláìàǹtì: ìlà bí push "route 10.8.0.0 255.255.255.0" máa ń sọ fún kíláìàǹtì kọ̀ọ̀kan bí yóò ṣe dé nẹ́tíwọ́kì ní ẹ̀gbẹ́ sáfà. Fún ẹ̀ka, ọ̀nà tó dọ́gba máa ń tọ́ka sí tunnel fún ohun gbogbo tó gbọ́dọ̀ dé ní ẹ̀gbẹ́ sáfà.
Ẹ̀gbẹ́ ìpadà nílò ẹni tó ni ní ẹ̀gbẹ́ tó jìnnà. Níbẹ̀, ẹnìkan gbọ́dọ̀ mọ ọ̀nà ìpadà: ọ̀nà ìdúró lórí router LAN tó ń tọ́ka àkójọ VPN sí sáfà, tàbí ìtumọ̀ àdírẹ́sì lórí sáfà kí ìrìnàjò tó wọ LAN. Ọ̀nà ìdúró máa ń pa àwọn àdírẹ́sì ìpilẹ̀ mọ́ ní ìfarahàn nínú àkọsílẹ̀ àti àwọn òfin ààyè ṣùgbọ́n ó nílò ìfọwọ́sowọ́pọ̀ ẹni tó ni LAN; ìtumọ̀ jẹ́ ara rẹ̀ ṣùgbọ́n ó fi ẹni tó so mọ́ gan-an pamọ́.
Gbígbéjáde gbọ́dọ̀ wà ní ṣíṣí lórí ẹrọ sáfà. Láìsí rẹ̀, kernel máa ń gba pákẹ́ẹ̀tì láti tunnel ó sì kọ̀ láti gbé e lọ sí interface LAN, èyí tí ó dàbí iroute tó ṣáko ní ojú kíláìàǹtì.
Ṣàyẹ̀wò ìdé pẹ̀lú àwọn àyẹ̀wò tó tọ́
Dán wò ní ìpele dípò píngì ìpẹ̀kun jìnnà kí o ṣe àfojúsùn. Láti sáfà, ṣàyẹ̀wò pé ìsopọ̀ inú fún àkọ́kọ́ wà àti pé ọ̀nà kernel tọ́ka sí tunnel. Láti kíláìàǹtì, jẹ́rìí pé ọ̀nà tí a tì ti wà ní àgbékalẹ̀ àti pé ọ̀nà àkọ́kọ́ rẹ̀ sí àdírẹ́sì LAN ni tunnel.
Lẹ́yìn náà wo àwọn pákẹ́ẹ̀tì. Gbígbà lórí interface tunnel fi hàn bóyá sáfà ń gbé lọ sí ọ̀dọ̀ kíláìàǹtì, gbígbà lórí interface LAN sì fi hàn bóyá ó ń gbéjáde. Bí èkíní bá fi pákẹ́ẹ̀tì hàn tí èkejì kò fi nǹkan hàn, ìṣòro wà nínú gbígbéjáde tàbí àyọ̀; bí méjèèjì kò bá fi nǹkan hàn, ìwádìí ti kùnà ṣáájú.
Sáfà méjì tí a so pọ̀ pẹ̀lú tunnel máa ń tún òfin kan náà ṣe ní ẹ̀gbẹ́ méjèèjì: kọ̀ọ̀kan nílò iroute fún àkójọ èkejì, kọ̀ọ̀kan sì nílò ọ̀nà àti gbígbéjáde tó máa jẹ́ kí ọ̀nà náà dọ́gba. Ìṣọ̀nà àti ìlànà jẹ́ ọ̀rọ̀ ọ̀tọ̀ọ̀tọ̀ níbí. Ìṣọ̀nà máa ń pinnu ibi tí pákẹ́ẹ̀tì lè lọ, nígbà tí òfin FORWARD máa ń pinnu bóyá a gbà á láàyè, nítorí náà kíláìàǹtì tó ní ìlà iroute méjì lè dé àwọn àkọ́kọ́ méjèèjì àyàfi bí àyọ̀ kan bá sọ mìíràn.