Argitaratu LAN zerbitzua VPN atebidearen beraren helbidean
Jarraitu birbidalitako ataka bat bezerotik gailuraino eta atzera: mugatu helmugako itzulpena, gero erabaki erantzunak bideratzen diren edo itzultzen diren.
Atebidearen beraren tunel helbide batean LAN gailu bat aurkezteko NAT lerro bakarra behar da. Konexioak huts egiten du oraindik, erantzuten duen gailuak ez baitaki bezeroaren helbidea atebide horren bidez irisgarria denik. Jarraitu paketea bezerotik barrura, gero jarraitu erantzuna atzera kanpora, eta falta den erdia agerikoa bihurtuko da.
Hasi bezeroaren ikuspegitik
Adibide honetako bezeroa 10.62.0.0/24 VPN multzoan dago eta 10.62.0.1-ra konektatzen da 8080 atakan. Helbide hori atebidearena bera da, beraz paketea atebidearen kernelera iristen da, ez beste pare baten gailura. Atebidearen atzean, LAN 172.21.4.0/24 da. Atebideak 172.21.4.10 du, eta HTTP benetan zerbitzatzen duen gailua 172.21.4.40 da.
Beste VPN pare bati dagokion helbidea ez da trukagarria atebidearen zerbitzu helbidearekin. Bezeroa pare baten helbidera konektatzen bada, ez da atebideko inolako araurik sartzen, eta ibilbide oso hau kasu okerra da.
Mugatu helmugako itzulpena nahita
Bertsio estuak ataka bat aurkezten du eta helmuga soilik berridazten du. Paketeak bere protokoloa eta iturria gordetzen ditu, eta horregatik da interesgarria ibilbidearen gainerakoa.
iptables -t nat -A PREROUTING -i tun0 -s 10.62.0.0/24 -d 10.62.0.1 -p tcp --dport 8080 -j DNAT --to-destination 172.21.4.40:80
Protokolo eta ataka irizpiderik gabeko araua bertsio zabala da: bezeroak aukeratutako ataka edozein gordetzen du, helbidea soilik aldatuz. Zilegi da ostalari osoa aurkeztea bada, eta okerra zerbitzu bakarra asmoa bazen. Irakurri araua berriro eta egiaztatu interfazearen izena. Interfaze okerreko DNAT arauak ez du ezerrekin bat egiten, eta horrek arau falta deneko denbora-muga bera sortzen du eta ordu bat alferrik galtzen du gailuari begira.
Utzi birbidaltze mugak bat etortzen
Itzulpenak goiburua aldatzen du, baina ez du baimenik ematen. Lehenetsitako bota politikarekin birbidalitako fluxuak bere onarpena behar du, eta itzultze norabideak zure politikak ziurrenik baduen lotura ezarriaren araua behar du.
iptables -A FORWARD -i tun0 -o lan0 -d 172.21.4.40 -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
DNAT fluxu bakoitzerako baldintzarik gabeko onarpena diseinu hau baino zabalagoa da eta geroago beste norbaitek gehitutako mapaketak ere baimenduko ditu. Izenda ezazu helmuga eta ataka, eta utzi gainerakoa itxita. Birbidaltze arauko kontagailuak zeroan geratzen badira NAT kontagailuak igotzen diren bitartean, paketea zure araua baino lehen botatzen ari da. Irakurri katearen ordena bigarren kopia bat gehitu ordez.
Gailuak nolabait erantzun behar du
Itzulpenaren ondoren gailuak iturri bat ikusten du 10.62.0.0/24 barruan. Bere erantzuna lehenetsitako atebidera doa, hau da, LAN bideratzailera, ez VPN atebidera, ezerk bestela esaten ez badu. Bi antolamenduk konpontzen dute hori, eta ez dira baliokideak. Gailuan edo LAN bideratzailean jarritako bideak 10.62.0.0/24 172.21.4.10-ra bidaltzen du bezeroaren iturria gordez. Iturri itzulpen mugatu batek bezeroa atebidearen LAN helbidearen atzean ezkutatzen du ordea.
ip route add 10.62.0.0/24 via 172.21.4.10 dev eth1
iptables -t nat -A POSTROUTING -s 10.62.0.0/24 -d 172.21.4.40 -o lan0 -p tcp --dport 80 -j SNAT --to-source 172.21.4.10
Aukeratu zerbitzuak zer behar duen arabera. Bezero bakoitzeko politikak eta erregistro esanguratsuek bideratutako forma nahi dute; biderik ezin zaion gailu batek, edo LAN helbide bat ikusi behar duen zerbitzu batek, itzulitako formari erakusten diote. Ez jo masquerade arau global batera erantzun bakar bat funtziona dezan. Bezero bakoitza helmuga bakoitzetik ezkutatzen du eta isilka hausten ditu iturri helbideen mende dauden politikak.
Ez probatu atebidetik bertatik
Atebidean 10.62.0.1-ra sortutako eskaera OUTPUT kateatik irteten da, ez sarrerako PREROUTING-etik. Haren hutsegiteak edo arrakastak ez du ezer esaten bezeroari begira dagoen arauaz, eta horrela ondorioztatzen dute pertsonek lanean ari den arau bat hautsita dagoela.
conntrack -L | grep 172.21.4.40
tcpdump -ni any 'port 8080 or port 80'
Exekutatu benetako bezero eskaera bat eta irakurri biak. conntrack sarrerak aplikatutako itzulpena erakusten du, eta harrapaketek eskaera LANera pasa den eta erantzunik itzuli den tunelera erakusten dute. Erabili konexio berria arauak aldatu ondoren, lehendik dagoen egoerak lehenagoko mapaketa gordetzen baitu eta modu zaharrean huts egiten jarraituko du. Gero egiaztatu elkarrizketa osoa: gailuaren helbideak, birbidaltze baimenak eta erantzun bideak fluxu bera deskribatzen dute.