ఓపెన్‌కనెక్ట్ మరియు vpn-స్లైస్‌ని ఉపయోగించి Linuxలో కార్పొరేట్ VPNకి ఎలా కనెక్ట్ చేయాలి

మీరు కార్యాలయంలో Linuxని ఉపయోగించాలనుకుంటున్నారా, కానీ మీ కార్పొరేట్ VPN మిమ్మల్ని అనుమతించలేదా? ఇది ఖచ్చితంగా తెలియనప్పటికీ, ఈ కథనం సహాయపడవచ్చు. నేను నెట్‌వర్క్ అడ్మినిస్ట్రేషన్ సమస్యలను బాగా అర్థం చేసుకోలేదని ముందుగానే మిమ్మల్ని హెచ్చరించాలనుకుంటున్నాను, కాబట్టి నేను ప్రతిదీ తప్పు చేసి ఉండవచ్చు. మరోవైపు, నేను సాధారణ ప్రజలకు అర్థమయ్యే విధంగా గైడ్‌ను వ్రాయగలిగే అవకాశం ఉంది, కాబట్టి దీన్ని ప్రయత్నించమని నేను మీకు సలహా ఇస్తున్నాను.

వ్యాసంలో చాలా అనవసరమైన సమాచారం ఉంది, కానీ ఈ జ్ఞానం లేకుండా నేను VPNని సెటప్ చేయడంతో అనుకోకుండా నాకు కనిపించిన సమస్యలను పరిష్కరించలేను. ఈ గైడ్‌ని ఉపయోగించడానికి ప్రయత్నించే ఎవరికైనా నేను లేని సమస్యలు ఉంటాయని నేను భావిస్తున్నాను మరియు ఈ అదనపు సమాచారం ఈ సమస్యలను వారి స్వంతంగా పరిష్కరించడంలో సహాయపడుతుందని నేను ఆశిస్తున్నాను.

ఈ గైడ్‌లో ఉపయోగించిన చాలా ఆదేశాలను సుడో ద్వారా అమలు చేయాలి, ఇది సంక్షిప్తత కోసం తీసివేయబడింది. గుర్తుంచుకోండి.

చాలా IP చిరునామాలు తీవ్రంగా అస్పష్టంగా ఉన్నాయి, కాబట్టి మీరు 435.435.435.435 వంటి చిరునామాను చూసినట్లయితే, మీ కేసుకు ప్రత్యేకంగా కొన్ని సాధారణ IP ఉండాలి.

నా దగ్గర ఉబుంటు 18.04 ఉంది, కానీ చిన్న మార్పులతో గైడ్‌ని ఇతర పంపిణీలకు వర్తింపజేయవచ్చని నేను భావిస్తున్నాను. అయితే, ఈ టెక్స్ట్‌లో Linux == Ubuntu.

సిస్కో కనెక్ట్

Windows లేదా MacOSలో ఉన్నవారు Cisco Connect ద్వారా మా కార్పొరేట్ VPNకి కనెక్ట్ చేయవచ్చు, ఇది గేట్‌వే చిరునామాను పేర్కొనాలి మరియు మీరు కనెక్ట్ చేసిన ప్రతిసారీ, Google Authenticator ద్వారా రూపొందించబడిన స్థిర భాగం మరియు కోడ్‌తో కూడిన పాస్‌వర్డ్‌ను నమోదు చేయాలి.

Linux విషయానికొస్తే, నేను Cisco Connectని రన్ చేయలేకపోయాను, కానీ నేను ప్రత్యేకంగా Cisco Connectని రీప్లేస్ చేయడానికి చేసిన openconnectని ఉపయోగించడానికి ఒక సిఫార్సును గూగుల్ చేయగలిగాను.

ఓపెన్‌కనెక్ట్

సిద్ధాంతంలో, ఉబుంటు ఓపెన్‌కనెక్ట్ కోసం ప్రత్యేక గ్రాఫికల్ ఇంటర్‌ఫేస్‌ని కలిగి ఉంది, కానీ అది నాకు పని చేయలేదు. బహుశా అది మంచి కోసం.

ఉబుంటులో, ఓపెన్‌కనెక్ట్ ప్యాకేజీ మేనేజర్ నుండి ఇన్‌స్టాల్ చేయబడింది.

apt install openconnect

ఇన్‌స్టాలేషన్ చేసిన వెంటనే, మీరు VPNకి కనెక్ట్ చేయడానికి ప్రయత్నించవచ్చు

openconnect --user poxvuibr vpn.evilcorp.com

vpn.evilcorp.com అనేది కల్పిత VPN యొక్క చిరునామా
poxvuibr - కల్పిత వినియోగదారు పేరు

