Mae giât gyhoeddus eisoes yn rhedeg WireGuard ar UDP 51820, SSH ar 22, ac un rhaglen y mae’n rhaid iddi fod yn hygyrch o’r rhyngrwyd. Mae’r rheol ddeniadol yn anfon pob porthladd at y peer ac yn dweud bod y gwaith wedi’i wneud. Ar giât WireGuard gall y rheol honno ddal trafnidiaeth y twnnel ei hun a’ch cloi allan o’r peiriant sy’n ei therfynu. Penderfyniad llwybro gydag eithriad awyren reoli yw cyhoeddi, nid un llinell DNAT.

Mynediad cyhoeddus, mynediad twnnel: dewiswch un

Mae cyhoeddi gwasanaeth yn creu pwynt mynediad newydd i’r rhyngrwyd. Nid yw’r un peth â rhoi aelodaeth VPN i peer, oherwydd nid yw’r ymwelydd byth yn ymuno â’r twnnel ac mae’r giât yn dod yn wyneb cyhoeddus y backend. Mae’r gwahaniaeth hwnnw’n penderfynu cynulleidfa’r rheol a’i thystysgrif.

Anaml y mae rhyngwynebau gweinyddol yn perthyn i’r safle hwnnw. Mae tudalen weinyddol y mae cleientiaid VPN awdurdodedig yn ei chyrraedd yn cadw ei harwynebedd ymosod y tu mewn i’r twnnel ac yn osgoi amlygu ffurflen fewngofnodi i sganio mympwyol. Mae pwyntiau terfyn rhaglenni cyhoeddus yn dal i fod angen eu tystysgrif TLS eu hunain, dilysu a chyfyngu cyfradd; nid yw naid WireGuard amgryptiedig yn gwarchod coes yr ymwelydd i’r giât.

Os oes rhaid i’r gwasanaeth fod yn gyhoeddus o ddifrif, nodwch yr enw gwesteiwr, y dystysgrif sy’n ei gwmpasu a’r ystodau ymwelwyr a ddylai ei gyrraedd. Mae’r tri ffaith hynny’n penderfynu siâp y rheol a’r polisi hidlo yn ddiweddarach. Mae unrhyw beth y tu allan iddynt yn ymledu cwmpas ar wrandawr cyhoeddus.

Un porthladd i mewn, un backend allan

Defnyddiwch un porthladd cyhoeddus ac un gwasanaeth backend. Yn yr enghraifft hon mae eth0 yn cario’r cyfeiriad cyhoeddus 198.51.100.20, cyfeiriad twnnel y giât yw 10.200.0.1, ac mae’r peer yn rhedeg y rhaglen ar 10.200.0.7. Mae TCP 9443 cyhoeddus yn mapio i TCP 8443 y peer:

iptables -t nat -A PREROUTING -i eth0 -d 198.51.100.20 -p tcp --dport 9443 -j DNAT --to-destination 10.200.0.7:8443
iptables -t nat -A POSTROUTING -o wg0 -d 10.200.0.7 -p tcp --dport 8443 -m conntrack --ctorigdst 198.51.100.20 --ctorigdstport 9443 -j SNAT --to-source 10.200.0.1

Mae’r rheol SNAT yn cyfateb i’r backend cyfieithiedig a’r cyrchfan gyhoeddus wreiddiol, felly mae cysylltiad arall â’r un gwasanaeth backend yn aros y tu allan i’r mapio hwn. Mae hefyd yn cuddio cyfeiriad yr ymwelydd rhag y peer, a dyna’r cyfaddawd sy’n gwneud dychweliad wedi’i lwybro sy’n cadw’r ffynhonnell yn ddyluniad ar wahân. Mae cyfeirlyfr estyniadau iptables yn dogfennu’r ddau darged a’u hopsiynau cyfateb.

Mae angen galluogi anfon o hyd, ac mae angen caniatâd yn y gadwyn hidlo ar gyfer y gyrchfan a’r porthladd cyfieithiedig ynghyd ag atebion sefydledig. Mae cadwyn FORWARD yn gweld y gyrchfan gyfieithiedig ar ôl DNAT, felly nid yw rheol a ysgrifennwyd yn erbyn y cyfeiriad cyhoeddus yn cyfateb i’r pecyn a anfonwyd. Ysgrifennwch y caniatâd yn erbyn tuple’r backend, nid yr un cyhoeddus.

Rhaid i’r peer dderbyn cysylltiad y gwasanaeth o gyfeiriad twnnel y giât ac anfon yr ateb yn ôl drwy’r twnnel. Rhaid i’w AllowedIPs awdurdodi’r ffynhonnell y mae’n ei derbyn mewn gwirionedd, sef cyfeiriad twnnel y giât o dan gyfieithu ffynhonnell, ac nid oes angen cofnod eang 0.0.0.0/0 ar bob peer ar gyfer y dyluniad hwn. Yr hyn sy’n gollwng y traffig dychwelyd yw peer y mae ei restr yn hepgor y cyfeiriad hwnnw, neu ddyluniad sy’n cadw’r ffynhonnell ac yn anfon cyfeiriad yr ymwelydd ei hun yn lle hynny, felly gwiriwch y ffynhonnell y mae’r peer yn ei gweld mewn gwirionedd, nid yr un yn eich rheol.

