OpenVPN DNS lórí ẹnubodè: dnsmasq àti ìwọ̀n firewall
Ṣe dnsmasq ní àdírẹ́sì tunnel, gba DNS láyè láti inú ẹgbẹ́ àwọn oníbàárà nìkan, tì resolver, lẹ́yìn náà dán àwọn ìbéèrè tààrà àti ìwárí app fúnra rẹ̀ wò.
Àwọn oníbàárà lórí tunnel lè dé ẹnubodè, ẹnubodè sì lè dé resolver inú, nítorí náà DNS yẹ kí ó ṣiṣẹ́. Ṣùgbọ́n kò ṣiṣẹ́, nítorí ìwọ̀nyí ni ìyọ̀ǹda méjì tí ó yàtọ̀, ìsìn DNS tí ń ṣiṣẹ́ sì jẹ́ ohun kẹta. Olùgbọ́ gbọ́dọ̀ wà ní àdírẹ́sì tí àwọn oníbàárà ń dé, firewall gbọ́dọ̀ gba àwọn ìbéèrè sí àdírẹ́sì yẹn láyè, a sì gbọ́dọ̀ sọ fún oníbàárà pé kí ó lò ó. Ṣíṣí tunnel ní ẹ̀gbẹ́ méjèèjì ń yanjú àwọn méjì àkọ́kọ́ ní àìròtẹ́lẹ̀, ó sì fi ìkẹta sílẹ̀ láìparí.
Olùgbọ́ jẹ́ ìsìn àdúgbò tí ó ní ẹ̀gbẹ́ méjì
Nínú, oníbàárà ń fi ìbéèrè ránṣẹ́ sí àdírẹ́sì tunnel ẹnubodè ní ibùdó 53. Nísinsìnyí, daemon ń fi ìbéèrè yẹn kọjá sí upstream tí a ti ṣètò. Ẹ̀gbẹ́ méjèèjì gbọ́dọ̀ ṣiṣẹ́, wọ́n sì ń kùnà ní ọ̀nà oríṣiríṣi.
Àkókò tí oníbàárà ń ròyìn àti àkókò tí a rí lórí ẹnubodè kì í ṣe ìkùnà kan náà.
So àdírẹ́sì tunnel, kì í ṣe gbogbo àdírẹ́sì
Ẹ̀dá dnsmasq àkànṣe fún iṣẹ́ yìí nílò àdírẹ́sì gbígbọ́ tí ó ṣe kedere, ipò ìso tí ó ń faradà ìfarahàn tunnel lẹ́yìn ìbẹ̀rẹ̀, àti upstream kan tí ó ṣe kedere. Èyí ni ẹ̀yà tí ó kéré jù tí mo ń lò:
listen-address=127.0.0.1,10.90.0.1
bind-dynamic
no-resolv
no-hosts
server=192.168.50.53
bind-dynamic ń so àwọn àdírẹ́sì kọ̀ọ̀kan, ó sì ń kojú nígbà tí tun0 bá farahàn lẹ́yìn náà, èyí tí ó ṣe pàtàkì lórí ẹ̀rọ tí ìsìn VPN ti tún bẹ̀rẹ̀. Síso loopback ń pa àwọn irinṣẹ́ àdúgbò mọ́ ní ṣíṣẹ́ láìfi olùgbọ́ gbangba kún un. no-resolv ń dá daemon lọ́wọ́ láti jogún àwọn upstream láti ìṣètò resolver ẹ̀rọ, no-hosts sì ń dá ẹ̀dá yìí lọ́wọ́ láti tẹ̀wé jáde fáìlì hosts ẹnubodè. Kò sí ọ̀kan nínú àwọn àṣàyàn wọ̀nyí tí ń fún ẹnikẹ́ni ní ìyọ̀ǹda láti béèrè ìsìn náà.
Ṣàyẹ̀wò bóyá olùgbọ́ tí ó ti wà tẹ́lẹ̀ ní ibùdó 53 wà kí o tó bẹ̀rẹ̀ daemon kejì, kí o sì lo ẹni tí ó ni ìṣètò ìpínkiri dípò fáìlì tí ó sọnù nínú àkójọpọ̀ tí kò tọ̀nà.
Gba ìwọlé DNS láyè, kì í ṣe ìkọjá tunnel
Àwọn òfin firewall tí ń mú èyí ṣiṣẹ́ jẹ́ òfin ìwọlé àdúgbò tí a fi mọ́ interface tunnel, ẹgbẹ́ oníbàárà, àdírẹ́sì ẹnubodè àti ibùdó 53. Òfin méjì, ọ̀kan fún protocol kọ̀ọ̀kan, ti tó:
sudo ufw allow in on tun0 proto udp from 10.90.0.0/24 to 10.90.0.1 port 53
sudo ufw allow in on tun0 proto tcp from 10.90.0.0/24 to 10.90.0.1 port 53
DNS ń gbé lórí TCP gẹ́gẹ́ bí UDP, nítorí náà òfin fún UDP nìkan ń fi àwọn ìdáhùn ńlá kùnà ní ọ̀nà tí ó dàbí ìdálẹ́sẹ́. Ìwọ̀nyí kì í ṣe ufw route ìyọ̀ǹda, wọn kò sì gbọ́dọ̀ di ìyọ̀ǹda gbígbòòrò lórí tun0. Ìtẹ̀létele ṣe pàtàkì bí àkóónú: òfin tẹ́lẹ̀ tí ó ń sọ gbogbo ìwọlé nù láti tun0 ṣì ń ṣẹ́gun, ìfikún ìyọ̀ǹda nísàlẹ̀ ìsọnu ìkẹyìn kò sì dá ohunkóhun.
Tí DNS ẹnubodè bá ti jẹ́ apá kan design, ṣàtúnyẹ̀wò ìlànà àtẹ̀yìnwá yẹn pẹ̀lú ìmọ̀ọ́nú kí o sì kọ ìdí rẹ̀.
Ẹ̀gbẹ́ upstream jẹ́ ọ̀nà ọ̀tọ̀
Àwọn ìbéèrè ń kúrò ní ẹnubodè láti àdírẹ́sì tirẹ̀ lọ sí resolver upstream, nítorí náà ọ̀nà ẹnubodè àti ìlànà jáde sí resolver yẹn gbọ́dọ̀ gba ìpàṣẹ́pàárọ̀ láyè. Èyí jẹ́ òfin mìíràn yàtọ̀ sí èyí tí ń jẹ́ kí àwọn oníbàárà dé olùgbọ́, ó sì ń kùnà pẹ̀lú àmì mìíràn.
Má ṣe àfikún jáde tunnel tí kò ní ààlà láti mú àwọn ìdáhùn ṣiṣẹ́; àwọn ìdáhùn tí a ń tọpinpin kò nílò rẹ̀.
Tì àṣàyàn náà, lẹ́yìn náà ṣàyẹ̀wò ìfàṣẹ́
Séríkà lè kéde resolver fún àwọn oníbàárà pẹ̀lú àṣàyàn tí a tì jáde. Ìyẹn jẹ́ àṣàyàn, kì í ṣe àṣẹ tí ẹ̀rọ ìṣiṣẹ́ gbọ́dọ̀ gbọ́:
push "dhcp-option DNS 10.90.0.1"
Oníbàárà Linux ti ìlà àṣẹ lè nílò ìsopọ̀ resolver ti olùdarí ìsopọ̀ rẹ̀, ẹ̀rọ tí a ń ṣàkóso sì lè nílò prófáìlì ìṣàkóso tí a ti ṣe àtúnṣe. Lẹ́yìn ìsopọ̀, jẹ́rìí sí resolver tí ń ṣiṣẹ́ lórí oníbàárà dípò kí o rò pé a ti lo ìtì jáde náà. Nígbà tí ọ̀nà méjì bá ń gbìyànjú láti ṣètò DNS lẹ́ẹ̀kan náà, ìwọ yóò rí eré-ìje tí ó farahàn bí ìpinnu tí ń ṣẹ́jú.
Èròǹgbà ni olútọ́jú kan ṣoṣo fún ìṣètò resolver oníbàárà, ìtì jáde sì sábà jẹ́ olútọ́jú yẹn nígbà tí pẹpẹ oníbàárà bá gbà.
Dán èyí tí o kọ́ ní ti gidi wò
Béèrè orúkọ aládàáni tí ó yẹ ní kíkún kan àti orúkọ òde tí a gbà láyè kan tààrà sí àdírẹ́sì tunnel, nípasẹ̀ UDP àti TCP. Lẹ́yìn náà tún ṣe é nípasẹ̀ ọ̀nà ìwárí deede ti app náà.
Tí àwọn ìbéèrè tààrà bá ń ṣiṣẹ́ tí app sì ṣì ń kùnà, ìkùnà wà nínú ìfàṣẹ́ kì í ṣe lórí séríkà:
- Oníbàárà kò lo àṣàyàn tí a tì jáde rí.
- A ṣètò resolver mìíràn lẹ́yìn náà, ó sì ṣẹ́gun eré-ìje náà.
- App ń lo ilé-ìkàwé resolver tirẹ̀ tàbí ìdáhùn tí a ti fi pamọ́.
Parí pẹ̀lú ìjẹ́rìí pé orísun tí ó wà ní òde ọ̀nà VPN tí a fọwọ́ sí kò lè lo olùgbọ́ rárá. Ìpinnu tí ó ṣẹ́gun kò fi àṣẹ fún àdírẹ́sì tí ó dá padà, nítorí náà pa ìbéèrè méjì wọ̀nyí mọ́ ní ọ̀tọ̀ọ̀tọ̀.