openconnect మిమ్మల్ని పాస్‌వర్డ్‌ను నమోదు చేయమని అడుగుతుంది, ఇది Google Authenticator నుండి స్థిరమైన భాగం మరియు కోడ్‌ని కలిగి ఉంటుందని నేను మీకు గుర్తు చేస్తాను, ఆపై అది vpnకి కనెక్ట్ చేయడానికి ప్రయత్నిస్తుంది. ఇది పని చేస్తే, అభినందనలు, మీరు మధ్యలో సురక్షితంగా దాటవేయవచ్చు, ఇది చాలా నొప్పిగా ఉంటుంది మరియు నేపథ్యంలో నడుస్తున్న ఓపెన్‌కనెక్ట్ గురించి పాయింట్‌కి వెళ్లండి. అది పని చేయకపోతే, మీరు కొనసాగించవచ్చు. కనెక్ట్ చేసేటప్పుడు ఇది పనిచేసినప్పటికీ, ఉదాహరణకు, పనిలో ఉన్న అతిథి Wi-Fi నుండి, సంతోషించడం చాలా తొందరగా ఉండవచ్చు; మీరు ఇంటి నుండి విధానాన్ని పునరావృతం చేయడానికి ప్రయత్నించాలి.

సర్టిఫికేట్

ఏమీ ప్రారంభించబడని అధిక సంభావ్యత ఉంది మరియు ఓపెన్‌కనెక్ట్ అవుట్‌పుట్ ఇలా కనిపిస్తుంది:

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

ఒక వైపు, ఇది అసహ్యకరమైనది, ఎందుకంటే VPN కి కనెక్షన్ లేదు, కానీ మరోవైపు, ఈ సమస్యను ఎలా పరిష్కరించాలో, సూత్రప్రాయంగా, స్పష్టంగా ఉంది.

ఇక్కడ సర్వర్ మాకు సర్టిఫికేట్ పంపింది, దీని ద్వారా కనెక్షన్ మా స్థానిక కార్పొరేషన్ యొక్క సర్వర్‌కు చేయబడిందని మరియు చెడు స్కామర్‌కు కాదని మేము నిర్ధారించగలము మరియు ఈ ప్రమాణపత్రం సిస్టమ్‌కు తెలియదు. అందువల్ల ఆమె సర్వర్ నిజమో కాదో తనిఖీ చేయలేరు. కాబట్టి, ఒక సందర్భంలో, అది పనిచేయడం ఆగిపోతుంది.

ఓపెన్‌కనెక్ట్ సర్వర్‌కు కనెక్ట్ అవ్వడానికి, మీరు VPN సర్వర్ నుండి —servercert కీని ఉపయోగించి ఏ సర్టిఫికేట్ రావాలో స్పష్టంగా చెప్పాలి.

మరియు ఓపెన్‌కనెక్ట్ ప్రింట్ చేయబడిన దాని నుండి సర్వర్ నేరుగా మాకు పంపిన సర్టిఫికేట్‌ను మీరు కనుగొనవచ్చు. ఈ భాగం నుండి ఇక్కడ ఉంది:

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

ఈ ఆదేశంతో మీరు మళ్లీ కనెక్ట్ చేయడానికి ప్రయత్నించవచ్చు

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

బహుశా ఇప్పుడు అది పని చేస్తోంది, అప్పుడు మీరు ముగింపుకు వెళ్లవచ్చు. కానీ వ్యక్తిగతంగా, ఉబుంటా ఈ రూపంలో నాకు ఒక అంజీర్‌ను చూపించింది

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

habr.com పరిష్కరిస్తుంది, కానీ మీరు అక్కడికి వెళ్లలేరు. jira.evilcorp.com వంటి చిరునామాలు అస్సలు పరిష్కరించబడలేదు.

ఇక్కడ ఏమి జరిగిందో నాకు స్పష్టంగా తెలియదు. కానీ మీరు లైన్‌ని /etc/resolv.confకి జోడిస్తే ప్రయోగం చూపిస్తుంది

nameserver 192.168.430.534

అప్పుడు VPN లోపల ఉన్న చిరునామాలు అద్భుతంగా పరిష్కరించడం ప్రారంభమవుతాయి మరియు మీరు వాటి ద్వారా నడవవచ్చు, అంటే చిరునామాలను పరిష్కరించడానికి DNS వెతుకుతున్నది ప్రత్యేకంగా /etc/resolv.confలో కనిపిస్తుంది మరియు మరెక్కడా కాదు.

VPNకి కనెక్షన్ ఉందని మీరు ధృవీకరించవచ్చు మరియు ఇది /etc/resolv.confకు ఎటువంటి మార్పులు చేయకుండానే పని చేస్తుందని ధృవీకరించవచ్చు; దీన్ని చేయడానికి, VPN నుండి వనరు యొక్క సింబాలిక్ పేరు కాకుండా దాని IP చిరునామాను బ్రౌజర్‌లో నమోదు చేయండి.

ఫలితంగా, రెండు సమస్యలు ఉన్నాయి

  • VPNకి కనెక్ట్ చేసినప్పుడు, దాని dns తీయబడదు
  • అన్ని ట్రాఫిక్ VPN ద్వారా వెళుతుంది, ఇది ఇంటర్నెట్‌కు ప్రాప్యతను అనుమతించదు

