Wal dân VPS: agorwch y porth VPN yn unig, yna profwch hynny
Rhaid i un porth aros yn gyhoeddus, neu ni fydd un cleient yn cysylltu. Gwrthodwch y gweddill, cadwch y cyfeirio ar wahân i’r mewnbwn, a gadewch lwybr adfer a brofwyd gennych ymlaen llaw.
Nid un rheol yw wal dân sy’n caniatáu porth VPN yn unig. Tair penderfyniad ar wahân ydyw sy’n digwydd ymwneud â’r un rhif porth: mae’r gadwyn fewnbwn yn penderfynu beth all gyrraedd proses leol, mae’r gadwyn gyfeirio yn penderfynu beth all fynd drwy’r gwesteiwr ar ran cleientiaid y twnnel, ac mae’r tabl NAT yn ailysgrifennu’r cyfeiriad ffynhonnell ar y ffordd allan. Ceir un ohonynt yn anghywir ac anaml y bydd y canlyniad yn doriad glân. Cewch westeiwr sy’n derbyn cleientiaid ond yn llwytho dim, neu westeiwr sy’n edrych yn glöedig nes bod rhywun yn darllen trefn y cadwyni.
Yr unig borth na ellir ei gau
Rhaid i wrandawr y VPN dderbyn cysylltiadau o gyfeiriadau na allwch eu rhagweld, felly mae’n wasanaeth cyhoeddus yn ôl diffiniad. Dyma’r unig eithriad y mae’r dyluniad wedi’i adeiladu o’i gwmpas: un porth UDP ar gyfer OpenVPN, un porth UDP ar gyfer WireGuard, un porth TCP ar gyfer VPN SSL. Mae popeth arall yn perthyn y tu ôl i’r twnnel, sy’n golygu y dylai gwasanaethau cymhwysiad rwymo i gyfeiriad y twnnel neu i loopback yn hytrach nag i bob rhyngwyneb.
Nid gorfodaeth yw rhwymo, serch hynny. Nid yw proses sydd wedi’i rhwymo i 0.0.0.0 yn gyrraeddadwy oni bai bod rheol yn ei chaniatáu, a’r polisi diofyn yw’r cwymp am draffig na chyfarfu â rheol, nid y rheol sy’n llywodraethu’r porth. Mae caniatâd wedi’i osod uwchben eich gwrthodiad yn parhau’n ganiatâd, ac mae symud gwasanaeth oddi ar y cyfeiriad cyhoeddus yn welliant annibynnol yn hytrach nag yn ddisodliad am y gadwyn.
Mewnbwn, cyfeirio a NAT yn ateb cwestiynau gwahanol
Mae traffig mewnbwn wedi’i gyfeirio at y gwesteiwr ei hun, felly dyna lle mae gwrandawr y VPN a’r llwybr gweinyddol. Mae traffig cyfeirio yn pasio drwy’r gwesteiwr, ac mae cleientiaid y twnnel yn ei angen ynghyd â net.ipv4.ip_forward=1. Mae’r ffurfweddiad clasurol hanner-toredig yn caniatáu’r llif allan ac yn anghofio’r cyfeiriad dychwelyd, felly mae’r cleient yn cwblhau ei ysgwyd llaw ac yna’n llwytho dim; mae rheol conntrack ar gyfer traffig sefydledig a chysylltiedig yn gorchuddio’r cyfeiriad hwnnw.
NAT yw’r trydydd cwestiwn. Heb ailysgrifennu postrouting, mae pecynnau wedi’u cyfeirio yn gadael gyda ffynhonnell breifat y twnnel ac yn cael eu gollwng yn uwch i fyny, oherwydd nid oes unrhyw rwydwaith y tu hwnt i’r gwesteiwr yn gwybod sut i lwybro’r pwll yn ôl. Rhaid i’r rhagddodiad ffynhonnell yn y rheol honno gyfateb i bwll y VPN, nid i gyfeiriad y gwesteiwr ei hun, ac mae’r un peth yn wir am y rheol gyfeirio sy’n enwi isrwyd y cleientiaid.
Polisi ail yw IPv6, nid ôl-ystyriaeth. Nid yw gwesteiwr â chadwyn IPv4 lem a pholisi agored ip6tables wedi cau dim; mae’r gwasanaethau’n dal i fod yn gyrraeddadwy dros y teulu arall. Naill ai adlewyrchwch y set rheolau gyda ip6tables neu analluogwch IPv6 yn fwriadol ar y rhyngwyneb cyhoeddus, ac ysgrifennwch ba un a ddewisoch.
Gwaelodlin y gellir ei darllen mewn un pas
Dechreuwch o wrthod, yna ychwanegwch yn unig yr hyn sydd ei angen ar y gwesteiwr. Loopback ac atebion yn gyntaf, yna’r llwybr gweinyddol, yna gwrandawr y twnnel, yna’r polisi cyfeirio ar gyfer cleientiaid:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -p udp --dport 1194 -m conntrack --ctstate NEW -j ACCEPT
sysctl -w net.ipv4.ip_forward=1
iptables -A FORWARD -i tun0 -o eth0 -s 10.8.0.0/24 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADEMae enwau’r rhyngwynebau, y porth a’r pwll yn ddalwyr lle; darllenwch nhw o’r gweinydd yn hytrach na’u copïo. Mae cadw’r canlyniad yr un mor bwysig â’i ysgrifennu, oherwydd mae set rheolau sy’n byw yn y cof yn unig yn diflannu ar yr ailgychwyn nesaf ac yn ailagor y gwesteiwr yn dawel. Parhewch hi â mecanwaith y dosbarthiad, a chadwch gopi y tu allan i’r peiriant ar gyfer y diwrnod na fydd y peiriant yn cychwyn.
Cau’r porth olaf heb golli’r gwesteiwr
Mae dalen yn y dyluniad. Os nad yw SSH yn bodoli ond drwy’r twnnel, mae gwasanaeth VPN wedi methu yn mynd ag SSH gydag ef, ac efallai mai’r unig ffordd yn ôl yw consol nad ydych erioed wedi’i hagor. Cyn i chi gau’r porth cyhoeddus olaf, cadarnhewch fod y gonsol honno’n bodoli a’ch bod chi wir yn gallu ei defnyddio, neu cadwch un llwybr gweinyddol cul nad yw’n dibynnu ar y twnnel: SSH o gyfeiriad sefydlog, allweddi yn unig, dilysu cyfrinair i ffwrdd.
Rhowch y newid ar waith o sesiwn sydd eisoes wedi’i sefydlu, nid drwy’r cysylltiad yr ydych ar fin ei hidlo. Trefnwch droi’n ôl fel bod camgymeriad yn dod i ben yn hytrach na dod yn barhaol, er enghraifft tasg systemd-run --on-active=10min sy’n adfer y set rheolau flaenorol, a chadwch ail sesiwn SSH ar agor wrth i chi brofi’r gyntaf. Yna gwiriwch fod y dasg droi’n ôl yn tanio mewn gwirionedd, oherwydd mae adfer heb ei phrofi yr un fath â dim adfer.
Gwiriwch y llwybr, nid y sgript
Darllenwch y rheolau a lwythwyd, nid y ffeil a oedd i fod i’w llwytho. O westeiwr allanol awdurdodedig, cadarnhewch mai dim ond y porthladdoedd bwriadedig sy’n ateb; o du mewn’r twnnel, cadarnhewch fod y gwasanaethau yr oeddech am eu cyhoeddi yn gyrraeddadwy. Mae polisi gwrthod diofyn sy’n blocio traffig y twnnel hefyd yn edrych yn unfath â chlo darbodus nes bod rhywun yn ceisio ei ddefnyddio.
iptables -S
iptables -t nat -S
ss -lntup
ip -4 addr showCofnodwch y porth a ganiateir, pwll y cleientiaid, rhyngwyneb y twnnel, y ffynhonnell weinyddol a gweithdrefn y gonsol wrth ymyl y ffurfweddiad. Rhaid i’r newid nesaf i’r pwll neu enw’r rhyngwyneb gyfateb yn y hidlydd ac yn y rheol NAT ill dau, neu bydd y gwesteiwr yn dychwelyd i gyflwr hanner-agored heb i neb sylwi.
Mae un arfer yn werth mwy na’r set rheolau: ar ôl pob newid, profwch y llwybr cyfeirio â chais cleient a phrofwch y llwybr adfer ag ail sesiwn. Mae clicied nad ydych wedi’i ddefnyddio yn rhagdybiaeth.