Giunsa ang pagkonektar sa usa ka corporate VPN sa Linux gamit ang openconnect ug vpn-slice

Gusto ba nimong gamiton ang Linux sa trabaho, apan dili ka tugotan sa imong corporate VPN? Unya kini nga artikulo makatabang, bisan kung kini dili sigurado. Gusto nako nga pasidan-an ka daan nga wala ako makasabut sa mga isyu sa pagdumala sa network, mao nga posible nga nahimo nako ang tanan nga sayup. Sa laing bahin, posible nga makasulat ko og giya sa paagi nga masabtan kini sa mga ordinaryong tawo, busa tambagan ko ikaw nga sulayan kini.

Ang artikulo adunay daghang dili kinahanglan nga kasayuran, apan kung wala kini nga kahibalo dili nako masulbad ang mga problema nga wala damha nga nagpakita kanako sa pag-set up sa usa ka VPN. Sa akong hunahuna nga bisan kinsa nga mosulay sa paggamit niini nga giya adunay mga problema nga wala nako, ug nanghinaut ko nga kini nga dugang nga kasayuran makatabang sa pagsulbad sa kini nga mga problema sa ilang kaugalingon.

Kadaghanan sa mga sugo nga gigamit niini nga giya kinahanglan nga ipadagan pinaagi sa sudo, nga gikuha alang sa kamubo. Hinumdomi.

Kadaghanan sa mga adres sa IP grabe nga natabunan, mao nga kung makakita ka usa ka adres sama sa 435.435.435.435, kinahanglan adunay pipila nga normal nga IP didto, piho sa imong kaso.

Ako adunay Ubuntu 18.04, apan sa akong hunahuna uban sa gagmay nga mga pagbag-o ang giya mahimong magamit sa ubang mga distribusyon. Apan, sa niini nga teksto Linux == Ubuntu.

Cisco Connect

Kadtong naa sa Windows o MacOS mahimong makonektar sa among corporate VPN pinaagi sa Cisco Connect, nga kinahanglan nga ipiho ang address sa gateway ug, sa matag higayon nga magkonektar ka, pagsulod sa usa ka password nga naglangkob sa usa ka piho nga bahin ug usa ka code nga gihimo sa Google Authenticator.

Sa kaso sa Linux, dili nako mapadagan ang Cisco Connect, apan nakahimo ko sa google og rekomendasyon nga gamiton ang openconnect, nga espesipikong gihimo aron ilisan ang Cisco Connect.

Openconnect

Sa teorya, ang Ubuntu adunay usa ka espesyal nga graphical interface alang sa openconnect, apan wala kini nagtrabaho alang kanako. Tingali kini alang sa mas maayo.

Sa Ubuntu, ang openconnect gi-install gikan sa manager sa package.

apt install openconnect

Diha-diha dayon human sa pag-instalar, mahimo nimong sulayan ang pagkonektar sa usa ka VPN

openconnect --user poxvuibr vpn.evilcorp.com

Ang vpn.evilcorp.com mao ang adres sa usa ka tinumotumo nga VPN
poxvuibr - tinumotumo nga username

Ang openconnect mohangyo kanimo sa pagsulod sa usa ka password, nga, pahinumdoman ko ikaw, naglangkob sa usa ka fixed nga bahin ug usa ka code gikan sa Google Authenticator, ug unya kini mosulay sa pagkonektar sa vpn. Kung kini molihok, pahalipay, mahimo nimong luwas nga laktawan ang tunga, nga daghang kasakit, ug magpadayon sa punto bahin sa openconnect nga nagdagan sa background. Kung dili kini molihok, mahimo ka magpadayon. Bisan kung kini nagtrabaho kung nagkonektar, pananglitan, gikan sa usa ka bisita nga Wi-Fi sa trabaho, mahimo’g sayo pa kaayo aron magmaya; kinahanglan nimong sulayan nga balikon ang pamaagi gikan sa balay.

Sertipiko