ఇప్పుడు ఏమి చేయాలో నేను మీకు చెప్తాను, కానీ మొదట కొద్దిగా ఆటోమేషన్.

పాస్వర్డ్ యొక్క స్థిర భాగం యొక్క స్వయంచాలక ప్రవేశం

ఇప్పటికి, మీరు మీ పాస్‌వర్డ్‌ను కనీసం ఐదు సార్లు నమోదు చేసి ఉండవచ్చు మరియు ఈ విధానం ఇప్పటికే మిమ్మల్ని అలసిపోయింది. ముందుగా, పాస్‌వర్డ్ పొడవుగా ఉన్నందున, మరియు రెండవది, ఎంటర్ చేసేటప్పుడు మీరు నిర్ణీత వ్యవధిలో సరిపోయేలా ఉండాలి

సమస్యకు తుది పరిష్కారం వ్యాసంలో చేర్చబడలేదు, అయితే పాస్‌వర్డ్ యొక్క స్థిర భాగాన్ని చాలాసార్లు నమోదు చేయవలసిన అవసరం లేదని మీరు నిర్ధారించుకోవచ్చు.

పాస్‌వర్డ్ యొక్క స్థిర భాగం స్థిర పాస్‌వర్డ్ అని అనుకుందాం మరియు Google Authenticator నుండి భాగం 567. మొత్తం పాస్‌వర్డ్‌ను --passwd-on-stdin ఆర్గ్యుమెంట్ ఉపయోగించి ప్రామాణిక ఇన్‌పుట్ ద్వారా ఓపెన్‌కనెక్ట్‌కు పంపవచ్చు.

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

ఇప్పుడు మీరు చివరిగా నమోదు చేసిన ఆదేశానికి నిరంతరం తిరిగి రావచ్చు మరియు అక్కడ Google Authenticatorలో కొంత భాగాన్ని మాత్రమే మార్చవచ్చు.

కార్పొరేట్ VPN మిమ్మల్ని ఇంటర్నెట్‌లో సర్ఫ్ చేయడానికి అనుమతించదు.

సాధారణంగా, మీరు Habrకి వెళ్లడానికి ప్రత్యేక కంప్యూటర్‌ను ఉపయోగించాల్సి వచ్చినప్పుడు ఇది చాలా అసౌకర్యంగా ఉండదు. స్టాక్‌ఓవర్‌ఫో నుండి కాపీ-పేస్ట్ చేయలేకపోవడం సాధారణంగా పనిని స్తంభింపజేస్తుంది, కాబట్టి ఏదో ఒకటి చేయాలి.

మేము దానిని ఏదో ఒకవిధంగా నిర్వహించాలి, తద్వారా మీరు అంతర్గత నెట్‌వర్క్ నుండి వనరును యాక్సెస్ చేయవలసి వచ్చినప్పుడు, Linux VPNకి వెళుతుంది మరియు మీరు Habrకి వెళ్లవలసి వచ్చినప్పుడు, అది ఇంటర్నెట్‌కి వెళుతుంది.

openconnect, vpnతో కనెక్షన్‌ని ప్రారంభించిన తర్వాత మరియు స్థాపించిన తర్వాత, ఒక ప్రత్యేక స్క్రిప్ట్‌ను అమలు చేస్తుంది, ఇది /usr/share/vpnc-scripts/vpnc-scriptలో ఉంది. కొన్ని వేరియబుల్స్ ఇన్‌పుట్‌గా స్క్రిప్ట్‌కి పంపబడతాయి మరియు ఇది VPNని కాన్ఫిగర్ చేస్తుంది. దురదృష్టవశాత్తూ, స్థానిక స్క్రిప్ట్‌ని ఉపయోగించి కార్పొరేట్ VPN మరియు మిగిలిన ఇంటర్నెట్ మధ్య ట్రాఫిక్ ప్రవాహాలను ఎలా విభజించాలో నేను గుర్తించలేకపోయాను.

స్పష్టంగా, vpn-స్లైస్ యుటిలిటీ నా లాంటి వ్యక్తుల కోసం ప్రత్యేకంగా అభివృద్ధి చేయబడింది, ఇది టాంబురైన్‌తో నృత్యం చేయకుండా రెండు ఛానెల్‌ల ద్వారా ట్రాఫిక్‌ను పంపడానికి మిమ్మల్ని అనుమతిస్తుంది. బాగా, అంటే, మీరు నృత్యం చేయవలసి ఉంటుంది, కానీ మీరు షమన్ కానవసరం లేదు.

vpn-స్లైస్ ఉపయోగించి ట్రాఫిక్ విభజన

మొదట, మీరు vpn-స్లైస్‌ని ఇన్‌స్టాల్ చేయాలి, మీరు దీన్ని మీరే గుర్తించాలి. వ్యాఖ్యలలో ప్రశ్నలు ఉంటే, నేను దీని గురించి ప్రత్యేక పోస్ట్ వ్రాస్తాను. కానీ ఇది సాధారణ పైథాన్ ప్రోగ్రామ్, కాబట్టి ఎటువంటి ఇబ్బందులు ఉండకూడదు. నేను virtualenv ఉపయోగించి ఇన్‌స్టాల్ చేసాను.

