Paano itago ang iyong trapiko sa OpenVPN na may isang lagusan ng SSH
Kaya’t sinundan mo ang aming tutorial sa kung paano mag-set up ng iyong sariling VPN server gamit ang OpenVPN at isang server ng Amazon EC2, at mahusay ito gumagana. Iyon ay, hanggang sa bigla itong naharang. Marahil na-reboot mo ang pagkakataong ito at nakuha ang isang bagong IP address. Gumagana ito muli muli para sa isa pang araw ng ilang, pagkatapos ay mai-block. Tila ang iyong tanggapan, ISP, o gobyerno ay aktibong humarang sa mga OpenVPN server. Kaya anong ginagawa mo?
Ang mga pangunahing koneksyon ng bloke ng bloke batay sa port na ginamit at ang patutunguhang IP address, ngunit ang mas advanced na mga firewall ay gumagamit ng malalim na inspeksyon ng packet (DPI) at / o stateful packet inspection (SPI) upang makilala sa pagitan ng iba’t ibang uri ng mga algorithm ng pag-encrypt at mga protocol ng VPN. Nangangahulugan ito na maaari nilang makita ang trapiko ng OpenVPN at i-flag ito upang ma-block ng admin ang server.
Mayroong tatlong mga pagpipilian upang makarating sa paligid nito: isang obfuscation proxy, SSL tunneling, at SSH tunneling. Sa tutorial na ito, tatalakayin natin ang huli. Ang SSH tunneling ay bumabalot ng iyong naka-encrypt na koneksyon sa isa pang layer ng encryption upang hindi makagawa ng pagkakaiba ang firewall. Ang bawat isa sa mga pamamaraang ito ay dapat na lumampas sa DPI at SPI firewall na inilalagay alinman sa mga korporasyon o mga gobyerno na mabigat sa censorship tulad ng China.
Ang OpenVPN sa SSH ay mayroong ilang pagbagsak ng mag-asawa. Una ay isang hit na pagganap dahil sa dobleng pag-encrypt. Pangalawa, ang fingerprint ng OpenVPN ay hindi na matukoy kung lagusan sa SSH, ngunit ang ilang mga firewall ay nakaharang din sa trapiko ng SSH. Ito ang kaso para sa mga serbisyo tulad ng Netflix, na huminto sa paggamit ng anumang uri ng naka-encrypt na proxy, OpenVPN, SSH, o kung hindi man. Sa kasong ito, inirerekumenda namin na i-set up mo ang Obfsproxy sa halip, na lumilitaw na ang naka-encrypt na trapiko ay normal at hindi naka-encrypt. Ang Obfsproxy ay mas malakas para sa kadahilanang ito, ngunit mas kumplikado upang mai-set up at tumakbo.
Sa kasamaang palad, ang Obfsproxy na sinamahan sa OpenVPN ay kasalukuyang gumagana lamang sa isang desktop, hanggang sa alam natin. Maaaring magamit ang SSH tunneling sa isang aparatong mobile sa Android o iOS.
Ipinapalagay ng tutorial na ito na mayroon ka nang pag-set up ng server ng OpenVPN at maaaring kumonekta dito gamit ang OpenVPN GUI o OpenVPN Connect app. Dapat mo ring magawang SSH sa iyong server gamit ang alinman sa Terminal sa isang Mac o PuTTy sa isang PC. Para sa mga layunin ng pagpapakita, gumagamit kami ng PuTTy. Kung wala kang lahat na naka-set up, mangyaring sumangguni sa aming nakaraang tutorial.
Ang pag-set up ng OpenVPN sa SSH sa isang PC
Sa aming huling tutorial, napag-usapan namin kung paano mag-set up ng isang simpleng SSH proxy, pagkatapos ay pinalawak na upang lumikha ng isang full-on na VPN server. Ang pamamaraang ito ay pinagsasama ang dalawa, na nangangahulugang dapat na mayroon ka ng lahat ng kailangan mo.
Buksan ang PuTTy at i-load ang iyong configuration ng VPN server. Sa sidebar, mag-navigate sa Koneksyon > SSH > Mga tunnels. Siguraduhin na ang D8080 ay kasama sa listahan. Kung hindi, i-type ang 8080 sa “Source port” at suriin ang Auto at Dynamic. Pagkatapos pindutin ang Idagdag. Mayroon ka na ngayong isang SSH proxy na tumatakbo sa port 8080. Maaari mong i-save ito bilang isang hiwalay na pagsasaayos ng session kung nais mong bumalik sa tab ng Session ng puno ng nabigasyon.
I-click ang Buksan at mag-log in sa iyong server. Tandaan na sa mas bagong Amazon Linux AMI, ang username ay “ec2-user”.
Mag-navigate sa iyong openvpn.conf file at suriin ang mga nilalaman gamit ang mga utos na ito
cd / etc / openvpn
pusa openvpn.conf
Dapat itong ipakita ang mga nilalaman ng iyong file ng pagsasaayos ng server ng OpenVPN. Dapat itong ganito:
port 1194
proto tcp-server
dev tun1
ifconfig 10.4.0.1 10.4.0.2
katayuan ng server-tcp.log
pandiwa 3
lihim na ovpn.key
Ang mahalagang bagay ay ang pangalawang linya ay nakatakda sa TCP, hindi UDP. Kung kailangan mong baguhin ito, maaari mo itong mai-edit gamit ang utos na ito:
sudo nano openvpn.conf
Pagkatapos ay i-click ang CTRL + O (ang titik na “o”, hindi zero) upang mai-save ang file, pagkatapos CTRL + X upang lumabas sa editor.
Config ng kliyente
Sa iyong lokal na makina, mag-navigate sa iyong mga file ng config ng client ng OpenVPN. Kung ginamit mo ang direktoryo ng default na pag-install, ito ang C: / Program Files / OpenVPN / config.
Lumikha ng isang kopya ng iyong umiiral na file ng config ng OpenVPN mula sa huling tutorial o lumikha ng bago. Hanapin ang Notepad o ibang plain text editor at i-click ito upang Patakbuhin bilang tagapangasiwa. Buksan o lumikha ng iyong bagong config file, na dapat ganito:
proto tcp-client
malayong localhost 1194
port 1194
dev tun1
lihim na ovpn.key
pag-redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1
medyas-proxy-retry
medyas-proxy 127.0.0.1 8080
Tandaan ang pangalawang “liblib” na linya ay gumagamit ng localhost sa halip ng OpenVPN server IP, kasama ang dalawang linya sa dulo na nag-configure sa OpenVPN upang gumamit ng isang SOCKS proxy. Lahat ng iba ay katulad ng dati.
I-save ang iyong bagong config file sa config folder ng iyong direktoryo ng OpenVPN.
Pag-set up ng mga app
Ang huling hakbang ay upang mai-configure ang iyong mga app upang magamit ang proxy sa port 8080. Katulad ito sa ginawa namin sa pangunahing SSH proxy mula sa huling tutorial. Maraming mga apps ang magkakaroon ng isang proxy setup na magagamit sa mga setting, at ang ilan ay maaaring awtomatikong makita din ito. Kung kailangan mong i-set up ito nang manu-mano, ang tatlong piraso ng impormasyon na kailangan mo ay:
- Host: 127.0.0.1
- Port: 8080
- Uri ng proxy: SOCKS5 (o SOCKS v5)
Narito ang mga tagubilin para sa Firefox at Chrome:
Sa Firefox:
- Pumunta sa Mga Tool > Mga Pagpipilian > Advanced > Network > Koneksyon > Mga setting > Manu-manong pagsasaayos ng proxy
- Itakda ang SOCKS Host bilang 127.0.0.1 at ang port bilang 8080 (o anuman ang itinakda mo sa tunnel port sa PuTTy).
- Mag-click sa OK upang makatipid
Sa Chrome Proxy Switchy
- Ang isang pahina ng pag-setup ay dapat lumitaw sa sandaling i-install mo ang extension, o i-click ang icon sa kanang tuktok ng Chrome at i-click ang Opsyon.
- Pangalanan ang profile kahit anong gusto mo. Sa ilalim ng Manu-manong Pag-configure, itakda ang host ng SOCKS sa 127.0.0.1 at ang daungan hanggang 8080 (o anuman ang itinakda mo sa tunnel port sa PuTTy. Iwanan ang lahat ng iba.
- Pindutin ang I-save, pagkatapos ay i-click ang icon muli upang piliin ang iyong profile sa proxy.
Ngayon kumonekta muna sa iyong server gamit ang PuTTy gamit ang pagsasaayos sa itaas, pagkatapos ay gamit ang VPN gamit ang bagong config file na nilikha namin.
Kumokonekta ka na ngayon sa internet kasama ang OpenVPN sa SSH!
Mobile
Kami ay magpapaliwanag kung paano iakma ang iyong OpenVPN + SSH tunnel para sa Android, kahit na ang iOS ay hindi magiging lahat ng iba.
Bago tayo magsimula, mayroong ilang mga caveats. Una, ang pamamaraang ito ay gumagana lamang para sa pag-browse sa web. Iyon ay dahil, hindi tulad ng isang desktop, hindi mo lamang mabubuksan ang mga port tulad ng gusto mo sa isang stock na Android o iOS na aparato. Nangangahulugan ito na ang mga port na ginagamit ng iba pang mga app ay hindi mapupunta sa pamamagitan ng SSH proxy. Upang malampasan ito, maaari kang mag-ugat o mag-jailbreak ng iyong aparato at gumamit ng isang app tulad ng ProxyDroid o Undia na app ng Cydia upang i-configure ang proxy.
Iyon ay isang tutorial para sa ibang araw. Sa ngayon, hahanapin ito at tumatakbo sa stock ng Android gamit ang Firefox. Kailangan mong i-install ang mga sumusunod na apps:
- OpenVPN para sa Android (tandaan: HINDI OpenVPN kumonekta, na mas maraming picky tungkol sa pagpapatunay)
- Ang ConnectBot, o isang katumbas na SSH terminal app (Ang JuiceSSH ay mabuti ngunit nagkakahalaga ng dagdag sa mga ports)
- Isang file manager tulad ng File Commander
- Firefox, o isa pang browser na nagpapahintulot sa iyo na i-configure ang mga proxies
Kakailanganin mo rin ang ilang paraan ng paglilipat ng mga file mula sa iyong computer sa iyong telepono. Maayos ang isang USB cable. Ginamit ko ang folder ng pag-sync ng IBackup.
Hanapin ang iyong ovpn.key at ang .ovpn config file na nilikha mo sa itaas sa iyong desktop, at ilipat ang mga ito sa panloob na imbakan ng iyong telepono o SD card. Ilipat din ang .pem key file na ibinigay ng iyong server host. Marahil matatagpuan ito sa parehong lugar tulad ng iyong .ppk file na ginagamit mo upang mapatunayan sa PuTTy. Kung nawala mo ito, kailangan mong lumikha ng isa pa sa dashboard ng Amazon EC2, o mula sa alinmang serbisyo sa pagho-host ng server na ginagamit mo.
Bilang opsyonal, maaari mong kunin ang standard .ovpn config file na ginagamit mo upang kumonekta nang walang SSH. Pagkatapos ay maaari mong gamitin ang iyong VPN sa lahat ng mga app sa halip na browser lamang, at kapaki-pakinabang para sa pag-aayos.
Pag-setup ng ConnectBot
Patakbuhin ang ConnectBot sa iyong telepono. I-click ang tatlong tuldok sa tuktok na kanang sulok, at pumunta sa Pamahalaan ang Pubkey. I-click muli ang mga tuldok sa susunod na pahina, at i-click ang I-import. Dapat itong ilunsad ang file manager na iyong na-install. Hanapin ang .pem file na inilipat mo lamang sa iyong telepono at piliin ito. Dapat itong lumitaw ngayon sa listahan ng mga pampublikong susi na may pulang kandado sa tabi nito. Tapikin ito upang maging berde. Pindutin ang pindutan ng likod upang bumalik sa pangunahing pahina sa ConnectBot.
Sa ilalim ng patlang ng terminal sa tabi ng “ssh”, ipasok ang iyong mga detalye sa SSH. Dapat itong ganito:
ec2-user @: 22
Palitan ang IP address ng iyong OpenVPN server. Tapikin ang enter key sa SSH sa iyong server. Ang lahat ng ito ay dapat mai-save upang hindi mo na kailangang muling ipasok ito, ngunit maaaring kailanganin mong i-toggle muli ang pampublikong susi sa hinaharap.
Kapag matagumpay kang nakakonekta, pindutin muli ang tatlong tuldok at idiskonekta. Ang iyong profile ay dapat mai-save sa home screen ng ConnectBot. Long pindutin ito upang buksan ang isang menu ng konteksto, at i-tap ang “I-edit ang port pasulong.” Sa susunod na pahina, i-tap ang tatlong tuldok at piliin ang “Magdagdag ng port pasulong.”
Pangalanan ito kahit anong gusto mo. Itakda ang Uri sa Dynamic (SOCKS) at source port hanggang 8080 (o kung ano ang nasa socks-proxy na linya ng iyong file ng config ng OpenVPN). Tapikin ang “lumikha ng port pasulong”.
Handa nang pumunta ang ConnectBot, ngunit hindi pa kami kumonekta. Itakda muna natin ang OpenVPN.
OpenVPN para sa pag-setup ng Android
Patakbuhin ang OpenVPN para sa Android.
I-click ang pindutan ng parisukat na may isang arrow na nakaharap sa kanang tuktok na sulok upang mag-import ng isang profile. Mag-navigate sa iyong .ovpn config file at piliin ito. Sa susunod na pahina, pindutin ang pindutan na nagsasabing “Piliin”.
Sa oras na ito, mag-navigate sa iyong ovpn.key file at piliin ito. Pindutin ang pindutan ng dilaw na pag-save ng pindutan sa kanang sulok sa kanang kamay.
Ang iyong bagong profile ay dapat na lumitaw ngayon sa listahan sa home screen ng app.
Bago kami kumonekta, ipa-double-check ang aming firewall ng server. Mag-login sa AWS, piliin ang Mga Instances at i-highlight ang iyong OpenVPN server. Sa patlang ng Mga Grupo ng Seguridad, i-click ang ginamit para sa pagkakataong ito. I-right click ito at piliin ang “I-edit ang Mga Batas sa Pag-inbound”.
Magdagdag ng mga patakaran ng Custom TCP para sa mga port 22, 1194, at 8080, pagsasaayos kung kinakailangan para sa iyong personal na pagsasaayos.
Ngayon, oras na upang kumonekta Buksan muna ang ConnectBot. I-tap ang profile na nilikha lamang namin sa SSH sa iyong server. Tiyaking naka-on ang naka-on na ang pubkey, kung hindi, makakakuha ka ng isang error tungkol sa isang password. Matapos mong matagumpay na nakakonekta, lumipat sa OpenVPN app. Tapikin ang iyong profile doon upang kumonekta.
Sa pagtatapos ng OpenVPN log na lumilitaw kapag kumokonekta ka, dapat mong makita ang isang mensahe na nagsasabing “NILALIMANG, MAGKAROON”.
Tandaan na dahil ginagamit namin ang parehong .pem at .key file tulad ng sa aming desktop, maaari mo lamang gamitin ang mga kredensyal na ito sa isang aparato nang sabay-sabay. Tiyaking hindi ka nakakonekta sa iyong desktop. Kung nais mong kumonekta nang sabay-sabay sa maraming aparato, kakailanganin mong lumikha ng mga bagong kredensyal (.key at .pem) para sa bawat isa.
I-configure ang Firefox upang gumamit ng isang proxy
Sa wakas, kailangan nating i-configure ang Firefox upang magamit ang proxy. Hindi dumating ang Chrome at Safari sa mobile na mga pagpipilian sa pagsasaayos ng proxy, kaya’t inirerekumenda namin ang Firefox. Maaari mong subukang i-set up ang proxy sa mga setting ng wi-fi, ngunit kakailanganin mong baguhin ang mga ito sa tuwing nais mong kumonekta nang walang isang proxy.
Sa Firefox URL bar, i-type ang “tungkol sa: config”. Sa search bar sa pahinang iyon, i-type ang “network.proxy”. Ito ay magdadala sa lahat ng mga patlang na kami ay nababahala. I-input ang mga sumusunod na setting sa ipinahayag na mga patlang:
- network.proxy.socks: 127.0.0.1
- network.proxy.socks_port: 8080 (o anuman ang itinakda mo sa iyong OpenVPN config at ConnectBot)
- network.proxy.type: 1
Iyon ay dapat ruta ang browser ng browser sa pamamagitan ng OpenVPN at SSH. Maaari mo na ngayong mag-surf sa web mula sa isang mobile device sa pamamagitan ng isang VPN nang walang takot sa malalim na inspeksyon ng packet!
Kung nais mong kumonekta sa pamamagitan ng SSH proxy nang walang OpenVPN, SSH lamang sa iyong server gamit ang ConnectBot at hindi kumonekta sa OpenVPN. Sa kabaligtaran, maaari mong mai-import ang iyong pangunahing file na hindi SSH .ovpn config sa OpenVPN app at kumonekta sa sans SSH proxy.
“Lagusan” ni jo.sau na lisensyado sa ilalim ng CC NG 2.0