Àwọn ìṣòro orúkọ méjì ń farahàn ní fẹ́rẹ̀ẹ́ gbogbo ẹnubodè OpenVPN kékeré. O kò lè dé ọ̀dọ̀ kọ̀mpútà gbé-ẹrù tí ó so pọ̀ nípasẹ̀ orúkọ tí ó wà lórí ẹ̀rí rẹ̀, àwọn iṣẹ́ tí ó wà lẹ́yìn ihò náà kò sì ní orúkọ rárá. Wọ́n dà bí ìṣòro kan ṣùgbọ́n wọ́n nílò ìtọ́jú òdìkejì, nítorí àdírẹ́sì kan ń lọ pẹ̀lú gbogbo ìpàdé tí èkejì kò lọ. Pinnu irú orúkọ tí o ń fi kún ṣáájú kí o tó ṣàtúnṣe ohunkóhun.

Pinnu fún orúkọ kọ̀ọ̀kan, kì í ṣe fún ẹnubodè

Ìdánwò náà rọrùn: ṣé àdírẹ́sì yìí ń yí padà nígbà tí alábàákẹ́gbẹ́ bá tún so pọ̀? Bí bẹ́ẹ̀ ni, orúkọ náà gbọ́dọ̀ wá láti inú ìpàdé VPN. Bí kò bá rí bẹ́ẹ̀, ó wà nínú àkọsílẹ̀ àìyẹsẹ̀ tí o lè kà tí o sì lè ṣàyẹ̀wò.

Name kindSource of truthWhere it lives
Connected clientThe address OpenVPN just assignedGenerated hosts file, rewritten per session
Service behind the tunnelA fixed address you choseStatic address= drop-in
Anything with a certificate nameThe certificate, not the poolEither, but the name must match the certificate

Dídà wọ́n pọ̀ ni ìkùnà tí ó wọ́pọ̀. Iṣẹ́ tí a so mọ́ inú fáìlì tí a ṣẹ̀dá yóò pàdánù nígbà àkọ́kọ́ tí skírípítì bá tún kọ ọ́, alábàákẹ́gbẹ́ tí a kọ sínú àkọsílẹ̀ àìyẹsẹ̀ yóò sì tọ́ka sí ẹni tí ó kẹ́yìn gbà àdírẹ́sì yẹn. Àwọn àṣìṣe méjèèjì kò farahàn títí orúkọ yóò fi yanjú sí ẹ̀rọ tí kò tọ́. Nígbà yẹn ẹni tí ń ṣàtúnṣe rò pé DNS ti bàjẹ́, kì í ṣe fáìlì.

Ọ̀nà alágbèéká: learn-address àti adágún

OpenVPN mọ ìpín náà, nítorí náà jẹ́ kí ó sọ fún ọ. Àwọn àṣàyàn sáfà wọ̀nyí jẹ́ kí ìpín náà dúró ṣinṣin àti pé a lè kọ skírípítì fún un:

client-config-dir /etc/openvpn/ccd
ifconfig-pool-persist /etc/openvpn/ip-pool 60
script-security 2
learn-address /etc/openvpn/learn-address.sh

learn-address ń ṣiṣẹ́ skírípítì rẹ nígbàkigbà tí a bá fi àdírẹ́sì kún, tún un ṣe tàbí paarẹ̀, yóò sì gbé iṣẹ́ náà, àdírẹ́sì náà àti orúkọ àpapọ̀ lọ. Skírípítì kéré jùlọ yóò fi ìlà kan kún fún alábàákẹ́gbẹ́ kọ̀ọ̀kan yóò sì yọ ọ́ kúrò nígbà pípaarẹ̀:

#!/bin/sh
HOSTS=/etc/openvpn/hosts.lan
case "$1" in
  add|update) echo "$2 $3" >> "$HOSTS" ;;
  delete)     sed -i "/^$2 /d" "$HOSTS" ;;
esac
kill -HUP $(cat /var/run/dnsmasq.pid)

Lórí ẹ̀rọ tun, àríyànjiyàn kejì ni àdírẹ́sì ihò alábàákẹ́gbẹ́, nítorí náà a lè lò ìlà náà ní tààràtà. Lórí ẹ̀rọ tap, OpenVPN ń gbé àdírẹ́sì MAC alábàákẹ́gbẹ́ lọ dípò rẹ̀, nítorí pé ẹ̀ka tap lè gbé àwọn ìlànà mìíràn yàtọ̀ sí IPv4, nígbà yẹn ìwọ gbọ́dọ̀ wá àdírẹ́sì náà nínú fáìlì adágún pẹ̀lú orúkọ àpapọ̀ ṣáájú kí o tó kọ ohunkóhun.

