Mae tri newid yn cymysgu bob tro y daw VPN i gyfarfod ag OpenWrt: agor porth, caniatáu anfon ymlaen, a throi masgio ymlaen. Maent yn ateb cwestiynau gwahanol, ac fel arfer dim ond un ohonynt yw'r gwir ofyniad. Mae darllen pob rheolydd yn ôl y rôl traffig y mae'n ei lywodraethu yn troi dyfaliad yn benderfyniad, ac mae hefyd yn dweud pa symptom i'w ddisgwyl pan fydd y newid yn anghywir. Dechreuwch drwy enwi'r rôl a fethodd, nid y blwch ticio rydych chi'n ei gofio.

Enwch rôl y traffig cyn cyffwrdd â rheolydd

Mae mewnbwn parth yn penderfynu beth sy'n gallu cyrraedd y llwybrydd ei hun. Mae allbwn parth yn cwmpasu traffig y mae'r llwybrydd yn ei greu, anfon ymlaen parth yw'r rhagosodiad ar gyfer traffig sy'n mynd trwy barth, ac mae masgio yn penderfynu a yw'r cyfeiriad ffynhonnell yn cael ei ailysgrifennu ar y ffordd allan. Mae'r rheini'n bedwar cwestiwn gwahanol, ac mae polisi parth yn ateb pob un ohonynt ar unwaith gyda'r un gwerth, a dyna pam mae newid ar draws parth cyfan yn offeryn di-fin. Mae rheol a enwir yn gallu ateb un ohonynt heb gyffwrdd â'r lleill.

Y map defnyddiol yw un yn ôl rôl traffig, oherwydd dyna'r hyn y gallwch ei arsylwi pan fydd rhywbeth yn methu. Mae gan bob rôl isod un rheolydd sy'n ei phenderfynu ac un symptom sy'n pwyntio ati:

Traffic roleControl that decides itWhere it lives in the configSymptom when it is wrong
A client reaching a listener on the routerInput policy of the zone that carries the connection, or a rule for the portoption input in the zone stanza, or a named ruleThe handshake never completes and the tunnel log says nothing
A tunnel client reaching the router itselfInput policy of the tunnel zoneoption input in the VPN zoneA ping to the gateway fails
A tunnel client reaching another LAN hostForwarding from the tunnel zone to the LAN zoneconfig forwarding plus the zone assignmentThe gateway answers and the file share times out
The router's own traffic leaving the WANOutput policy, and translation if the far side needs itoption output and option masqThe tunnel never establishes, or replies vanish

Mae angen un rheol fewnbwn gul ar wrandawr ar y llwybrydd

Mae gweinydd OpenVPN ar y llwybrydd yn derbyn traffig a gyfeiriwyd at y llwybrydd, felly mae ei gysylltiad allanol yn dibynnu ar bolisi mewnbwn y parth sy'n ei gario. Caniatáu'r cludiant a'r porth sydd wedi'u ffurfweddu a gadael popeth arall yn y parth hwnnw'n cael ei wrthod. Mae un rheol porth yn newid llawer llai na chaniatau ar draws parth cyfan, a honno yw'r un y gallwch ei hesbonio flwyddyn yn ddiweddarach.

Mae dau beth yn gwneud y rheol honno'n ddiogel i'w chadw: mae'n enwi'r porth y mae'r gwasanaeth yn ei ddefnyddio mewn gwirionedd, ac mae'n sefyll wrth ymyl diffiniad y parth fel bod y person nesaf yn gweld pam mae'n bodoli. Mae'r llinellau isod yn y ffurf, gyda'r porth yn cymryd lle'r hyn sydd wedi'i ffurfweddu ar y gweinydd. Newidiwch y porth hwnnw yn y ddau le pan fydd y gwasanaeth yn symud, oherwydd mae rheol a adawyd ar yr hen un yn anweledig hyd archwiliad.

config zone
    option name 'wan'
    option input 'REJECT'
    option forward 'REJECT'
    option output 'ACCEPT'
    option masq '1'

config rule
    option name 'allow-openvpn'
    option src 'wan'
    option proto 'udp'
    option dest_port '1194'
    option target 'ACCEPT'

Dilyswch cyn ail-lwytho, oherwydd gall gwall cystrawen mewn ffeil wal dân adael y llwybrydd heb set rheolau weithredol. Mewn rhyddhad sy'n defnyddio fw4 mae'r gwiriad yn orchymyn ar wahân, ac mae'n methu'n uchel yn lle derbyn bloc wedi torri'n dawel. Ail-lwythwch yn unig ar ôl i'r gwiriad basio, a chadwch y ffeil flaenorol lle gallwch ei rhoi'n ôl.