ఆపై ప్రామాణిక స్క్రిప్ట్‌కు బదులుగా, మీరు vpn-స్లైస్‌ని ఉపయోగించాలని ఓపెన్‌కనెక్ట్ చేయడానికి సూచించే -స్క్రిప్ట్ స్విచ్‌ని ఉపయోగించి యుటిలిటీని తప్పనిసరిగా వర్తింపజేయాలి.

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

--స్క్రిప్ట్ అనేది స్క్రిప్ట్‌కు బదులుగా కాల్ చేయవలసిన ఆదేశంతో స్ట్రింగ్ పంపబడుతుంది. ./bin/vpn-slice - vpn-slice ఎక్జిక్యూటబుల్ ఫైల్‌కి మార్గం 192.168.430.0/24 - vpnలో వెళ్లవలసిన చిరునామాల ముసుగు. ఇక్కడ, చిరునామా 192.168.430తో ప్రారంభమైతే, ఈ చిరునామాతో ఉన్న వనరు VPNలో వెతకాలి

ఇప్పుడు పరిస్థితి దాదాపు సాధారణం కావాలి. దాదాపు. ఇప్పుడు మీరు Habrకి వెళ్లవచ్చు మరియు మీరు ip ద్వారా ఇంట్రా-కార్పొరేట్ వనరుకి వెళ్లవచ్చు, కానీ మీరు సింబాలిక్ పేరుతో ఇంట్రా-కార్పొరేట్ వనరుకి వెళ్లలేరు. మీరు హోస్ట్‌లలో సింబాలిక్ పేరు మరియు చిరునామా మధ్య సరిపోలికను పేర్కొంటే, ప్రతిదీ పని చేయాలి. మరియు ip మారే వరకు పని చేయండి. Linux ఇప్పుడు IPని బట్టి ఇంటర్నెట్ లేదా ఇంట్రానెట్‌ని యాక్సెస్ చేయగలదు. కానీ అడ్రస్‌ని గుర్తించడానికి ఇప్పటికీ నాన్-కార్పొరేట్ DNS ఉపయోగించబడుతుంది.

సమస్య ఈ రూపంలో కూడా వ్యక్తమవుతుంది - పనిలో ప్రతిదీ బాగానే ఉంటుంది, కానీ ఇంట్లో మీరు IP ద్వారా అంతర్గత కార్పొరేట్ వనరులను మాత్రమే యాక్సెస్ చేయవచ్చు. ఎందుకంటే మీరు కార్పొరేట్ Wi-Fiకి కనెక్ట్ చేయబడినప్పుడు, కార్పొరేట్ DNS కూడా ఉపయోగించబడుతుంది మరియు VPNని ఉపయోగించకుండా అటువంటి చిరునామాకు వెళ్లడం ఇప్పటికీ అసాధ్యం అయినప్పటికీ, VPN నుండి సింబాలిక్ చిరునామాలు దానిలో పరిష్కరించబడతాయి.

హోస్ట్ ఫైల్ యొక్క స్వయంచాలక మార్పు

vpn-sliceని మర్యాదపూర్వకంగా అడిగితే, VPNని పెంచిన తర్వాత, అది దాని DNSకి వెళ్లి, అక్కడ అవసరమైన వనరుల యొక్క IP చిరునామాలను వాటి సింబాలిక్ పేర్లతో కనుగొని వాటిని హోస్ట్‌లలో నమోదు చేయవచ్చు. VPNని ఆఫ్ చేసిన తర్వాత, ఈ చిరునామాలు హోస్ట్‌ల నుండి తీసివేయబడతాయి. దీన్ని చేయడానికి, మీరు సింబాలిక్ పేర్లను vpn-స్లైస్‌కి ఆర్గ్యుమెంట్‌లుగా పాస్ చేయాలి. ఇలా.

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 

ఇప్పుడు ప్రతిదీ కార్యాలయంలో మరియు బీచ్‌లో పని చేయాలి.

VPN ద్వారా అందించబడిన DNSలో అన్ని సబ్‌డొమైన్‌ల చిరునామాల కోసం శోధించండి

నెట్‌వర్క్‌లో కొన్ని చిరునామాలు ఉంటే, హోస్ట్ ఫైల్‌ను స్వయంచాలకంగా సవరించే విధానం చాలా బాగా పనిచేస్తుంది. కానీ నెట్‌వర్క్‌లో చాలా వనరులు ఉన్నట్లయితే, మీరు zoidberg.test.evilcorp.com వంటి పంక్తులను నిరంతరం జోడించాల్సి ఉంటుంది zoidberg అనేది పరీక్ష బెంచ్‌లలో ఒకదాని పేరు.

కానీ ఈ అవసరం ఎందుకు తొలగించబడుతుందో ఇప్పుడు మనం కొంచెం అర్థం చేసుకున్నాము.