Adunay usa ka taas nga posibilidad nga wala’y magsugod, ug ang output sa openconnect mahimong ingon niini:

POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found

Certificate from VPN server "vpn.evilcorp.com" failed verification.
Reason: signer not found
To trust this server in future, perhaps add this to your command line:
    --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progress

Sa usa ka bahin, kini dili maayo, tungod kay walay koneksyon sa VPN, apan sa laing bahin, kung unsaon pag-ayo kini nga problema, sa prinsipyo, klaro.

Dinhi ang server nagpadala kanamo usa ka sertipiko, diin among mahibal-an nga ang koneksyon gihimo sa server sa among lumad nga korporasyon, ug dili sa usa ka daotan nga mangingilad, ug kini nga sertipiko wala mahibal-an sa sistema. Ug busa dili niya masusi kung tinuod ba ang server o dili. Ug busa, sa kaso lang, kini mohunong sa pagtrabaho.

Aron makonektar ang openconnect sa server, kinahanglan nimo nga klaro nga isulti kung unsang sertipiko ang kinahanglan gikan sa VPN server gamit ang β€”servercert key

Ug mahibal-an nimo kung unsang sertipiko ang gipadala kanamo sa server direkta gikan sa giimprinta nga openconnect. Ania ang gikan niini nga piraso:

To trust this server in future, perhaps add this to your command line:
    --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444
Enter 'yes' to accept, 'no' to abort; anything else to view: fgets (stdin): Operation now in progress

Uban niini nga sugo mahimo nimong sulayan ang pagkonektar pag-usab

openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com

Tingali karon kini nagtrabaho, unya mahimo ka magpadayon hangtod sa katapusan. Apan sa personal, gipakita kanako ni Ubunta ang usa ka igos sa kini nga porma

POST https://vpn.evilcorp.com/
Connected to 777.777.777.777:443
SSL negotiation with vpn.evilcorp.com
Server certificate verify failed: signer not found
Connected to HTTPS on vpn.evilcorp.com
XML POST enabled
Please enter your username and password.
POST https://vpn.evilcorp.com/
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 300, Keepalive 30
Set up DTLS failed; using SSL instead
Connected as 192.168.333.222, using SSL
NOSSSSSHHHHHHHDDDDD
3
NOSSSSSHHHHHHHDDDDD
3
RTNETLINK answers: File exists
/etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf

/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.com

Ang habr.com masulbad, apan dili ka makaadto didto. Ang mga adres sama sa jira.evilcorp.com wala gyud masulbad.

Unsa ang nahitabo dinhi dili klaro kanako. Apan gipakita sa eksperimento nga kung imong idugang ang linya sa /etc/resolv.conf

nameserver 192.168.430.534

unya ang mga adres sa sulod sa VPN magsugod sa mahika nga pagsulbad ug mahimo ka nga maglakaw pinaagi niini, nga mao, kung unsa ang gipangita sa DNS aron masulbad ang mga adres espesipikong makita sa /etc/resolv.conf, ug dili sa ubang lugar.

Mahimo nimong pamatud-an nga adunay koneksyon sa VPN ug kini molihok nga wala’y pagbag-o sa /etc/resolv.conf; aron mahimo kini, pagsulod lang sa browser dili ang simbolo nga ngalan sa kapanguhaan gikan sa VPN, apan ang IP address niini.

Ingon nga resulta, adunay duha ka mga problema

  • Kung nagkonektar sa usa ka VPN, ang dns niini dili makuha
  • ang tanan nga trapiko moagi sa VPN, nga wala magtugot sa pag-access sa Internet

Isulti ko kanimo kung unsa ang buhaton karon, apan una usa ka gamay nga automation.

Awtomatikong pagsulod sa gitakdang bahin sa password

Sa pagkakaron, lagmit nakasulod ka na sa imong password labing menos lima ka beses ug kini nga pamaagi nakapakapoy na kanimo. Una, tungod kay ang password taas, ug ikaduha, tungod kay kung mosulod kinahanglan nimo nga mohaum sa usa ka piho nga yugto sa panahon

