Cyhoeddwch borth cleient VPN o tu ôl i CGNAT: rhestr wirio
Mae rheol NAT cyrchfan ar ei phen ei hun yn rhoi cysylltiadau hanner-agored. Pinwch gyfeiriad y twnnel, cyfieithwch y ddau ffordd, a chadarnhewch lwybr yr ateb cyn profi.
Rhowch wasanaeth ar liniadur y tu ôl i NAT gradd cludwr, cyfeiriwch y liniadur hwnnw at VPS dros VPN, ac ni all neb o’r tu allan gyrraedd ato. Rydych yn ychwanegu rheol NAT cyrchfan ar y VPS ac yn cael rhywbeth gwaeth na thawelwch: mae cysylltiadau’n agor, yna’n aros. Nid yw’r ateb ar goll, mae’n gadael drwy lwybr rhagosodedig y cleient ei hun, sy’n golygu nad yw’r gweinydd byth yn ei weld. Ewch drwy’r pum gwiriad hyn yn eu trefn a stopiwch ar yr un cyntaf nad yw’n dal.
Cadarnhewch y bydd y gweinydd yn anfon ymlaen o gwbl
Ticiwch y blwch hwn cyn ysgrifennu unrhyw gyfieithiad. Mae rheol DNAT ar gyfer pecyn y mae’r cnewyllyn yn gwrthod ei anfon ymlaen yn cael ei derbyn gan y dosrannu rheolau ac yna’n cael ei gollwng gan y llwybr anfon ymlaen, sy’n cynhyrchu seibiant sy’n edrych fel problem wal dân.
sysctl net.ipv4.ip_forward
sysctl -w net.ipv4.ip_forward=1
Nid yw ei osod mewn cnewyllyn sy’n rhedeg yr un fath â’i osod ar draws ailgychwyn. Ysgrifennwch net.ipv4.ip_forward=1 mewn ffeil o dan /etc/sysctl.d/, rhedegwch sysctl --system, yna darllenwch y gwerth yn ôl yn lle ymddiried bod y ffeil wedi’i chymryd. Mae cynhwysydd sy’n rheoli ei ofod enw rhwydwaith ei hun angen yr un gwerth y tu mewn i’r gofod hwnnw, nid ar y gwesteiwr yn unig.
Os yw’r darlleniad yn dal i fod yn sero, stopiwch yma. Ni fydd unrhyw beth i lawr y llwybr yn gweithio.
Pinwch gyfeiriad y twnnel cyn i unrhyw reol gyfeirio ato
Mae’r pwll yn dosbarthu cyfeiriadau yn nhrefn cysylltu, felly gall rheol a ysgrifennwyd ar gyfer les heddiw bwyntio’n dawel at gleient gwahanol yr wythnos nesaf. Rhwymwch y cyfeiriad at hunaniaeth y dystysgrif yn lle at drefn cyrraedd.
client-config-dir /etc/openvpn/ccd
ifconfig-push 10.77.0.14 10.77.0.13
Y pâr hwnnw yw pen y cleient a phen y cymar twnnel pwynt-i-bwynt, gyda’r gweinydd wedi’i allweddu ar enw cyffredin y dystysgrif. O dan dopoleg is-rwydwaith, darllenir yr ail werth fel mwgwd rhwydwaith yn lle hynny, felly ysgrifennwch y ffurf sy’n cyfateb i’r dopoleg a ddefnyddir. Yna ailgysylltwch y cleient a darllen y cyfeiriad ar y cleient ei hun, oherwydd nid yw golwg y gweinydd ar y pwll yn brawf o’r hyn a ffurfweddodd y cleient.
Os yw’r cyfeiriad yn newid ar ôl ailgysylltu, stopiwch. Bydd rheol NAT sy’n dilyn targed symudol yn methu’n ysbeidiol ac ni fydd yn dysgu unrhyw beth i chi.
Cyfieithwch i’r ddwy gyfeiriad
Mae cyfieithu cyrchfan yn anfon y pecyn sy’n dod i mewn at y cleient. Cyfieithu ffynhonnell sy’n gwneud i’r cleient ateb y gweinydd yn hytrach na’r anfonydd gwreiddiol, a hwnnw yw’r rheol y mae pobl yn ei hepgor.
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 29443 -j DNAT --to-destination 10.77.0.14:29443
iptables -t nat -A POSTROUTING -d 10.77.0.14 -p tcp --dport 29443 -j SNAT --to-source 10.77.0.13
Heb yr ail reol, mae’r cleient yn ateb drwy ei lwybr ISP i fyny, felly mae’r cymar pell yn gweld cyfeiriad ffynhonnell na soniodd wrtho erioed, tra nad oes gan y gweinydd unrhyw gofnod olrhain ar gyfer yr ateb. Mae’r arsylwr y tu allan yn gweld ysgydwad llaw sy’n hanner cwblhau, a dyna’n union y symptom sy’n gyrru pobl i chwilio am fyg wal dân nad yw yno.
Darllenwch y ddwy reol yn ôl gyda iptables -t nat -S a chadarnhau mai enw’r rhyngwyneb yw’r un sy’n cario’r cyfeiriad cyhoeddus. Ar westeiwr sy’n hidlo eisoes gyda nftables, ysgrifennwch y cyfieithiad mewn cadwyn NAT nftables o’r un teulu cyfeiriadau yn lle cymysgu offer.
Gadewch i’r tabl hidlo basio
Mae tablau NAT yn ailysgrifennu pennawdau; nid ydynt yn rhoi caniatâd. Gyda pholisi DROP rhagosodedig mae angen ei dderbyniad ei hun ar y llif a anfonir ymlaen, ynghyd â’r cyfeiriad dychwelyd y mae’r rhan fwyaf o bolisïau eisoes yn ei gwmpasu gyda rheol established,related.
iptables -A FORWARD -i eth0 -o tun0 -p tcp --dport 29443 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Gwiriwch bolisi’r gadwyn FORWARD cyn ychwanegu unrhyw beth, oherwydd trefn DROP cynnar sy’n penderfynu a fydd eich rheol byth yn cael ei hystyried. Ar westeiwr y mae ei hidlo’n byw yn nftables, ychwanegwch y rheol gyfatebol at fachyn forward y tabl inet a chadarnhau bod y gadwyn sylfaenol yn gweld traffig a anfonir ymlaen mewn gwirionedd, nid mewnbwn lleol yn unig. Os yw rhifydd pecynnau ar y rheol newydd yn aros ar sero tra bo rhifyddion NAT yn codi, mae’r pecyn yn cael ei ollwng cyn eich rheol. Dyna’r arwydd i ddarllen trefn y cadwyni, nid i ychwanegu ail gopi o’r un rheol.
Profwch hyn o rwydwaith allanol
Profwch o rwydwaith di-gysylltiad. Gall archwiliad o beiriant arall ar yr un LAN basio drwy gefnogaeth NAT gwallt a pheidio byth ag arfer y llwybr y mae cleient pell yn ei ddefnyddio, felly mae canlyniad gwyrdd yno’n profi’r peth anghywir.
tcpdump -ni any port 29443
conntrack -L | grep 29443
Rhedwch y dal ar y gweinydd ac ar y cleient ar yr un pryd. Mae dal y gweinydd yn dangos a yw’r pecyn cyfieithiedig yn gadael tuag at y twnnel; mae dal y cleient yn dangos a yw’r cais yn cyrraedd a ble mae’r ateb yn cael ei gyfeirio. Mae cofnod cyfieithu yn conntrack -L yn profi bod y rheol wedi cyfateb, ac mae ei absenoldeb yn profi na chyrhaeddodd y pecyn gadwyn NAT erioed.
Mae sganwyr porthladdoedd yn dystiolaeth wan. Maent yn adrodd y porthladd fel un caeedig nes bod y rhaglen wedi’i chlymu ac yn gwrando, felly defnyddiwch gysylltiad go iawn i’r gwasanaeth go iawn. Pan fydd yn gweithio o’r diwedd, cadwch yr amlygiad i’r un porthladd hwnnw: mae anfon SSH neu banel gweinyddol ymlaen oherwydd bod y rheol gyntaf yn teimlo’n lletchwith yn benderfyniad llawer mwy na chyhoeddi gwasanaeth.