VPNని పెంచిన తర్వాత, మీరు /etc/hostsలో చూస్తే, మీరు ఈ లైన్‌ను చూడవచ్చు

192.168.430.534 dns0.tun0 # vpn-slice-tun0 AUTOCREATED

మరియు resolv.confకు కొత్త లైన్ జోడించబడింది. సంక్షిప్తంగా, vpn కోసం dns సర్వర్ ఎక్కడ ఉందో vpn-స్లైస్ ఏదో ఒకవిధంగా నిర్ణయిస్తుంది.

ఇప్పుడు మనం evilcorp.comతో ముగిసే డొమైన్ పేరు యొక్క IP చిరునామాను కనుగొనడానికి, Linux కార్పొరేట్ DNSకి వెళుతుందని మరియు వేరే ఏదైనా అవసరమైతే, డిఫాల్ట్‌గా ఉండేలా చూసుకోవాలి.

నేను కొంతకాలం Google మరియు అటువంటి కార్యాచరణ ఉబుంటులో బాక్స్ వెలుపల అందుబాటులో ఉందని కనుగొన్నాను. పేర్లను పరిష్కరించడానికి స్థానిక DNS సర్వర్ dnsmasqని ఉపయోగించగల సామర్థ్యం దీని అర్థం.

అంటే, మీరు Linux ఎల్లప్పుడూ IP చిరునామాల కోసం స్థానిక DNS సర్వర్‌కు వెళుతుందని నిర్ధారించుకోవచ్చు, ఇది డొమైన్ పేరుపై ఆధారపడి, సంబంధిత బాహ్య DNS సర్వర్‌లో IP కోసం చూస్తుంది.

నెట్‌వర్క్‌లు మరియు నెట్‌వర్క్ కనెక్షన్‌లకు సంబంధించిన ప్రతిదాన్ని నిర్వహించడానికి, ఉబుంటు నెట్‌వర్క్‌మేనేజర్‌ను ఉపయోగిస్తుంది మరియు ఎంచుకోవడానికి గ్రాఫికల్ ఇంటర్‌ఫేస్, ఉదాహరణకు, Wi-Fi కనెక్షన్‌లు దీనికి ఫ్రంట్ ఎండ్ మాత్రమే.

మేము దాని కాన్ఫిగరేషన్‌లో ఎక్కవలసి ఉంటుంది.

  1. /etc/NetworkManager/dnsmasq.d/evilcorpలో ఫైల్‌ను సృష్టించండి

చిరునామా=/.evilcorp.com/192.168.430.534

చెడుకార్ప్ ముందు ఉన్న పాయింట్‌పై శ్రద్ధ వహించండి. ఇది evilcorp.com యొక్క అన్ని సబ్‌డొమైన్‌లను కార్పొరేట్ dnsలో శోధించాలని dnsmasqని సూచిస్తుంది.

  1. పేరు రిజల్యూషన్ కోసం dnsmasqని ఉపయోగించమని NetworkManagerకి చెప్పండి

నెట్‌వర్క్-మేనేజర్ కాన్ఫిగరేషన్ /etc/NetworkManager/NetworkManager.confలో ఉంది, మీరు అక్కడ జోడించాలి:

[ప్రధాన] dns=dnsmasq

  1. NetworkManagerని పునఃప్రారంభించండి

service network-manager restart

ఇప్పుడు, ఓపెన్‌కనెక్ట్ మరియు vpn-స్లైస్‌ని ఉపయోగించి VPNకి కనెక్ట్ చేసిన తర్వాత, మీరు vpnsliceకి ఆర్గ్యుమెంట్‌లకు సింబాలిక్ చిరునామాలను జోడించనప్పటికీ, ip సాధారణంగా నిర్ణయించబడుతుంది.

VPN ద్వారా వ్యక్తిగత సేవలను ఎలా యాక్సెస్ చేయాలి

నేను VPN కి కనెక్ట్ చేయగలిగాను, నేను రెండు రోజులు చాలా సంతోషంగా ఉన్నాను, ఆపై నేను ఆఫీసు నెట్‌వర్క్ వెలుపల నుండి VPN కి కనెక్ట్ చేస్తే, మెయిల్ పని చేయదని తేలింది. లక్షణం తెలిసినది, కాదా?

మా మెయిల్ mail.publicevilcorp.comలో ఉంది, అంటే ఇది dnsmasqలో నియమం పరిధిలోకి రాదని మరియు మెయిల్ సర్వర్ చిరునామా పబ్లిక్ DNS ద్వారా శోధించబడుతుంది.

సరే, కార్యాలయం ఇప్పటికీ ఈ చిరునామాను కలిగి ఉన్న DNSని ఉపయోగిస్తుంది. అని అనుకున్నాను. నిజానికి, లైన్‌ను dnsmasqకి జోడించిన తర్వాత

చిరునామా=/mail.publicevilcorp.com/192.168.430.534

పరిస్థితి ఏమాత్రం మారలేదు. ip అలాగే ఉంది. నేను పనికి వెళ్ళవలసి వచ్చింది.

