Kas soovite tööl kasutada Linuxit, kuid ettevĂ”tte VPN ei luba? Siis vĂ”ib see artikkel aidata, kuid see ei ole kindlasti kindel. Soovin eelnevalt hoiatada, et ma ei mĂ”ista vĂ”rguadministreerimise kĂŒsimustest hĂ€sti, seega ei vĂ€lista, et olen kĂ”ik valesti teinud. Teisalt vĂ”ib juhtuda, et suudan kirjutada juhendi nii, et see oleks tavalistele inimestele arusaadav, nii et soovitan proovida.
Artiklis on palju ĂŒleliigset teavet, kuid ilma nende teadmisteta ei oleks ma suutnud lahendada probleeme, mis mul ootamatult seoses VPN-i seadistamisega tekkisid. Arvan, et igaĂŒhel, kes pĂŒĂŒab seda juhendit rakendada, vĂ”ivad tekkida probleemid, mida mul ei olnud, ja loodetavasti aitab see ĂŒleliigne teave neid probleeme iseseisvalt lahendada.
Enamik juhendis kasutatavaid kĂ€ske tuleb tĂ€ita sudo kaudu, mis on lĂŒhiduse huvides vĂ€lja jĂ€etud. Pidage seda meeles.
Enamik IP-aadresse on tugeva obfuskeerimise all, seega kui nĂ€ete sellist aadressi nagu 435.435.435.435 â peaks seal olema mingi normaalne IP, mis on teie juhtumi jaoks spetsiifiline.
Mul on Ubuntu 18.04, kuid arvan, et mÔningate muudatustega saab juhist rakendada ka teistele distributsioonidele. Siiski, see tekst kÀsitleb Linuxit == Ubuntu.
Cisco Connect
Need, kes kasutavad Windowsi vĂ”i MacOS-i, saavad meie ettevĂ”tte VPN-iga ĂŒhendada lĂ€bi Cisco Connect, kuhu tuleb sisestada gateway aadress ja igaĂŒhenduse korral sisestada parool, mis koosneb fikseeritud osast ja Google Authenticatori genereeritavast koodist.
Linuxi puhul ei Ônnestunud Cisco Connecti kÀivitada, kuid leidsin soovituse kasutada openconnect'i, mis on loodud just Cisco Connecti asendamiseks.
Openconnect
Ideaaljuhul peaks Ubuntus olema openconnect'i jaoks spetsiaalne graafiline liides, kuid minul see ei töötanud. VÔib-olla on see ka parem.
Ubuntus installitakse openconnect paketihalduri kaudu.
apt install openconnectOtse pĂ€rast installimist saab proovida VPN-iga ĂŒhenduda.
openconnect --user poxvuibr vpn.evilcorp.comvpn.evilcorp.com on vÀljamÔeldud VPNi aadress.
poxvuibr on vÀljamÔeldud kasutajanimi.
openconnect palubab kĂŒsib parooli, mis koosneb fikseeritud osast ja Google Authenticator'i koodist, ning proovib seejĂ€rel vpn-iga ĂŒhendust luua. Kui see Ă”nnestub, palju Ă”nne, saate julgelt vaheosa vahele jĂ€tta, kus on palju vaeva, ja liikuda otse openconnect'i taustal töötamise punkti juurde. Kui see ei toimi, siis vĂ”ib jĂ€tkata. Kuigi, kui see Ă”nnestus nĂ€iteks kontori kĂŒlaliswifi kaudu, siis vĂ”ib-olla on varane rÔÔmustamine â proovige kodus sama protseduuri uuesti.
Sertifikaat
Suure tÔenÀosusega ei kÀivitu miski ning openconnect'i vÀljund nÀeb vÀlja jÀrgmiselt:
POST https://vpn.evilcorp.com/
Ăhendatud 777.777.777.777:443
SSL lÀbirÀÀkimised vpn.evilcorp.com-iga
Serveri sertifikaadi kontrollimine ebaÔnnestus: allkirjaandjat ei leitud
VPN-serveri "vpn.evilcorp.com" sertifikaadi kontrollimine ebaÔnnestus.
PÔhjus: allkirjaandjat ei leitud
Kuna usaldada seda serverit tulevikus, lisage see vÔib-olla oma kÀsureale:
--servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Sisestage 'jah', et aktsepteerida, 'ei', et katkestada; miski muu, et vaadata: fgets (stdin): Operatsioon jĂ€tkub praegu.Ăhelt poolt on see ebameeldiv, kuna VPN-iga ĂŒhendust ei saanud, kuid teisalt on pĂ”hjus, kuidas seda probleemi lahendada, pĂ”himĂ”tteliselt arusaadav.
Siin server saatis meile sertifikaadi, mille alusel on vĂ”imalik kindlaks teha, et ĂŒhendus toimub just kohaliku ettevĂ”tte serveriga, mitte kellegi pahatahtliku petisega, ja sĂŒsteemile pole see sertifikaat teada. SeetĂ”ttu ei suuda ta kontrollida, kas server on autentne vĂ”i mitte. Ja seetĂ”ttu lĂ”petab ta igaks juhuks tegevuse.
Kuna openconnect peab siiski serveriga ĂŒhenduma, tuleb talle selgelt öelda, milline sertifikaat VPN-serverilt peab tulema, kasutades vĂ”tit âservercert.
Ja et teada saada, millise sertifikaadi server meile saatis, saame seda otse openconnecti vĂ€ljatrĂŒkist. Just sellest osast:
Et usaldada seda serverit tulevikus, lisage see oma kÀsureale:
--servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Sisestage 'jah', et aktsepteerida, 'ei', et katkestada; midagi muud, et vaadata: fgets (stdin): Operatsioon kĂ€ib praegu.Sellise kĂ€suga saab proovida uuesti ĂŒhenduda.
openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.comVĂ”ib-olla nĂŒĂŒd toimib, siis vĂ”ib edasi minna. Aga mulle isiklikult nĂ€itas Ubuntu seda sĂ”numit sellisel kujul.
POST https://vpn.evilcorp.com/
Ăhendatud 777.777.777.777:443
SSL-i lÀbirÀÀkimised vpn.evilcorp.com-ga
Serveri sertifikaadi kontrollimine ebaÔnnestus: allkirja leidmata
Ăhendatud HTTPS-is vpn.evilcorp.com
XML POST on lubatud
Palun sisestage oma kasutajanimi ja parool.
POST https://vpn.evilcorp.com/
Sai CONNECT vastuse: HTTP/1.1 200 OK
CSTP ĂŒhendatud. DPD 300, Keepalive 30
DTLS seadistamine ebaÔnnestus; kasutades selle asemel SSL-i
Ăhendatud kui 192.168.333.222, kasutades SSL-i
NOSSSSSHHHHHHHDDDDD
3
NOSSSSSHHHHHHHDDDDD
3
RTNETLINK vastused: Fail eksisteerib
/etc/resolvconf/update.d/libc: Hoiatust: /etc/resolv.conf ei ole sĂŒmboolne link /run/resolvconf/resolv.conf-ile/etc/resolv.conf
# Generated by NetworkManager
search gst.evilcorpguest.com
nameserver 127.0.0.53/run/resolvconf/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 192.168.430.534
nameserver 127.0.0.53
search evilcorp.com gst.publicevilcorp.comhabr.com lahendab, aga sinna ei saa siseneda. Aadressid nagu jira.evilcorp.com ei lahene ĂŒldse.
Mis siin juhtus, ei ole mulle selge. Kuid eksperiment nÀitab, et kui lisada /etc/resolv.conf faili rida
nameserver 192.168.430.534siis hakkavad aadressid VPN-i sees maagiliselt lahenduma ja nendega saab liikuda, st et see, mida kasutatakse aadresside lahendamiseks, vaatab just nimelt /etc/resolv.conf, mitte kuskile mujale.
Et VPN-iga ĂŒhendus on olemas ja see töötab, saab veenduda ka ilma muudatusteta /etc/resolv.conf, piisab, kui sisestada brauserisse mitte sĂŒmboolne ressursi nimi VPN-ist, vaid selle IP-aadress
KokkuvÔttes on kaks probleemi
- VPN-i ĂŒhendamisel ei vĂ”eta tema DNS-i kasutusele
- kogu liiklus lÀheb lÀbi VPN-i, mis ei luba interneti kasutada
Mida teha, rÀÀgin nĂŒĂŒd, aga kĂ”igepealt veidi automatiseerimisest.
Automaatne fikseeritud parooli osa sisestamine
Seni olete tÔenÀoliselt juba oma parooli sisestanud vÀhemalt viis korda ja see protsess on teid uudistest vÀsitanud. Esiteks, kuna parool on pikk, ja teiseks, kuna sisestamisel tuleb mahtuda fikseeritud ajavahemikku.
Kahjuks ei jÔudnud probleemi lÔplik lahendus artiklisse, kuid saate teha nii, et fikseeritud parooli osa ei peaks mitu korda sisestama.
Oletame, et fikseeritud parooli osa on fixedPassword ja Google Authenticator'i osa on 567 987. Kogu parooli, openconnect, saab edastada tavalise sisendiga, kasutades argumenti âpasswd-on-stdin.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com --passwd-on-stdinNĂŒĂŒd saab pidevalt naasta viimati sisestatud kĂ€su juurde ja vahetada seal ainult Google Authenticator'i osa.
Korporatiivne VPN ei luba internetti surfata.
Ăldiselt ei ole vĂ€ga mugav, et Habrisse minemiseks peab kasutada eraldi arvutit. Stack Overflow'ist kopeerimise vĂ”imaluse puudumine vĂ”ib töö tĂ€ielikult seiskada, seega tuleb midagi teha.
Peab kuidagi organiseerima, et kui on vaja ressursse sisemisest vĂ”rgust kĂŒlastada, siis Linux kasutaks VPN-i, ja kui on vaja Habrisse siseneda â siis internetti.
OpenConnect, pĂ€rast kĂ€ivitamist ja VPN-iga ĂŒhenduse loomist, kĂ€ivitab spetsiaalse skripti, mis asub aadressil /usr/share/vpnc-scripts/vpnc-script. Skripti sisendiks on mĂ”ned muutujad, mille pĂ”hjal ta seadistab VPN-i. Kahjuks ei suutnud ma aru saada, kuidas jagada liiklust firma VPN-i ja muu interneti vahel sisseehitatud skripti abil.
Ilmselt on just selliste jaoks nagu mina vÀlja töötatud tööriist vpn-slice, mis vÔimaldab suunata liiklust kahe kanali kaudu ilma liigse vaevata. Noh, tantsida tuleb, aga ƥamaan olema ei pea.
Liikluse jagamine vpn-slice'i abil
Esiteks tuleb installida vpn-slice, selle osas tuleb iseseisvalt hakkama saada. Kui kommentaarides tekib kĂŒsimusi, kirjutan selle kohta eraldi postituse. Kuid see on tavaline programm Pythonis, seega ei tohiks raskusi olla. Mina installisin selle virtualenvi abil.
SeejĂ€rel tuleb tööriista rakendada, kasutades lippu âscript, mÀÀrates openconnect, et kasutada vpn-slice standardse skripti asemel.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 " vpn.evilcorp.com âscripti antakse string kĂ€sust, mis tuleb kutsuda vĂ€lja skripti asemel. ./bin/vpn-slice â tee tĂ€idetava faili vpn-slice juurde, 192.168.430.0/24 â aadresside mask, mille kaudu tuleb vpn-is minna. Siin mĂ”eldakse, et kui aadress algab 192.168.430 â siis tuleb seda aadressi otsida vpn-i seest.
NĂŒĂŒd peaks olukord olema peaaegu normaalne. Peaaegu. NĂŒĂŒd on vĂ”imalik pÀÀseda Habrisse ja sisevĂ”rgu ressurssidesse IP kaudu, kuid ei saa sisevĂ”rgu ressurssidesse siseneda sĂŒmboolse nime kaudu. Kui mÀÀrate hosts failis sĂŒmboolse nime ja aadressi vastavuse, peaks kĂ”ik toimima. Ja see töötab, kuni IP muutub. Linux oskab nĂŒĂŒd internetti pÀÀseda vĂ”i sisevĂ”rku siseneda sĂ”ltuvalt IP-st. Kuid aadressi mÀÀramiseks kasutatakse endiselt mitte-korporatiivset DNS-i.
Probleem vĂ”ib esineda ka sellisel kujul â tööl on kĂ”ik normaalne, aga kodus pÀÀseb sisevĂ”rgu ressurssidesse vaid IP kaudu. See on tingitud sellest, et kui oled ĂŒhendatud ettevĂ”tte Wi-Fi-iga, kasutatakse DNS-i, mis on samuti ettevĂ”tte oma, ja seal lahendatakse VPN-i kaudu sĂŒmboolseid aadresse, kuigi sellise aadressi kaudu ilma VPN-ita pÀÀseda ei saa.
Hosts faili automaatne muutmine
Kui vpn-slice viisakalt paluda, vĂ”ib ta pĂ€rast VPN-i loomist minna tema DNS-i, leida sealt vajalike ressursside IP-aadresse nende sĂŒmboolsate nimede jĂ€rgi ja kirjutada need hosts-faili. VPN-i vĂ€ljalĂŒlitamisel need aadressid hosts-ist eemaldatakse. Selleks tuleb edastada sĂŒmboolseid nimesid vpn-slice'ile argumentidena. Nii.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com NĂŒĂŒd peaks kĂ”ik töötama nii kontoris kui ka rannas.
Otsida kÔigi alamdomeenide aadresse DNS-ist, mille VPN andis
Kui aadresse sisevĂ”rgus on vĂ€he, siis lĂ€henemine hosts-faili automaatse muutmisega on tĂ€iesti toimiv. Kuid kui ressursse vĂ”rgus on palju, peate pidevalt lisama skripti ridu, nagu zoidberg.test.evilcorp.com, zoidberg â see on ĂŒks testimise seise.
Aga nĂŒĂŒd, kui me natuke aru saame, on seda vajadust vĂ”imalik kĂ”rvaldada.
Kui pÀrast VPN-i loomist vaadata /etc/hosts, vÔib nÀha sellist rida
192.168.430.534 dns0.tun0 # vpn-slice-tun0 AUTOCREATED
Ja resolv.conf-ile on lisatud uus rida. ĂhesĂ”naga, vpn-slice suudab kuidagi mÀÀrata, kus DNS-server VPN-i jaoks asub.
NĂŒĂŒd tuleb teha nii, et Linux lĂ€heks ettevĂ”tte DNS-i, et mÀÀrata IP-aadress domeeninime jaoks, mis lĂ”peb evilcorp.com, ning kui on vaja midagi muud, siis vaikimisi DNS-i.
Olen ĂŒsna kaua guugeldanud ja avastanud, et selline funktsionaalsus on Ubuntus vĂ€lja pakkuda. See tĂ€hendab, et on vĂ”imalus kasutada nimede resolvamiseks lokaalset DNS-serverit dnsmasq.
Seega on vÔimalik teha nii, et Linux lÀheb IP-aadresside pÀrast alati kohaliku DNS-serveri juurde, mis omakorda, sÔltuvalt domeeninimest, otsib IP-d vastavalt vÀlisele DNS-serverile.
KĂ”igi, mis on seotud vĂ”rkude ja vĂ”rguĂŒhendustega, haldamiseks kasutab Ubuntu NetworkManagerit, ja graafiline liides, nĂ€iteks Wi-Fi ĂŒhenduse valimiseks on lihtsalt front sellele.
Peame natuke tema konfiguratsioonides ringi vaatama.
- Loo fail aadressil /etc/NetworkManager/dnsmasq.d/evilcorp
address=/.evilcorp.com/192.168.430.534
Pöörake tÀhelepanu punktile evilcorp ees. See annab dnsmasq'le mÀrku, et kÔik aladomeenid evilcorp.com tuleb otsida just ettevÔtte DNS-ist.
- Ătle NetworkManagerile, et nimede resolveerimiseks tuleb kasutada dnsmasq'i.
network-manageri konfiguratsioon asub veebilehes /etc/NetworkManager/NetworkManager.conf. Peate sinna lisama:
[main]
dns=dnsmasq
- TaaskÀivitage NetworkManager
service network-manager restartNĂŒĂŒd, pĂ€rast VPN-i ĂŒhendamist openconnect'i ja vpn-slice'i abil, mÀÀratakse IP korralikult, isegi kui sĂŒmboolseid aadresse vpnslice'i argumentidesse ei lisata.
Kuidas minna VPN-i kaudu erinevatesse teenustesse
PĂ€rast VPN-iga ĂŒhenduse loomise edukust olin paar pĂ€eva vĂ€ga Ă”nnelik, kuid seejĂ€rel selgus, et kui VPN-i ei ĂŒhendata kontori vĂ”rgust, ei tööta e-post. Tunnetus on tuttav, eks?
Meie e-post on aadressil mail.publicevilcorp.com, mis tÀhendab, et see ei lÀhe dnsmasq reegli alla ja postiserveri aadressi otsitakse avaliku DNS-i kaudu.
Aga kontoris kasutatakse ikkagi DNS-i, kus see aadress olemas on. Nii ma arvasin. Tegelikult, pÀrast dnsmasq-sse rea lisamist
address=/mail.publicevilcorp.com/192.168.430.534
situatsioon ei muutunud. IP jÀi samaks. Olin sunnitud tööle minema.
Ja juba hiljem, kui sĂŒvenesin olukorda ja natuke lahendasin probleemi, ĂŒtles ĂŒks tark inimene mulle, kuidas seda lahendada. Pidi ĂŒhenduma postiserveriga mitte lihtsalt nii, vaid lĂ€bi VPN-i.
Ma kasutan vpn-slice'i, et VPN-i kaudu sirvida aadresse, mis algavad 192.168.430. Algselt ei ole mitte ainult postiserveri sĂŒmboolne aadress evilcorp alamdomeen, vaid ka selle IP-aadress ei alga 192.168.430. Ja loomulikult ei luba ta kedagi oma ĂŒldvĂ”rgustikku.
Kuna Linux peab postiserverisse ja VPN-i ĂŒhenduma, tuleb lisada see vpn-slice'i. Oletame, et postiserveri aadress on 555.555.555.555.
echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 555.555.555.555 192.168.430.0/24" vpn.evilcorp.com VPN-i kĂ€ivitamise skript ĂŒhe argumendiga
KÔik see on muidugi pigem ebamugav. Jah, teksti vÔib salvestada faili ja kopeerida terminali, mitte sisestada kÀsitsi, kuid see pole ikkagi meeldiv. Protsessi lihtsustamiseks saab kÀsu mÀhkida skripti, mis asub PATH-is. Siis peab sisestama ainult Google Authenticatorist saadud koodi.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com Kui skript panna connect~evilcorp~ kausta, saab lihtsalt kirjutada terminalis
connect_evil_corp 567987Kuid nĂŒĂŒd peab siiski hoidma avatud terminali, kus openconnect on kĂ€ivitunud.
openconnect'i taustal kÀivitamine
Ănneks on openconnecti autorid meie eest hoolitsenud ja lisanud programmile spetsiaalse vĂ”tme âbackground, mis vĂ”imaldab programmil pĂ€rast kĂ€ivitamist taustal töötada. Kui selle nii kĂ€ivitada, saab konsooli pĂ€rast kĂ€ivitamist sulgeda.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com NĂŒĂŒd on vaid arusaamatu, kuhu logid lĂ€hevad. Logisid me tegelikult eriti ei vaja, aga kes teab. Openconnect vĂ”ib need suunata syslog'i, kus nad sĂ€ilivad puutumatuna ja turvaliselt. Seda tuleks lisada kĂ€su vĂ”tmena âsyslog.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com Ja nii ongi, et openconnect töötab kusagil seal taustal ja ei sega kedagi, kuid kuidas seda peatada, ei ole selge. Loomulikult saab filtreerida ps vĂ€ljundit grepiga ja otsida protsessi, mille nimes on openconnect, kuid see on natuke tĂŒĂŒtu. AitĂ€h autoritele, kes on ka sellele mĂ”elnud. Openconnect'is on vĂ”tme âpid-file, millega saab openconnect'ile öelda, et see kirjutaks oma protsessi ID faili.
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com
--pid-file ~/vpn-pidNĂŒĂŒd saab protsessi alati lĂ”petada kĂ€suga
kill $(cat ~/vpn-pid)Kui protsessi pole, siis kill protesteerib, kuid ei viska tÔrget. Kui faili pole, siis ei juhtu ka midagi hirmsat, nii et vÔib julgelt protsessi esimeses skripti real tappa.
kill $(cat ~/vpn-pid)
#!/bin/sh
echo "fixedPassword$1" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
--user poxvuibr
--passwd-on-stdin
--background
--syslog
--script "./bin/vpn-slice 192.168.430.0/24 jira.vpn.evilcorp.com git.vpn.evilcorp.com " vpn.evilcorp.com
--pid-file ~/vpn-pidNĂŒĂŒd vĂ”ite arvuti sisse lĂŒlitada, avada konsooli ja kĂ€ivitada kĂ€sk, edastades sellele koodi Google Authenticatorist. Konsooli saab hiljem kinni panna.
Ilma vpn-slice'ita. Ilma jÀrelsÔnata
MĂ”ista, kuidas elada ilma vpn-slice'ita, osutus vĂ€ga keeruliseks. Pidin palju lugema ja guugeldama. Ănneks, kui olin probleemiga nii kaua tegelenud, loeti tehnilisi juhendeid ja isegi man openconnect'i nagu kaasahaaravaid romaane.
Tulemuseks selgitasin, et vpn-slice, nagu ka originaalskript, muudab marsruuditaine, et vÔrke jagada.
Marsruuditabel
See on lihtsustatult öeldes selline tabel, mille esimeses veerus on see, kust peaks algama aadress, millega Linux tahab minna, ja teises, millise vÔrguaadapti kaudu seda aadressi lÀbida. Tegelikult on veerge rohkem, kuid see ei muuda sisu.
Marsruuditabeli nÀgemiseks peate kÀivitama kÀsu ip route
default via 192.168.1.1 dev wlp3s0 proto dhcp metric 600
192.168.430.0/24 dev tun0 scope link
192.168.1.0/24 dev wlp3s0 proto kernel scope link src 192.168.1.534 metric 600
192.168.430.534 dev tun0 scope link Siin vastutab iga rida selle eest, kuidas minna, et saata sÔnum teatud aadressile. Esimesena kÀib kirjeldus, kust aadress peaks algama. Selleks, et mÔista, mis tÀhendab 192.168.0.0/16, tuleks otsida, mis on IP-aadressi mask. PÀrast dev jÀrgneb adaptori nimi, kuhu sÔnum saata.
VPN jaoks on Linux loonud virtuaalse adapteri â tun0. Rida, mis tagab, et kĂ”ik aadressid, mis algavad 192.168, voolavad lĂ€bi selle, on
192.168.0.0/16 dev tun0 scope link Samuti saab vaadata praegust marsruuditabeli seisundit kĂ€su abil route -n (IP-aadressid on oskuslikult anonĂŒĂŒmsed) See kĂ€sk annab tulemused teises vormis ja on tegelikult vananenud, kuid selle vĂ€ljundit kohatakse sageli juhendites internetis ning tuleb osata seda lugeda.
IP-aadressi marsruudi algust saab mĂ”ista siht-kohtade ja Genmaski kombinatsiooni kaudu. Need IP-aadressi osad, millele Genmaskis vastavad numbrid 255, arvestatakse, ning need, kus on 0 â mitte. Seega sihtkoht 192.168.0.0 ja Genmask 255.255.255.0 tĂ€hendab, et kui aadress algab 192.168.0, siis pĂ€ring toimub selle marsruudi kaudu. Kui sihtkoht on 192.168.0.0, aga Genmask 255.255.0.0, siis selle marsruudi kaudu liikuvad pĂ€ringud aadressidele, mis algavad 192.168.
Selleks, et mÔista, mida vpn-slice tegelikult teeb, otsustasin vaadata tabelite olekuid enne ja pÀrast.
Enne VPN-i sisselĂŒlitamist oli olukord selline
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0PÀrast openconnecti kÀivitamist ilma vpn-sliceta nÀgi see vÀlja selline
route -n
Kernel IP routing table
Sihtkoht LĂŒliti Genmask Lipud Meetod Viide Kasutaja Iface
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 tun0
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0
192.168.430.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.430.534 0.0.0.0 255.255.255.255 UH 0 0 0 tun0Ja pÀrast openconnect'i kÀivitamist koos vpn-slice'iga, on see nii.
Kernel IP routing table
Sihtkoht LĂŒliti Genmask Lipud Meetod Viide Kasutaja Iface
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0
222.222.222.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp3s0
333.333.333.333 222.222.222.1 255.255.255.255 UGH 0 0 0 wlp3s0
192.168.430.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.430.534 0.0.0.0 255.255.255.255 UH 0 0 0 tun0On nĂ€ha, et kui vpn-slice'i ei kasutada, siis openconnect ĂŒtleb otseselt, et kĂ”ikidele aadressidele, vĂ€lja arvatud eraldi nĂ€idatud, tuleb minna vpn'i kaudu.
Siin:
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 tun0Seal on kohe kĂ”rval nĂ€idatud veel ĂŒks tee, mida tuleb kasutada, kui aadress, mille kaudu Linux pĂŒĂŒab minna, ei vasta ĂŒhele maskidest tabelis.
0.0.0.0 222.222.222.1 0.0.0.0 UG 600 0 0 wlp3s0Siin on juba öeldud, et sellisel juhul tuleb minna lÀbi tavalise wifi-adapteri.
Ma arvan, et VPN-i tee kasutatakse, kuna see on marsruudi tabelis esimene.
Ja teoreetiliselt, kui eemaldada see vaikimisi tee marsruudi tabelist, siis koos dnsmasq-iga peaks openconnect tagama normaalse töö.
Ma proovisin
route del defaultJa kÔik töötas.
Soodustused pÀringute suunamiseks meiliserverisse ilma vpn-slice'ita
Aga mul on veel meiliserver aadressiga 555.555.555.555, kuhu tuleb samuti minna lÀbi vpn. Marsruut selle juurde peab ka kÀsitsi lisama.
ip route add 555.555.555.555 via dev tun0Ja nĂŒĂŒd kĂ”ik on korras. Nii et vpn-slice'ita saab ka hakkama, aga peab teadma, mida teed. MĂ”tlen nĂŒĂŒd, kas viimasel real originaalskripti openconnect'i puhul lisada vaikimisi marsruudi kustutamine ja marsruudi lisamine meiliserverisse pĂ€rast vpn-iga ĂŒhendamist, lihtsalt selleks, et mu jalgratta liikuvad osad oleksid vĂ€hem.
VĂ”ib-olla piisab kellegile VPN-i seadistamise mĂ”istmiseks sellest jĂ€relsĂ”nast. Kuid samal ajal kui ma pĂŒĂŒdsin aru saada, mida ja kuidas teha, lugesin piisavalt palju selliseid juhendeid, mis töötavad autori jaoks, kuid mingil pĂ”hjusel ei töötanud minu jaoks, ja otsustasin siia lisada kĂ”ik leitud tĂŒkid. Oleksin sellisest abist vĂ€ga rÔÔmus.
Allikas: habr.com