Ang katapusan nga solusyon sa problema wala gilakip sa artikulo, apan mahimo nimong masiguro nga ang gitakda nga bahin sa password dili kinahanglan nga isulod sa daghang mga higayon.

Ibutang nato nga ang fixed nga bahin sa password kay fixedPassword, ug ang bahin gikan sa Google Authenticator kay 567. Ang tibuok password mahimong ipasa sa openconnect pinaagi sa standard input gamit ang --passwd-on-stdin argument.

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr vpn.evilcorp.com --passwd-on-stdin

Karon mahimo ka kanunay nga makabalik sa katapusang gisulud nga mando ug usbon ang bahin lamang sa Google Authenticator didto.

Ang usa ka corporate VPN wala magtugot kanimo sa pag-surf sa Internet.

Sa kinatibuk-an, dili kaayo hasol kung kinahanglan nimo nga mogamit usa ka lahi nga kompyuter aron makaadto sa Habr. Ang kawalay katakus sa pagkopya-paste gikan sa stackoverfow sa kasagaran makaparalisar sa trabaho, mao nga adunay kinahanglan nga buhaton.

Kinahanglan namon nga organisahon kini aron kung kinahanglan nimo nga ma-access ang usa ka kapanguhaan gikan sa internal nga network, ang Linux moadto sa VPN, ug kung kinahanglan nimo nga moadto sa Habr, moadto kini sa Internet.

openconnect, pagkahuman sa paglansad ug pag-establisar sa koneksyon sa vpn, nagpatuman sa usa ka espesyal nga script, nga nahimutang sa /usr/share/vpnc-scripts/vpnc-script. Ang ubang mga baryable gipasa sa script isip input, ug kini nag-configure sa VPN. Ikasubo, dili nako mahibal-an kung giunsa ang pagbahin sa mga agianan sa trapiko tali sa usa ka korporasyon nga VPN ug sa ubang bahin sa Internet gamit ang usa ka lumad nga script.

Dayag, ang vpn-slice utility naugmad ilabina alang sa mga tawo nga sama kanako, nga nagtugot kanimo sa pagpadala sa trapiko pinaagi sa duha ka channel nga walay pagsayaw gamit ang tamburin. Bueno, kana, kinahanglan ka nga mosayaw, apan dili kinahanglan nga mahimong shaman.

Pagbulag sa trapiko gamit ang vpn-slice

Una, kinahanglan nimo nga i-install ang vpn-slice, kinahanglan nimo nga mahibal-an kini sa imong kaugalingon. Kung adunay mga pangutana sa mga komento, magsulat ako usa ka lahi nga post bahin niini. Apan kini usa ka regular nga programa sa Python, busa kinahanglan nga wala’y mga kalisud. Gi-install nako gamit ang virtualenv.

Ug unya ang utility kinahanglan i-apply, gamit ang -script switch, nga nagpaila sa openconnect nga imbes sa standard nga script, kinahanglan nimo gamiton ang vpn-slice

echo "fixedPassword567987" | openconnect --servercert sha256:4444444444444444444444444444444444444444444444444444444444444444 --user poxvuibr --passwd-on-stdin 
--script "./bin/vpn-slice 192.168.430.0/24  " vpn.evilcorp.com 

--script gipasa ang usa ka hilo nga adunay usa ka mando nga kinahanglan nga tawagan imbis sa script. ./bin/vpn-slice - dalan sa vpn-slice executable file 192.168.430.0/24 - mask sa mga adres nga adtoan sa vpn. Dinhi, gipasabut namon nga kung ang adres magsugod sa 192.168.430, nan ang kapanguhaan nga adunay kini nga adres kinahanglan pangitaon sa sulod sa VPN