fw4 check
service firewall reload

Mae cais cleient yn croesi anfon ymlaen, nid mewnbwn

Ar ôl dilysu, mae cais cleient twnnel am wasanaeth LAN yn cynhyrchu llif a anfonwyd ymlaen, felly'r rheolydd sy'n ei benderfynu yw'r berthynas anfon ymlaen rhwng parth y twnnel a pharth y LAN. Neilltuwch ryngwyneb y twnnel i'r parth a fwriadwyd, yna datganwch y cyfeiriad, y ffynonellau a'r gwasanaeth. Neilltuo'r parth yw'r hyn sy'n rhoi ystyr i'r rheol anfon ymlaen, ac mae'r ddau ond yn gwneud synnwyr wedi'u darllen gyda'i gilydd. Mae perthynas anfon ymlaen sy'n enwi parth y twnnel fel ffynhonnell a pharth y LAN fel cyrchfan yn darllen fel un penderfyniad bwriadol, tra mae dau ganiatau ar draws parth cyfan yn darllen fel damwain.

Mae cyrraedd y llwybrydd ei hun yn dal i ddefnyddio'r llwybr mewnbwn, a dyna pam nad yw ping i'r giât yn dweud dim am y gyfraniad ffeiliau y tu ôl iddi. Mae'r ddau fethiant hynny'n byw mewn bloc gwahanol ac yn cael eu trwsio gan olygiadau gwahanol. Ysgrifennwch y ddau lwybr ar wahân cyn newid y naill na'r llall.

Penderfyniad llwybro yw masgio, nid caniatâd

Mae masgio yn ailysgrifennu cyfeiriad ffynhonnell traffig allan dethol. Gall achub cynllun mynd allan lle nad oes gan yr ochr bell lwybr yn ôl, ac mae hefyd yn cuddio cyfeiriadau cleientiaid unigol rhag unrhyw wasanaeth sy'n cofnodi neu'n awdurdodi yn ôl cyfeiriad. Mae ei ddiffodd yn ddewis llwybro ynglŷn â'r llwybr dychwelyd, nid yn switsh diogelwch sy'n cau twll mewnbwn. Mae twnnel sy'n gweithio gyda chyfieithu ymlaen ac yn methu ar unwaith pan gaiff ei ddiffodd fel arfer â llwybr dychwelyd ar goll, nid rheol wal dân ar goll.

Mae angen llwybr dychwelyd ar yr ochr bell ar y dewisiadau llwybro yn lle cyfieithu. Nid yw'r naill opsiwn na'r llall yn darparu caniatâd y wal dân na chyfrif y cymhwysiad, a dyna pam nad yw diffodd masgio bron byth yn trwsio cleient twnnel na all gyrraedd dim. Triniwch bolisi IPv4 a IPv6 ar wahân hefyd, oherwydd nad yw un gosodiad cyfieithu yn disgrifio'r ddwy deulu.

Profwch y penderfyniad gyda chais a ganiateir a chais a wrthodir

Anfonwch un cais y dylid ei ganiatáu ac un y dylid ei wrthod, yna nodwch y rheolydd a wnaeth bob penderfyniad. Nid yw tudalen sy'n llwytho ar hap yn dystiolaeth; y dystiolaeth yw'r rheol a gyfatebodd, yn y gadwyn lle y cyfatebodd. Mae'r gwrthodiad yr un mor bwysig â'r llwyddiant, oherwydd mae'n dangos bod y polisi yn gwneud rhywbeth yn lle bod popeth yn cael ei ganiatáu.

Mae dau orchymyn yn rhoi'r dystiolaeth honno i chi ar ryddhad cyfredol. Mae'r rhifydd ar y rheol gyfatebol yn symud pan dderbynnir y cais, ac mae'r log yn dangos y golled os ydych wedi galluogi cofnodi ar gyfer y rheol:

nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'

Cadwch lwybr gweinyddu y gallwch ei ddefnyddio o hyd cyn newid unrhyw bolisi wal dân, a dilynwch broses ddilysu ac adfer perchennog y ffurfweddiad. Nid yw newid sy'n eich cloi allan o'r llwybrydd yn ganlyniad prawf, mae'n ail ddigwyddiad. Cofnodwch y parth a rôl y traffig wrth bob arsylwi, fel bod y pâr o ganlyniadau'n esbonio'r polisi yn lle disgrifio llwythiad tudalen lwcus.

Erthyglau cysylltiedig