十步搭建OpenVPN,享受你的隱私生活
我們支持保護隱私,不為我們有自己的秘密需要保護,只是我們認為保護隱私應(yīng)該成為一項基本人權(quán)。所以我們堅信無論誰在什么時候行使這項權(quán)利,都應(yīng)該不受拘束的獲取必須的工具和服務(wù)。OpenVPN就是這樣一種服務(wù)并且有多種工具(客戶端) 來讓我們利用并享受這種服務(wù)。
通過與一個OpenVPN服務(wù)器建立連接,我們基本上在我們的設(shè)備和遠端運行OpenVPN的主機之間建立了一個安全的通信通道。盡管在兩個端點之間的通信可能被截獲,但是信息是經(jīng)過高強度加密的所以實際上它對于攻擊者沒什么用。OpenVPN除了扮演加密通信通道的調(diào)解人,我們也可以通過設(shè)置使服務(wù)器扮演互聯(lián)網(wǎng)網(wǎng)關(guān)的角色。通過這種方式,我們可以連接任何不安全的Wifi,然后迅速的鏈接到遠程的OpenVPN服務(wù)器,然后在不需要考慮偷窺的人或者無聊的管理員的情況下運行需要上網(wǎng)的程序。(注意:OpenVPN服務(wù)器旁還是需要信任的管理員的。)
這篇文章將一步一步的教會你如何在Ubuntu Server 14.04 LTS上安裝OpenVPN。OpenVPN所在的主機可能是云上的一臺VPS,一臺在我們家里某臺電腦上運行的虛擬機,或者是一個老到你都快忘了的設(shè)備。
第一步 準備系統(tǒng)
我們需要Ubuntu Server主機的一個命令行終端,比如通過SSH從遠程訪問它。首先需要更新它的本地倉庫數(shù)據(jù):
- sub0@delta:~$ sudo apt-get update
進行操作系統(tǒng)和已安裝的包的升級,輸入:
- sub0@delta:~$ sudo apt-get dist-upgrade
如果升級了新內(nèi)核,那就需要重啟。當更新完成后,就該安裝OpenVPN了:
- sub0@delta:~$ sudo apt-get -y install openvpn easy-rsa dnsmasq
注意,我們用apt-get安裝了三個包:
- openvpn提供了OpenVPN的核心
- easy-rsa包含了一些有用的密鑰管理腳本
- dnsmasq是當我們的OpenVPN所在的主機將扮演客戶端的路由器時會用到的域名服務(wù)器
第二步 生成證書和私鑰
這是安裝OpenVPN中最重要和最關(guān)鍵的一步,目的是建立公鑰基礎(chǔ)設(shè)施(PKI)。包括如下內(nèi)容:
- 為OpenVPN服務(wù)器創(chuàng)建一個證書(公鑰)和一個私鑰
- 為每個OpenVPN客戶端創(chuàng)建證書和私鑰
- 建立一個證書頒發(fā)機構(gòu)(CA)并創(chuàng)建證書和私鑰。這個私鑰用來給OpenVPN服務(wù)器和客戶端的證書簽名
從最后一個做起,我們先建立一個目錄:
- sub0@delta:~$ sudo mkdir /etc/openvpn/easy-rsa
然后把easy-rsa的文件拷過去:
- sub0@delta:~$ sudo cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa
在我們創(chuàng)建CA的私鑰之前,我們先編輯/etc/openvpn/easy-rsa/vars(我們喜歡用nano編輯器,不過這只是我們的喜好,你愛用什么用什么):
- sub0@delta:~$ sudo nano /etc/openvpn/easy-rsa/vars
在文件的尾部,我們設(shè)置主證書和密鑰的信息:
- export KEY_COUNTRY="GR"
- export KEY_PROVINCE="Central Macedonia"
- export KEY_CITY="Thessaloniki"
- export KEY_ORG="Parabing Creations"
- export KEY_EMAIL="nobody@parabing.com"
- export KEY_CN="VPNsRUS"
- export KEY_NAME="VPNsRUS"
- export KEY_OU="Parabing"
- export KEY_ALTNAMES="VPNsRUS"
你可以根據(jù)自己的情況設(shè)置不同的值。特別注意最后KEY_ALTNAMES這一行,盡管這不是原本vars文件中有的但是我們還是把它加到文件的尾部,不然build-ca腳本會運行失敗。
保存更改,我們得按[CTRL+O]然后按[Enter]。想退出nano,請按[CTRL+X]?,F(xiàn)在,我們要獲得root訪問權(quán)限,繼續(xù)生成主證書和私鑰(LCTT譯注:請注意命令行賬戶發(fā)生了改變):
- sub0@delta:~$ sudo su
- root@delta:/home/sub0# cd /etc/openvpn/easy-rsa
- root@delta:/etc/openvpn/easy-rsa# source vars
- NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
- root@delta:/etc/openvpn/easy-rsa# sh clean-all
- root@delta:/etc/openvpn/easy-rsa# sh build-ca
- Generating a 1024 bit RSA private key
- ...++++++
- ................++++++
- writing new private key to 'ca.key'
- -----
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter '.', the field will be left blank.
- -----
- Country Name (2 letter code) [GR]:
- State or Province Name (full name) [Central Macedonia]:
- Locality Name (eg, city) [Thessaloniki]:
- Organization Name (eg, company) [Parabing Creations]:
- Organizational Unit Name (eg, section) [Parabing]:
- Common Name (eg, your name or your server's hostname) [VPNsRUS]:
- Name [VPNsRUS]:
- Email Address [nobody@parabing.com]:
- root@delta:/etc/openvpn/easy-rsa#
在我們的例子中,所有問題的答案都選擇了默認的。在運行了build-ca腳本后,我們就獲得了主證書文件(keys/ca.crt)和對應(yīng)的私鑰(keys/ca.key)。私鑰必須不計代價的保密。
#p#
第三步 生成OpenVPN服務(wù)器的證書和私鑰
在我們?yōu)镺penVPN服務(wù)器生成證書和密鑰之前,我們得給他起個名。我決定把它叫"delta",然后運行build-key-server腳本來獲取證書和密鑰:
- root@delta:/etc/openvpn/easy-rsa# sh build-key-server delta
- Generating a 1024 bit RSA private key
- ....++++++
- ...++++++
- writing new private key to 'delta.key'
- -----
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter '.', the field will be left blank.
- -----
- Country Name (2 letter code) [GR]:
- State or Province Name (full name) [Central Macedonia]:
- Locality Name (eg, city) [Thessaloniki]:
- Organization Name (eg, company) [Parabing Creations]:
- Organizational Unit Name (eg, section) [Parabing]:
- Common Name (eg, your name or your server's hostname) [delta]:
- Name [VPNsRUS]:deltaVPN
- Email Address [nobody@parabing.com]:
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []:
- An optional company name []:
- Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
- Check that the request matches the signature
- Signature ok
- The Subject's Distinguished Name is as follows
- countryName :PRINTABLE:'GR'
- stateOrProvinceName :PRINTABLE:'Central Macedonia'
- localityName :PRINTABLE:'Thessaloniki'
- organizationName :PRINTABLE:'Parabing Creations'
- organizationalUnitName:PRINTABLE:'Parabing'
- commonName :PRINTABLE:'delta'
- name :PRINTABLE:'deltaVPN'
- emailAddress :IA5STRING:'nobody@parabing.com'
- Certificate is to be certified until Apr 7 08:06:02 2024 GMT (3650 days)
- Sign the certificate? [y/n]:y
- 1 out of 1 certificate requests certified, commit? [y/n]y
- Write out database with 1 new entries
- Data Base Updated
- root@delta:/etc/openvpn/easy-rsa#
當腳本成功運行完的時候,我們就得到了服務(wù)器的證書(keys/delta.crt)和私鑰(keys/delta.key)。注意服務(wù)器證書被CA的私鑰簽名了。
第四步 生成Diffie-Hellman參數(shù)
幸虧有了Diffie-Hellman參數(shù),我們才能在不安全的通信通道里安全的交換密鑰。為了生成它我們需要鍵入:
- root@delta:/etc/openvpn/easy-rsa# sh build-dh
- Generating DH parameters, 2048 bit long safe prime, generator 2
- This is going to take a long time
- .......................+.....................................+..
- ...........................+..+.....................+...........
- ..............................................+.................
- .......................+........................................
- ................................................+...............
- .......................................++*++*++*
- root@delta:/etc/openvpn/easy-rsa#
證書,私鑰和包含Diffie-Hellman參數(shù)的文件已生成,它們都儲存在/etc/openvpn/easy-rsa/keys,所以我們到現(xiàn)在為止已經(jīng)有如下五個文件了:
- ca.crt – 證書頒發(fā)機構(gòu)(CA)的證書
- ca.key – CA的私鑰
- delta.crt – OpenVPN服務(wù)器的證書
- delta.key – OpenVPN服務(wù)器的私鑰
- dh2048.pem – Diffie-Hellman參數(shù)文件
你自己的OpenVPN服務(wù)器命名可能和我們的不同。現(xiàn)在我們需要拷貝除了ca.key的文件到/etc/openvpn:
- root@delta:/etc/openvpn/easy-rsa# cd keys
- root@delta:/etc/openvpn/easy-rsa/keys# cp ca.crt delta.crt delta.key dh2048.pem /etc/openvpn
- root@delta:/etc/openvpn/easy-rsa/keys# cd ..
- root@delta:/etc/openvpn/easy-rsa#
第五步 為OpenVPN客戶端生成證書和私鑰
試想我們的筆記本要連接OpenVPN服務(wù)器。為了實現(xiàn)這個很常見的情況,我們首先需要為客戶端(比如:我們的筆記本)生成證書和私鑰,在/etc/openvpn/easy-rsa有一個腳本幫我們完成這項工作:
- root@delta:/etc/openvpn/easy-rsa# source vars
- NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/keys
- root@delta:/etc/openvpn/easy-rsa# ./build-key laptop
- Generating a 1024 bit RSA private key
- .......................................++++++
- ...................................................................................................++++++
- writing new private key to 'laptop.key'
- -----
- You are about to be asked to enter information that will be incorporated
- into your certificate request.
- What you are about to enter is what is called a Distinguished Name or a DN.
- There are quite a few fields but you can leave some blank
- For some fields there will be a default value,
- If you enter '.', the field will be left blank.
- -----
- Country Name (2 letter code) [GR]:
- State or Province Name (full name) [Central Macedonia]:
- Locality Name (eg, city) [Thessaloniki]:
- Organization Name (eg, company) [Parabing Creations]:
- Organizational Unit Name (eg, section) [Parabing]:
- Common Name (eg, your name or your server's hostname) [laptop]:
- Name [VPNsRUS]:
- Email Address [nobody@parabing.com]:
- Please enter the following 'extra' attributes
- to be sent with your certificate request
- A challenge password []:
- An optional company name []:
- Using configuration from /etc/openvpn/easy-rsa/openssl-1.0.0.cnf
- Check that the request matches the signature
- Signature ok
- The Subject's Distinguished Name is as follows
- countryName :PRINTABLE:'GR'
- stateOrProvinceName :PRINTABLE:'Central Macedonia'
- localityName :PRINTABLE:'Thessaloniki'
- organizationName :PRINTABLE:'Parabing Creations'
- organizationalUnitName:PRINTABLE:'Parabing'
- commonName :PRINTABLE:'laptop'
- name :PRINTABLE:'VPNsRUS'
- emailAddress :IA5STRING:'nobody@parabing.com'
- Certificate is to be certified until Apr 7 18:00:51 2024 GMT (3650 days)
- Sign the certificate? [y/n]:y
- 1 out of 1 certificate requests certified, commit? [y/n]y
- Write out database with 1 new entries
- Data Base Updated
- root@delta:/etc/openvpn/easy-rsa#
我們?yōu)槊荑€選取的名字是"laptop",當build-key腳本運行完之后,我們就得到了在keys/laptop.crt的證書和在keys/laptop.key的私鑰。有了這兩個文件和CA的證書,我們得把這三個文件拷貝到用戶有(比如用戶sub0)權(quán)訪問的地方。比如我們可以在用戶的home目錄中新建一個目錄并把三個文件拷貝過去:
- root@delta:/etc/openvpn/easy-rsa# mkdir /home/sub0/ovpn-client
- root@delta:/etc/openvpn/easy-rsa# cd keys
- root@delta:/etc/openvpn/easy-rsa/keys# cp ca.crt laptop.crt laptop.key /home/sub0/ovpn-client
- root@delta:/etc/openvpn/easy-rsa/keys# chown -R sub0:sub0 /home/sub0/ovpn-client
- root@delta:/etc/openvpn/easy-rsa/keys# cd ..
- root@delta:/etc/openvpn/easy-rsa#
ovpn-client文件夾必須安全的拷貝到我們的筆記本電腦上。我們可以給多個客戶端分發(fā)這三個文件。當然了,等我們需要一個不一樣的證書-私鑰對的時候只要再次運行build-key腳本即可。
#p#
第六步 -- OpenVPN服務(wù)器設(shè)置
等會我們的OpenVPN服務(wù)器就要啟動并運行了。但是開始的時候,我們需要更改一些設(shè)置。在/usr/share/doc/openvpn/examples/sample-config-files中有一個示例配置文件,它很適合我們的教程,這個文件叫server.conf.gz:
- root@delta:/etc/openvpn/easy-rsa# cd /etc/openvpn
- root@delta:/etc/openvpn# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz .
- root@delta:/etc/openvpn# gunzip -d server.conf.gz
- root@delta:/etc/openvpn# mv server.conf delta.conf
- root@delta:/etc/openvpn#
如你所見,我們把server.conf.gz拷貝到/etc/openvpn,解壓并重命名到delta.conf。你可以按個人喜好給OpenVPN服務(wù)器配置文件取名字,但是它必須有".conf"擴展名。我們現(xiàn)在用nano打開配置文件:
- root@delta:/etc/openvpn# nano delta.conf
下面是我們應(yīng)該做出的更改。
-
首先,定位到這一行
cert server.crt key server.key
確認OpenVPN服務(wù)器證書和私鑰的位置和名稱,在我們的例子中,這兩行要改成
- cert delta.crt
- key delta.key
-
然后定位到這一行
dh dh1024.pem
用"2048"代替"1024":
- dh dh2048.pem
-
在配置文件的末尾,我們添加下面這兩行:
push "redirect-gateway def1" push "dhcp-option DNS 10.8.0.1"
最后這兩行指示客戶端用OpenVPN作為默認的網(wǎng)關(guān),并用10.8.0.1作為DNS服務(wù)器。注意10.8.0.1是OpenVPN啟動時自動創(chuàng)建的隧道接口的IP。如果客戶用別的域名解析服務(wù),那么我們就得提防不安全的DNS服務(wù)器。為了避免這種泄露,我們建議所有OpenVPN客戶端使用10.8.0.1作為DNS服務(wù)器。
我們以這種方式來開始運行OpenVPN服務(wù)器:
- root@delta:/etc/openvpn# service openvpn start
默認的,OpenVPN服務(wù)器監(jiān)聽1194/UDP端口。一種查看的方法是使用netstat工具:
- root@delta:/etc/openvpn# netstat -anup
- Active Internet connections (servers and established)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- udp 0 0 0.0.0.0:54149 0.0.0.0:* 555/dhclient
- udp 0 0 0.0.0.0:1194 0.0.0.0:* 3024/openvpn
- udp 0 0 0.0.0.0:53 0.0.0.0:* 2756/dnsmasq
- udp 0 0 0.0.0.0:68 0.0.0.0:* 555/dhclient
- udp6 0 0 :::60622 :::* 555/dhclient
- udp6 0 0 :::53 :::* 2756/dnsmasq
看起來一切運行的不錯,但是我們還沒設(shè)置DNS服務(wù)器呢。
第七步 為OpenVPN客戶端搭建DNS
這就是為什么我們要安裝dnsmasq的原因,打開它的配置文件。
- root@delta:/etc/openvpn# nano /etc/dnsmasq.conf
定位到這行:
- #listen-address=
把它換成下面這樣:
- listen-address=127.0.0.1, 10.8.0.1
然后定位到這行:
- #bind-interfaces
把"#"刪了:
- bind-interfaces
為了讓dnsmasq應(yīng)用這些更改,我們重啟它:
- root@delta:/etc/openvpn# service dnsmasq restart
- * Restarting DNS forwarder and DHCP server dnsmasq [ OK ]
- root@delta:/etc/openvpn#
現(xiàn)在,dnamasq在本地回環(huán)(lo)和隧道(tun0)接口監(jiān)聽DNS請求。netstat的輸出看起來是這個樣子的:
- root@delta:/etc/openvpn# netstat -anup
- Active Internet connections (servers and established)
- Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
- udp 0 0 0.0.0.0:57219 0.0.0.0:* 638/dhclient
- udp 0 0 0.0.0.0:1194 0.0.0.0:* 911/openvpn
- udp 0 0 127.0.0.1:53 0.0.0.0:* 1385/dnsmasq
- udp 0 0 10.8.0.1:53 0.0.0.0:* 1385/dnsmasq
- udp 0 0 0.0.0.0:68 0.0.0.0:* 638/dhclient
- udp6 0 0 :::39148 :::* 638/dhclient
第八步 路由功能
我們希望在一些機器或虛擬機上運行的OpneVPN有路由的功能,這意味著要開啟IP轉(zhuǎn)發(fā)。為了打開它,我們用root賬戶鍵入:
- root@delta:/etc/openvpn# echo "1" > /proc/sys/net/ipv4/ip_forward
為了讓這個設(shè)置重啟也好用,我們編輯 /etc/sysctl.conf:
- root@delta:/etc/openvpn# nano /etc/sysctl.conf
編輯這行:
- #net.ipv4.ip_forward=1
把"#"刪了:
- net.ipv4.ip_forward=1
還需要激活一些iptables相關(guān)的規(guī)則:
- root@delta:/etc/openvpn# iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
- root@delta:/etc/openvpn# iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
- root@delta:/etc/openvpn# iptables -A FORWARD -j REJECT
- root@delta:/etc/openvpn# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- root@delta:/etc/openvpn#
當然了,我們希望每次Ubuntu啟動的時候,這些規(guī)則都好用。所以我們得把它們加到/etc/rc.local里:
- #!/bin/sh -e
- #
- # rc.local
- #
- # This script is executed at the end of each multiuser runlevel.
- # Make sure that the script will "exit 0" on success or any other
- # value on error.
- #
- # In order to enable or disable this script just change the execution
- # bits.
- #
- # By default this script does nothing.
- iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
- iptables -A FORWARD -s 10.8.0.0/24 -j ACCEPT
- iptables -A FORWARD -j REJECT
- iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
- service dnsmasq restart
- exit 0
請注意倒數(shù)第二行:
service dnsmasq restart
這非常重要:在系統(tǒng)啟動時,dnsmasq會嘗試在OpenVPN之前啟動。但是OpenVPN啟動之前是沒有隧道(tun0)接口的,所以dnsmasq自然就掛了。過了一陣,當/etc/rc.local讀到隧道(tun0)接口出現(xiàn)時,它會在這時重啟dnsmasq然后就一切如你所愿了。
#p#
第九步 客戶端設(shè)置
在第五步,我們在用戶的home目錄里我們建立了ovpn-client文件夾(在我們的例子里是/home/sub0)。在哪里有CA的證書和客戶端證書和私鑰。現(xiàn)在只缺客戶端配置文件了,在/usr/share/doc/openvpn/examples/sample-config-files有一個示例配置文件:
- root@delta:/etc/openvpn# exit
- exit
- sub0@delta:~$ cd ~/ovpn-client
- sub0@delta:~/ovpn-client$ cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf .
- sub0@delta:~/ovpn-client$
我們需要編輯client.conf,定位到這一行:
- remote my-server-1 1194
"my-server-1"是一個占位符,現(xiàn)在我們要把它換成我們自己服務(wù)器的公網(wǎng)域名或IP。如果我們已經(jīng)給服務(wù)器分配域名了,那只要把它填到my-server-1的位置。如果沒有域名,那么得獲取公網(wǎng)IP。如何獲取呢?一種方式是鍵入下列命令:
- sub0@delta:~/ovpn-client$ curl ipecho.net/plain ; echo
(如果不是一個數(shù)字的IP地址, 或是發(fā)生錯誤,那就等會再試。)所以我們現(xiàn)在知道我們的服務(wù)器公網(wǎng)IP了,但是它是動態(tài)的還是靜態(tài)的呢?當我們把服務(wù)器架設(shè)在家或者辦公室的時候,極有可能就是動態(tài)IP。如果是動態(tài)IP的話,可以用免費的動態(tài)域名服務(wù)(DDNS),比如No-IP的服務(wù)。如果使用No-IP,假設(shè)我們選擇了免費的域名dnsalias.net,那么這一行應(yīng)該像這樣填寫:
- remote ovpn.dnsalias.net 1194
"ovpn"是我們給服務(wù)器起的主機名。如果我們的服務(wù)器在云上,那么它可能有一個靜態(tài)IP。如果有靜態(tài)IP的話,那么這一行應(yīng)該是這樣的:
- remote 1.2.3.4 1194
還要修改兩行:
- cert client.crt
- key client.key
在我們的例子里,客戶端的證書和密鑰的名字分別是laptop.crt和laptop.key所以我們的client.conf要包含下面這兩行:
- cert laptop.crt
- key laptop.key
在確認保存client.conf的修改之后,我們需要安全的把整個ovpn-client文件夾傳輸?shù)娇蛻舳恕R环N方式是使用scp命令(安全拷貝或在SSH上拷貝)。另一種方式由優(yōu)秀而免費的軟件FileZilla提供,使用在SSH上運行的FTP(SFTP)。
第十步 連接并測試
所以我們到底怎么樣才能鏈接到遠程的OpenVPN服務(wù)器的呢?它完全取決于我們手中現(xiàn)有的設(shè)備類型,當然也取決于所運行的操作系統(tǒng)。我們將在四種不同類別的操作系統(tǒng)上運行,Linux, Windows, OS X和iOS/Android。注意,無論在什么設(shè)備和系統(tǒng)上,我們都得在OpenVPN服務(wù)器的本地網(wǎng)絡(luò)外才能連接成功。此外,如果在服務(wù)器前有防火墻,我們需要增加一條這樣的規(guī)則:
把所有從1194/UDP端口收到的包轉(zhuǎn)發(fā)到服務(wù)器公網(wǎng)接口的1194/UDP端口。
這是一個簡單的防火墻規(guī)則。事不宜遲,讓我們與我們難以置信的OpenVPN服務(wù)器建立第一個連接吧。
Linux: 我們只需安裝openvpn包。一種連接遠程OpenVPN服務(wù)器的方式是新建一個終端,切換到ovpn-client文件夾并以root身份或使用sudo來鍵入下列命令:
- /usr/sbin/openvpn --config client.conf
任何時候如果我們需要終止OpenVPN,按[CTRL+C]就行了。
Windows: 有一個免費的OpenVPN客戶端軟件叫做OpenVPN Desktop Client。 配置文件client.conf需要重命名成client.ovpn,這就是我們需要提供給OpenVPN Desktop Client的文件。程序會讀取client.ovpn并給OpenVPN服務(wù)器生成一個新的連接配置。
OS X: tunnelblick是一款可以連接OpenVPN的免費開源OS X軟件。Viscosity也可以但它是商業(yè)軟件,不過我們喜歡。Viscosity會讀取client.conf并給OpenVPN服務(wù)器生成一個新的連接配置。
iOS/Android: OpenVPN connect是絕佳的選擇。它是免費的且可以從App Store和Google Play store獲得
不管是什么平臺,有時我們想檢驗我們是否真的使用OpenVPN連接了。一種檢驗方法是完成下面這簡單的4步:
在連接到OpenVPN服務(wù)器前我們需要…
- 打開whatip.com記錄我們的公網(wǎng)IP
- 打開[dnsleaktest.com][10],運行標準測試(standard test),記錄我們的域名解析服務(wù)器
在連接到OpenVPN服務(wù)器后重復(fù)這兩部。如果我們獲取到兩個不同的公網(wǎng)IP,這意味著我們的網(wǎng)絡(luò)出口已在遠端OpenVPN服務(wù)器那。此外,如果獲取了兩個不同的域名解析服務(wù)器,那么就不存在DNS泄露的問題了。
感言
我用了三個不同的OpenVPN服務(wù)器,都是定制的。 一個運行在希臘Thessaloniki的家庭辦公室的pfSense路由。當我不在辦公室時,我用這個服務(wù)器安全的連接到局域網(wǎng)。剩下的兩個服務(wù)器在兩個不同的VPS上,一個在冰島雷克雅未克,另一個在美國紐澤西州。當我在外面且需要任意用一個WiFi熱點的時候,我不必考慮安全問題:我只需簡單的連接到雷克雅未克的服務(wù)器然后正常上網(wǎng)。有時我想看看那些限制用戶地理位置在美國的服務(wù)。在這種不太常見的情況下,新澤西的服務(wù)器就派上用場了,當我連接時,我就獲得了美國的一個公網(wǎng)IP,這樣就可以訪問有地理位置限制的服務(wù)了。值得注意的是,一些服務(wù)會把一些知名的VPN公司的IP列入黑名單。這是在你選的VPS提供商建立自己的OpenVPN十分重要的一個優(yōu)點:這不大可能被列入黑名單。
無論你的物理位置在哪, OpenVPN確??蛻舳撕头?wù)器之間的數(shù)據(jù)流是高度加密的。沒有OpenVPN的數(shù)據(jù)則是另一種情況。 取決于不同的應(yīng)用層協(xié)議,它可能仍然是加密的,但它也可能是未加密的。所以除非你對OpenVPN服務(wù)器和它的本地網(wǎng)絡(luò)有絕對的控制權(quán),你不能完全相信另一端的管理員。這種精神是顯而易見的:如果你真的在乎你自己的隱私,那么你需要注意你的行為可能在破壞它。
一個例子是我們希望點對點傳輸。我們有一個在云上配置好的OpenVPN服務(wù)器。當需要任意用一個WiFi熱點的時候,你沒有絲毫的擔心,因為你連在OpenVPN服務(wù)器上。然后你打開你最喜歡的電子郵件客戶端從一個依然使用SMTP的老服務(wù)器收信。你猜會發(fā)生什么?你的用戶名和密碼以未加密的純文本格式離開OpenVPN服務(wù)器。與此同時一個在你OpenVPN服務(wù)器附近的鬼鬼祟祟的管理員很容易就嗅探出你的證書并記錄到他們越來越長的名叫"random happy people.txt"的列表。
所以你該做什么?很簡單。你應(yīng)該繼續(xù)使用OpenVPN服務(wù)器,但不要使用應(yīng)用了舊的或不安全的協(xié)議的應(yīng)用程序。
享受你的OpenVPN服務(wù)器吧!