pfSense bilang VPN server at client: dalawang landas, isang router
Isang papasok na serbisyo at isang palabas na tunnel ay maaaring maghati sa isang aparato. Tatlong kundisyon ang nagtatakda kung mananatiling hiwalay ang kanilang ruta, pagsasalin at mga pagkabigo.
Isang aparato ang makakaharap sa dalawang direksyon nang sabay: ang mga gumagalaang gumagamit ay kumokonekta papasok, at ang parehong kahon ay kumokonekta palabas sa isang tagapagbigay ng labasan upang ang piniling trapiko ay lumabas sa ibang network. Ang pagpapagana ng dalawang serbisyo ay tumatagal ng minuto; ang pagpapasabay sa kanila ay nangangailangan ng disenyo, dahil ang ikalawang tungkulin ay nagsusulat muli ng talahanayan ng ruta na pinagtitiwalaan ng una. Tatlong kundisyon ang nagtatakda kung gumagana ang kaayusan, katulad ng kung pinapanatili ng papasok na serbisyo ang sarili nitong daan ng pagbabalik, kung naaabot pa ng palabas na tunnel ang kapares nito, at kung ang trapikong nais mong ipasa ay pinipili para sa labasan. Isang pagkakamali at makakakuha ka ng dalawang tunnel na parehong nag-uulat ng konektado habang walang kapaki-pakinabang na tumatawid sa pagitan nila. Ang mga pagsusuri sa ibaba ay nagtatatag ng bawat kundisyon sa pagkakasunod-sunod kung saan karaniwang lumilitaw ang mga pagkabigo.
Pangalanan ang dalawang tungkulin bago hawakan ang anumang setting
Isulat ang apat na katotohanan para sa bawat instansya: ang malayong kapares nito, ang materyal ng pagpapatunay, ang pool ng address na ipinamimigay nito, at ang mga network sa likod nito. Ang dalawang instansya ay magkahiwalay na bagay sa aparato at dapat ding manatiling magkahiwalay sa iyong mga tala. Halos lahat ng nakalilitong sintomas sa hinaharap ay nagmumula sa paghahalo ng kanilang mga halaga, at ang dalawang instansyang nagbabahagi ng isang set ng tala ay ang paraan kung paano napupunta ang maling pool sa maling field.
Ang papasok na serbisyo ay nangangailangan ng network ng tunnel na hindi nagsasapawan sa mga address ng palabas na tunnel o sa anumang pribadong network na irinuruta ng aparato. Ang pagsasapawan ang tanging pagkakamaling gumagawa ng sintomas sa parehong tungkulin nang sabay, at mas mura itong mahuli sa papel. Ihambing ang dalawang pool at bawat irinurutang pribadong network sa isang lugar bago i-configure ang alinman sa mga serbisyo.
Ang pinagsasaluhang hardware ay hindi nangangahulugang pinagsasaluhang kredensyal, at ang sertipiko ng client mula sa pool ng malayuang pag-access ay hindi dapat magamit laban sa tagapagbigay ng labasan. Ang hiwalay na materyal ay ginagawang lokal na desisyon din ang pagpapawalang-bisa sa halip na pangyayari para sa buong fleet.
Panatilihin ang mga sagot ng server sa daan ng WAN
Ang mga sagot na likha mismo ng aparato ang unang biktima ng pabayang default na ruta. Kapag dumating ang nakabalot na pakete ng gumagalaang gumagamit, ang sagot ay trapikong nagmula nang lokal at kailangang lumabas sa interface kung saan pumasok ang gumagamit na iyon. Kung ang palabas na client ay naglagay ng default na rutang humuhuli nito, papasok ang sagot sa maling tunnel at matitigil ang sesyon habang mukhang malusog pa ang serbisyo.
Walang isang kahon ng tsek na makapagpapasya nito, dahil ang desisyon ay tungkol sa kung aling trapiko ang maaaring hulihin ng palabas na client. Alinman sa hindi ka maghila ng anumang ruta at itutok lamang ang pinili mo, o humila ka ng mga ruta at magdagdag ng mga eksepsyon na nagpapanatili sa mga sariling serbisyo ng aparato. Isulat ang pinili sa tabi ng instansya, kung hindi ay ipagpapalagay ng susunod na tao ang isa pa.
netstat -rn | head -20
pfctl -sr | grep -i vpn
ifconfig | grep -A3 ovpn
Basahin ang talahanayan ng ruta sa pinakamahabang tugma at hindi sa pagkakasunod-sunod na ginawa mo ang anuman. Ang tanong ay aling entry ang nananalo para sa address ng kapares ng labasan at aling entry ang nananalo para sa sagot ng papasok na serbisyo, at ang dalawang sagot na iyon ay maaaring magkaiba.
Huwag hayaang kainin ng palabas na tunnel ang sarili nitong dulo
Ang palabas na client ay kailangang maabot ang pampublikong address ng kapares nito upang maitayo ang tunnel. Kung ang address na iyon mismo ay irinuruta papasok sa tunnel, hinahabol ng client ang sarili nitong buntot: hindi kailanman tumataas ang transportasyon, o tumataas at bumabagsak sa sandaling mailagay ang ruta. Ang log ay mukhang pagkaubos ng oras ng pagpapatunay at hindi depekto ng ruta, kaya ang ruta ang dapat unang suriin.
Suriin ang ruta bago ang kredensyal at muli pagkatapos tumaas ang tunnel, dahil ang isang entry ay maaaring tama sa pag-boot at mali pagkalipas ng isang minuto. Ang address ng kapares ay dapat tumuro sa karaniwang daan ng WAN, hindi kailanman sa aparato ng tunnel. Kapag naging matatag ang transportasyon, lumilipat ang kawili-wiling tanong sa ipinasa na trapiko, at iyon ang susunod na desisyon.
netstat -rn | grep -F '198.51.100.10'
traceroute -n 198.51.100.10
Piliin kung aling mga gumagamit ang makakakuha ng labasan
Ang patakaran ng pinagmulan ay kabilang sa pasukan kung saan pumapasok ang trapiko sa aparato, kaya piliin ang pool ng malayuang pag-access, o mas makitid na pagkakakilanlan sa loob nito. Pangalagaan ang mga pribadong destinasyon at eksepsyon sa pamamahala na hindi dapat kailanman ipadala sa labasan, at ilagay ang mga patakarang iyon bago ang malawak. Ang daan ng labasan ay nangangailangan ng sarili nitong pagsasalin o isang irinurutang kaayusan ng pagbabalik, na sa karamihan ng disenyo ay nangangahulugang palabas na NAT sa interface ng labasan na sumasakop sa pool. Ang pagsasalin ay hindi pumipili ng labasan; sinusulat lang nito muli ang umalis na, kaya ang patakaran ng NAT sa isang walang kaugnayang WAN ay walang binabago sa pagpili.
Kumpirmahin na pinapayagan ng malayong dulo ang ipinasang trapiko mula sa disenyong ito, dahil may mga tagapagbigay na pumapayag at may hindi. Ang pagkakaiba ay lumilitaw bilang tunnel na kumokonekta at walang dinadala, na madaling mabasa bilang lokal na depekto. Subukan ang tatlong daloy nang hiwalay, dahil nabigo sila nang nakapag-iisa, at dalawa sa tatlo ay kalahating itinayong disenyo.
openvpn --config user07.ovpn
curl -sS https://ifconfig.me
curl --interface 10.10.10.1 -sS https://intranet.corp.example/health
Ang unang utos ay ang panlabas na koneksyon ng gumagalaang gumagamit, at gumagana ito kapag iniulat ng client na tapos na ang pagkakasunod-sunod ng pagsisimula. Ang pangalawa, na pinapatakbo mula sa konektadong laptop na iyon, ay dapat mag-ulat ng address ng tagapagbigay ng labasan sa halip na ang iyong address ng WAN. Ang pangatlo ay tumatakbo sa aparato na nakatali sa isang address mula sa pool, at sinusubukan nito ang patakaran ng pinagmulan para sa ipinasang trapiko nang walang pagsasangkot sa isang malayong gumagamit. Kung sumasagot ito mula sa WAN sa halip, hindi tumugma ang patakaran, at walang dami ng pag-edit ng NAT ang makapag-aayos ng problema sa pagpili.
Magpasya kung ano ang mangyayari kapag nabigo ang labasan
Isulat ang pag-uugali sa pagkabigo bago ito mangyari: kapag bumagsak ang palabas na tunnel, bumabalik ba ang mga gumagamit sa karaniwang WAN o hinaharangan sila hanggang bumalik ang labasan? Parehong depensable ang dalawang sagot, at hindi pipili ang aparato para sa iyo. Ang tinanggal na ruta o patakarang tumuturo sa patay na gateway ay hindi awtomatikong gumagawa ng ganap na naka-block na resulta. Kung gusto mo ng pagharang, dapat sabihin ito ng patakaran nang malinaw, at dapat subukan sa pamamagitan ng pag-alis ng labasan at hindi sa pag-iisip tungkol dito. Kung gusto mo ng pagbalik, ipaalam ito sa mga gumagamit, dahil ang trapikong tahimik na kumukuha ng karaniwang daan ay siya mismong trapikong inakala ng isang tao na sakop.
I-disable ang instansya ng client, tingnan kung ano pa ang naaabot ng konektadong gumagamit, pagkatapos ay simulan itong muli. Ang kahilingang nag-expire ang siyang ganap na naka-block na resulta na hiniling mo; ang sumasagot gamit ang address ng WAN ay ang pagbalik na hindi mo naidokumento. Ulitin ang pagsusuri para sa IPv6 at sa DNS, dahil ang patakarang isinulat para sa IPv4 ay walang sinasabi tungkol sa trapikong AAAA at ang resolver na itinulak ng alinmang tunnel ay sumasagot mula sa lugar kung saan talaga lumalabas ang query.
pfSsh.php playback svc stop openvpn client 2
curl --max-time 6 -sS https://ifconfig.me
pfSsh.php playback svc start openvpn client 2
Ang recipe ng Netgate para sa irinurutang OpenVPN ay nagpapakita kung paano nagtutugma ang patakaran ng pinagmulan, pagtatalaga ng interface at pagsasalin ng labasan, at ang saklaw nito mula sa site hanggang site ang bahaging hindi dapat kopyahin nang buo. Ang hindi nito sasabihin sa iyo ay kung alin sa tatlong kundisyon sa itaas ang nabali na ng iyong sariling disenyo.