Tista' tasal għal subnetwork wara punt tat-tarf ta' mina b'tliet modi, u minuta ta' ġbir tal-fatti normalment teskkludi tnejn. Il-fatti huma jekk is-servers hemmhekk iridux jiddistingwu l-utenti, jekk xi ħadd hemmhekk qatt jibdiex jaqbad lejn il-firxa tiegħek, u min jista' jeditja r-router tat-tarf il-bogħid. Wieġeb lil dawn it-tlieta u d-disinn jagħżel lilu nnifsu. Il-bqija jassumi li inti tmexxi l-punt tat-tarf u tista' tedjitja l-firewall tiegħu.

Tliet għażliet, u x'verament ibiddel kull waħda

L-immappjar tal-prefiss, id-DNAT għal kull host u prefiss irrotat kollha jċaqalqu l-pakketti bejn l-istess żewġ firxiet, iżda jbiddlu affarijiet differenti. L-immappjar jaħsib firxa alias u jerġa' jikteb l-indirizzi b'mod aritmetiku waqt it-titjira. Ir-regoli għal kull host ukoll jerġgħu jiktbu, ħlief li kull destinazzjoni tissemma bl-idejn. Prefiss irrotat ma jerġa' jikteb xejn: il-pakketti jżommu l-indirizzi reali u ż-żewġt truf jaqblu fejn jgħixu dawk l-indirizzi.

What the far side needsPrefix mappingPer-host DNATRouted prefix
Users visible to its logsOnly without source NATSame conditionYes, unchanged
To start a connection toward youNo, alias is localNo, same reasonYes, both ends route
To absorb a new hostYes, arithmetic onlyNo, one rule per addressYes, it simply routes
To require no config changeYes, with source NATYes, same conditionNo, it needs a route back

Ibda l-eliminazzjoni min-naħa l-bogħida, fejn il-limitazzjonijiet huma l-aktar diffiċli li jinbidlu. Jekk server hemmhekk jikteb l-indirizzi tal-klijenti fil-logs, jiċċekkjahom ma' lista tal-permessi jew jagħtihom lil sistema oħra, it-traduzzjoni tas-sors teqred l-uniku identifikatur tiegħu. Jekk in-naħa l-bogħida trid ukoll iddejjen 'il ġewwa, it-traduzzjoni hija kompletament eskluża, għax hemmhekk ħadd ma jaf li l-alias jeżisti. Biss meta n-naħa l-bogħida sempliċement twieġeb it-talbiet l-għażliet irħas isiru sikuri.

Paril-prefissi, u għalfejn id-daqsijiet iridu jaqblu

NETMAP huwa mira tat-tabella nat li taħdem fuq par prefissi tal-istess tul. M'għandux tabella għal kull indirizz ġewwa: ineħħi l-prefiss, iżomm il-bits tal-host u jerġa' jqabbadhom mal-prefiss il-ġdid, u għalhekk /24 tiġi mappjata fuq /24 u qatt fuq /25. Il-pożizzjoni tiddeċiedi d-direzzjoni: qbil tad-destinazzjoni f'PREROUTING jerġa' jikteb fejn sejjer pakkett, u qbil tas-sors f'POSTROUTING jerġa' jikteb minn fejn ġie.

Host fuq 192.168.2.17 jidher lill-klijenti tiegħek bħala 10.50.1.17, u l-aħħar ottett mhuwiex dekorazzjoni — huwa l-istess numru fuq iż-żewġ naħat. Żid host fuq 192.168.2.40 għada u l-alias tiegħu huwa 10.50.1.40, mingħajr regola x'teditja.

Il-klijenti xorta għandhom bżonn rotta għall-firxa alias li tindika lejn il-kaxxa tiegħek, sakemm l-alias ma taqax f'subnetwork li huma diġà jilħqu. Il-gateway m'għandux bżonn rotta għall-alias, għax it-traduzzjoni tad-destinazzjoni taħdem f'PREROUTING, qabel it-tfittxija tar-rotta. Il-forwarding ukoll irid ikun mixgħul, inkella l-kernel jarmi l-pakkett wara t-tikteb mill-ġdid. It-tliet kmandi hawn taħt huma l-konfigurazzjoni kollha fuq gateway stil Debian bil-klijenti fuq br0, l-alias fuq 10.50.1.0/24 u l-mina fuq tun0.

sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A PREROUTING -i br0 -d 10.50.1.0/24 -j NETMAP --to 192.168.2.0/24
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

It-tweġiba trid issib it-triq lura tagħha stess

It-tikteb mill-ġdid tad-destinazzjoni jiddeċiedi biss fejn jiġi kkonsenjat pakkett. Is-server tat-tarf il-bogħid xorta irid iwieġeb indirizz li jista' jilħaq, u hemm żewġ modi kif tirranġa dan. Ittraduċi s-sors sabiex it-tweġibiet jerġgħu lura lejn il-kaxxa tiegħek, jew ħalli s-sors kif inhu u agħti lin-naħa l-bogħida rotta għall-firxa tal-klijenti.

Il-masquerade fit-triq 'il barra hija t-triq iqsar: regola waħda f'POSTROUTING u n-naħa l-bogħida tara l-indirizz tal-mina tiegħek, għalhekk m'għandhiex bżonn rotta tagħha. L-ispiża hija li kull utent jiġġarraf f'indirizz wieħed, u l-logs għal kull utent ma jfissru xejn aktar. Jekk tħalli s-sors intatt tinżamm dik l-informazzjoni, iżda mbagħad is-sit il-bogħid irid jibgħat it-tweġibiet għall-firxa tal-klijenti lura mill-mina.OpenVPN server dan huwa push "route 10.50.9.0 255.255.255.0", flimkien ma' route 192.168.2.0 255.255.255.0 linja.

Il-falliment għali huwa li tagħmel nofs ta' kull wieħed. Jekk tagħmel masquerade ta' parti mit-traffiku waqt li n-naħa l-bogħida ġġorr ukoll rotta lura għal traffiku ieħor, it-tweġibiet jaslu fuq interface fejn l-entrata tat-tracking tal-konnessjoni qatt ma ntwera. Il-klijent jirrapporta timeout għal talba li s-server irreġistra bħala moqdija. Iż-żewġ direzzjonijiet ta' fluss iridu jaqsmu l-istess istanza netfilter: gateway wieħed jittraduċi, mhux żewġ firewalls f'serje.

conntrack -L -d 10.50.1.17
iptables -t nat -L PREROUTING -v -n

Aqra l-entrata fiż-żewġ direzzjonijiet: it-tuple oriġinali żżomm l-alias tiegħek fuq id-destinazzjoni, filwaqt li t-tuple tat-tweġiba ġġorr l-indirizz reali. Jekk it-tuple tat-tweġiba hija nieqsa, il-problema hija t-triq lura, mhux ir-regola. Jekk il-kontaturi ta' PREROUTING qatt ma ċċaqalqu, il-pakkett qatt ma wasal għal dak il-hook.

Kolliżjonijiet u t-tfittxija li taħdem l-ewwel

Żewġ firxiet differenti jistgħu jaħbtu, u ż-żewġ fallimenti jidhru bħal mina miksura mhux bħal regola ħażina. L-alias li taħseb irid ikun mhux użat tul it-triq kollha, u l-firxa reali l-bogħida m'għandhiex diġà teżisti fuq in-netwerk tiegħek. Duplikat jipproduċi traffiku intermittenti lejn host ħażin, li huwa aktar diffiċli jiġi djanjostikat minn konnessjoni rifjutata. Staqsi lit-tabella tar-rotot qabel iżżid regola.

Fuq il-gateway, ip route get 192.168.2.17 għandu jsemmi l-apparat tal-mina; bridge lokali jfisser li l-firxa l-bogħida hija mdellla u l-ebda regola nat mhija se ssewwiha. Jekk in-netwerk tiegħek diġà juża 192.168.2.0/24, erġa' nnumerra s-sit il-bogħid minflok ma tqiegħed immappjar fuq il-kolliżjoni.

Ttestjah minn klijent reali, imbagħad ippreservah

Ittestja minn magna li verament se tuża l-alias, mhux mill-gateway, għax traffiku ġġenerat lokalment qatt ma jaqsam PREROUTING bl-istess mod. Iftaħ konnessjoni ma' host wieħed bl-alias u ara l-kontaturi u l-entrata conntrack jidhru flimkien, imbagħad agħlaqha u kkonferma li l-entrata titlaq. Entrata skaduta tindika konnessjoni nofsha miftuħa, li normalment tfisser li t-tweġiba qatt ma rġgħet lura.

curl -sv http://10.50.1.17/ -o /dev/null
ss -tn dst 10.50.1.17
conntrack -L -d 10.50.1.17

Żewġ jew tliet konnessjonijiet ta' suċċess jippruvaw l-aritmetika, iżda ma jgħidu xejn dwar il-persistenza jew dwar l-inġinier li jmiss. Issejvja r-regoli fejn il-proċess tal-boot jaqrahom, li fuq Debian u Ubuntu jfisser iptables-save > /etc/iptables/rules.v4 b'netfilter-persistent attivat. Immappjar li jisparixxi wara reboot huwa agħar minn xejn, għax l-interruzzjoni tasal mingħajr bidla reċenti x'tissuspetta.

Ħalli nota ħdejn ir-regoli: il-firxa alias, il-firxa reali, ir-raġuni għall-par u liema naħa tista' tibda. Dik in-nota tifred disinn minn borġ ta' regoli li ħadd ma jissogra jħassar. Hija ssolvi wkoll il-mistoqsija ta' wara, meta s-sit il-bogħid iżid host u indirizz li ħadd ma kkonfigura diġà jwieġeb. Jekk in-nota tgħid li n-naħa l-bogħida għandha bżonn rotta lura, il-persuna li jmiss taf li t-tneħħija tar-regola tal-masquerade taqta' l-konnettività. Id-dokumentazzjoni hawn tiswa ftit; li terġa' tiskopri dipendenza fuq in-NAT fit-tlieta ta' filgħodu ma tiswiex.

Artikli relatati