Cadwch wrandawyr y giât ei hun y tu allan i’r rheol

Newidiwch y gyfatebiaeth porthladd am reol sy’n cwmpasu pob cyrchfan TCP a UDP, ac mae socket WireGuard y giât ei hun yn syrthio o’i mewn. Mae cyfieithu cyrchfan yn digwydd cyn i’r peiriant benderfynu bod pecyn yn lleol, felly gall UDP 51820 orffen yn y peer yn hytrach nag yn y broses sy’n dal pob cysylltiad peer. Mae’r rheol yn llwytho’n llwyddiannus ac mae’r twnnel yn marw, sef methiant sy’n anodd ei ddarllen o ochr y peer.

Mae gan SSH, asiantau monitro ac unrhyw wasanaeth arall a gynhelir ar y giât yr un amlygiad. Nid yw rheol sy’n anfon popeth yn gwahaniaethu rhwng yr awyren reoli a’r rhaglen gyhoeddedig, a’r ailgychwyn cyntaf ar ôl y newid yw pan fydd y cloi allan yn amlwg. Nid yw’r rheol dal-popeth yn rhybuddio am y gwasanaeth y mae’n ei gymryd drosodd yn dawel. Fe’i darganfyddwch pan fydd y cysylltiad nesaf yn methu.

Os oes wir angen anfon eang, cadwch y porthladdoedd rheoli o flaen y rheol dal-popeth neu defnyddiwch gyfeiriad cyhoeddus ar wahân ar gyfer cyhoeddi. Mae’r ail opsiwn yn lanach oherwydd bod y cyfeiriad rheoli’n cadw ei bolisi ei hun, ond rhaid i’r darparwr gyflenwi’r cyfeiriad hwnnw; nid yw ychwanegu cofnod DNS yn dyramu un.

Nid yw anfon eang TCP a UDP ychwaith yn holl brotocolau. Mae ICMP, IPv6, adborth MTU llwybr a thrafnidiaeth allanol y VPN angen eu polisi eu hunain, ac mae rheol sy’n cwmpasu TCP a UDP yn gadael y rhai hynny i’r gadwyn ragosodedig.

Dewiswch y model cyn ysgrifennu rheolau

Mae pedwar siâp yn cwmpasu’r rhan fwyaf o gyhoeddiadau giât, ac mae’r dewis yn dibynnu ar faint o wasanaethau a redwch a faint o risg awyren reoli y gallwch ei goddef. Mae’r tabl isod yn eu trefnu o’r culaf i’r ehangaf.

ModelWhat it protectsCostUse when
Narrow port forwardEvery other listener, including the VPNOne rule per serviceFew services, stable ports
Catch-all with reserved portsPorts named in the exception listRule order becomes criticalMany services and disciplined review
Separate public addressControl address fully isolatedProvider must supply the addressHigh-value publication
VPN-only accessNo public entry at allVisitors need the tunnelAdmin interfaces and internal tools

Dechreuwch â’r model cul hyd yn oed os ydych yn disgwyl mwy o wasanaethau yn ddiweddarach. Dyma’r hawsaf i’w archwilio, ac mae troi set o reolau cul yn rheol dal-popeth wedi’i hadolygu’n symlach na darganfod pa wrandawr a ddaliodd rheol eang. Pa fodel bynnag a ddewiswch, cadwch y rheolau gyda pherchennog y wal dân. Mae cymhwyso llinellau iptables wrth ochr cyfluniad UFW neu nftables sy’n rheoli’r un cadwyni yn cynhyrchu polisi sy’n newid yn dibynnu ar drefn cychwyn.

Profwch y cyhoeddiad a’r llwybr rheoli’r ddau

Profwch o gleient allanol awdurdodedig gan ddefnyddio’r enw gwesteiwr cymeradwy a thystysgrif sy’n ddilys ar ei gyfer. Cadarnhewch pa backend a atebodd, yna gwiriwch fod porthladdoedd cyhoeddus di-gysylltiedig yn parhau i gael eu gwrthod. Nid yw gwiriad tystysgrif wedi’i analluogi’n brawf HTTPS sy’n llwyddo, ac mae cysylltiad sy’n cyrraedd y backend anghywir yn waeth nag un sy’n methu.

Wedi hynny, gwiriwch y giât ei hun: cysylltwch peer WireGuard, agorwch sesiwn SSH a chadarnhau bod monitro’n dal i adrodd. Gall y gwasanaeth cyhoeddedig weithio tra bo’r awyren reoli’n wedi torri, felly mae’r ddau wiriad yn perthyn i’r un ffenestr newid. Ailgychwynnwch unwaith i brofi bod y rheolau’n cael eu hailgymhwyso yn y drefn ddisgwyliedig, yna tynnwch y cyhoeddiad a chadarnhau bod y tynnu’n cyfateb i’r ychwanegiad mewn gwirionedd. Mae set fawr o ychwanegiadau cychwyn gyda thynnu anghyflawn yn ffordd o droi prawf dros dro yn agoriad parhaol.

Erthyglau cysylltiedig