Àwọn oníbàárà hotspot lórí Pi kò dé LAN ilé nípasẹ̀ TUN VPN
Àwọn oníbàárà hotspot tí wọ́n gba àdírẹ́sì ṣùgbọ́n tí wọ́n kò lè ṣí ìpínpín ilé kò ní ọ̀nà ìpadà, kì í ṣe afárá. Tẹ̀lé ọ̀nà TUN, àwọn onígbà-ìpín àti NAT.
Àwọn oníbàárà Wi-Fi àti Ethernet àdúgbò so mọ́ hotspot Pi, wọ́n gba àdírẹ́sì láti inú ìwọ̀n DHCP rẹ̀, wọ́n sì ń gbé àwọn ojú-ìwé íńtánẹ́ẹ̀tì jáde láìsí ẹ̀dùn. Lẹ́yìn náà àwọn oníbàárà kan náà ń parí àkókò nígbà tí wọ́n bá ṣí ìpínpín fáìlì tàbí ojú-ìwé wẹ́ẹ̀bù nínú LAN ilé, nígbà tí Pi fúnra rẹ̀ ń dé LAN yẹn nípasẹ̀ ihò. Kò sí ohun tí ó bàjẹ́ ní ìpele aláìwáyà. Ohun tí ó ṣẹ́ kù ni àdéhùn oní ọ̀nà: gbọ́dọ̀ gbé àkọ́sọ́ hotspot wọ inú ojú-ìwé TUN, kí ohun kan ní ẹ̀gbẹ́ ilé sì mọ bí a ṣe ń dá àwọn ìdáhùn padà síbẹ̀. Ẹ̀kúnrẹ́rẹ́ méjèèjì gbọ́dọ̀ wà kí pákẹ́tì kan tó parí ìrìn àjò lọ àti padà.
Ìsopọ̀ mẹ́ta pẹ̀lú iṣẹ́ mẹ́ta ọ̀tọ̀ọ̀tọ̀
Afárá Ethernet Linux ń fi àwọn fírémù ránṣẹ́ nípa àdírẹ́sì MAC ibi-ìlọ. OpenVPN nínú ipò TUN ń gbé àwọn pákẹ́tì IP, kò sì ní ìpele MAC rárá, nítorí náà fífi afárá àdúgbò kún kò ní fi ihò náà forúkọ sílẹ̀ gẹ́gẹ́ bí ebúté. ìwé kẹ́rnẹ́lì TUN/TAP ṣàlàyé ìpín yẹn: ẹ̀rọ TAP dàbí ojú-ìwé Ethernet, ẹ̀rọ TUN kò dà bẹ́ẹ̀. Àwòrán tí ó so ebúté méjì àdúgbò pọ̀ tí ó sì ń ṣe ọ̀nà ni olùṣe-ọ̀nà, ohunkóhun tí orúkọ ojú-ìwé bá sọ.
Ìyàtọ̀ yẹn ń pinnu ohun-ìní. Subnet àwọn oníbàárà, ẹnubodè àkọ́kọ́ wọn àti àṣẹ DHCP fún ìwọ̀n yẹn jẹ́ ti ètò àdúgbò Pi. Àwọn ìkéde DHCP ilé kì í kọjá ihò oní ọ̀nà, kò sì sí ètò afárá tí ó yí i padà; dídarí àwọn oníbàárà sí olùpín DHCP ilé jẹ́ àwòrán relay ọ̀tọ̀ọ̀tọ̀ tí a mọ̀ọ́mọ̀ ṣe pẹ̀lú àwọn ọ̀nà ìkùnà tirẹ̀.
Pa mọ́dẹ́mù mọ́ ẹ̀gbẹ́ kan lórí afárá oníbàárà pẹ̀lú. Ìsopọ̀ PPP kì í ṣe ẹ̀rọ Ethernet pẹ̀lú àmì mìíràn, àti èrò ọ̀nà àkọ́kọ́ tí a kọ sílẹ̀ nínú pppd ń ṣiṣẹ́ lẹ́yìn ìjíròrò IPCP, ó sì ń fa ọ̀nà rẹ̀ padà nígbà tí ìsopọ̀ yẹn bá ṣubú. Dídaàkọ àwòrán DHCP àti yíyí orúkọ gbogbo usb0 sí ppp0 kò fi ohunkóhun hàn nípa ẹnubodè, ìwọ̀n tàbí ìyípo ìgbésí ayé.
Yan àwọn àkọ́sọ́ kí o tó ṣàtúnṣe ètò kankan
Àwọn àkọ́sọ́ tí ó ń gorí ara wọn ń ná ọ̀pọ̀lọpọ̀ alẹ́ ju àwọn ìlànà odi iná lọ, nítorí ìgorí ara ń fi ìwádìí ọ̀nà ránṣẹ́ sí ojú-ìwé tí kò tọ́ bí ihò tilẹ̀ wà ní àlàáfíà. Bẹ̀rẹ̀ pẹ̀lú kíkọ àwọn ohun tí ó ti wà lórí Pi, lẹ́yìn náà ka èsì náà gẹ́gẹ́ bí adágún mẹ́rin ọ̀tọ̀ọ̀tọ̀.
ip -4 addr show scope global
ip -4 route show table main
ip -4 route get 192.168.77.10
Adágún àkọ́kọ́ ni àdírẹ́sì underlay tí olùpèsè fún mọ́dẹ́mù; ó gbọ́dọ̀ wà ní ìta gbogbo ètò tí ó dojú kọ àwọn oníbàárà. Èkejì ni subnet ihò tí olùpín yàn, ọ̀pọ̀ ìgbà /24 aládàáni tirẹ̀. Ẹ̀kẹta ni afárá hotspot, ẹ̀kẹrin sì ni àkọ́sọ́ ilé tí o fẹ́ dé. Nínú ìrìn yìí hotspot ń gba 172.28.90.0/24 pẹ̀lú afárá lórí 172.28.90.1, LAN iṣẹ́ ilé sì ń dá 192.168.77.0/24 dúró, èyí tí ó yẹra fún àwọn àkọ́kọ́ 192.168.1.0/24 àti 10.0.0.0/24 tí àwọn olùṣe-ọ̀nà olùmúlò ń mú wá àti ìwọ̀n olùpèsè 100.64.0.0/10.
Nínú ìwọ̀n DHCP hotspot, kéde àdírẹ́sì afárá nìkan gẹ́gẹ́ bí ẹnubodè, kì í ṣe ohunkóhun mìíràn. Má ṣe fún àwọn oníbàárà hotspot ní àdírẹ́sì ilé gẹ́gẹ́ bí ẹnubodè rárá; wọn kò ní ọ̀nà ìpele ìsopọ̀ sí apá yẹn.
Ṣe ọ̀nà fún ẹ̀gbẹ́ kọ̀ọ̀kan ní ẹ̀gbẹ́ tí ó ní í
Pi nílò ọ̀nà sí àkọ́sọ́ ilé nípasẹ̀ ihò. Àwọn olùpín nínú ipò olùpín sábà máa ń ti ọ̀nà yẹn, nítorí náà kọ́kọ́ jẹ́rìí pé gbígbé jáde wà ní ṣíṣí àti pé kẹ́rnẹ́lì ń yanjú àdírẹ́sì ilé láti tun0.
sysctl net.ipv4.ip_forward
ip route add 192.168.77.0/24 dev tun0
ip -4 route get 192.168.77.10
Bí ip route get bá ṣì ń jábọ̀ ojú-ìwé underlay, dúró níbẹ̀; kò sí ohun mìíràn níwájú nínú ọ̀nà tí ó lè tún ìwádìí tí kò tọ́ ṣe.
Àwọn ẹ̀rọ ilé kò ní ọ̀nà sí 172.28.90.0/24, nítorí náà àwọn ìdáhùn wọn ń tẹ̀lé ẹnubodè àkọ́kọ́, wọ́n sì ń kú ní olùṣe-ọ̀nà. Àwọn àtúnṣe méjì tí a ṣe àtìlẹ́yìn fún wà. Yálà fi ọ̀nà dúró ṣinṣin kún olùṣe-ọ̀nà ilé tí ó ń darí àkọ́sọ́ hotspot sí àdírẹ́sì LAN olùpín VPN, tàbí, nígbà tí olùpín fúnra rẹ̀ jẹ́ ẹnubodè, forúkọ àkọ́sọ́ oníbàárà sílẹ̀ nínú tábìlì ọ̀nà olùpín fúnra rẹ̀. Nínú ipò oníbàárà púpọ̀ OpenVPN, àpótí àkànṣe oníbàárà ń gbé ìsopọ̀ yẹn: fáìlì tí a fi orúkọ gbogbogbò ìwé-ẹ̀rí oníbàárà sọ lórúkọ, tí ó ní iroute 172.28.90.0 255.255.255.0 pẹ̀lú ìlà route tí ó bá a mu tí ó ń fi í sínú kẹ́rnẹ́lì olùpín. Ọ̀nà kẹ́rnẹ́lì tí a díbọ́ lórí olùpín kì í ṣe ọ̀rọ̀ kan náà pẹ̀lú sísọ fún olùpín ẹni tí ó ní àkọ́sọ́.
Má ṣe gbé iṣẹ́ DHCP ti nẹ́tíwọ́kì ilé lọ sí olùpín VPN kí èyí lè ṣiṣẹ́. Yíyí ẹnubodè àkọ́kọ́ padà fún gbogbo ilé jẹ́ ìyípadà tí ó tóbi ju fífi ọ̀nà ìpadà aládàáni kan kún lọ, ó sì ń fa DNS, ìforúkọsílẹ̀ àdírẹ́sì àti gbogbo ẹ̀rọ tí kò ka ìyáálé tuntun sí mọ́ ìkùnà.
Ṣí gbígbé jáde láìdíbo odi iná
Gbígbé jáde wà ní ṣíṣí kì í túmọ̀ sí pé a gbà pákẹ́tì láàyè kọjá. Ìrìnàjò láti afárá sí ihò ṣì ń kọlu àwọn ìlànà àyọ̀, àti ètò gbígbé jáde àkọ́kọ́ drop ń ju ìrìnàjò hotspot nù nígbà tí ìrìnàjò Pi fúnra rẹ̀ ń bá a lọ ní ṣíṣiṣẹ́, èyí tí ó ń ṣe àmì ìpín tí ó wà lókè ní àrà ọ̀tọ̀.
iptables -S FORWARD
iptables -t nat -S POSTROUTING
nft list ruleset
Wá ìlànà ìgbàlá láti br0 sí tun0 àti ọ̀nà ìdáhùn tí ó bá a mu, àti ìlànà postrouting tí ó lè tún orísun kọ. Bí ètò ẹ̀wọ̀n bá jẹ́ drop tí kò sì sí ìlànà tí ó bá a mu, fi àwọn ìgbàlá tóóró kún, kí o sì tún dán wò dípò yíyí ètò náà sí accept.
Ìtúmọ̀ jẹ́ yíyan ètò, kì í ṣe àìdánilójú. NAT orísun sí LAN ilé ń jẹ́ kí gbogbo oníbàárà hotspot dàbí àdírẹ́sì ihò Pi, èyí tí ó ń pàdánù ìpín oníbàárà kọ̀ọ̀kan nínú àwọn àkọsílẹ̀ ilé, ó sì ń fọ́ àwọn iṣẹ́ tí ó ń retí orísun àkọ́kọ́. Ṣíṣe ọ̀nà láìsí NAT ń jẹ́ kí àwọn àdírẹ́sì oníbàárà hàn ṣùgbọ́n ó sinmi lórí ọ̀nà ìpadà lókè. Yan ọ̀kan, kí o sì bá DNS àti IPv6 lò ní ọ̀nà kan náà, nítorí ọ̀nà IPv4 tí ó ń ṣiṣẹ́ lẹ́gbẹ̀ẹ́ ọ̀nà IPv6 tí ó bàjẹ́ ṣì ń kà gẹ́gẹ́ bí ìdajì tí ó bàjẹ́ nínú aṣàwákiri.
Jẹ́rìí ìrìn àjò lọ àti padà, lẹ́yìn náà fọ́ ọ̀nà mọ̀ọ́mọ̀
Dán wò láti ọ̀dọ̀ oníbàárà hotspot, kì í ṣe láti Pi rárá, nítorí ìrìnàjò Pi fúnra rẹ̀ ń yẹra fún ọ̀nà iwájú àti ọ̀nà ìpadà. Wo ojú-ìwé méjèèjì nígbà tí oníbàárà kan ń gbìyànjú dé iṣẹ́ ilé.
tcpdump -ni br0 host 192.168.77.10
tcpdump -ni tun0 host 192.168.77.10
ping -c 3 192.168.77.10
Ka àkọsílẹ̀ méjèèjì pọ̀. Àwọn ìbéèrè lórí br0 tí kò farahàn rárá lórí tun0 túmọ̀ sí pé Pi kò ń gbé jáde tàbí ọ̀nà ń tọ́ka sí ibòmíì. Àwọn ìbéèrè lórí tun0 láìsí ìdáhùn túmọ̀ sí pé ẹ̀gbẹ́ ilé kò ní ọ̀nà ìpadà tàbí olùpín yọ pákẹ́tì náà. Àwọn ìdáhùn lórí tun0 tí kò tún farahàn lórí br0 túmọ̀ sí pé ìlànà àyọ̀ ìdàkejì ṣẹ́ kù, níbi tí ihò ti dàbí aláìlábàwọ́n tí oníbàárà ṣì kò rí nkankan.
Lẹ́yìn náà fọ́ ọ̀nà mọ̀ọ́mọ̀. Sọ ìsopọ̀ mọ́dẹ́mù kalẹ̀ kí o sì gbé e ró, kí o sì tún àwọn àyẹ̀wò ọ̀nà àti àkọsílẹ̀ ṣe; ọ̀nà tí ó ye ihò já tí ó sì pàdánù nígbà ìsopọ̀ tuntun jẹ́ ti profáìlì ìsopọ̀, kì í ṣe àṣẹ ẹ̀ẹ̀kan. Jẹ́rìí pé gbígbé ihò ṣì ń jáde nípasẹ̀ underlay kì í ṣe nípasẹ̀ ara rẹ̀, ìyípo àtẹ̀ǹbáyé nígbà tí a bá gba ọ̀nà àkọ́kọ́ tí a ti ìtì jáde láìsí ọ̀nà ẹ̀rọ sí alábàákẹ́gbẹ́.
Gbà àwòrán náà nìkan nígbà tí oníbàárà hotspot bá lè yanjú orúkọ ilé, ṣí iṣẹ́ TCP, kí ó sì dá ìpàdé dúró láàyè kọjá ìsopọ̀ mọ́dẹ́mù kan. Bí ohun-èlò kan bá nílò ìwákiri ìpele Ethernet ní apá ilé gan-an, yan àwòrán Layer 2 tí a ṣe àtìlẹ́yìn dípò ṣíṣàpèjúwe afárá àdúgbò gẹ́gẹ́ bí afárá tí a so, kí o sì dúró de ìkéde.