SNAT, DNAT a Masquerade: beth mae pob rheol NAT VPN yn ei wneud
Mae NAT ffynhonnell yn ailysgrifennu o ble mae llif yn ymddangos ei fod yn dod; mae NAT cyrchfan yn ailysgrifennu i ble mae’n mynd. Masquerade yw NAT ffynhonnell ag adres fenthyc.
Rhowch gip ar ddwy ochr porth VPN a gall un llif ddangos pedair adres wahanol. Mae NAT ffynhonnell yn ailysgrifennu o ble mae pecyn yn honni ei fod yn dod; mae NAT cyrchfan yn ailysgrifennu i ble mae’n mynd. Nid yw Masquerade yn drydydd cyfeiriad, mae’n rheol NAT ffynhonnell sy’n cymryd ei adres o’r rhyngwyneb allan yn lle gwerth sefydlog. Enwch pa un o’r tri sydd ei angen arnoch mewn gwirionedd a bydd y rhan fwyaf o docynnau „mae’r VPN wedi torri” yn troi’n gwestiwn am y llwybr dychwelyd.
Beth mae pob rheol yn ei ailysgrifennu
Mae NAT ffynhonnell, a ysgrifennir fel arfer SNAT, yn newid adres ffynhonnell llif wrth iddo adael llwybrydd neu borth. Mae’r gwasanaeth sy’n derbyn yn ateb yr adres a gyfieithwyd, ac mae’r blwch sy’n cyfieithu yn gwrthdroi’r newid gan ddefnyddio’r cyflwr a gadwodd ar gyfer y cysylltiad hwnnw. Ar Linux mae’r cyflwr hwnnw’n byw yn conntrack, a dyna pam mae conntrack -L yn argraffu’r tiwplau gwreiddiol ac ateb ochr yn ochr.
Mae NAT cyrchfan, DNAT, yn newid y cyrchfan yn lle hynny. Gellir ailysgrifennu pecyn a gyfeiriwyd at adres gyhoeddus ar UDP 51820 i weinydd WireGuard mewnol yn 10.8.0.2:51820. Dyna sut mae llwybrydd cartref neu falansiwr cwmwl yn cyhoeddi gwrandäwr VPN, ac nid yw’n dweud dim am yr hyn y gall y twnnel ei gario wedyn.
Mae Masquerade yn perthyn i deulu SNAT. Nid yw’r rheol yn enwi unrhyw adres; mae’n defnyddio pa bynnag adres sydd gan y rhyngwyneb allan pan fydd y pecyn yn gadael. Mae Linux yn rhoi targed ei hun iddi, a hi yw’r dewis arferol ar ryngwyneb WAN sy’n cael ei adres o DHCP neu PPPoE.
Lle mae’r mapio’n byw sy’n penderfynu’r methiant
Cofnodwch y tiwpl ar bob ffin: cyn y twnnel, y tu mewn iddo, ac ar y rhyngwyneb cyhoeddus. Mae cip y tu mewn i’r twnnel yn wahaniaethol yn gyfreithlon oddi wrth un y tu allan, a bydd pwy bynnag sy’n cymharu’r ddau heb wybod lle mae’r cyfieithu’n digwydd yn hela’r gwesteiwr anghywir.
Rhaid i draffig dychwelyd basio drwy’r ddyfais sy’n dal y mapio. Os bydd yr ateb yn cymryd llwybr arall, ail gyswllt i fyny, llwybr polisi, neu ddarparwr nad yw erioed wedi clywed am eich amrediad preifat, ni fydd y cyfieithu gwrthdro â chyflwr byth yn digwydd a bydd y cleient yn gweld traffig un ffordd. Anaml y mae ychwanegu mwy o NAT ffynhonnell yn trwsio llwybr dychwelyd coll; gall guddio’r symptom ar un llif tra’n torri polisi sy’n seiliedig ar adresau ym mhobman arall.
Y camgymeriad cyffredin arall yw disgwyl i dwnnel greu llwybredd. Mae angen trefniant allan dilys ar gleient preifat y mae ei becynnau’n mynd allan i’r rhyngrwyd: llwybr diofyn, porth sy’n anfon ymlaen, ac fel arfer cyfieithu ffynhonnell i adres gyhoeddus. Nid yw amgryptio ar ei ben ei hun yn gwneud adres breifat yn gyrraeddadwy.
Masquerade neu SNAT penodol
Cymharwch y ddau yn ôl yr hyn maen nhw’n ei addo. Mae Masquerade yn dewis yr adres allan, mae SNAT penodol yn ei hoelio. Ar borth ag adres gyhoeddus sefydlog, mae hoelio’n rhoi un gwerth rhagweladwy i logiau a rhestrau caniatáu partneriaid. Ar gyswllt WAN deinamig, mae adres SNAT wedi’i hoelio yn mynd yn anghywir y funud y bydd y les yn newid, a dyna’n union yr achos y crewyd Masquerade ar ei gyfer.
Mae cwmpas yr un mor bwysig â’r dewis. Mae rheol Masquerade sy’n cyd-fynd â phob pecyn sy’n gadael y porth, heb derfyn ffynhonnell na chyrchfan, hefyd yn cyfieithu traffig roeddech am ei gadw’n gyfan, gan gynnwys traffig i rwydweithiau preifat eraill. Cyfyngwch y rheol i amrediad y cleientiaid, y gyrchfan a fwriadwyd, a’r rhyngwyneb.
IPsec sy’n seiliedig ar bolisi yw lle mae hyn yn brathu galeta. Mae canllaw anfon ymlaen strongSwan yn mynd drwy alluogi anfon IP ymlaen ac ychwanegu rheol SNAT ffynhonnell ar gyfer cleientiaid, ac mae’r un ddogfennaeth yn ymdrin ag eithrio traffig sy’n rhaid cadw ei adres wreiddiol. Cyfieithwch ffynhonnell cyn i’r polisi diogelwch gyd-fynd â hi a gall y twnnel godi tra bo’r traffig yn dal i gael ei ollwng, oherwydd nid yw’r pecyn bellach yn edrych fel y detholydd a drafodwyd.
Penderfynwch hefyd beth ddylai’r pen pell ei weld. Ar ôl cyfieithu mae gwasanaeth yn gweld y porth, nid y cleient unigol. Mae hynny’n symleiddio llwybro dychwelyd ac ar yr un pryd yn gwastatáu logiau ac yn trechu rhestrau caniatáu fesul cleient. Os yw cadw adresau cleientiaid yn bwysig, cynlluniwch lwybr dychwelyd wedi’i lwybro yn lle eu cuddio i wneud i brawf basio.
Darllen y rheolau ar borth Linux
Mae angen porth mynediad o bell â chleientiaid ar 10.8.0.0/24 a rhyngwyneb WAN o’r enw eth0 i alluogi anfon ymlaen, a pholisi hidlo sy’n caniatáu’r llif cyn y gall unrhyw reol NAT helpu. Mae’r fersiwn iptables yn cadw’r ddau gyfeiriad yn y tabl nat:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 51820 \
-j DNAT --to-destination 10.8.0.2:51820
Mae ffurf nftables yn defnyddio’r un dau fachyn gyda rhyngwyneb wedi’i enwi a chadwyn benodol:
nft add rule ip nat postrouting ip saddr 10.8.0.0/24 oifname "eth0" masquerade
nft add rule ip nat prerouting iifname "eth0" udp dport 51820 dnat to 10.8.0.2:51820
Mae’r ddau ddarn yn tybio bod y gadwyn hidlo eisoes yn derbyn y llif a anfonwyd ymlaen. Nid yw NAT yn rheol caniatâd, a gall pecyn a gyfieithwyd yn gywir gael ei ollwng un tabl yn ddiweddarach. Cadarnhewch y mapio byw gyda conntrack -L, cadarnhewch beth sydd wedi’i lwytho gyda nft list ruleset neu iptables-save -t nat, yna cipiwch ar y ddau ryngwyneb i weld yr adres yn newid mewn gwirionedd.
Ffyrdd o fethu sy’n edrych fel rheol wael
Traffig gwallt-pin yw’r clasur. Mae angen DNAT ar y ffordd i mewn a chyfieithu ffynhonnell ar y ffordd allan ar gleient mewnol sy’n cyrraedd gweinydd mewnol drwy adres gyhoeddus y gweinydd, fel arall mae’r gweinydd yn ateb yn syth i’r cleient a gwrthodir yr ateb. Yr ateb yw ail reol, gulach, ar gyfer yr achos mewnol-i-gyhoedd hwnnw, nid rheol Masquerade ehangach ar gyfer popeth.
Cyfieithu dwbl yw’r un tawel. Mae cleient sydd eisoes y tu ôl i NAT gradd cludwr yn cyrraedd eich porth ag adres na allwch ei llwybro’n ôl, felly byddwch yn cyfieithu eto. Mae’n gweithio, ond mae’r logiau nawr yn cario dau naid o gyfeirio preifat ac mae angen y ddau fapiad ar unrhyw ymchwiliad. Mae IPsec sy’n seiliedig ar bolisi yn ychwanegu trydydd tro: cyfieithwch cyn i’r polisi gyd-fynd a chewch SA sydd i fyny heb draffig yn pasio, sy’n darllen fel nam mur tân yn hytrach nag un NAT.
Yna mae’r prawf sy’n pasio a’r defnyddio sy’n methu. Mae rhedeg y gorchymyn NAT â llaw yn profi’r mecanwaith, nid y ffurfweddiad. Mae rheol a ychwanegwyd ar amser rhedeg yn diflannu ar ailgychwyn neu ar y digwyddiad rhyngwyneb nesaf, a gall rheol Masquerade sy’n gysylltiedig â rhyngwyneb sy’n ailrifo newid yn dawel yr adres y mae’r pen pell yn ei gweld. Rhowch y rheol yng nghyfluniad y mur tân sy’n berchen arni ac ailbrofwch ar ôl ailgysylltu.
Rhestr wirio cyn i chi arbed y rheol
Enwch y cyfeiriad yn gyntaf: ffynhonnell, cyrchfan, neu’r ddau. Yna nodwch pwy sydd â rhaid dal y cyflwr — y porth, y llwybrydd uwchlaw neu’r cyfoed IPsec — a chadarnhewch fod y llwybr dychwelyd yn dychwelyd drwyddo. Cyfyngwch y rheol i amrediad y cleientiaid, y gyrchfan a’r rhyngwyneb rydych chi’n eu bwriadu mewn gwirionedd, a phenderfynwch o flaen llaw a ddylai’r pen pell weld y porth neu adres wreiddiol y cleient.
Prowch o gleient, nid o’r porth. Gall porwr ar y porth ei hun osgoi rheol cyfieithu’r cleient yn gyfan gwbl, felly nid yw tudalen sy’n gweithio yno’n profi dim am y twnnel. Anfonwch un cais sy’n deillio o’r cleient, gwyliwch y cyfrifwyr a’r tabl conntrack, ac ailadroddwch ar ôl ailgysylltu’r twnnel a newid adres WAN os yw’r naill neu’r llall yn bosibl lle’r ydych chi’n gweithio.