Àkọsílẹ̀ gbogbogbo nípasẹ̀ OpenVPN: tún ọ̀nà àpadà ṣe
Àkọsílẹ̀ gbogbogbo tí a ti darí lè kọjá ìsopọ̀ TUN OpenVPN, ṣùgbọ́n àwọn ìdáhùn gbọ́dọ̀ padà ní ọ̀nà kan náà. Ṣe àtọ̀wọ́ àkọsílẹ̀ náà kí o sì pa àdírẹ́sì orísun gbogbogbo mọ́.
Wo bí tunnel náà ṣe ń gòkè àti bí client náà ń ping ẹ̀gbẹ́ kejì, lẹ́yìn náà àdírẹ́sì gbogbogbo tí ó yẹ kí ó wà lẹ́yìn VPN ń dáhùn láti ibòmíràn, tàbí kò dáhùn rárá. Àmì yìí kì í sábà ní í ṣe pẹ̀lú cipher tàbí àwọn ẹ̀rí. Àkọsílẹ̀ tí olùpèsè ń darí ni a ń fi ránṣẹ́ gẹ́gẹ́ bí ọ̀nà IP, àti gbígbé e kọjá OpenVPN túmọ̀ sí àtúnṣe ọ̀nà yẹn ní ìpele méjì àti pàdé àdírẹ́sì orísun ní ọ̀nà àpadà. Kò pọn dandan láti ṣe afárá WAN, àti fífi àdírẹ́sì kún interface kò dá ọ̀nà òkè.
Àkọsílẹ̀ gbọ́dọ̀ kọ́kọ́ jẹ́ dídarí sí ọ̀dọ̀ rẹ
Bèèrè lọ́wọ́ olùpèsè bí a ṣe ń fi block náà ránṣẹ́. Àkọsílẹ̀ tí a darí sí àdírẹ́sì àkọ́kọ́ server rẹ yàtọ̀ sí àwọn àdírẹ́sì tí olùpèsè ń retí láti dé tààrà lórí apá WAN. Àwòṣe àkọ́kọ́ nìkan ni ó ń ṣiṣẹ́ pẹ̀lú àpẹẹrẹ yìí.
Tí olùpèsè bá ń darí 198.51.100.64/28 sí server ìwọlé rẹ, àwọn pákẹ́tì ìwọ̀n yẹn yóò dé server náà kí wọ́n sì dúró níbẹ̀ àyàfi tí o bá gbé wọn jáde. Tí olùpèsè bá dípò èyí ṣe afárá ìwọ̀n náà sí uplink rẹ, server gbọ́dọ̀ dáhùn ARP fún un, èyí tí ó jẹ́ ìṣòro mìíràn.
Dán àwòṣe ìfiṣẹ́ránṣẹ́ wò kí o tó fọwọ́ kan OpenVPN: láti ìta, ping àdírẹ́sì kan nínú block náà kí o sì wo interface tí ó gbà á. Tí kò bá sí ohun tí ó dé, kò sí ètò tunnel tí yóò ràn ọ́ lọ́wọ́. Tí àdírẹ́sì náà bá dáhùn tààrà lórí WAN, olùpèsè ń ṣe afárá dípò dídarí, àpẹẹrẹ ìsàlẹ̀ kò sì kan.
Ìpele ìdarí méjì: ọ̀nà kernel àti iroute
OpenVPN nílò àkọsílẹ̀ ní ibi méjì. Kernel gbọ́dọ̀ mọ̀ pé àkọsílẹ̀ náà jẹ́ ti ẹ̀rọ tunnel, kí àwọn pákẹ́tì tí a gbé jáde lè wọ OpenVPN dípò ọ̀nà àkọ́kọ́. OpenVPN pẹ̀lú gbọ́dọ̀ mọ̀ irú client tí a fọwọ́ sí tí ó ní àkọsílẹ̀ náà, èyí sì ni àkọsílẹ̀ iroute nínú àpò àkànṣe client.
Ọ̀nà ẹ̀gbẹ́ server rí bẹ́ẹ̀, pẹ̀lú àkọsílẹ̀ àti mask tí ó gbọ́dọ̀ bá ìpín mu:
ip route add 198.51.100.64/28 dev tun0
Ètò àkànṣe client ń yan ẹ̀tọ́. Fi í sínú fáìlì CCD tí a fi orúkọ gbogbogbo ẹ̀rí client sọ lórúkọ, kí o sì jẹ́rìí pé àpò yẹn ni server ń kà ní tòótọ́:
iroute 198.51.100.64 255.255.255.240
Ìwé OpenVPN nípa àwọn nẹ́tíwọ́kì tí a darí ṣàlàyé ìpele méjì àti ìdí tí wọ́n fi ṣòtọ̀ọ̀tọ̀. Ọ̀nà kernel láìsí iroute ń fi pákẹ́tì ránṣẹ́ sínú tunnel láìsí olówó, OpenVPN sì ń sọ wọ́n nù. iroute láìsí ọ̀nà kernel ń fi pákẹ́tì sílẹ̀ lórí ọ̀nà àkọ́kọ́ server. Àṣìṣe méjèèjì rí bí tunnel tí ó já ní ẹ̀gbẹ́ client.
Ibi tí àdírẹ́sì iṣẹ́ wà
Àkọsílẹ̀ tí a fún ní ẹ̀tọ́ kì í ṣe ohun kan náà pẹ̀lú àwọn àdírẹ́sì tunnel fúnra rẹ̀. Ṣe nọ́mbà ìsopọ̀ náà láti àyè àdáni tí o bá fẹ́, kí o sì gbé àdírẹ́sì iṣẹ́ gbogbogbo sí ibi tí iṣẹ́ náà ń ṣiṣẹ́ gangan.
Lórí client Linux tí ó ń parí iṣẹ́ ní àdúgbò, àdírẹ́sì host kan ti tó:
ip address add 198.51.100.70/32 dev lo
Tí a bá ń darí àkọsílẹ̀ náà síwájú sí host VM tàbí LAN mìíràn, ṣe àtúnṣe ọ̀nà ìsàlẹ̀ yẹn àti ọ̀nà àpadà rẹ̀ dípò. Kò pọn dandan láti fi gbogbo àdírẹ́sì inú block fún client VPN, ó sì ń dá ìforígbárí lẹ́yìn.
Pa orísun gbogbogbo mọ́ lórí ọ̀nà àpadà
Ìdáhùn láti àkọsílẹ̀ tí a fún ní ẹ̀tọ́ gbọ́dọ̀ jáde kúrò nínú tunnel kí ó sì dé ọ̀nà olùpèsè. Tí host jíjìnnà bá fi í ránṣẹ́ nípasẹ̀ ISP tirẹ̀, àdírẹ́sì orísun yóò dàbí ẹni tí a ṣe àdàkọ, olùpèsè tàbí ibi ìlọ yóò sì sọ ọ́ nù. Ìgbésẹ̀ náà ni ofin tí ó dá lórí orísun tàbí tábìlì ìdarí àkànṣe, kì í ṣe NAT tí ó gbòòrò jù. Láìsí rẹ̀, iṣẹ́ náà ń ṣiṣẹ́ láti ẹ̀gbẹ́ tunnel yóò sì kùnà láti gbogbo ibòmíràn.
Ní server ìwọlé, ofin masquerade gbòòrò ni apaniyan tí ó wọ́pọ̀. Ó ń tún orísun gbogbogbo kọ sí àdírẹ́sì àkọ́kọ́ server, client kì í sì rí èyí tòótọ́ rárá:
iptables -t nat -S POSTROUTING
Fi NAT mọ́ àwọn client VPN àdáni tí wọ́n nílò rẹ̀ kí o sì fi àkọsílẹ̀ tí a fún ní ẹ̀tọ́ láìtúmọ̀. Lẹ́yìn náà jẹ́rìí pé server ń gbé àkọsílẹ̀ náà jáde rárá, nítorí ẹ̀wọ̀n ìgbéjáde tí ó kọ̀ ní àkọ́kọ́ ń sọ ọ́ nù ní ìdákẹ́jẹ́.
Jẹ́rìí àwọn ẹ̀gbẹ́ méjèèjì kí o tó gbẹ́kẹ̀lé e
Ìjẹ́rìí ni àwòrán mẹ́rin, kì í ṣe ọ̀kan. Jẹ́rìí pé ọ̀nà olùpèsè ń dé, kernel ń fi àkọsílẹ̀ ránṣẹ́ sínú tunnel, OpenVPN ń fi í mọ́ client tí ó tọ́, àti pé ìdáhùn náà ń padà wá pẹ̀lú orísun gbogbogbo tí kò bàjẹ́. Àwòrán kọ̀ọ̀kan ní àṣẹ tirẹ̀, nítorí náà ìkùnà ń tọ́ka sí ìpele kan kì í ṣe gbogbo àpẹẹrẹ. Ṣe wọ́n ní ìtẹ̀lé yẹn lẹ́yìn gbogbo ìyípadà ètò.
Bèèrè lọ́wọ́ kernel ọ̀nà tí àdírẹ́sì tí a fún ní ẹ̀tọ́ ń gbà, kí o sì wo tunnel nígbà tí ìbéèrè ń ṣiṣẹ́:
ip route get 198.51.100.70
sudo tcpdump -ni tun0 host 198.51.100.70
Àṣẹ́wọ́n ọ̀nà yíyípadà lè sọ ọ̀nà tí ó tọ́ di asán. Ṣàyẹ̀wò ètò tí ó ń ṣiṣẹ́ lórí tunnel àti lórí uplink, kí o sì rántí pé ipò líle ń kọ̀ ìrìnàjò tí orísun rẹ̀ kò bá interface tí ó ti wọ mu:
sysctl net.ipv4.conf.tun0.rp_filter net.ipv4.conf.eth0.rp_filter
Ní ìparí, dán ipò ìkùnà wò. Dúró tunnel náà kí o sì jẹ́rìí pé àkọsílẹ̀ gbogbogbo kò ń jáde gba uplink déédéé. Mímú VPN padà yẹ kí ó mú iṣẹ́ náà padà láìsí fífi àwọn ibùdó tí host ń ṣí gbòòrò.