DNS ya OpenVPN kwenye lango: dnsmasq na wigo wa firewall
Endesha dnsmasq kwenye anwani ya handaki, ruhusu DNS kutoka kundi la wateja pekee, sukuma kizuizi, kisha jaribu maulizo ya moja kwa moja na utafutaji wa programu yenyewe.
Wateja walio kwenye handaki wanaweza kufikia lango, na lango linaweza kufikia msuluhishi wa ndani, kwa hiyo DNS inapaswa kufanya kazi. Haifanyi kazi, kwa sababu haya ni vibali viwili tofauti na huduma ya DNS inayofanya kazi ni jambo la tatu. Msikilizaji lazima awepo kwenye anwani ambayo wateja wanaifikia, firewall lazima iruhusu maulizo kwenye anwani hiyo, na mteja lazima aambiwe aitumie. Kufungua handaki kwa pande zote mbili hutatua mawili ya kwanza kwa bahati na kuacha la tatu halijakamilika.
Msikilizaji ni huduma ya ndani yenye pande mbili
Kwa ndani, mteja hutuma ulizo kwenye anwani ya handaki ya lango kwenye bandari 53. Kwa nje, daemon hupeleka ulizo huo kwa mkondo wake wa juu uliosanidiwa. Nusu zote mbili lazima zifanye kazi, na zinashindikana kwa namna tofauti.
Muda unaoripotiwa na mteja na muda unaoonekana kwenye lango si hitilafu moja.
Funga anwani ya handaki, si kila anwani
Nakala maalum ya dnsmasq kwa kazi hii inahitaji anwani wazi ya kusikiliza, hali ya kufunga inayostahimili handaki kuonekana baada ya kuanza, na mkondo mmoja wazi wa juu. Hii ni toleo ndogo zaidi ninalotumia:
listen-address=127.0.0.1,10.90.0.1
bind-dynamic
no-resolv
no-hosts
server=192.168.50.53
bind-dynamic hufunga anwani binafsi na hushughulikia pale tun0 inapoonekana baadaye, jambo ambalo ni muhimu kwenye mwenyeji ambapo huduma ya VPN huanza upya. Kuorodhesha loopback huweka zana za ndani zikifanya kazi bila kuongeza msikilizaji wa umma. no-resolv huzuia daemon kurithi mikondo ya juu kutoka usanidi wa msuluhishi wa mwenyeji, na no-hosts huzuia nakala hii kuchapisha faili ya hosts ya lango. Hakuna moja ya chaguo hizo inayompa mtu ruhusa ya kuuliza huduma.
Angalia kama kuna msikilizaji uliopo tayari kwenye bandari 53 kabla ya kuanzisha daemon ya pili, na tumia mmiliki wa usanidi wa usambazaji badala ya faili iliyopotea kwenye folda isiyofaa.
Ruhusu pembejeo ya DNS, si upitishaji wa handaki
Kanuni za firewall zinazofanya hii kufanya kazi ni kanuni za pembejeo za ndani zilizowekewa mipaka kwa kiolesura cha handaki, kundi la wateja, anwani ya lango na bandari 53. Kanuni mbili, moja kwa kila itifaki, zinatosha:
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 huenda kupitia TCP na UDP, kwa hiyo kanuni ya UDP pekee huacha majibu makubwa yakishindikana kwa namna inayoonekana ya vipindi. Hizi si ufw route ruhusa, na hazipaswi kuwa ruhusa pana kwenye tun0. Mpangilio ni muhimu kama maudhui: kanuni ya awali inayotupa pembejeo zote kutoka tun0 bado inashinda, na kuongeza ruhusa chini ya utupaji wa mwisho hakuundi kitu.
Kama DNS ya lango sasa ni sehemu ya muundo, pitia sera hiyo ya awali kwa makusudi na uandike kwa nini.
Nusu ya mkondo wa juu ni njia tofauti
Maulizo huondoka kwenye lango kutoka anwani yake mwenyewe kuelekea msuluhishi wa mkondo wa juu, kwa hiyo njia ya lango na sera ya kutoka kwa msuluhishi huyo lazima ziruhusu mabadilishano. Hii ni kanuni tofauti na ile inayowaruhusu wateja kufikia msikilizaji, na inashindikana kwa dalili tofauti.
Usiongeze utokeaji wa handaki usio na kikomo ili majibu yafanye kazi; majibu yanayofuatiliwa hayahitaji hilo.
Sukuma chaguo, kisha angalia uwasilishaji
Seva inaweza kutangaza msuluhishi kwa wateja kwa chaguo lililosukumwa. Hilo ni chaguo, si agizo ambalo mfumo wa uendeshaji lazima ulitii:
push "dhcp-option DNS 10.90.0.1"
Mteja wa Linux wa mstari wa amri anaweza kuhitaji muunganisho wa msuluhishi wa msimamizi wake wa miunganisho, na kifaa kinachosimamiwa kinaweza kuhitaji wasifu wa usimamizi uliosasishwa. Baada ya kuunganisha, thibitisha msuluhishi hai kwenye mteja badala ya kudhani kwamba usukumi ulitumika. Wakati mbinu mbili zinajaribu kuweka DNS kwa wakati mmoja, unapata kinyang'anyiro kinachoonekana kama utatuzi unaobadilikabadilika.
Lengo ni mmiliki mmoja wa usanidi wa msuluhishi wa mteja, na usukumi kwa kawaida ni mmiliki huyo pale tu jukwaa la mteja linapokubali.
Jaribu kile ulichojenga kwa kweli
Uliza jina moja la faragha lenye sifa kamili na jina moja la nje linaloruhusiwa moja kwa moja dhidi ya anwani ya handaki, kwa UDP na TCP. Kisha rudia kupitia njia ya kawaida ya utafutaji ya programu.
Kama maulizo ya moja kwa moja yanafanya kazi na programu bado inashindikana, hitilafu iko kwenye uwasilishaji na si kwenye seva:
- Mteja hakuwahi kutumia chaguo lililosukumwa.
- Msuluhishi mwingine uliwekwa baadaye na ukashinda kinyang'anyiro.
- Programu hutumia maktaba yake ya msuluhishi au jibu lililohifadhiwa.
Maliza kwa kuthibitisha kwamba chanzo kilicho nje ya njia ya VPN iliyoidhinishwa hakiwezi kutumia msikilizaji kabisa. Utatuzi uliofanikiwa hauidhinishi anwani iliyorejeshwa, kwa hiyo tenga maswali hayo mawili.