Ang kahimtang karon kinahanglan nga hapit normal. Hapit. Karon makaadto ka sa Habr ug makaadto ka sa intra-corporate nga kapanguhaan pinaagi sa ip, apan dili ka makaadto sa intra-corporate nga kapanguhaan pinaagi sa simbolo nga ngalan. Kung imong gitakda ang usa ka tugma tali sa simbolikong ngalan ug adres sa mga host, kinahanglan nga molihok ang tanan. Ug pagtrabaho hangtod mausab ang ip. Maka-access na ang Linux sa Internet o sa intranet, depende sa IP. Apan ang non-corporate DNS gigamit gihapon aron mahibal-an ang adres.

Ang problema mahimo usab nga magpakita sa kaugalingon niini nga porma - sa trabaho ang tanan maayo, apan sa balay mahimo ra nimo ma-access ang internal nga mga kapanguhaan sa korporasyon pinaagi sa IP. Kini tungod kay kung konektado ka sa corporate Wi-Fi, gigamit usab ang corporate DNS, ug ang simbolikong mga adres gikan sa VPN nasulbad niini, bisan pa sa kamatuoran nga imposible pa nga makaadto sa ingon nga adres nga wala gigamit ang VPN.

Awtomatikong pagbag-o sa file sa host

Kung ang vpn-slice gipangutana nga matinahuron, unya pagkahuman sa pagpataas sa VPN, mahimo kini moadto sa DNS niini, pangitaa didto ang mga IP address sa kinahanglan nga mga kapanguhaan pinaagi sa ilang mga simbolo nga ngalan ug isulod kini sa mga host. Human sa pagpalong sa VPN, kini nga mga adres kuhaon gikan sa mga host. Aron mahimo kini, kinahanglan nimo nga ipasa ang simbolikong mga ngalan sa vpn-slice isip mga argumento. Ingon ani.

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 

Karon ang tanan kinahanglan nga magtrabaho sa opisina ug sa baybayon.

Pangitaa ang mga adres sa tanang subdomain sa DNS nga gihatag sa VPN

Kung adunay pipila ka mga adres sa sulod sa network, nan ang pamaagi sa awtomatik nga pagbag-o sa file sa host maayo kaayo. Apan kung adunay daghang mga kapanguhaan sa network, nan kinahanglan nimo kanunay nga idugang ang mga linya sama sa zoidberg.test.evilcorp.com sa script nga zoidberg ang ngalan sa usa sa mga bangko sa pagsulay.

Apan karon nga nakasabot na ta gamay nganong mawagtang na kining panginahanglan.

Kung, pagkahuman sa pagpataas sa VPN, imong tan-awon ang /etc/hosts, makita nimo kini nga linya

192.168.430.534 dns0.tun0 # vpn-slice-tun0 AUTOCREATED

Ug usa ka bag-ong linya ang gidugang sa resolv.conf. Sa laktud, ang vpn-slice sa usa ka paagi matino kung asa nahimutang ang dns server alang sa vpn.

Karon kinahanglan natong sigurohon nga aron mahibal-an ang IP address sa usa ka domain name nga nagtapos sa evilcorp.com, ang Linux moadto sa corporate DNS, ug kung gikinahanglan ang laing butang, unya sa default.

Nag-Google ako sa dugay nga panahon ug nakit-an nga ang ingon nga pagpaandar magamit sa Ubuntu nga wala sa kahon. Kini nagpasabot sa abilidad sa paggamit sa lokal nga DNS server dnsmasq sa pagsulbad sa mga ngalan.

Kana mao, mahimo nimong sigurohon nga ang Linux kanunay nga moadto sa lokal nga DNS server alang sa mga IP address, nga sa baylo, depende sa ngalan sa domain, mangita alang sa IP sa katugbang nga eksternal nga DNS server.

Aron madumala ang tanan nga may kalabutan sa mga network ug koneksyon sa network, ang Ubuntu naggamit sa NetworkManager, ug ang graphical nga interface alang sa pagpili, pananglitan, ang mga koneksyon sa Wi-Fi usa lamang ka tumoy niini.