మరియు తరువాత, నేను పరిస్థితిని లోతుగా పరిశోధించి, సమస్యను కొద్దిగా అర్థం చేసుకున్నప్పుడు, ఒక తెలివైన వ్యక్తి దానిని ఎలా పరిష్కరించాలో నాకు చెప్పాడు. మెయిల్ సర్వర్‌కు అలా కాకుండా, VPN ద్వారా కనెక్ట్ అవ్వడం అవసరం

192.168.430తో ప్రారంభమయ్యే చిరునామాలకు VPN ద్వారా వెళ్లడానికి నేను vpn-స్లైస్‌ని ఉపయోగిస్తాను. మరియు మెయిల్ సర్వర్ ఒక సింబాలిక్ చిరునామాను కలిగి ఉండటమే కాదు, అది చెడుకార్ప్ యొక్క సబ్‌డొమైన్ కాదు, దీనికి 192.168.430తో ప్రారంభమయ్యే IP చిరునామా కూడా లేదు. మరియు వాస్తవానికి అతను సాధారణ నెట్వర్క్ నుండి ఎవరినీ తన వద్దకు రావడానికి అనుమతించడు.

Linux VPN ద్వారా మరియు మెయిల్ సర్వర్‌కు వెళ్లడానికి, మీరు దీన్ని vpn-స్లైస్‌కి కూడా జోడించాలి. మెయిలర్ చిరునామా 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ని పెంచడం కోసం స్క్రిప్ట్

అన్ని ఈ, కోర్సు యొక్క, చాలా సౌకర్యవంతంగా లేదు. అవును, మీరు టెక్స్ట్‌ను ఫైల్‌కి సేవ్ చేయవచ్చు మరియు చేతితో టైప్ చేయడానికి బదులుగా కన్సోల్‌లో కాపీ-పేస్ట్ చేయవచ్చు, కానీ ఇది ఇప్పటికీ చాలా ఆహ్లాదకరంగా లేదు. ప్రక్రియను సులభతరం చేయడానికి, మీరు ఆదేశాన్ని PATHలో ఉండే స్క్రిప్ట్‌లో చుట్టవచ్చు. ఆపై మీరు 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 

మీరు స్క్రిప్ట్‌ను connect~evilcorp~లో ఉంచినట్లయితే, మీరు కన్సోల్‌లో వ్రాయవచ్చు

connect_evil_corp 567987

కానీ ఇప్పుడు మీరు కొన్ని కారణాల వల్ల ఓపెన్‌కనెక్ట్ నడుస్తున్న కన్సోల్‌ను తెరిచి ఉంచాలి

నేపథ్యంలో ఓపెన్‌కనెక్ట్ రన్ అవుతోంది

అదృష్టవశాత్తూ, openconnect రచయితలు మమ్మల్ని జాగ్రత్తగా చూసుకున్నారు మరియు ప్రోగ్రామ్ -బ్యాక్‌గ్రౌండ్‌కి ప్రత్యేక కీని జోడించారు, ఇది ప్రోగ్రామ్ ప్రారంభించిన తర్వాత నేపథ్యంలో పని చేస్తుంది. మీరు దీన్ని ఇలా అమలు చేస్తే, లాంచ్ తర్వాత మీరు కన్సోల్‌ను మూసివేయవచ్చు

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

లాగ్‌లు ఎక్కడికి వెళతాయో ఇప్పుడు స్పష్టంగా లేదు. సాధారణంగా, మాకు నిజంగా లాగ్‌లు అవసరం లేదు, కానీ మీకు ఎప్పటికీ తెలియదు. openconnect వాటిని syslogకి దారి మళ్లించగలదు, అక్కడ అవి సురక్షితంగా మరియు భద్రంగా ఉంచబడతాయి. మీరు ఆదేశానికి –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  

కాబట్టి, ఓపెన్‌కనెక్ట్ నేపథ్యంలో ఎక్కడో పని చేస్తుందని మరియు ఎవరినీ ఇబ్బంది పెట్టదని తేలింది, కానీ దాన్ని ఎలా ఆపాలో స్పష్టంగా లేదు. అంటే, మీరు ఖచ్చితంగా, grepని ఉపయోగించి ps అవుట్‌పుట్‌ను ఫిల్టర్ చేయవచ్చు మరియు ఓపెన్‌కనెక్ట్‌ని కలిగి ఉన్న ప్రక్రియ కోసం వెతకవచ్చు, కానీ ఇది ఏదో ఒకవిధంగా దుర్భరమైనది. దీని గురించి ఆలోచించిన రచయితలకు కూడా ధన్యవాదాలు. Openconnect కీ -pid-fileని కలిగి ఉంది, దానితో మీరు దాని ప్రాసెస్ ఐడెంటిఫైయర్‌ని ఫైల్‌కి వ్రాయమని openconnectకి సూచించవచ్చు.

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

ఇప్పుడు మీరు కమాండ్‌తో ఎప్పుడైనా ప్రాసెస్‌ని చంపవచ్చు

