OpenVPN-biðlaranaheiti í dnsmasq: skrift eða föst færslur?
Aðsetur biðlara breytast, þjónustuheiti gera það ekki. Búðu til biðlaranaheiti úr VPN-lotunni, festu þjónustuheiti í drop-in skrá og láttu biðlara svo nota hana.
Tvö nafnavandamál koma upp á nánast hverju lítilli OpenVPN-gátt. Þú kemst ekki að tengdri fartölvu með nafninu á skírteini hennar, og þjónusturnar handan göngunnar hafa alls engin nöfn. Þau líta út eins og eitt vandamál og þurfa andstæða meðferð, því annað aðsetrið hreyfist með hverri lotu en hitt ekki. Ákveddu hvers konar nafni þú ert að bæta við áður en þú breytir einhverju.
Ákveddu fyrir hvert nafn, ekki fyrir hverja gátt
Prófið er einfalt: breytist þetta aðsetur þegar biðlari tengist aftur? Ef já verður nafnið að vera búið til úr VPN-lotunni. Ef nei tilheyrir það fastri færslu sem þú getur lesið og farið yfir.
| Name kind | Source of truth | Where it lives |
|---|---|---|
| Connected client | The address OpenVPN just assigned | Generated hosts file, rewritten per session |
| Service behind the tunnel | A fixed address you chose | Static address= drop-in |
| Anything with a certificate name | The certificate, not the pool | Either, but the name must match the certificate |
Að blanda þeim er venjulega mistökin. Þjónusta sem er fest í búnu skránni hverfur í fyrsta skipti sem skriftin skrifar hana aftur, og biðlari sem er skrifaður í fasta færslu bendir á þann sem hafði það aðsetur síðast. Bæði mistökin eru ósýnileg þar til nafn leysist á ranga vél. Þá gerir sá sem kembir ráð fyrir að DNS sé bilað en ekki skráin.
Hin kraftmikla leið: learn-address og laugin
OpenVPN þekkir úthlutunina, svo leyfðu því að segja þér hana. Þessir valkostir þjónsins gera úthlutunina varanlega og skriftanlega:
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 keyrir skriftina þína hvenær sem aðsetri er bætt við, uppfært eða eytt, og sendir aðgerðina, aðsetrið og samheitið. Lágmarksskrift bætir við einni línu fyrir hvern biðlara og fjarlægir hana við eyðingu:
#!/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)
Á tun-tæki er seinna viðfangið gönguaðsetur biðlarans, svo hægt er að nota línuna beint. Á tap-tæki sendir OpenVPN í staðinn MAC-aðsetur biðlarans, því tap-hlutur getur flutt önnur samskiptareglur en IPv4, og þá þarftu að fletta aðsetrinu upp í laugarskránni eftir samheitinu áður en þú skrifar eitthvað.
Vertu skýr um hvað búna skráin er: skyndimynd af því hver er tengdur núna. Nöfn hverfa við aftengingu, sem er einmitt það sem þú vilt fyrir fartölvur sem flytjast milli neta og einmitt það sem þú vilt ekki fyrir þjón sem er í gangi alla nóttina.
Hin fasta leið: address= og lénstækkun
Beindu dnsmasq að búnu skránni í stað hosts-skrár kerfisins, og gefðu henni lén svo stutt nöfn stækki í fullgild nöfn:
domain=corp.example
no-hosts
addn-hosts=/etc/openvpn/hosts.lan
listen-address=127.0.0.1,10.8.0.1
bind-interfaces
Þegar domain er stillt svarar lína eins og 10.8.0.6 alice bæði fyrir alice og alice.corp.example. Hafðu listen-address aðeins á göngugáttinni og loopback, því leysir sem birtur er fyrir slysni á LAN-viðmótinu er þjónusta sem þú ætlaðir þér ekki að bjóða.
Þjónustur sem koma aldrei úr lauginni fá eigin færslur. Settu þær í aðra drop-in skrá í stillingarmöppu dreifingarinnar svo pakkaupfærsla geti ekki skrifað yfir þær:
address=/files.corp.example/10.8.0.20
address=/db.corp.example/10.9.0.5
Afhentu leysinn eða ekkert gerist
Leysir sem enginn spyr breytir engu. Þjónninn verður að auglýsa hann:
push "dhcp-option DNS 10.8.0.1"
push "dhcp-option DOMAIN corp.example"
Windows-biðlarar beita báðum valkostunum sjálfir. Flestir Linux-biðlarar gera það ekki: þeir þurfa studda leysisamþættingu eins og update-resolv-conf krók dreifingarinnar eða DNS-meðferð NetworkManager, eða handvirkt leitar-lén og nafnaþjón. Athugaðu raunverulegan leysi biðlarans í stað þess að gera ráð fyrir að push hafi verið virt, því hunsað push lítur nákvæmlega út eins og þjónn sem svarar ekki.
Staðfestu á þremur lögum
Spurðu þjóninn beint fyrst, svo biðlara, svo forritið:
dig +short @10.8.0.1 alice.corp.example
getent hosts files.corp.example
Ef beinar fyrirspurnir svara og forritið ekki, er gallinn í afhendingunni til biðlarans en ekki í svæðinu. Ef nafnið leysist og tengingin mistekst samt, er nafnið í lagi og næst er að skoða leiðina eða eldvegginn.
Skrifaðu flokkana tvo við hlið stillingarinnar: hvaða nöfn eru búin til, hver eru fest og hvaða skírteini hvert þeirra verður að passa við. Næsta manneskja sem bætir við þjóni mun afrita fyrsta mynstrið sem hún finnur.