Kinahanglan namon nga mosaka sa iyang configuration.

  1. Paghimo og file sa /etc/NetworkManager/dnsmasq.d/evilcorp

address=/.evilcorp.com/192.168.430.534

Hatagi'g pagtagad ang punto sa atubangan sa evilcorp. Nagsenyales kini sa dnsmasq nga ang tanang subdomain sa evilcorp.com kinahanglan pangitaon sa corporate dns.

  1. Sultihi ang NetworkManager sa paggamit sa dnsmasq alang sa resolusyon sa ngalan

Ang network-manager configuration nahimutang sa /etc/NetworkManager/NetworkManager.conf Kinahanglan nimong idugang didto:

[main] dns=dnsmasq

  1. I-restart ang NetworkManager

service network-manager restart

Karon, pagkahuman sa pagkonektar sa usa ka VPN gamit ang openconnect ug vpn-slice, ang ip matino nga normal, bisan kung dili nimo idugang ang mga simbolo nga adres sa mga argumento sa vpnslice.

Giunsa ang pag-access sa mga indibidwal nga serbisyo pinaagi sa VPN

Pagkahuman nako nga nakakonekta sa VPN, nalipay kaayo ako sa duha ka adlaw, ug pagkahuman nahibal-an nga kung magkonektar ako sa VPN gikan sa gawas sa network sa opisina, ang mail dili molihok. Ang simtomas pamilyar, dili ba?

Ang among mail nahimutang sa mail.publicevilcorp.com, nga nagpasabot nga dili kini ubos sa lagda sa dnsmasq ug ang address sa mail server gipangita pinaagi sa publiko nga DNS.

Aw, ang opisina naggamit gihapon sa DNS, nga adunay kini nga adres. Mao kana ang akong gihunahuna. Sa tinuud, pagkahuman sa pagdugang sa linya sa dnsmasq

address=/mail.publicevilcorp.com/192.168.430.534

wala gyud mausab ang kahimtang. ip nagpabilin nga pareho. Kinahanglan kong moadto sa trabaho.

Ug sa ulahi ra, sa dihang gisusi nako ang kahimtang ug nasabtan gamay ang problema, usa ka maalamon nga tawo ang nagsulti kanako kung giunsa kini pagsulbad. Kinahanglan nga magkonektar sa mail server dili lang kana, apan pinaagi sa VPN

Gigamit nako ang vpn-slice aron makaagi sa VPN sa mga adres nga nagsugod sa 192.168.430. Ug ang mail server dili lamang adunay simbolo nga adres nga dili subdomain sa evilcorp, wala usab kini IP address nga nagsugod sa 192.168.430. Ug siyempre dili niya tugotan ang bisan kinsa gikan sa kinatibuk-ang network nga moduol kaniya.

Aron ang Linux makaagi sa VPN ug sa mail server, kinahanglan nimo nga idugang kini sa vpn-slice usab. Ingnon ta nga ang adres sa mailer mao ang 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 

Script alang sa pagpataas sa VPN nga adunay usa ka argumento

Kining tanan, siyempre, dili kaayo kombenyente. Oo, mahimo nimong i-save ang teksto sa usa ka file ug i-copy-paste kini sa console imbes nga i-type kini pinaagi sa kamot, apan dili gihapon kini makapahimuot. Aron mapasayon ​​ang proseso, mahimo nimong ibalot ang command sa usa ka script nga mahimutang sa PATH. Ug unya kinahanglan nimo nga mosulod sa code nga nadawat gikan sa Google Authenticator

#!/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 

Kung imong ibutang ang script sa connect~evilcorp~ pwede ra nimo isulat sa console

connect_evil_corp 567987

Apan karon kinahanglan nimo nga ipadayon ang console diin ang openconnect nagdagan nga bukas alang sa usa ka hinungdan

Nagdagan ang openconnect sa background

Maayo na lang, ang mga tagsulat sa openconnect nag-atiman kanamo ug nagdugang usa ka espesyal nga yawe sa programa -background, nga naghimo sa programa nga molihok sa background pagkahuman sa paglansad. Kung gipadagan nimo kini nga ingon niini, mahimo nimong isira ang console pagkahuman sa paglansad

