Kí ni ìdí tí àwọn ìbéèrè dnsmasq fi ń jáde kúrò nínú VPN lẹ́yìn ìtúnjúwe DNS
REDIRECT ní ẹ̀gbẹ́ router yí ìbéèrè DNS LAN padà sí socket tuntun ti olùyọjú. Àwọn àmì lórí ṣíṣàn oníbàárà kò dé ibẹ̀ rí, nítorí náà ṣètò ojú-ọ̀nà ìjáde lókè ní tààràtà.
Oníbàárà LAN dé VPN rẹ̀ lọ́nà tó tọ́, síbẹ̀ àwọn ìbéèrè DNS rẹ̀ ń farahàn lórí ọ̀nà òkè tí kò tọ́. Èyí kì í ṣe ìsàn jáde ní ìtumọ̀ ojú-ọ̀nà; ohun tí ń ṣẹlẹ̀ ni nígbà tí router dá ṣíṣe gbígbé ìbéèrè lọ dúró tí òun fúnra rẹ̀ dáhùn. Ìdínà yí ibi-àfojúsùn padà sí socket àdúgbò, lẹ́yìn náà olùyọjú ṣí ìjíròrò kejì, tí kò ní í ṣe pẹ̀lú rẹ̀, pẹ̀lú àdírẹ́sì orísun tirẹ̀ àti ìpinnu ìtọ́nà tirẹ̀. Àwọn àmì tí a fi sí ṣíṣàn oníbàárà ṣàpèjúwe ìjíròrò àkọ́kọ́, wọn kò sì sọ ohunkóhun nípa èkejì.
Àmì kì í rìn pẹ̀lú ìbéèrè
Àwọn àmì páké ń gbé lórí àkọsílẹ̀ conntrack àti lórí páké tó ń fò. Òfin REDIRECT fopin sí ìrìn yẹn: a fi ẹrù náà lé socket àdúgbò lọ́wọ́, àkọsílẹ̀ àkọ́kọ́ sì ti ṣe iṣẹ́ rẹ̀ tán. Ohun tí ó ń jáde kúrò nínú router lẹ́yìn náà ni socket tuntun tí ìlànà olùyọjú dá, pẹ̀lú àdírẹ́sì router fúnra rẹ̀ gẹ́gẹ́ bí orísun.
Ìdí nìyẹn tí ọ̀nà ìlànà tí a so mọ́ àdírẹ́sì oníbàárà LAN kò fi bá ìbéèrè òkè mu rí. Socket tuntun náà jẹ́ ti dnsmasq kì í ṣe ti oníbàárà, kẹ́rẹ́nẹ́lì sì ń ṣàyẹ̀wò ọ̀nà náà fún ìrìn àwọn ọkọ̀ router fúnra rẹ̀. Àwọn òfin orísun, òfin ojú-ọ̀nà àti òfin àmì gbogbo wọn rí tuple mìíràn. Láti rò pé àmì náà ń kàn kálẹ̀ ni àṣìṣe tó wọ́pọ̀ jùlọ nínú ìṣètò yìí, kò sì hàn nínú gbígbà àwòrán ní ẹ̀gbẹ́ oníbàárà.
Ìjíròrò méjèèjì pín orúkọ kan àti àkókò kan, ìyẹn sì ni ó máa ń jẹ́ kí wọ́n dà bí ṣíṣàn kan nígbà tí o bá yára wo gbígbà àwòrán.
Níbi tí gbígbé lọ ń di ojútùú àdúgbò
Bẹ̀rẹ̀ nípa ṣíṣe àwárí bóyá a ń yí ibùdó 53 padà, a ń túmọ̀ ọ́ sí agbàlejò mìíràn, tàbí a fi í sílẹ̀ bó ṣe rí, nítorí àwọn ọ̀ràn mẹ́tẹ̀ẹ̀ta ń hùwà lọ́nà ọ̀tọ̀ọ̀tọ̀. Yíyí padà sí ibùdó àdúgbò fopin sí gbígbé lọ, nígbà tí ìtúmọ̀ sí ẹ̀rọ mìíràn ń jẹ́ kí páké náà máa rìn tí ó sì ń jẹ́ kí tuple oníbàárà ní ìtumọ̀.
Wo àwọn ìlànà méjèèjì. Olùyọjú tí a lè dé bá nípasẹ̀ UDP àti TCP ni a óò dán wò lórí méjèèjì, àti pé àkójọ òfin tí ó bo UDP nìkan ń fi ihò ìdákẹ́jẹ́ sílẹ̀ fún àwọn ìdáhùn ńlá. Àwọn òfin tí olùṣàkóso ìṣètò router fúnra rẹ̀ ń dá ni a kà pẹ̀lú, ṣíṣe àtúnṣe fáìlì tí a dá sì máa ń pàdánù fún ìgbéékún tó ń bọ̀.
sudo nft list ruleset | grep -n -B2 -A4 'dport 53'
sudo iptables -t nat -L -n -v | grep -E ':53|dns'
sudo ss -lunp | grep ':53'
Àwọn àbájáde yẹn ń dáhùn ìbéèrè mẹ́ta lẹ́sẹẹsẹ: kí ni ó ń tún ìbéèrè kọ, kí ni ó ń gbà á, àti èwo ìlànà ni ó ni socket tí ń gbọ́. Nígbà tí a bá mọ ẹni tó ni ọ́, ìlànà òkè ní ibi láti gbé.
Fi ìlànà ìjáde tirẹ̀ fún olùyọjú
Gbígbé lókè tí ó yà sọ́tọ̀ fún agbègbè ni irinṣẹ́ tó mọ́ jùlọ nígbà tí àwọn orúkọ díẹ̀ péré ló nílò ọ̀nà abẹ́lẹ̀. dnsmasq gba ìlà server tí a fi ààlà sí agbègbè kan, pẹ̀lú ojú-ọ̀nà tàbí àdírẹ́sì orísun àṣàyàn tí ó ń gbé ìbéèrè jáde kúrò nínú ẹ̀rọ tí a yàn. Ìtọ́sọ́nà yẹn ni ó ń mú kí ìjíròrò kejì tẹ̀lé VPN.
server=/corp.example/10.30.0.53@tun_work
log-queries
Agbègbè, àdírẹ́sì àti ojú-ọ̀nà tó wà lókè jẹ́ ààyè fún àwọn iye tirẹ̀. Yíyan agbègbè àti ìṣàkóso ìjáde wà ní ìpinnu ọ̀tọ̀ọ̀tọ̀: ọ̀nà gbọ́dọ̀ wà, olùyọjú òkè gbọ́dọ̀ gba àdírẹ́sì orísun láàyè, odi iná sì gbọ́dọ̀ gba ìdáhùn láàyè. Ìtọ́sọ́nà ojú-ọ̀nà nìkan kì í ṣe fail-closed, nítorí ọ̀nà abẹ́lẹ̀ tó sọnù lè jẹ́ kí olùyọjú ṣubú sí ọ̀nà mìíràn. Jẹ́ kí èyíkéyìí àyè ìpadàbọ̀ gbangba wà ní ọ̀nà jíjìnnà sí ààyè orúkọ tí ó gbọ́dọ̀ wà ní àṣírí.
Fi ìlà náà sí ọ̀dọ̀ ẹni tí ó ni ìṣètò tí router ń ṣe àtìlẹ́yìn fún, kì í ṣe sínú fáìlì tí a dá, bí bẹ́ẹ̀ kọ́ ìgbéékún tó ń bọ̀ yóò pa àtúnṣe náà ré.
Ohun tí káṣì tí a pín kò lè tọ́jú
Olùgbélé lọ kan pẹ̀lú káṣì kan ń sìn gbogbo oníbàárà LAN, ìyẹn sì ń wó ìyàtọ̀ kan tí àwọn nẹ́tíwọ́kì kan nílò. Bí oníbàárà méjì bá gbọ́dọ̀ yanjú orúkọ kan lọ́nà ọ̀tọ̀ọ̀tọ̀, socket tí a pín kò ní ọ̀nà láti dá ẹni tí ó béèrè padà. Ìlànà fún oníbàárà kọ̀ọ̀kan gbọ́dọ̀ gbé nínú àwọn ẹ̀dá olùyọjú ọ̀tọ̀ọ̀tọ̀ tàbí nínú ẹ̀yà gbígbélé tí ó ń pa ìdánimọ̀ mọ́.
Ìdáhùn tí a fi káṣì pamọ́ kì í sì í jẹ́ ẹ̀rí nípa ọ̀nà tuntun. Ìdáhùn lè wá látinú ìrántí nígbà tí ọ̀nà òkè ṣì wà ní bàjẹ́.
Àwọn òfin ibùdó 53 kò sọ ohunkóhun nípa àwọn ohun èlò tí ń sọ DNS lórí HTTPS tàbí lórí TLS. Àwọn ìbéèrè yẹn kò dé ibi yíyí padà rí, nítorí náà ìlànà tí a kọ́ lórí ibùdó 53 nìkan ń ṣàpèjúwe ìpín kan nínú ìrìn a sì gbọ́dọ̀ kọ ọ́ sílẹ̀ gẹ́gẹ́ bí ìpín.
Ṣàyẹ̀wò ìjíròrò kejì, kì í ṣe èkíní
Dán wò pẹ̀lú orúkọ kan tí ìwọ ń ṣàkóso kí o sì wo ẹ̀gbẹ́ méjèèjì. Gbígbà àwòrán ní ẹ̀gbẹ́ oníbàárà fi hàn pé ìbéèrè náà ti kúrò ní LAN; ẹ̀gbẹ́ router nìkan ni ó fi hàn ibi tí ó lọ lẹ́yìn náà.
sudo tcpdump -ni tun_work udp port 53
ip route get 10.30.0.53
dig +short corp.example @10.30.0.53
Pa káṣì rẹ́ kí ìgbìyànjú kọ̀ọ̀kan tó bẹ̀rẹ̀, nítorí ìdáhùn gbóná ń fi ọ̀nà òkè tó bàjẹ́ pa mọ́. Tún ṣe lórí TCP, lẹ́yìn náà tún ṣe pẹ̀lú ọ̀nà abẹ́lẹ̀ tí a ti pa, kí o lè rí ohun tí olùyọjú ń ṣe nígbà tí ọ̀nà tí ó fẹ́ já. Ìhùwà ìkẹyìn yẹn ni ó ń pinnu bóyá àpẹẹrẹ náà jẹ́ fail-closed tàbí ó kàn ní oríire.