Jẹ́ kí ó ṣe kedere ohun tí fáìlì tí a ṣẹ̀dá jẹ́: àwòrán ẹni tí ó so pọ̀ báyìí. Àwọn orúkọ ń pàdánù nígbà ìgé pọ̀, èyí sì ni ohun tí o fẹ́ fún àwọn kọ̀mpútà gbé-ẹrù tí ń lọ láàrín àwọn nẹ́tíwọ́kì àti ohun tí o kò fẹ́ fún sáfà tí ó wà ní ṣíṣí gbogbo òru.

Ọ̀nà àìyẹsẹ̀: address= àti ìmúgbòòrò ìkápá

Tọ́ dnsmasq sí fáìlì tí a ṣẹ̀dá dípò fáìlì hosts ti ẹ̀rọ náà, kí o sì fún un ní ìkápá kan kí àwọn orúkọ kúkúrú lè gbòòrò sí àwọn orúkọ tí ó tóótun pátápátá:

domain=corp.example
no-hosts
addn-hosts=/etc/openvpn/hosts.lan
listen-address=127.0.0.1,10.8.0.1
bind-interfaces

Nígbà tí domain bá wà, ìlà kan bí 10.8.0.6 alice yóò dáhùn fún alice àti alice.corp.example pẹ̀lú. Pa listen-address mọ́ sí ẹnubodè ihò àti loopback nìkan, nítorí aláyẹ̀wò tí a tẹ̀ jáde ní àṣìṣe lórí ojú-ọ̀nà LAN jẹ́ iṣẹ́ tí o kò ní lọ́kàn láti pèsè.

Àwọn iṣẹ́ tí kò tíì wá láti inú adágún rí gba àwọn àkọsílẹ̀ tiwọn. Fi wọ́n sínú fáìlì drop-in ọ̀tọ̀ nínú àpò ìṣètò ti ìpín náà kí ìmúdójúìwọ̀n àpò kò lè pa wọ́n rẹ́:

address=/files.corp.example/10.8.0.20
address=/db.corp.example/10.9.0.5

Fi aláyẹ̀wò náà lọ́wọ́ tàbí kò ní sí ohunkóhun

Aláyẹ̀wò tí ẹnikẹ́ni kò béèrè kò yí ohunkóhun padà. Sáfà náà gbọ́dọ̀ kéde rẹ̀:

push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"

Àwọn alábàákẹ́gbẹ́ Windows ń fi àwọn àṣàyàn méjèèjì sílò fúnra wọn. Ọ̀pọ̀ jùlọ alábàákẹ́gbẹ́ Linux kò ṣe bẹ́ẹ̀: wọ́n nílò ìsopọ̀ aláyẹ̀wò tí a ṣètìlẹ́yìn fún bí ìkọ̀kọ̀ update-resolv-conf ti ìpín náà tàbí ìṣàkóso DNS ti NetworkManager, tàbí ìkápá ìwá àti olùpèsè orúkọ tí a fi ọwọ́ ṣètò. Ṣàyẹ̀wò aláyẹ̀wò gidi ti alábàákẹ́gbẹ́ dípò kí o rò pé a ti pa push mọ́, nítorí push tí a kò kà sí dà bí sáfà tí kò dáhùn.

Ṣàyẹ̀wò ní ìpele mẹ́ta

Béèrè lọ́wọ́ sáfà náà ní tààràtà lákọ́kọ́, lẹ́yìn náà lọ́wọ́ alábàákẹ́gbẹ́ kan, lẹ́yìn náà lọ́wọ́ ohun èlò náà:

dig +short @10.8.0.1 alice.corp.example
getent hosts files.corp.example

Bí àwọn ìbéèrè tààrà bá dáhùn tí ohun èlò kò dáhùn, ẹ̀bi wà ní ìfàṣẹ́ sí alábàákẹ́gbẹ́ kì í ṣe ní ẹkùn náà. Bí orúkọ bá yanjú tí ìsopọ̀ ṣì kùnà, orúkọ náà dára, ohun tí ó kàn ní láti wò ni ọ̀nà tàbí ògiri iná.

Kọ àwọn ẹ̀ka méjèèjì lẹ́gbẹ̀ẹ́ ìṣètò náà: àwọn orúkọ wo ni a ń ṣẹ̀dá, èwo ni a so mọ́, àti ẹ̀rí wo ni ọ̀kọ̀ọ̀kan gbọ́dọ̀ bá mu. Ẹni tí ó kàn yóò fi sáfà kún yóò ṣàdàkọ àpẹẹrẹ àkọ́kọ́ tí ó bá rí.

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