Oníbàárà kan lórí OpenVPN sáfà rẹ gbọ́dọ̀ pàdánù àǹfààní LAN nígbà tí gbogbo ònà àbáwọlé mìíràn ń ṣiṣẹ́. Tí o bá wá èyí, ìdáhùn tí ó dára jùlọ sábà sọ pé daemon kò lè ṣe é, èyí tí ó jẹ́ ìdajì òtítọ́: OpenVPN kò ní odi iná fún oníbàárà kọ̀ọ̀kan, ṣùgbọ́n ẹ̀rọ tí ó parí ònà àbáwọlé ti ń ṣe àyọ̀ àwọn pákẹ́tì. Àwọn ìpinnu méjì tí ó ṣe pàtàkì ni ìdánimọ̀ tí o dènà àti ipò òfin. Ṣe àwọn méjì yìí dáadáa, ìyípadà yóò di ìlà kan tí o lè dán wò àti yọ kúrò.

So oníbàárà mọ́ kí o tó kọ òfin

OpenVPN ń yá àwọn àdírẹ́sì ònà àbáwọlé láti inú àkójọ, nítorí náà 10.8.0.6 jẹ́ ibùjókòó, kì í ṣe ènìyàn. Nígbà tí ìpàdé bá parí, ìyá náà yóò padà, a sì lè fi fún ìsopọ̀ tí ó kàn, èyí tí ó túmọ̀ sí pé òfin tí a kọ sí àdírẹ́sì yẹn ń tẹ̀lé ibùjókòó, kì í ṣe olùlò. Nítorí náà kọ́kọ́ pinnu ohun tí o ń dènà ní ti gidi: àdírẹ́sì fún àdánwò kúkúrú, tàbí ẹ̀rí fún ẹnìkan tí o fẹ́ pa mọ́ ní òde.

Láti so àdírẹ́sì mọ́ ẹ̀rí, ṣẹ̀dá fáìlì nínú àpò tí client-config-dir ń dárúkọ, kí o sì fún fáìlì ní common name ẹ̀rí gan-an. Fi ìtọ́nisọ́nà kan sínú rẹ̀, ifconfig-push 10.8.0.6 255.255.255.0, oníbàárà yẹn yóò sì pa àdírẹ́sì ònà àbáwọlé kan náà mọ́ nígbà àtúnso. Àwọn ètò méjì gbọ́dọ̀ wà kí èyí lè ṣiṣẹ́: client-config-dir gbọ́dọ̀ jẹ́ ìkéde nínú ètò sáfà, àdírẹ́sì tí a ń rán gbọ́dọ̀ wà nínú ẹ̀ka àwẹ̀nà tí sáfà lè tọ́pinpin. Tí ọ̀kan bá ṣàkù, a ó fojú fo fáìlì náà láìsí àṣìṣe, èyí tí ó mú àdánwò odi iná tí ó kàn dà rúdúrúdú.

Ìdènà ìgbà díẹ̀ lè lo àdírẹ́sì àkójọ, nígbà tí tikẹ́tì bá kọ ìpàdé tí ó ní í ní àkókò yẹn.

Ìtò ni ó ń pinnu bóyá ìjùlẹ̀ yóò ṣiṣẹ́

Lórí ẹnubodè Linux tí ó ń gbé jáde láàárín ònà àbáwọlé àti LAN, àwọn pákẹ́tì ń kọjá ẹ̀wọ̀n FORWARD. Ka àṣẹ tí ó wà nísàlẹ̀ gẹ́gẹ́ bí gbólóhùn: fi sínú orí FORWARD, bá ìrìnàjò tí ó ń wọlé láti tun0 mu, láti ẹ̀rọ kan náà, tí a darí sí ẹ̀ka àwẹ̀nà LAN, kí o sì jù ú.

iptables -I FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP

-I ni ó ń mú òfin ṣiṣẹ́. Tí a bá fi -A kún un, yóò wà nísàlẹ̀ gbogbo ìtẹ́wọ́gbà gbòòrò fún ẹ̀ka àwẹ̀nà ònà àbáwọlé, kò sì ní rí pákẹ́tì rárá. Ṣàyẹ̀wò ipò pẹ̀lú iptables -vnL FORWARD --line-numbers, kí o sì ka àwọn olùkà pẹ̀lú: ìjùlẹ̀ tí ó wà ní orí tí kò ka nǹkan kan túmọ̀ sí pé ìrìnàjò ń wá ní ọ̀nà mìíràn.

Àdírẹ́sì LAN ti ẹnubodè fúnra rẹ̀ jẹ́ ọ̀nà mìíràn. Àwọn pákẹ́tì tí a rán sí àpótí náà fúnra rẹ̀ ń lọ sí INPUT, kì í ṣe FORWARD, nítorí náà oníbàárà lè pàdánù ẹ̀rọ LAN kí ó sì ṣì lè ṣí ojú-ìwé àkóso róútà. Fi òfin INPUT tí ó bá a mu kún un nígbà tí èyí bá ṣe pàtàkì.

Ohun tí àyọ̀ kò lè rí

Àyọ̀ ń ṣẹlẹ̀ nígbà tí a bá ṣe àgbéléwò pákẹ́tì, nítorí náà ìpàdé TCP tí ó ti dá sílẹ̀ lè tẹ̀síwájú títí yóò fi dí tàbí a fi dá a dúró. Tí ìdènà gbọ́dọ̀ ṣiṣẹ́ lẹ́sẹ̀kẹsẹ̀, nu àwọn ṣíṣàn tí a tọ́pinpin fún orísun yẹn pẹ̀lú conntrack -D -s 10.8.0.6 lẹ́yìn tí a fi òfin sínú. Tí ìyọ̀nda ìṣẹ́jú àáyá díẹ̀ bá jẹ́ ìtẹ́wọ́gbà, kọ ìpinnu yẹn sílẹ̀ dípò fí fi í pamọ́. Ní ọ̀nàkọnà, ẹni tí ó kàn gbọ́dọ̀ mọ̀ bóyá òfin náà dá ìrìnàjò alààyè dúró tàbí ìsopọ̀ tuntun nìkan.

Ìrìnàjò láàárín àwọn ẹlẹgbẹ́ kò ní fọwọ́ kan odi iná ẹ̀rọ rárá. Tí client-to-client bá ṣí, OpenVPN ń gbé àwọn pákẹ́tì yẹn jáde nínú daemon, nítorí náà FORWARD tàbí INPUT kò rí wọn. Ojútùú kan ṣoṣo ni láti pa client-to-client tàbí gba pé àwọn ẹlẹgbẹ́ lè dé ọ̀dọ̀ ara wọn; òfin iptables kò ní rí ìrìnàjò yẹn.

IPv6, firmware àti ìfaradà lẹ́yìn àtúnbẹ̀rẹ̀

Òfin IPv4 kò sọ nǹkan kan nípa IPv6. Tí ònà àbáwọlé àti LAN bá gbé àwọn ìdílé méjèèjì, òfin tí ó dọ́gba gbọ́dọ̀ wà nínú ip6tables, tàbí nínú àkójọ òfin nftables tí ó ní ìlànà lórí ẹ̀rọ yẹn. Firmware róútà sábà ń fi netfilter pamọ́ sẹ́yìn àpèjúwe tirẹ̀, nítorí náà ìtòlẹ́sẹẹsẹ àti orúkọ tábìlì tí a dà kọ láti fọ́rọ́mù lè má ṣiṣẹ́.

Lórí OpenWrt, ọ̀nà tí a kọ sílẹ̀ ni àkọsílẹ̀ ètò odi iná, kì í ṣe ìlà iptables tí a fi ọwọ́ kọ, ìlà tí a fi ọwọ́ kọ sì lè pàdánù nígbà tí odi iná bá tún gbé. Àwọn ìpín mìíràn ń mú àwọn òfin padà nípasẹ̀ netfilter-persistent, ẹ̀yà ìbẹ̀rẹ̀ tàbí ibi ìpamọ́ olùpèsè, àwọn ọ̀nà yẹn kò sì lè pààrọ̀ ara wọn. Fi àtúnbẹ̀rẹ̀ ṣe ẹ̀rí èyí tí o yàn, nítorí àtúngbé ń dá ọ̀nà mìíràn lólẹ̀.

