Install VPN

openvpn point to site – Linux安裝 OpenVPN

前置作業
確認有安裝以下軟體

  • openssl-devel
  • lzo-devel
  • pam-devel

如果沒有 lzo (http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz)

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz
taz xfz lzo-2.03.tar.gz
mv lzo-2.03 lzo
cd lzo
./configure
make
make install

  • #註: 執行./configure 如果出現以下錯誤訊息 :

checking build system type… i686-pc-linux-gnu
checking host system type… i686-pc-linux-gnu
checking whether make sets $(MAKE)… yes
checking for gcc… no
checking for cc… no
checking for cc… no
checking for cl… no
configure: error: no acceptable C compiler found in $PATH

  • 那就安裝 gcc 吧

yum install gcc

  • 如果沒有 openssl (http://www.openssl.org/source/openssl-1.0.0-beta2.tar.gz)

wget http://www.openssl.org/source/openssl-1.0.0-beta2.tar.gz
taz xfz openssl-1.0.0-beta2.tar.gz
mv openssl-1.0.0-beta2 openssl
cd openssl
./config … -DSSL_FORBID_ENULL -DDEVRANDOM='"/dev/urandom"‘ `echo $CFLAGS`
make
make install
# config 參考: http://lamp.linux.gov.cn/OpenSSL/OpenSSL_install_config.html

  • 其他錯誤
  • 我在安裝 openssl, 執行./config的出現如下錯誤訊息:

make: Warning: File `Makefile.org’ has modification time 6.1e+01 s in the future
Makefile is older than Makefile.org, Configure or config.
Reconfigure the source tree (via ‘./config’ or ‘perl Configure’), please.
make: *** [Makefile] Error 1
從字面意思可以知道是系統時間問題, 表示您系統時間跟現在的時間有很大差距
就把他調回來吧
# date -s 05/17/2009
# date -s 18:45:00

OpenVPN的下载地址:http://www.openvpn.net(wget http://openvpn.net/release/openvpn-2.1_rc15.tar.gz)

taz xfz openvpn-2.1_rc15.tar.gz
mv openvpn-2.1_rc15 openvpn
cd openvpn
./configure –with-lzo-headers=/usr/local/include –with-lzo-lib=/usr/local/lib –with-ssl-headers=/usr/local/ssl/include/ –with-ssl-lib=/usr/local/ssl/lib/
make
make install

  • 如果不加–with-ssl-headers,就會出現如下錯誤訊息

configure: checking for OpenSSL Crypto Library and Header files…
checking openssl/evp.h usability… no
checking openssl/evp.h presence… no
checking for openssl/evp.h… no
configure: error: OpenSSL Crypto headers not found

  • 如果不加 –with-ssl-lib=/usr/local/ssl/lib/,就出現如下錯誤訊息

configure: checking for OpenSSL Crypto Library and Header files…
checking openssl/evp.h usability… yes
checking openssl/evp.h presence… yes
checking for openssl/evp.h… yes
checking for EVP_CIPHER_CTX_init in -lcrypto… no
configure: error: OpenSSL Crypto library not found.

  • 先把檔案複製到 /etc/openvpn/
  • 複製範例設定檔

cp -f /usr/share/doc/openvpn-2.1/sample-config-files /etc/openvpn/

  • 複製 easy-rsa

cp -f /usr/share/openvpn/easy-rsa/2.0 /etc/openvpn/easy-rsa

  • 初始化 PKI
  • 產生 CA certificate 認證步驟

cd /etc/openvpn/easy-rsa

  • 在清除之前的檔案及產生CA Key

./clean-all
./build-ca

  • 建立 server key

./build-key-server server

  • 生成 client key

./build-key client1

  • 產生 keys/dh1024.pem

./build-dh

  • 產生 Diffie Hellman parameters

openvpn –genkey –secret ta.key (會產生 ta.key)

  • 把相關檔案壓縮並放到網頁目錄方便下載

cd /etc/openvpn/easy-rsa/keys
tar -cf mykeys.tar /var/www/html/mykeys.tar

  • 接下來就是設定檔部份了, 先複製一份範例檔來修改

local a.b.c.d #Server 的 IP, 不想改可以放著
port 1194
proto tcp #使用 tcp or udp
# 底下幾行指定 ca.crt 及各 key 的位置
# 如果沒有與server.conf放在相同目錄, 請寫絕對路徑
ca ca.crt
cert vm2server.crt
key vm2server.key
# dh檔案的位置
dh dh1024.pem
# OpenVPN 所使用的網段
server 10.8.0.0 255.255.255.0
# client 使用的 ip 存放檔案
ifconfig-pool-persist ipp.txt ; client Virtual IP 的對照表
# 讓 client 也可以連 10.8.0.x 網段
push “route 10.8.0.0 255.255.255.0″
# 讓各 client 也可以互連
client-to-client ;
keepalive 10 120
# TLS認證檔案, Server 要設 0 Client 設 1
tls-auth ta.key 0
comp-lzo
max-clients 10
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 3

最後再來把client檔案放到win版的openvpn的config目錄下, 並複製client設定檔去改就可以連線成功了。

終於把工作手稿整理好了, 我好懶

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *


*