Gall dau gleient agor yr host naid ill dau ac eto heb fod ganddynt unrhyw fusnes yn agor ei gilydd. Penderfyniad anfon yw cyrraedd gwasanaeth, tra bo cyrraedd cymharwr yn benderfyniad polisi, ac mae’r rhan fwyaf o staciau VPN yn cadw’r rhain mewn gwrthrychau ar wahân. Nid oes dim a ffurfweddwch ar gyfer y cyntaf yn gorfodi’r ail. Felly nid yw’r gwaith yn un o ychwanegu rheol ond o ddod o hyd i’r gwrthrych sy’n penderfynu traffig cymheiriaid ar y gweinydd hwn, ysgrifennu’r gwaharddiad yno, a’i brofi o gleient.

Nid yw llwybr i’r gwasanaeth a rennir yn ganiatâd rhwng cymheiriaid

Mae hysbysebu is-rwyd y cleientiaid yn dweud wrth gymharwr sut i roi pecyn ar y wifren tuag at gyfeiriad cleient arall. Penderfynir wedyn a gaiff y pecyn hwnnw ei ddanfon, gan beth bynnag sy’n ei anfon. Ar borth Linux y rhwydwaith hwnnw yw cadwyn FORWARD; y tu mewn i ddaemon yn y gofod defnyddiwr, y tabl sesiwn y twnnel ei hun yw hi. Mae llwybr yn ateb cyrraeddadwyedd ac yn gadael caniatâd yn ddigyffwrdd.

Dyna pam nad yw gwiriad ynysu sy’n darllen llwybrau’n unig yn profi dim. Gellir gwthio /24 at bob cleient tra bo pob pecyn rhwng cymheiriaid yn cael ei ollwng yn bachyn anfon. Yr achos peryglus yw’r gwrthwyneb: dim rheol benodol, rhagosodiad caniataol, ac ynysu sy’n bodoli dim ond am na phrofodd neb ef.

Ysgrifennwch y gofyniad yn un llinell cyn agor terfynell. Cyrhaeddwch floc y gwasanaeth a’r host naid, na chyrhaeddwch ddim arall o fewn bloc y cleientiaid.

Darganfyddwch pwy sy’n anfon y pecyn cymharwr mewn gwirionedd

Mae dau ymddygiad gweinydd yn edrych yr un fath o ochr y cleient ac angen rheolau gwahanol. Naill ai mae’r cnewyllyn yn anfon y pecyn allan o ryngwyneb y twnnel eto, neu mae’r daemon yn ei gopïo rhwng sesiynau ac ni wel y cnewyllyn ef byth.

Mae WireGuard yn y grŵp cyntaf: nid oes ganddo swits rhwng cymheiriaid, felly mae pecyn o 10.8.0.4 i 10.8.0.5 yn cyrraedd wg0, yn taro’r bachyn anfon ac yn cael ei lwybro allan o wg0 eto pan fo AllowedIPs yn cwmpasu’r ddau gyfeiriad. Mae OpenVPN yn yr ail grŵp unwaith y bydd client-to-client wedi’i osod yng nghyfluniad y gweinydd, oherwydd mae’r gyfarwyddeb honno’n trosglwyddo’r pecyn rhwng sesiynau yn y gofod defnyddiwr. Gwiriwch y cyfluniad llwythog am y gyfarwyddeb honno cyn ysgrifennu unrhyw beth. Ni ellir gwahaniaethu rheol cnewyllyn nad yw byth yn gweld traffig oddi wrth reol sy’n gweithio, a dyna sut y daw gosodiad i ben heb unrhyw ynysu o gwbl.

Darllenwch y cyfluniad effeithiol yn hytrach na’r ffeil rydych yn tybio sydd wedi’i llwytho, oherwydd mae pecynnau dosbarthu’n dod â’u cynhwysiadau eu hunain. Os y daemon sy’n anfon, mae’r gwaharddiad yn perthyn i’w reolaethau fesul cleient ei hun, ac mae firewall y gwesteiwr yn hidlo traffig a anfonir at y gwesteiwr yn unig. Os y cnewyllyn sy’n anfon, y bachyn anfon yw’r unig le sy’n bwysig.

Mae gosodiadau wedi’u llwybro a’u cyfieithu angen un gwiriad arall: efallai nad y ffynhonnell y mae cleient pell yn ei gweld yw’r un rydych yn ei disgwyl. Yna nid yw rheol sy’n cyfateb i is-rwyd y cleientiaid yn cyfateb i ddim. Nodwch y cyfeiriad sy’n goroesi’r cyfieithiad cyn ysgrifennu’r gyfatebiaeth, a ffafriwch gyfateb y pâr rhyngwyneb yn hytrach na dyfalu cyfeiriadau NAT.

Rhowch i bob cyfeiriad hunaniaeth y gellir ei dirymu ar ei phen ei hun

