DNS wedi'i wthio gan OpenVPN yn cael ei anwybyddu: pa gydran sy'n ei gymhwyso
Dim ond fel newidyn amgylchedd y mae opsiwn DNS wedi'i wthio yn cyrraedd y cleient. Gwiriwch pwy sy'n berchen ar ddatrys enwau ar Linux, Windows a macOS, yna profwch y llwybr.
Mae'r log yn dangos yr opsiwn a wthiwyd gan y gweinydd, mae'r twmnel i fyny, ac mae enwau mewnol yn dal i fethu. Mae ymholiad uniongyrchol i'r datryswr yn ateb, felly mae'r gweinydd yn iawn, ond mae pob rhaglen yn parhau i ofyn i'r llwybrydd lleol. Yr hyn a gyrhaeddodd y cleient yw cynnig, nid newid yn y datryswr, ac mae'r gydran sy'n berchen ar ddatrys enwau yn wahanol ar Linux, Windows a macOS. Unwaith y byddwch yn gwahanu'r opsiwn oddi wrth ei berchennog, mae pedwar diffyg yn cwmpasu bron pob adroddiad: dim bachyn, dau fachyn yn cystadlu, DNS hollt yn gweithio fel y'i cynlluniwyd, neu enw byr sydd angen ôl-ddodiad yn hytrach na gweinydd.
Mae opsiwn wedi'i wthio yn gynnig, nid gosodiad
Ar y gweinydd, mae dau gyfarwyddyd yn disgrifio bwriad, nid effaith:
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"
Nid yw'r cleient yn cael datryswr wedi'i ffurfweddu. Mae'n cael newidynnau amgylchedd, foreign_option_1 ac ymlaen, un ar gyfer pob llinell a wthiwyd, ac mae'n rhaid i rywbeth lleol eu darllen a throsysgrifennu cyflwr datryswr y system weithredu. Ar Linux nid oes unrhyw beth yn gwneud hynny yn y rhagosodiad, a dyna pam y gall gweinydd cywir a chleient cysylltiedig ddatrys drwy'r LAN o hyd.
Mae tri cham rhwng y ddau ben: rhaid i'r push deithio, rhaid i'r cleient ei ddangos, a rhaid i fachyn ei gymhwyso. Darllenwch y cam canol yn log y cleient a'r cam olaf yng nghyflwr y datryswr, byth y ffordd arall, oherwydd dim ond y ddau gyntaf y mae llinell log yn eu profi.
Cadarnhewch fod y push wedi cyrraedd a chanfod y perchennog
Dechreuwch drwy enwi'r lansiwr: gorchymyn openvpn noeth, achos systemd, NetworkManager neu gleient gwerthwr. Mae hynny'n penderfynu ble y gall bachyn fyw. Ar westeiwr gyda systemd-resolved, resolvectl status mae'n rhestr bob dolen gyda'r gweinyddwyr DNS a'r parthau chwilio y mae'n eu defnyddio mewn gwirionedd, ac nid yw dolen y twmnel bob amser o'r enw tun0.
Os yw'r cyfeiriad a wthiwyd yn ymddangos yn y log ond nid ar unrhyw ddolen, mae'r integreiddiad ar goll. Os yw'n ymddangos ar y ddolen ac mae ymholiadau'n dal i adael yn rhywle arall, y broblem yw pa ymholiadau sy'n dewis y ddolen honno. Mae NetworkManager dns=dnsmasq yn y ffeil /etc/NetworkManager/NetworkManager.conf yn rhedeg anfonwr ymlaen lleol sy'n cymhwyso DNS hollt yn fwriadol: mae enwau y tu mewn i barth VPN yn mynd i ddatryswr VPN, ac mae popeth arall yn cadw ei lwybr blaenorol. Mae'r ymddygiad hwnnw'n edrych fel diffyg pan oeddech yn disgwyl i'r holl draffig symud; adolygwch y gosodiadau fesul cysylltiad gyda nmcli connection show "My VPN", lle ipv4.dns a ipv4.dns-search sy'n dal y gwerthoedd y tu ôl i'r hyn y mae'r ddyfais yn ei adrodd, cyn ei alw'n doredig. Os dylai pob ymholiad gyrraedd datryswr VPN mewn gwirionedd, tynnwch dns=dnsmasq o NetworkManager.conf ac ailgychwynnwch NetworkManager, sy'n dychwelyd datrys enwau i osodiadau'r cysylltiad; fel arall cadwch DNS hollt a chywirwch y rhestr parthau a wthiwyd.
Linux: trosglwyddwch yr opsiynau i'r datryswr
Mae pecynnau dosbarthiad yn cludo bachyn ar gyfer hyn, ac mae'n rhaid caniatáu i'r cleient ei redeg. Trefniant nodweddiadol ar westeiwr heb systemd-resolved:
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf
Gyda systemd-resolved, efallai na fydd yr hen sgript resolv.conf yn newid dim sy'n bwysig, oherwydd mae'r datryswr stub yn cadw cyflwr fesul dolen. update-systemd-resolved mae'r cynorthwyydd yn dogfennu ffurf fachyn sy'n defnyddio up-restart a down-pre, sy'n bwysig pan fydd rhyngwyneb yn goroesi un ymgais gysylltu. Beth bynnag a ddewiswch, rhaid i un gydran berchen ar y cyflwr. Mae ychwanegu bachyn digyswllt wrth ymyl NetworkManager yn rhoi dau ysgrifennwr i'r un ddolen, ac yna mae'r canlyniad yn dibynnu ar drefn yn hytrach nag ar eich ffurfweddiad.
Mae achos hefyd lle'r oedd NetworkManager yn anwybyddu'r opsiwn a wthiwyd yn gyfan gwbl nes i gyfeiriad y gweinydd gael ei roi yng ngosodiadau IPv4 y cysylltiad, ac wedyn dangosodd cyflwr y datryswr ei fod yn cael ei ddefnyddio. Mae'n werth ei brofi cyn ailysgrifennu sgriptiau, oherwydd mae'n symud y broblem o fachyn plisgyn i broffil y cysylltiad sydd eisoes yn cario'r twmnel.
Mae Windows a macOS yn cymhwyso rhannau gwahanol
Mae cleient Windows yn gosod gweinyddwyr DNS yr addasydd VPN, ond mae Windows yn dal i ddewis rhyngwyneb yn ôl metrig ac yn dal i fod angen ôl-ddodiad i ehangu enw byr. Cadarnhewch gyflwr yr addasydd yn hytrach na'r proffil:
Get-DnsClientServerAddress -InterfaceAlias "My VPN"
Get-DnsClientNrptPolicy
Os yw'r cyfeiriad ar goll, gosodwch ef gyda Set-DnsClientServerAddress -InterfaceAlias "My VPN" -ServerAddresses 10.8.0.1, yna ychwanegwch yr ôl-ddodiad at briodweddau IPv4 yr addasydd fel bod fileserver yn dod yn fileserver.corp.example. Mae gwerth SearchList ledled y peiriant o dan Tcpip\Parameters yn gwneud yr un peth. Lle mae'r enw hir yn datrys a'r un noeth yn methu, mae'r datryswr eisoes yn gywir a'r rhestr chwilio sydd ar fai. Y gwelliannau, mewn trefn: gwthiwch DOMAIN fel bod y cleient yn dysgu'r ôl-ddodiad, ychwanegwch yr ôl-ddodiad hwnnw at restr chwilio'r addasydd neu'r cysylltiad, ac fel mesur dros dro pinwch yr enw yn hosts, neu LMHOSTS ar Windows; nid yw pori NetBIOS yn croesi llwybrydd, felly nid yw'r darllediad sy'n canfod enw byr ar LAN y swyddfa byth yn cyrraedd cleient twmnel.
block-outside-dns Mae block-outside-dns yn ymddygiad cleient Windows, nid yn llinell broffil gludadwy, ac nid yw ei gopïo i broffil Linux neu macOS yn ei atgynhyrchu yno. Os yw enwau cyhoeddus yn gweithio ac enwau mewnol yn methu ar Windows, cymharwch drefn yr addaswyr o dan y gosodiadau uwch gyda ipconfig /all. Ar macOS mae trefn datryswyr fesul gwasanaeth yn perthyn i'r system, felly defnyddiwch scutil --dns i weld pa ddatryswr a ymgynghorir ar gyfer pa barth, a thriniwch unrhyw welliant proffil unigol a adroddir fel un sy'n dibynnu ar y cleient yn hytrach nag yn gyffredinol.
Nid yw peiriant rhithwir ar yr un gliniadur yn etifeddu dim o hyn. Rhowch gofnod datryswr ei hun i'r gwest ar gyfer y parth mewnol, neu gadewch i NAT yr hypervisor anfon ei ymholiadau drwy'r gwesteiwr, sy'n gywir yn unig tra bo twmnel y gwesteiwr i fyny.
Hanes yw'r trydydd achos. Gall gweinyddwyr DNS neu osodiadau ôl-ddodiad o broffil cynharach oroesi ailgysylltu, felly pan fydd yr addasydd yn edrych yn gywir ac mae chwiliadau'n dal i fethu, cymharwch yr addasydd byw gyda Get-VpnConnection ac cliriwch neu throsysgrifennwch y cofnod segur cyn i chi gyffwrdd â'r gweinydd.
Profwch i ble'r aeth yr ymholiad
Mae cipiad yn ystod un chwiliad yn setlo'r ddadl: tcpdump -ni eth0 port 53 yn dangos ymholiadau ar y rhyngwyneb ffisegol, sy'n golygu eu bod yn gadael y tu allan i'r twmnel ac na chafodd y datryswr ei newid erioed. dig @10.8.0.1 name.corp.example wedyn yn gwahanu'r ddau achos sy'n weddill. Os yw'r ymholiad uniongyrchol yn ateb, mae'r datryswr yn gweithio ac nid yw'r cleient yn ei ddefnyddio; os yw'n goramser, mae'r datryswr yn anghyrraeddadwy drwy'r twmnel ac ni fydd unrhyw newid lleol yn helpu.
Os mai'r datryswr sy'n cael ei ddefnyddio o hyd yw'r un a roddwyd gan y darparwr, mae'r twmnel yn amgryptio'r traffig tra bod yr enwau yn parhau i fod yn weladwy i'r darparwr hwnnw. Cwestiwn gollwng yw hwn yn hytrach nag un gweithredol, ac mae'r un cipiad yn ei ateb: mae ymholiad ar y rhyngwyneb ffisegol yn mynd at rywun y tu allan i'r twmnel.
Mae cyrraeddadwyedd yn cynnwys y wal dân ar westeiwr VPN, sy'n rhaid iddi ganiatáu UDP a TCP 53 o'r pwll. Mae porth wedi'i rwystro yn edrych yn union fel push toredig, ac felly hefyd ddatryswr sy'n ateb dim ond o du mewn rhwydwaith y twmnel. Ailadroddwch y cipiad ar ôl datgysylltu ac ailgysylltu unwaith, oherwydd mae gosodiadau sy'n ymddangos ar y cysylltiad cyntaf ac yn diflannu ar yr ail yn ddiffyg cylch bywyd yn y bachyn, nid yn opsiwn ar goll.
Cadwch un perchennog a gwiriwch mewn trefn
Mae sgript sy'n trosysgrifennu DNS yr addasydd ar sail cyflwr twmnel a dybiwyd yn dyblygu ffurfweddiad sydd eisoes gan y proffil, ac mae'n methu'n dawel y tro cyntaf y bydd y dyfaliad yn anghywir. Dewiswch osodiadau DNS y cysylltiad ei hun neu un bachyn wedi'i ddogfennu, a chofnodwch pa un a ddewisoch fel na fydd y person nesaf yn ychwanegu ail.
Caewch y ddolen gyda phedwar gwiriad: y cyfeiriad a wthiwyd yn bresennol ar ddolen y twmnel, yr enw mewnol yn datrys fel enw llawn gymwys, yr un enw yn datrys heb yr ôl-ddodiad, a'r ddau yn parhau'n wir ar ôl un ailgysylltiad. Mae un cipiad yn dweud wrthych pa un o'r pedwar a fethodd. Llawlyfr OpenVPN 2.6 yn rhestru dhcp-option a chyfarwyddiadau sgript gyda'u nodiadau platfform.