OpenVPNen tunel osoak SSH saioa mozten du: konpondu itzulera-bidea
Bide lehenetsiak SSH erantzunak tunelera bidaltzen ditu. Ainguratu peer-a, iragazi redirect-gateway edo bideratu iturriaren arabera makina galdu aurretik.
SSH bidez heltzen zaren makina batean OpenVPN bezero osoa pizteak segundu batean moz dezake saioa, eta makinak ez du ezer gaizki egiten. Tunelak ez du aldatzen paketeek zerbitzarira nola iristen diren; erantzunak nola ateratzen diren aldatzen du. Bide lehenetsiak tun0 erakusten duenean, zure SSH bezeroari erantzun bat hornitzailearen sarera joaten da, eta sare horrek ez du zure helbidera itzultzeko biderik. Konexioa zintzilik geratzen da, hurrengo saiakerak denbora-muga gainditzen du, eta daemonak portu 22an entzuten jarraitzen du denbora osoan.
Irakurri bideratze-taula VPN erregistroa irakurri aurretik. Erregistroak tunela altxatu dela esango du, eta arrazoi du. Galdera erantzun bakoitza zein interfazeri ematen zaion da, eta hori pakete bakoitzeko bilaketa da tunelak berriki berridatzi duen taula batean.
Zergatik ateratzen den erantzuna ate okerretik
Sarrerako paketeak oraindik interfaze fisikora iristen dira, VPN bezero batek ezin duelako aldatu internet nola iristen den zure zerbitzariaren helbide publikora. Erantzunak erabaki bereizia dira: pakete bakoitzeko kernelak helmuga bilatzen du, eta --redirect-gateway ondoren sarrera lehenetsiak tunela dio. Hornitzailearen irteerak zerbitzatzen ez duen helmuga bat ikusten du eta paketea botatzen du.
OpenVPN beraren babesak helmuga bakarra estaltzen du zehazki. 2.6 eskuliburuak --redirect-gateway sekuentzia gisa deskribatzen du: VPN peerrako ostalari-bide bat gehitzen du tunelaren aurretik erabiltzen zen atebidearen bidez, trafiko zifratuak bere buruan atzera egin ez dezan, eta gero bide lehenetsia ordezten du. Ostalari-bide hori peerrarentzat bakarrik da. Zure SSH bezeroa interneteko beste helbide bat besterik ez da eta ez du inolako salbuespenik jasotzen.
Balio luke aurretik baztertzeak aurrizki-errore bat. ip route add -net 0.0.0.0 gw 10.8.0.1 dev tun0 luzerarik gabe 0.0.0.0 helbide bakarrarekin bat dator, ez internetekin; 0.0.0.0/0 izan behar du. Eta lehenetsia hartzeak tunelaren garraio propioa hausten badu, gehitu amaiera-puntua ostalari-bide gisa interfaze fisikoaren bidez, hornitzailearen benetako helbidea erabiliz.
Ainguratu zure SSH bezeroaren helbidea berehalako konponketa baterako
Konponketa bizkorrenak zure bezeroaren helbiderako ostalari-bide bat da, tunela existitu aurretik zerbitzariak erabili zuen atebidearen bidez. Zure aldetik, aurkitu zerbitzariak ikusiko duen helbidea, eta gero irakurri zerbitzariaren taula atebide zaharra ezagutzeko:
curl -s https://ifconfig.co
ip route
Zerbitzarian, gehitu salbuespena bezeroa abiarazi aurretik. Hemen helbideak leku-markak dira; forma da garrantzitsua:
sudo ip route add 80.128.240.55 via 192.168.178.1
Hau da jakinarazitako kasuan erabilitako konponketa, eta berehala funtzionatzen du. Hausteko modukoa ere bada bi eratan aurrez ikus daitezkeenak: bidea berrabiaraztean desagertzen da, eta oker bihurtzen da zure ISPk beste helbide bat ematen dizun unean. Trata ezazu larrialdiko neurri gisa eta egin ezazu iraunkor nahita, sare-unitate edo dispatcher kako baten bidez, edo onartu aldi baterakoa dela eta idatzi berreskuratze-bidea.
Eragotzi bezeroari bide lehenetsia hartzea
Aukera garbiagoa tunelak bide lehenetsia inola ere ordez ez dezan eragoztea da. route-nopull, --client edo --pull-rekin erabilita, bultzatutako aukerak onartzen ditu bideak izan ezik, block-outside-dns eta DHCP estiloko aukerak, hala nola DNS zerbitzariak, beraz behar dituzun aurrizkiak soilik gehitzen dituzu. Tresna estuagoa tira-filtroa da, direktiba arazo bat botatzen du eta gainerakoa mantentzen du:
route-nopull
pull-filter ignore "redirect-gateway"
Erabili bat edo bestea, ez biak, eta izan argi zer aldatzen den. Tunelaren bidez bide lehenetsirik gabe, zerbitzariak ez du internetez arakatzen hornitzailearen bidez; esplizituki bideratu duzunera soilik iristen da. Tunel osoa konfigurazioaren helburu osoa bazen, hau da palanka okerra eta goiko ostalari-bidea da egokia.
Zatitu itzulera-bidea iturriaren edo konexioaren arabera
Sarrerako helbidea egonkorra denean, iturri-arau batek erantzunak lokal mantentzen ditu tunelaren bere bideak ukitu gabe. Eman interfaze fisikoaren helbideari LAN aurrizkia eta fisika lehenetsia dituen bere taula, eta gero hautatu taula hori hortik datorren trafikorako:
ip rule add from 192.168.1.11 table 128
ip route add table 128 to 192.168.1.0/24 dev eth0
ip route add table 128 default via 192.168.1.1
Honek funtzionatzen du sarrerako SSH konexio bati erantzunak bezeroa konektatu zen helbidetik irteten direlako. Jakinarazitako kasu batek, sarrerako zerbitzu guztiek lanean jarraitu behar zutenean, forma zehatz hau erabili zuen. Sarrerako helbidea flotatzen duenean edo bidea dinamikoa denean, markatu konexioa: jarri conntrack marka bat interfaze fisikotik iristen den lehen paketeari, kopiatu OUTPUTeko erantzun-paketeetara, eta bideratu markatutako paketeak atebide fisikora seinalatzen duen taula baten bidez.
iptables -t mangle -A PREROUTING -i eth0 -m conntrack --ctstate NEW -j CONNMARK --set-mark 1234
iptables -t mangle -A OUTPUT -m connmark --mark 1234 -j MARK --set-mark 4321
ip route add default via 192.168.1.1 dev eth0 table 3412
ip rule add fwmark 4321 table 3412
Eduki bereizita konexio-marka, firewall marka eta taula-zenbakia probatzen duzun bitartean. Zenbaki bat bi roletarako berrerabiltzeak zuzena dirudien eta pakete okerrekin bat egiten duen araua sortzen du. Taularen sarrera lehenetsiak via behar du LAN atebidearekin Ethernet lotura arrunt batean; dev eth0 soilak bakarrik funtzionatzen du interfazea puntutik puntura denean edo hurrengo jauzia beste modu batera ebazten denean. Jakinarazitako Jessie ostalaria ustekabean forma soila funtzionatzen zuen lotura batean zegoen, eta hori ez da kopiatzeko banaketa-araua.
Egiaztatu kanpoan geratu gabe
Ez probatu deskonektatuz. Eutsi lehen saioa irekita, altxatu tunela, eta galdetu kernelari zein bide hartuko lukeen zure helbideak:
ip route get 80.128.240.55
Erantzunak interfaze fisikoa eta atebide zaharra izendatu beharko lituzke, ez tunela. Ondoren ireki bigarren SSH konexio bat; hori da benetako proba, saio zaharrak konexio berri batek erreproduzitu ezin duen egoeran bizirik iraun baitezake. Bigarrena zintzilik geratzen bada lehenak oraindik erantzuten duen bitartean, arauak ez zuen inoiz garrantzia duen trafikoarekin bat egin, eta markak edo iturri-helbidea dira begiratu beharreko lekua.
Eduki banda kanpoko kontsola bat eskuragarri ariketa osoan zehar. Bere sarbide-bide bakarra zu apurtu berri duzun tunela den zerbitzari bat ezin da tunel horren bidez konpondu, eta atzerako bidea errazagoa da gehitu dituzun taula-zenbakiak eta aurrizkiak idatzita dituzunean.