Mae ynysu’n cwympo cyn gynted ag y bydd dau ddyfais yn rhannu un cymhwyster. Ni all rheol sy’n seiliedig ar y hunaniaeth honno eu gwahanu, ac mae dirymu gliniadur coll yn dirymu’r grŵp cyfan. Mae tystysgrifau fesul dyfais neu allweddi fesul cymharwr yn cadw dirymu’n lleol a’r polisi’n ddarllenadwy, oherwydd mae pob cyfeiriad yn cyfateb i un person neu un peiriant yn union. Lle na all y dyluniad wneud hynny, dywedwch hynny yn y llyfr rhedeg yn hytrach na disgrifio’r rheol fel un mân.

Rhaid i ddyrannu cyfeiriadau gyd-fynd â’r polisi. Cadwch floc ar gyfer gwasanaethau, bloc ar gyfer cleientiaid, a dosbarthwch gyfeiriadau cleientiaid o gronfa a reolwch yn hytrach nag ystod cyntaf i ddod. Os y gweinydd yn cyfieithu neu’n pontio, cadwch y tabl mapio wrth ymyl y cyfluniad, oherwydd dyna’r tabl sydd ei angen ar y darllenydd nesaf i ail-ddod â’r rheol.

Rhowch y gwaharddiad lle mae’r pecyn yn croesi’r twnnel

Ar borth sy’n anfon traffig WireGuard, mae dwy reol yn gorchuddio’r achos: caniatáu bloc y gwasanaeth, yna gollwng gweddill bloc y cleientiaid. Mae’r pâr rhyngwyneb yn bwysig cymaint â’r cyfeiriadau, oherwydd mae cyfateb ar y gyrchfan yn unig yn dal traffig sy’n dod o’r LAN hefyd. Llwythwch nhw yn y drefn honno fel y gwerthir y caniatâd yn gyntaf.

Gyda nftables mae’r pâr yn mynd i mewn i dabl inet filter sy’n bodoli eisoes, caniatâd yn gyntaf a gollwng yn ail. Mae’r ddwy gyfatebiaeth yn pinio’r pâr rhyngwyneb yn ogystal â’r cyfeiriadau.

nft add rule inet filter forward iifname "wg0" oifname "wg0" ip saddr 10.8.0.0/24 ip daddr 10.8.2.0/24 accept
nft add rule inet filter forward iifname "wg0" oifname "wg0" ip saddr 10.8.0.0/24 ip daddr 10.8.0.0/24 drop

Darllenwch y gadwyn yn ôl ar ôl llwytho yn hytrach na dibynnu ar y statws gadael, a chadarnhewch fod y ddwy reol yn eistedd yn y drefn a fwriadwyd gennych. Ychwanegwch reolau ip6 cyfatebol ar gyfer y gronfa IPv6, neu mae pâr v4 yn addurn yn unig ar dwnnel deu-stac. Os oes gan y gweinydd bolisi anfon caniataol eisoes, ychwanegwch y gollwng yn hytrach na disodli’r gadwyn yn gyfan gwbl.

Pan fo client-to-client wedi’i alluogi ar OpenVPN, nid yw’r rheolau anfon hyn byth yn cyfateb i draffig cymheiriaid ac mae’n rhaid i’r gwaharddiad fyw yn rheolaethau’r daemon ei hun. Cadwch reolau’r cnewyllyn ar gyfer traffig a anfonir at y gwesteiwr, ond na chyfrifwch hwy fel y rheolaeth ynysu.

Profwch y gwaharddiad o gleient, nid o’r gweinydd

Nid yw profi o’r porth yn profi dim, oherwydd mae traffig a gynhyrchir yn lleol yn cymryd y llwybr allbwn ac ni chroesir y bachyn anfon byth. Defnyddiwch ddau gleient go iawn: un a ddylai gyrraedd y gwasanaeth, un y dylid ei wrthod. Rhedwch yr achos caniatáu gyntaf, fel na chaiff twnnel wedi torri ei gamgymryd am bolisi sy’n gweithio.

O’r cleient a ganiateir, cadarnhewch fod y gwasanaeth yn ateb ar ei borthladd. O’r un cleient, rhowch gynnig ar gyfeiriad y cymharwr a disgwyliwch ollwng tawel yn hytrach na gwrthodiad:

ping -c 3 -W 2 10.8.0.5
nc -z -w 2 10.8.0.5 22
nft list chain inet filter forward
iptables -vnL FORWARD
ping -6 -c 3 -W 2 fd00:8::5

Mae pecyn a ollyngwyd a chymharwr all-lein ill dau yn edrych fel terfyn amser, felly gwiriwch y cyfrifwyr cyn dod i unrhyw gasgliad. Cadarnhewch fod cyfrifydd y rheol gollwng yn cynyddu tra bo’r cymharwr yn amlwg ar waith. Ailadroddwch dros IPv6, lle mae rheol ip6 ar goll yn gadael y gwaharddiad v4 yn edrych yn effeithiol. Cofnodwch y canlyniadau a dderbyniwyd ac a wrthodwyd yn y llyfr rhedeg gyda’r dyddiad, oherwydd bydd y mudo nesaf yn ail-ddod â’r rheol.

Erthyglau cysylltiedig