kill $(cat ~/vpn-pid)

ప్రక్రియ లేనట్లయితే, చంపడం శపిస్తుంది, కానీ లోపం విసిరివేయదు. ఫైల్ లేనట్లయితే, చెడు ఏమీ జరగదు, కాబట్టి మీరు స్క్రిప్ట్ యొక్క మొదటి లైన్‌లో ప్రక్రియను సురక్షితంగా చంపవచ్చు.

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

ఇప్పుడు మీరు మీ కంప్యూటర్‌ని ఆన్ చేసి, కన్సోల్‌ని తెరిచి, ఆదేశాన్ని అమలు చేసి, Google Authenticator నుండి కోడ్‌ను పంపవచ్చు. అప్పుడు కన్సోల్‌ను నెయిల్ డౌన్ చేయవచ్చు.

VPN-స్లైస్ లేకుండా. ఒక అనంతర పదానికి బదులుగా

VPN-స్లైస్ లేకుండా ఎలా జీవించాలో అర్థం చేసుకోవడం చాలా కష్టంగా మారింది. నేను చాలా చదవవలసి వచ్చింది మరియు గూగుల్ చేయవలసి వచ్చింది. అదృష్టవశాత్తూ, సమస్యతో ఎక్కువ సమయం గడిపిన తర్వాత, సాంకేతిక మాన్యువల్‌లు మరియు మ్యాన్ ఓపెన్‌కనెక్ట్ కూడా ఉత్తేజకరమైన నవలల వలె చదవబడతాయి.

ఫలితంగా, vpn-స్లైస్, స్థానిక స్క్రిప్ట్ లాగా, రూటింగ్ టేబుల్‌ని వేరు వేరు నెట్‌వర్క్‌లకు మారుస్తుందని నేను కనుగొన్నాను.

రూటింగ్ టేబుల్

సరళంగా చెప్పాలంటే, ఇది మొదటి కాలమ్‌లోని పట్టిక, దీనిలో Linux వెళ్లాలనుకునే చిరునామా దేనితో ప్రారంభం కావాలి మరియు రెండవ నిలువు వరుసలో ఈ చిరునామాలో ఏ నెట్‌వర్క్ అడాప్టర్ ద్వారా వెళ్లాలి. వాస్తవానికి, ఎక్కువ స్పీకర్లు ఉన్నాయి, కానీ ఇది సారాంశాన్ని మార్చదు.

రూటింగ్ పట్టికను వీక్షించడానికి, మీరు ip రూట్ ఆదేశాన్ని అమలు చేయాలి

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 

ఇక్కడ, కొన్ని చిరునామాకు సందేశాన్ని పంపడానికి మీరు ఎక్కడికి వెళ్లాలి అనేదానికి ప్రతి పంక్తి బాధ్యత వహిస్తుంది. మొదటిది చిరునామా ఎక్కడ ప్రారంభించాలి అనే వివరణ. 192.168.0.0/16 అంటే చిరునామా 192.168తో ప్రారంభం కావాలని ఎలా నిర్ణయించాలో అర్థం చేసుకోవడానికి, మీరు IP అడ్రస్ మాస్క్ అంటే ఏమిటో గూగుల్ చేయాలి. దేవ్ తర్వాత సందేశం పంపవలసిన అడాప్టర్ పేరు ఉంది.

VPN కోసం, Linux ఒక వర్చువల్ అడాప్టర్‌ను తయారు చేసింది - tun0. 192.168తో ప్రారంభమయ్యే అన్ని చిరునామాల కోసం ట్రాఫిక్ దాని గుండా వెళుతుందని లైన్ నిర్ధారిస్తుంది

192.168.0.0/16 dev tun0 scope link 

మీరు ఆదేశాన్ని ఉపయోగించి రూటింగ్ టేబుల్ యొక్క ప్రస్తుత స్థితిని కూడా చూడవచ్చు మార్గం -n (IP చిరునామాలు తెలివిగా అనామకీకరించబడ్డాయి) ఈ ఆదేశం వేరొక రూపంలో ఫలితాలను ఉత్పత్తి చేస్తుంది మరియు సాధారణంగా నిలిపివేయబడుతుంది, అయితే దీని అవుట్‌పుట్ తరచుగా ఇంటర్నెట్‌లోని మాన్యువల్‌లలో కనుగొనబడుతుంది మరియు మీరు దానిని చదవగలగాలి.

మార్గం కోసం IP చిరునామా ఎక్కడ ప్రారంభించబడాలి అనేది గమ్యం మరియు జెన్‌మాస్క్ నిలువు వరుసల కలయిక నుండి అర్థం చేసుకోవచ్చు. జెన్‌మాస్క్‌లోని 255 సంఖ్యలకు సంబంధించిన IP చిరునామాలోని ఆ భాగాలు పరిగణనలోకి తీసుకోబడతాయి, కానీ 0 ఉన్నవి పరిగణనలోకి తీసుకోబడవు. అంటే, డెస్టినేషన్ 192.168.0.0 మరియు జెన్‌మాస్క్ 255.255.255.0 కలయిక అంటే చిరునామా 192.168.0తో ప్రారంభమైతే, దానికి అభ్యర్థన ఈ మార్గంలో వెళుతుంది. మరియు గమ్యం 192.168.0.0 అయితే Genmask 255.255.0.0 అయితే, 192.168తో ప్రారంభమయ్యే చిరునామాలకు అభ్యర్థనలు ఈ మార్గంలో వెళ్తాయి.