Ṣàyẹ̀wò nípasẹ̀ ọ̀nà kọ̀ọ̀kan, lẹ́yìn náà yí padà ní mímọ́

Dán ọ̀nà kọ̀ọ̀kan wò lọ́tọ̀, nítorí àyẹ̀wò àṣeyọrí kan ń fi àwọn mìíràn pamọ́. Oníbàárà tí a dènà gbọ́dọ̀ ṣì lè dé íńtánẹ́ẹ̀tì nípasẹ̀ ònà àbáwọlé ṣùgbọ́n yóò kùnà lórí ẹ̀rọ LAN, oníbàárà kejì gbọ́dọ̀ dé ẹ̀rọ kan náà, àdírẹ́sì ẹnubodè àti ọ̀nà ẹlẹgbẹ́ sì nílò àkíyèsí tiwọn. Kọ àwọn àbájáde sẹ́gbẹ̀ẹ́ òfin kí ìyípadà tí ó kàn lè ní ìpìlẹ̀. Tábìlì tí ó wà nísàlẹ̀ ni àkójọ tí ó tọ́ láti pa mọ́ nínú tikẹ́tì.

Ọ̀nàÌfojúsọ́nà pẹ̀lú òfinNígbà tí ó bá kùnà
Oníbàárà tí a dènà sí ẹ̀rọ LANKò sí ìdáhùnÒfin wà nísàlẹ̀ ìtẹ́wọ́gbà, tàbí orísun kò bá a mu
Oníbàárà tí a dènà sí íńtánẹ́ẹ̀tìŃ ṣiṣẹ́ nípasẹ̀ tun0Òfin gbòòrò jù, láìsí ìbámu ibi-ìlọ
Oníbàárà kejì sí ẹ̀rọ LAN kan náàŃ ṣiṣẹ́Òfin bá ohun tí ó pọ̀ ju ẹ̀rọ tí a fẹ́ lọ
Oníbàárà tí a dènà sí àdírẹ́sì LAN ẹnubodèA dènà rẹ̀ nígbà tí òfin INPUT tí ó bá a mu wàÒfin INPUT kò sí
Oníbàárà tí a dènà sí àdírẹ́sì ònà àbáwọlé ẹlẹgbẹ́Ṣì ń ṣiṣẹ́client-to-client ṣí àti ní òde ìwọ̀n odi iná

Yíyí padà ni pípa rẹ́ nípasẹ̀ àpèjúwe, kì í ṣe flush: iptables -D FORWARD -i tun0 -s 10.8.0.6/32 -d 192.168.1.0/24 -j DROP ń yọ àkọsílẹ̀ yẹn gan-an kí ó sì fi ìyókù ẹ̀wọ̀n náà sílẹ̀ láìfarapa. Yọ ìlà kan náà kúrò nínú fáìlì èyíkéyìí tí ó ń mú àwọn òfin padà nígbà ìbẹ̀rẹ̀, tún gbé e, kí o sì jẹ́rìí pé oníbàárà tún dé ẹ̀rọ LAN. Flush FORWARD yóò tún pa àwọn òfin tí o kò kọ rẹ́, èyí tí ó sọ yíyí padà di ìṣẹ̀lẹ̀ kejì.

Kí o tó pa tikẹ́tì, jẹ́rìí àwọn nǹkan mẹ́ta: àdírẹ́sì tí a so mọ́ bá ẹ̀rí mu, òfin wà lórí àwọn ìtẹ́wọ́gbà pẹ̀lú olùkà tí kì í ṣe òdo, àti fáìlì ìdúró ní òfin kan náà tí o dán wò. Tí ọ̀kan nínú wọn kò bá sí, ìdènà náà jẹ́ ìtànjẹ nínú ìpàdé shell.

Àwọn àpilẹ̀kọ tó jọra