因為看到有人說 OpenVPN 非常好用, 所以就用 OpenVPN 2.0.7 架了一個站, 在一個晚上試誤之下,
Client Config File
client
dev tun
dev-node MyTap
proto tcp
remote 111.222.333.444 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
comp-lzo
verb 3
Server Config File
#
dev tun
port 1194
# use tcp, could pass by proxy server
proto tcp
server 192.168.10.0 255.255.255.0
push "redirect-gateway"
push "dhcp-option DNS 168.95.192.2"
# Let client connect to another client
;client-to-client
ifconfig-pool-persist ipp.txt
keepalive 10 120
tls-server
dh /usr/share/openvpn/easy-rsa/keys/dh2048.pem
ca /usr/share/openvpn/easy-rsa/keys/ca.crt
cert /usr/share/openvpn/easy-rsa/keys/server.crt
key /usr/share/openvpn/easy-rsa/keys/server.key
; user nobody
; group nobody
comp-lzo
; ping 15
; ping-restart 45
; ping-timer-rem
persist-tun
persist-key
status openvpn-status.log
verb 3
產生 Key 的部份
- cd /usr/share/openvpn/easy-rsa
- vim vars
- 將 Key 長度改 2048
- 其他的 Information 也要相對修改
- source ./vars
- ./clean-all
- ./build-dh
- ./build-ca
- ./build-key-server server
- 修改 /etc/opensvn/opensvn.conf
- 將 ca.crt, server.crt, server.key 指到 /usr/share/openvpn/easy-rsa/keys 下
- ./build-key client1
- 將 client1.crt , celient1.key, ca.crt copy 到 Windows 端
[編輯]
其他需注意的部份
- 使用 OpenVPN GUI 可以即時設定 Proxy
- 如果要設定 Proxy, 連線的 Protocol 要使用 TCP.
- 如果 syslog 有 “Note: Cannot open TUN/TAP dev /dev/net/tun: No such file or directory (errno=2)”, 請下以下指令
mkdir /dev/net; mknod -m0600 /dev/net/tun c 10 200
如果有任何問題, 可以在我的 Comment 留言, wiki 不開放修改.
2017/01/18 Update
時隔 10 年發現 Key 過期了, 所以跑回來修一下文章 (只有 Key 部份)
安裝 easy-rsa 套件
$ emerge --ask app-crypt/easy-rsa
copy easy-rsa 套件到 openvpn 下
$ cd /etc/openvpn $ cp -a /usr/share/easy-rsa . $ cd easy-rsa $ mv vars.example vars
修改 vars 內, 我比較傳統, 走舊式的方式
set_var EASYRSA_DN "org" set_var EASYRSA_REQ_COUNTRY "TW" set_var EASYRSA_REQ_PROVINCE "Taiwan" set_var EASYRSA_REQ_CITY "New Taipei" set_var EASYRSA_REQ_ORG "domain.com" set_var EASYRSA_REQ_EMAIL "email@domain.com" set_var EASYRSA_REQ_OU "Organizational Unit"
編輯完之後 清除所有的 PKI 設定
$ ./easyrsa init-pki
建立 ca 資訊, ca 要輸入密碼, 請記好. dh 是產生 Diffie-Hellman .pem file
$ ./easyrsa build-ca $ ./easyrsa gen-dh
建立 Server 和 Client Key 資訊
$ ./easyrsa build-server-full server1 nopass $ ./easyrsa build-client-full client1 nopass
中間有問密碼就是 ca 的密碼
最後, 編輯 /etc/openvpn/openvpn.conf
加上
dh /etc/openvpn/easy-rsa/pki/dh.pem ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/server1.crt key /etc/openvpn/easy-rsa/pki/private/server1.key
這樣應該就可以了, 下次更新不知道會不會是十年後的事情了呢?
ref.
Create a Public Key Infrastructure Using the easy-rsa Scripts : 其實是我改的, 原來文件過期太久了… -_-!
其實原來是參考 Arch 的文件, 不過太麻煩了
https://wiki.archlinux.org/index.php/Easy-RSA
JLS
這兩天上班沒事玩了一下,設定是比之前用過的人性化不少,補充一下我的心得。
由於我是想要在校外能夠使用學校資源,所以才想到用 vpn 的方式,因此我只有對校內 ip 才要透過 vpn,其他的還是走我原來的 adsl 線路出去就可以了,所以我修正如下:
push “redirect-gateway” 這一行會會更改 client 的 default gateway,所以我拿掉了。
push “route 192.168.10.0 255.255.255.0” 這一行會去修正 client 的 routing table ,以此例來說是讓 192.168.10.0/24 用 vpn 線路去跑…
以上
謝謝
Jacky
我用了windows 2003 server + ISA 2006 + Openvpn後,發現不如預期的好,比Ethernet 傳輸的慢,不曉得你的會不會這樣?
Jacky
我也用OPENVPN安裝在windows server2003 然後加上ISA Server2006 可是發現連上外部會很慢