వాస్తవానికి vpn-స్లైస్ ఏమి చేస్తుందో గుర్తించడానికి, నేను ముందు మరియు తరువాత పట్టికల స్థితిని చూడాలని నిర్ణయించుకున్నాను

VPN ఆన్ చేయడానికి ముందు ఇది ఇలా ఉంది

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

vpn-slice లేకుండా openconnectకి కాల్ చేసిన తర్వాత అది ఇలా అయింది

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

మరియు ఇలా vpn-స్లైస్‌తో కలిపి openconnectకి కాల్ చేసిన తర్వాత

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

మీరు vpn-స్లైస్‌ని ఉపయోగించకపోతే, ప్రత్యేకంగా సూచించినవి మినహా అన్ని చిరునామాలు తప్పనిసరిగా vpn ద్వారా యాక్సెస్ చేయబడాలని openconnect స్పష్టంగా వ్రాస్తుందని చూడవచ్చు.

ఇక్కడే:

0.0.0.0         0.0.0.0         0.0.0.0         U     0      0        0 tun0

అక్కడ, దాని ప్రక్కన, మరొక మార్గం వెంటనే సూచించబడుతుంది, ఇది Linux ద్వారా పాస్ చేయడానికి ప్రయత్నిస్తున్న చిరునామా పట్టిక నుండి ఏదైనా ముసుగుతో సరిపోలకపోతే తప్పనిసరిగా ఉపయోగించాలి.

0.0.0.0         222.222.222.1   0.0.0.0         UG    600    0        0 wlp3s0

ఈ సందర్భంలో మీరు ప్రామాణిక Wi-Fi అడాప్టర్‌ను ఉపయోగించాల్సిన అవసరం ఉందని ఇప్పటికే ఇక్కడ వ్రాయబడింది.

రూటింగ్ పట్టికలో ఇది మొదటిది కనుక VPN పాత్ ఉపయోగించబడిందని నేను నమ్ముతున్నాను.

మరియు సిద్ధాంతపరంగా, మీరు రౌటింగ్ టేబుల్ నుండి ఈ డిఫాల్ట్ మార్గాన్ని తీసివేస్తే, అప్పుడు dnsmasq ఓపెన్‌కనెక్ట్‌తో కలిసి సాధారణ ఆపరేషన్‌ను నిర్ధారించాలి.

నేను ప్రయత్నించాను

route del default

మరియు ప్రతిదీ పనిచేసింది.

vpn-స్లైస్ లేకుండా మెయిల్ సర్వర్‌కు రూటింగ్ అభ్యర్థనలు

కానీ నా దగ్గర 555.555.555.555 చిరునామాతో మెయిల్ సర్వర్ కూడా ఉంది, దానిని VPN ద్వారా కూడా యాక్సెస్ చేయాలి. దానికి మార్గాన్ని కూడా మాన్యువల్‌గా జోడించాలి.

ip route add 555.555.555.555 via dev tun0

మరియు ఇప్పుడు అంతా బాగానే ఉంది. కాబట్టి మీరు vpn-స్లైస్ లేకుండా చేయవచ్చు, కానీ మీరు ఏమి చేస్తున్నారో మీరు బాగా తెలుసుకోవాలి. నేను ఇప్పుడు స్థానిక ఓపెన్‌కనెక్ట్ స్క్రిప్ట్ యొక్క చివరి లైన్‌కి డిఫాల్ట్ రూట్‌ని తీసివేసి, vpnకి కనెక్ట్ చేసిన తర్వాత మెయిలర్ కోసం ఒక మార్గాన్ని జోడించడం గురించి ఆలోచిస్తున్నాను, తద్వారా నా బైక్‌లో తక్కువ కదిలే భాగాలు ఉన్నాయి.

బహుశా, VPNని ఎలా సెటప్ చేయాలో ఎవరైనా అర్థం చేసుకోవడానికి ఈ అనంతర పదం సరిపోతుంది. కానీ నేను ఏమి మరియు ఎలా చేయాలో అర్థం చేసుకోవడానికి ప్రయత్నిస్తున్నప్పుడు, రచయిత కోసం పని చేసే అటువంటి గైడ్‌లను నేను చాలా చదివాను, కానీ కొన్ని కారణాల వల్ల నాకు పని చేయడం లేదు మరియు నేను కనుగొన్న అన్ని ముక్కలను ఇక్కడ జోడించాలని నిర్ణయించుకున్నాను. అలాంటి వాటి గురించి నేను చాలా సంతోషిస్తాను.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి