VPN ataka soilik onartzen duen suebakia ez da arau bat. Portu-zenbaki berari kasualitatez eragiten dioten hiru erabaki bereizi dira: sarrera-kateak erabakitzen du zer irits daitekeen prozesu lokal batera, berbideratze-kateak erabakitzen du zer igaro daitekeen ostalaritik tunel-bezeroen izenean, eta NAT taulak iturburu-helbidea berridazten du irteeran. Horietako bat gaizki eginez gero, emaitza gutxitan da etenaldi garbia. Bezeroak onartzen dituen baina ezer kargatzen ez duen ostalari bat lortzen duzu, edo itxita dirudien ostalari bat norbaitek kateen ordena irakurri arte.

Itxi ezin den ataka bakarra

VPN entzuleak ezin duzun aurreikusi helbideetatik konexioak onartu behar ditu, beraz zerbitzu publikoa da definizioz. Hori da diseinua oinarritzen den salbuespen bakarra: UDP ataka bat OpenVPNrako, UDP ataka bat WireGuarderako, TCP ataka bat SSL VPN baterako. Gainerako guztia tunelaren atzean dago, hau da, aplikazio-zerbitzuek tunelaren helbidera edo loopback-era lotu behar dute, ez interfaze guztietara.

Lotzeak, ordea, ez du betearazten. 0.0.0.0-ra lotutako prozesu bat iristeko modukoa da arau batek onartzen badu soilik, eta lehenetsitako politika inongo araurekin bat egin ez zuen trafikoarentzako ordezkoa da, ez ataka gobernatzen duen araua. Zure ukapenaren gainean jarritako onarpena onarpena izaten jarraitzen du, eta zerbitzu bat helbide publikotik kentzea hobekuntza independentea da, ez katearen ordezko.

Sarrera, berbideratzea eta NATek galdera desberdinak erantzuten dituzte

Sarrera-trafikoa ostalariari berari zuzenduta dago, beraz han bizi dira VPN entzulea eta administrazio-bidea. Berbideratze-trafikoak ostalaria zeharkatzen du, eta tunel-bezeroek hura behar dute net.ipv4.ip_forward=1-ekin batera. Klasikoa den erdi-hautsi konfigurazioak irteerako fluxua onartzen du eta itzulerako noranzkoa ahazten du, beraz bezeroak esku-ukaldia osatzen du eta ondoren ezer ez da kargatzen; ezarritako eta erlazionatutako trafikoarentzako conntrack arau batek noranzko hori estaltzen du.

NAT hirugarren galdera da. Postrouting berridazketarik gabe, berbideratutako paketeek tunelaren iturburu pribatuarekin uzten dute eta gorago baztertzen dira, ostalariaren haraindiko inongo sarek ez baitaki pool-a atzera bideratzen. Arau horretako iturburu-prefixak VPN pool-arekin bat etorri behar du, ez ostalariaren beraren helbidearekin, eta gauza bera gertatzen da bezeroen azpisarea izendatzen duen berbideratze-arauarekin.

IPv6 bigarren politika da, ez geroagoko pentsamendua. IPv4 kate zorrotza eta ip6tables politika irekia dituen ostalari batek ez du ezer itxi; zerbitzuak beste familia horren bidez iristeko modukoak dira oraindik. Edo islatu arau-multzoa ip6tables erabiliz, edo desgaitu IPv6 nahita interfaze publikoan, eta idatzi zein aukeratu duzun.

Irakurketa bakarrean irakur daitekeen oinarria

Hasi ukatzearekin eta gero gehitu ostalariak behar duen soila. Lehenik loopback eta erantzunak, gero administrazio-bidea, gero tunelaren entzulea, gero bezeroentzako berbideratze-politika:

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 MASQUERADE

Interfaze-izenak, ataka eta pool-a leku-markak dira; irakurri itzazu zerbitzaritik kopiatu beharrean. Emaitza gordetzea hura idaztea bezain garrantzitsua da, memorian soilik bizi den arau-multzoa hurrengo berrabiaraztean desagertu eta ostalaria isilka berriro irekitzen baitu. Egin itzazu iraunkor banaketaren mekanismoarekin, eta gorde kopia bat makinatik kanpo makina abiaraziko ez den egunerako.

Azken ataka ixtea ostalaria galdu gabe

Diseinuan tranpa bat dago. SSH tunelaren bidez soilik badago, huts egindako VPN zerbitzu batek SSH ere eramanen du, eta itzultzeko bide bakarra inoiz ireki ez duzun kontsola bat izan daiteke. Azken ataka publikoa itxi aurretik, egiaztatu kontsola hori badagoela eta benetan erabil dezakezula, edo mantendu tunelaren mende ez dagoen administrazio-bide estu bat: SSH helbide finko batetik, gakoak soilik, pasahitzaren autentifikazioa itzalita.

Aplikatu aldaketa jada ezarrita dagoen saio batetik, iragazi behar duzun konexioaren bidez eta ez. Programatu atzera-egite bat, akats bat iraunkor bihurtu beharrean iraungi dadin, adibidez aurreko arau-multzoa leheneratzen duen systemd-run --on-active=10min lan bat, eta mantendu bigarren SSH saio bat irekita lehena probatzen duzun bitartean. Gero egiaztatu atzera-egite lanak benetan abiarazten duela, probatu gabeko berreskuratzeak ez berreskuratzeak bezainbeste balio baitu.

Egiaztatu bidea, ez scripta

Irakurri kargatutako arauak, haiek kargatu behar zituen fitxategia eta ez. Baimendutako kanpoko ostalari batetik, egiaztatu aurreikusitako atakek soilik erantzuten dutela; tunelaren barrutik, egiaztatu argitaratu nahi zenituen zerbitzuak iristeko modukoak direla. Lehenespenez ukatzen duen politika batek tunel-trafikoa ere blokeatzen badu, itxura berekoa da itxialdi funtzional batekin norbaitek erabiltzen saiatu arte.

iptables -S
iptables -t nat -S
ss -lntup
ip -4 addr show

Idatzi baimendutako ataka, bezeroen pool-a, tunelaren interfazea, administrazio-iturburua eta kontsola-prozedura konfigurazioaren ondoan. Pool-ean edo interfazearen izenean egindako hurrengo aldaketak iragazkian eta NAT arauan batera egokitu behar dira, bestela ostalaria erdi-irekita egoerara itzuliko da inork nabaritu gabe.

Ohitura batek arau-multzoak baino gehiago balio du: aldaketa bakoitzaren ondoren, frogatu berbideratze-bidea bezeroen eskaera batekin eta berreskuratze-bidea bigarren saio batekin. Erabili ez duzun itxialdia hipotesia besterik ez da.

Erlazionatutako artikuluak