Darí subnet LAN kan gba OpenVPN kí o sì dáàbò bo ọ̀nà àkọ́kọ́
Dáàbò bo ọ̀nà àkọ́kọ́ ti LAN nígbà tí subnet kan ń gba inú tunnel. Fi table ìlànà wé àwọn àtúnṣe table àkọ́kọ́, lẹ́yìn náà yan NAT tàbí ọ̀nà ní ẹ̀gbẹ́ server.
Àwọn ẹ̀rọ tí ń darí fún LAN tí wọ́n sì ń pe VPN ní àkókò kan náà máa ń kó sínú àríyànjiyàn kan náà pẹ̀lú ara wọn: tunnel fẹ́ ní ọ̀nà àkọ́kọ́, LAN sì nílò rẹ̀ padà. Nígbà tí OpenVPN bá so pọ̀, ó lè fi ọ̀nà àkọ́kọ́ kan sílẹ̀ gba tunnel tàbí ìdúró méjì tí kò tó, èyí tí ó tọ́ fún laptop ṣùgbọ́n tí kò tọ́ fún ẹnubodè tí àwọn aládùúgbò rẹ̀ ń retí ìdáhùn láti àdírẹ́sì LAN rẹ̀. Ìdáhùn kì í ṣe pé kí a fojú fo VPN. Ìdáhùn ni pé kí a fún àwọn ìpinnu méjèèjì ní table ọ̀tọ̀ọ̀tọ̀.
Ọ̀nà àkọ́kọ́ kan, olówó méjì
Ìrìn ọ̀nà tí a ń tẹ̀ síwájú àti ìrìn ọ̀nà tí ó dàgbà níbílẹ̀ kò gbọdọ̀ gba ọ̀nà kan náà. Àwọn oníbàárà LAN nílò tunnel fún àwọn ibi tí o yàn nìkan, nígbà tí àwọn ìpàdé ìṣàkóso ti host fúnra rẹ̀ àti àwọn ìdáhùn rẹ̀ sí àwọn oníbàárà wọ̀nyẹn nílò ọ̀nà àkọ́kọ́ ti LAN. Pípò àwọn méjèèjì pọ̀ nínú table àkọ́kọ́ ń fi ìdáhùn kan múlẹ̀ fún ìbéèrè méjì tí ó yàtọ̀.
OpenVPN ní switsh fún èyí gan-an. route-noexec ń dá oníbàárà dúró láti fọwọ́ kàn table àkọ́kọ́ rárá, àwọn iye tí yóò lò ni a sì kó lọ sí script route-up gẹ́gẹ́ bí route_vpn_gateway, dev àti àwọn àdírẹ́sì interface. Lẹ́yìn náà ìwọ ni yóò pinnu irú table tí yóò gba irú ọ̀nà, nínú kóòdù tí o lè kà nígbà tí ó tọ́.
Table ìlànà lòdì sí kíkọ table àkọ́kọ́ padà
| Approach | What it buys | What it costs |
|---|---|---|
| Separate table plus source rule | LAN traffic and host traffic keep independent defaults | Every lookup now depends on rule order |
| Editing the main table only | Fewer moving parts on a single-purpose host | One mistake takes the gateway offline entirely |
| Two half-default routes | Works for a full-tunnel client | Ambiguous on a host that must answer on its LAN address |
Table tí ó yàtọ̀ ni àṣàyàn kan ṣoṣo tí ó ń gbòòrò ju subnet kan lọ. Fún un ní orúkọ lẹ́ẹ̀kan, lẹ́yìn náà tọ́ka sí i ní orúkọ kí ẹnikẹ́ni má bàa ní láti rántí nọ́mbà:
echo "10 vpn" >> /etc/iproute2/rt_tables
ip rule add from 192.168.50.0/24 table vpn
ip route add default via 10.8.0.1 dev tun0 table vpnÀwọn àdírẹ́sì níbí jẹ́ àṣojú. Rọ́pò àkọ́sẹ́mọ̀ LAN, ẹnubodè tunnel àti orúkọ ẹ̀rọ láti inú ìtẹ̀sí rẹ fúnra rẹ kí o tó ṣe ohunkóhun.
Ìlànà gbọdọ̀ bá host mu pẹ̀lú
Ìlànà tí ó bá àkọ́sẹ́mọ̀ LAN mu nìkan ń bo àwọn pákẹ́tí tí a tẹ̀ síwájú. Kò bo ìrìn ọ̀nà tí ẹnubodè fúnra rẹ̀ ń dá, bẹ́ẹ̀ ni kò bo àwọn ìdáhùn tí ó ń rán padà sí àwọn oníbàárà LAN, tí wọ́n ń gbé àdírẹ́sì LAN ti ẹnubodè gẹ́gẹ́ bí orísun wọn. Àwọn ìwádìí yẹn ń ṣubú sínú main, wọ́n sì ṣì lè jáde gba tunnel.
Fi ìlànà kejì kún fún àdírẹ́sì LAN ti ẹnubodè fúnra rẹ̀, tàbí gbòòrò ìlànà àkọ́kọ́ sí àkójọ tí ó ní àwọn méjèèjì. Ìtòlẹ́sẹẹsẹ ṣe pàtàkì: fi ìlànà tí ó ṣe pàtó jù lọ sí iwájú, kí o sì yẹ àbájáde wò pẹ̀lú ìwádìí tí ó dárúkọ orísun ní kedere.
ip route get 203.0.113.9 from 192.168.50.1Bí èyí bá jábọ̀ ẹ̀rọ tunnel fún ibi tí ó yẹ kí ó dúró níbílẹ̀, àkójọ ìlànà kò tọ́ bó tilẹ̀ jẹ́ pé ohun tí table ní.
NAT tàbí ọ̀nà ní ẹ̀gbẹ́ kejì
Server VPN mọ subnet tunnel, kò mọ ohunkóhun mìíràn. Àwọn pákẹ́tí tí ó dé pẹ̀lú àdírẹ́sì orísun LAN kò ní ọ̀nà ìpadà bí ẹnìkan kò bá pèsè ọ̀kan, àwọn ọ̀nà méjì péré sì wà láti pèsè rẹ̀. Fífi ọ̀nà kún fún àkọ́sẹ́mọ̀ LAN lórí server ń pa orísun àkọ́kọ́ mọ́ ní híhàn láti ìpẹ̀kun dé ìpẹ̀kun, èyí tí àpẹẹrẹ tí a ti yẹ̀wò sábà fẹ́. Masking lórí ẹnubodè ń kọ orísun padà sí àdírẹ́sì tunnel, kò sì nílò ìfọwọ́sowọ́pọ̀ láti ọ̀dọ̀ server.
iptables -t nat -A POSTROUTING -s 192.168.50.0/24 -o tun0 -j MASQUERADEYan NAT nígbà tí o kò bá ń ṣàkóso server tí o sì kò lè fi ọ̀nà kún níbẹ̀. Yan ọ̀nà ní ẹ̀gbẹ́ server nígbà tí àwọn àkọsílẹ̀, ìṣàkóso àǹfààní tàbí ìdọ́gba ọ̀nà ìpadà ṣe pàtàkì, nítorí masking ń nu àdírẹ́sì àkọ́kọ́ kúrò nínú ohun gbogbo tí ẹ̀gbẹ́ kejì ń gbasilẹ̀.
Bó tilẹ̀ jẹ́ bẹ́ẹ̀, gbígbé síwájú gbọdọ̀ wà ní ṣíṣi, ìṣẹ́ àlẹ̀mọ́ ọ̀nà ìpadà tí ó le sì lè ju ìdáhùn nù nígbà tí main kò bá yan tunnel fún orísun yẹn. Yẹ iye tí ó ń ṣiṣẹ́ wò kí o tó di tunnel lẹ́bi.
Jẹ́ kí pínpín náà lè ye ìsopọ̀ padà
Àwọn ìlànà àti ọ̀nà tí a fi ọwọ́ kún máa ń parẹ́ nígbà tí a bá tún interface dá, àkọsílẹ̀ table tí ó ti pé lè gbé pẹ́ ju ìpàdé tí ó dá a lẹ́bi lọ. Fi ìlànà table, ọ̀nà tunnel àti àkọsílẹ̀ masking sínú script route-up ti oníbàárà, kí o sì fọ table mọ́ ní orí script kí ẹnubodè àtijọ́ má bàa gbé lọ sínú ìpàdé tuntun.
Yẹ̀wò láti ẹ̀gbẹ́ méjèèjì: ìwádìí kan lórí ẹnubodè pẹ̀lú orísun LAN, àti ìbéèrè gidi láti oníbàárà LAN sí ibi tí ó yẹ kí ó gba tunnel. Ọ̀nà tí ó wà ṣùgbọ́n tí a kò yàn rí ń hùwà gẹ́gẹ́ bí kò sí ọ̀nà rárá títí tí ìwọ yóò fi ka àwọn counter.