Gall anfon porthladd sy’n dal popeth lyncu eich gwrandawr WireGuard
Gall rheol anfon eang lyncu gwrandawyr WireGuard a SSH y giât ei hun. Dewiswch reolau cul neu gyfeiriad cyhoeddus ar wahân, yna profwch y llwybr rheoli.
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.1Mae’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.
| Model | What it protects | Cost | Use when |
|---|---|---|---|
| Narrow port forward | Every other listener, including the VPN | One rule per service | Few services, stable ports |
| Catch-all with reserved ports | Ports named in the exception list | Rule order becomes critical | Many services and disciplined review |
| Separate public address | Control address fully isolated | Provider must supply the address | High-value publication |
| VPN-only access | No public entry at all | Visitors need the tunnel | Admin 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.