Żewġ problemi tal-ismijiet jidhru fuq kważi kull gateway OpenVPN żgħir. Ma tistax tilħaq laptop imqabbad bl-isem fuq iċ-ċertifikat tiegħu, u s-servizzi wara l-mina m’għandhom l-ebda isem. Jidhru bħala problema waħda u jeħtieġu trattamenti opposti, għax indirizz wieħed jiċċaqlaq ma’ kull sessjoni u l-ieħor le. Iddeċiedi liema tip ta’ isem qed iżżid qabel ma teditja xejn.

Iddeċiedi għal kull isem, mhux għal kull gateway

It-test huwa sempliċi: dan l-indirizz jinbidel meta klijent jerġa’ jikkonnettja? Jekk iva, l-isem irid jiġi ġġenerat mis-sessjoni VPN. Jekk le, huwa jappartjeni għal entrata statika li tista’ taqra u tirrevedi.

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

It-taħlit tagħhom huwa l-falliment tas-soltu. Servizz iffissat fil-fajl iġġenerat jisparixxi l-ewwel darba li l-iskript jerġa’ jiktbu, u klijent miktub f’entrata statika jindika lil min kellu dak l-indirizz l-aħħar. Iż-żewġ żbalji jibqgħu inviżibbli sakemm isem jiġi riżolt għall-magna ħażina. Sa dakinhar, min qed jiddebja jassumi li d-DNS hija miksura u mhux il-fajl.

It-triq dinamika: learn-address u l-pool

OpenVPN jaf l-assenjazzjoni, mela ħallih jgħidlek. Dawn l-għażliet tas-server jagħmlu l-assenjazzjoni dejjiema u skriptabbli:

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ħaddem l-iskript tiegħek kull darba li indirizz jiżdied, jiġi aġġornat jew jitħassar, u jgħaddi l-operazzjoni, l-indirizz u l-isem komuni. Skript minimu jżid linja waħda għal kull klijent u jneħħiha meta jitħassar:

#!/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)

Fuq apparat tun it-tieni argument huwa l-indirizz tal-mina tal-klijent, għalhekk il-linja tista’ tintuża direttament. Fuq apparat tap OpenVPN jgħaddi minflok l-indirizz MAC tal-klijent, għax segment tap jista’ jġorr protokolli oħra minbarra IPv4, u mbagħad trid tfittex l-indirizz fil-fajl tal-pool bl-isem komuni qabel ma tikteb xejn.

Kun ċar dwar x’inhu l-fajl iġġenerat: istantanea ta’ min huwa mqabbad bħalissa. L-ismijiet jisparixxu meta tinqata’ l-konnessjoni, li huwa eżattament dak li trid għal laptops li jiċċaqilqu bejn netwerks u eżattament dak li ma tridx għal server li jibqa’ mixgħul il-lejl kollu.

It-triq statika: address= u espansjoni tad-dominju

Idderieġi dnsmasq lejn il-fajl iġġenerat minflok il-fajl hosts tas-sistema, u agħtih dominju biex l-ismijiet qosra jespandu f’ismijiet kwalifikati bis-sħiħ:

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

Meta domain huwa stabbilit, linja bħal 10.8.0.6 alice twieġeb għal alice u wkoll għal alice.corp.example. Żomm listen-address fuq il-gateway tal-mina u loopback biss, għax resolver ippubblikat b’inċident fuq l-interface LAN huwa servizz li ma kontx beħsiebkom toffru.

Is-servizzi li qatt ma jiġu mill-pool jieħdu l-entrati tagħhom. Poġġihom fi fajl drop-in separat fid-direttorju tal-konfigurazzjoni tad-distribuzzjoni biex aġġornament tal-pakkett ma jistax jikteb fuqhom:

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

Għaddi r-resolver jew xejn ma jiġri

Resolver li ħadd ma jistaqsih ma jbiddel xejn. Is-server irid iħabbarh:

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

Il-klijenti Windows japplikaw iż-żewġ għażliet huma stess. Il-biċċa l-kbira tal-klijenti Linux le: għandhom bżonn integrazzjoni tar-resolver appoġġata bħall-hook update-resolv-conf tad-distribuzzjoni jew l-immaniġġjar tad-DNS ta’ NetworkManager, jew dominju tat-tiftix u nameserver manwali. Iċċekkja r-resolver attwali tal-klijent minflok ma tassumi li l-push ġie rispettat, għax push injorat jidher eżattament bħal server li mhux qed iwieġeb.

Ivverifika fuq tliet saffi

Staqsi lis-server direttament l-ewwel, imbagħad lil klijent, imbagħad lill-applikazzjoni:

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

Jekk mistoqsijiet diretti jwieġbu u l-applikazzjoni le, il-ħtija hija fil-konsenja lill-klijent u mhux fiż-żona. Jekk l-isem jiġi riżolt u l-konnessjoni xorta tfalli, l-isem huwa tajjeb u l-ħaġa li jmiss li wieħed iħares lejha hija r-rotta jew il-firewall.

Ikteb iż-żewġ kategoriji ħdejn il-konfigurazzjoni: liema ismijiet jiġu ġġenerati, liema huma ffissati u ma’ liema ċertifikat kull wieħed irid jaqbel. Il-persuna li jmiss li żżid server se tikkopja l-ewwel mudell li ssib.

Artikli relatati