#!/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  

Karon dili lang klaro kung asa moadto ang mga troso. Sa kinatibuk-an, wala kami magkinahanglan og mga troso, apan wala ka mahibalo. openconnect mahimong i-redirect sila ngadto sa syslog, diin sila magpabilin nga luwas ug luwas. kinahanglan nimong idugang ang –syslog switch sa command

#!/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  

Ug busa, kini nahimo nga ang openconnect nagtrabaho sa usa ka lugar sa background ug wala magsamok bisan kinsa, apan dili klaro kung giunsa kini paghunong. Kana mao, mahimo nimo, siyempre, i-filter ang output sa ps gamit ang grep ug pangitaa ang usa ka proseso kansang ngalan adunay openconnect, apan kini sa usa ka paagi makakapoy. Salamat sa mga tagsulat nga naghunahuna usab bahin niini. Ang Openconnect adunay usa ka yawe -pid-file, diin mahimo nimong itudlo ang openconnect sa pagsulat sa proseso nga identifier sa usa ka file.

#!/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-pid

Karon mahimo nimo kanunay nga patyon ang usa ka proseso gamit ang mando

kill $(cat ~/vpn-pid)

Kung walay proseso, ang pagpatay motunglo, apan dili maglabay og sayop. Kung wala ang file, nan wala’y daotan nga mahitabo, aron luwas nimo nga mapatay ang proseso sa una nga linya sa script.

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-pid

Karon mahimo nimong i-on ang imong kompyuter, ablihi ang console ug ipadagan ang mando, ipasa kini ang code gikan sa Google Authenticator. Ang console mahimo dayon nga ilansang.

Kung walay VPN-slice. Imbes nga afterword

Kini nahimo nga lisud kaayo nga masabtan kung giunsa ang pagkinabuhi nga wala VPN-slice. Kinahanglan kong magbasa ug mag-google og daghan. Maayo na lang, pagkahuman sa paggugol sa daghang oras sa usa ka problema, ang mga teknikal nga manwal ug bisan ang tawo nga openconnect nagbasa sama sa makapahinam nga mga nobela.

Ingon usa ka sangputanan, nahibal-an nako nga ang vpn-slice, sama sa lumad nga script, nagbag-o sa routing table aron magkabulag ang mga network.

Talaan sa ruta

Sa yanong pagkasulti, kini usa ka lamesa sa una nga kolum nga naglangkob kung unsa ang adres nga gusto agian sa Linux kinahanglan magsugod, ug sa ikaduha nga kolum kung diin ang network adapter nga maagian sa kini nga adres. Sa tinuud, adunay daghang mga mamumulong, apan wala kini magbag-o sa diwa.

Aron matan-aw ang routing table, kinahanglan nimo nga ipadagan ang ip route command

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 

Dinhi, ang matag linya adunay tulubagon kung asa ka kinahanglan moadto aron magpadala usa ka mensahe sa pipila ka adres. Ang una mao ang paghulagway kung asa magsugod ang adres. Aron masabtan kung unsaon pagtino nga ang 192.168.0.0/16 nagpasabot nga ang adres kinahanglan magsugod sa 192.168, kinahanglan nimo nga i-google kung unsa ang IP address mask. Pagkahuman sa dev adunay ngalan sa adapter diin kinahanglan ipadala ang mensahe.

Alang sa VPN, ang Linux naghimo usa ka virtual adapter - tun0. Ang linya nagsiguro nga ang trapiko alang sa tanan nga mga adres nagsugod sa 192.168

192.168.0.0/16 dev tun0 scope link 

Mahimo usab nimo tan-awon ang kasamtangan nga kahimtang sa routing table gamit ang command ruta -n (Ang mga adres sa IP maalamon nga wala mailhi) Kini nga sugo nagpatunghag mga resulta sa lahi nga porma ug kasagarang wala na gamita, apan ang output niini kasagarang makita sa mga manwal sa Internet ug kinahanglan nimo kining basahon.

Kung diin ang IP address alang sa usa ka ruta kinahanglan magsugod mahimong masabtan gikan sa kombinasyon sa mga kolum sa Destination ug Genmask. Kadtong mga bahin sa IP address nga katumbas sa mga numero nga 255 sa Genmask gikonsiderar, apan ang kung diin adunay 0 wala. Kana mao, ang kombinasyon sa Destination 192.168.0.0 ug Genmask 255.255.255.0 nagpasabut nga kung ang adres magsugod sa 192.168.0, nan ang hangyo niini moadto sa kini nga ruta. Ug kung ang Destination 192.168.0.0 apan ang Genmask 255.255.0.0, nan ang mga hangyo sa mga adres nga nagsugod sa 192.168 moadto sa kini nga ruta

Aron mahibal-an kung unsa gyud ang gibuhat sa vpn-slice, nakahukom ko nga tan-awon ang mga estado sa mga lamesa sa wala pa ug pagkahuman.

Sa wala pa i-on ang VPN kini ingon niini

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 wlp3s0

Human sa pagtawag sa openconnect nga walay vpn-slice nahimo kining ingon niini

route -n

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use 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 tun0

Ug pagkahuman sa pagtawag sa openconnect sa kombinasyon sa vpn-slice nga sama niini

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 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 tun0

Makita nga kung dili ka mogamit sa vpn-slice, unya ang openconnect klaro nga nagsulat nga ang tanan nga mga adres, gawas sa mga espesipikong gipakita, kinahanglan ma-access pinaagi sa vpn.

Dinhi mismo:

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0

Didto, sunod niini, lain nga agianan ang gipakita dayon, nga kinahanglan gamiton kung ang adres nga gisulayan nga agi sa Linux dili motakdo sa bisan unsang maskara gikan sa lamesa.

0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0

Gisulat na dinhi nga sa kini nga kaso kinahanglan nimo nga gamiton ang usa ka standard nga Wi-Fi adapter.

Nagtuo ko nga ang agianan sa VPN gigamit tungod kay kini ang una sa routing table.

Ug sa teoretikal, kung imong kuhaon kini nga default nga agianan gikan sa routing table, unya inubanan sa dnsmasq openconnect kinahanglan nga masiguro ang normal nga operasyon.

gisulayan nako

route del default

Ug ang tanan nagtrabaho.

Mga hangyo sa pagruta sa usa ka mail server nga walay vpn-slice

Apan ako usab adunay usa ka mail server nga adunay adres nga 555.555.555.555, nga kinahanglan usab nga ma-access pinaagi sa VPN. Ang ruta niini kinahanglan usab nga idugang sa kamut.

ip route add 555.555.555.555 via dev tun0

Ug karon maayo na ang tanan. Mao nga mahimo nimo nga wala ang vpn-slice, apan kinahanglan nimo nga mahibal-an kung unsa ang imong gibuhat. Naghunahuna ko karon bahin sa pagdugang sa katapusan nga linya sa lumad nga openconnect nga script ang pagtangtang sa default nga ruta ug pagdugang usa ka ruta alang sa mailer pagkahuman makonektar sa vpn, aron adunay gamay nga paglihok nga mga bahin sa akong bisikleta.

Tingali, kini nga pagkahuman sa pulong igo na alang sa usa nga makasabut kung giunsa ang pag-set up sa usa ka VPN. Apan samtang naningkamot ko nga masabtan kung unsa ug kung unsaon pagbuhat, nagbasa ako og daghang mga giya nga nagtrabaho alang sa tagsulat, apan sa pipila ka mga hinungdan dili molihok alang kanako, ug nakahukom ako nga idugang dinhi ang tanan nga mga piraso nga akong nakit-an. Malipay kaayo ko sa ingon niana.

Source: www.habr.com

Idugang sa usa ka comment