1. 程式人生 > >嵌入式(arm linux)搭建openvpn客戶端

嵌入式(arm linux)搭建openvpn客戶端

搭建openvpn客戶端需要 openvpn openssl lzo

一、lzo-2.10

2、配置

./configure --host=arm-hisiv100nptl-linux CC=arm-hisiv100nptl-linux-gcc --prefix=/work/my/code/vpn/openvpn/lzo/install

3、編譯

make

4、安裝

make install

安裝在這個目錄下/work/my/code/vpn/openvpn/lzo/install,後面配置openvpn需要。

二、openssl-1.0.2n

2、配置

./Configure linux-elf no-asm  shared --prefix=/work/my/code/vpn/openvpn/openssl/install

修改:Makfile
1、
CC=gcc  CC= arm-hisiv100nptl-linux-gcc

2、
AR=arm-hisiv100nptl-linux-ar $(ARFLAGS) r
RANLIB= arm-hisiv100nptl-linux-ranlib

這裡要使用動態庫,所以要有shared選項。使用靜態庫,配置openvpn會檢測不過。

3、編譯

make

4、安裝

make install

安裝在/work/my/code/vpn/openvpn/openssl/install目錄,配置openvpn時用

把生成的 libcrypto.so.1.0.0  libssl.so.1.0.0 拷貝到裝置/lib目錄裡。openvpn執行需要這兩個庫。

三、openvpn-2.4.6

2、配置

./configure --host=arm-hisiv100nptl-linux --disable-lz4  --disable-plugins \
CC=arm-hisiv100nptl-linux-gcc \
--prefix=/work/my/code/vpn/openvpn/openvpn_src/install \
OPENSSL_CFLAGS="-I/work/my/code/vpn/openvpn/openssl/install/include" \
OPENSSL_LIBS="-L/work/my/code/vpn/openvpn/openssl/install/lib -lssl -lcrypto" \
LZO_CFLAGS="-I/work/my/code/vpn/openvpn/lzo/install/include" \
LZO_LIBS="-L/work/my/code/vpn/openvpn/lzo/install/lib -llzo2"

3、編譯

make

4、安裝

make install

5、把生成的opevpn執行檔案下載到開發板

建立一個openvpnclient 目錄,裡面新增檔案如下:

[email protected]:/work/nfs/bin/vpn/openvpnclient# ls -l
總用量 2412
-rw-r--r-- 1 hjx  hjx     1781 6月   8 13:57 ca.crt
-rwxrwxrwx 1 root root    3479 6月  12 13:54 client.ovpn
-rw-r--r-- 1 hjx  hjx     5591 6月   8 13:57 FFOpenvpnClient.crt
-rw------- 1 hjx  hjx     1704 6月   8 13:57 FFOpenvpnClient.key
-rwxr--r-- 1 hjx  hjx  2414251 6月  12 10:15 openvpn

其他的幾個檔案都是上篇文章生成的。

6、配置核心kernel

make menuconfig





選擇生成模組驅動的方式,這樣就不需要重新下載核心映象。

7、載入tun驅動模組

# ./tun.ko 

9、啟動openvpn

openvpn --config client.ovpn
# ./openvpn --config client.ovpn
Tue Jun 12 20:32:06 2018 OpenVPN 2.4.6 arm-hisiv100nptl-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH/PKTINFO] [AEAD] built on Jun 12 2018
Tue Jun 12 20:32:06 2018 library versions: OpenSSL 1.0.2n  7 Dec 2017, LZO 2.10
Tue Jun 12 20:32:06 2018 TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.9.161:1194
Tue Jun 12 20:32:06 2018 Socket Buffers: R=[87380->87380] S=[16384->16384]
Tue Jun 12 20:32:06 2018 Attempting to establish TCP connection with [AF_INET]192.168.9.161:1194 [nonblock]
Tue Jun 12 20:32:07 2018 TCP connection established with [AF_INET]192.168.9.161:1194
Tue Jun 12 20:32:07 2018 TCP_CLIENT link local: (not bound)
Tue Jun 12 20:32:07 2018 TCP_CLIENT link remote: [AF_INET]192.168.9.161:1194
Tue Jun 12 20:32:07 2018 TLS: Initial packet from [AF_INET]192.168.9.161:1194, sid=1d8d70aa a5ebeee6
Tue Jun 12 20:32:07 2018 VERIFY OK: depth=1, C=CH, ST=FJ, L=XiaMen, O=Four-Faith, OU=Four-Faith-Dvr, CN=Four-Faith CA, name=FFOpenvpnServer, [email protected]
Tue Jun 12 20:32:07 2018 VERIFY KU OK
Tue Jun 12 20:32:07 2018 Validating certificate extended key usage
Tue Jun 12 20:32:07 2018 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
Tue Jun 12 20:32:07 2018 VERIFY EKU OK
Tue Jun 12 20:32:07 2018 VERIFY OK: depth=0, C=CH, ST=FJ, L=XiaMen, O=Four-Faith, OU=Four-Faith-Dvr, CN=FFOpenvpnServer, name=FFOpenvpnServer, emailAddress=1[email protected]
Tue Jun 12 20:32:07 2018 Control Channel: TLSv1.2, cipher TLSv1/SSLv3 DHE-RSA-AES256-GCM-SHA384, 2048 bit RSA
Tue Jun 12 20:32:07 2018 [FFOpenvpnServer] Peer Connection Initiated with [AF_INET]192.168.9.161:1194
Tue Jun 12 20:32:08 2018 SENT CONTROL [FFOpenvpnServer]: 'PUSH_REQUEST' (status=1)
Tue Jun 12 20:32:08 2018 PUSH: Received control message: 'PUSH_REPLY,route 10.8.0.0 255.255.255.0,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5'
Tue Jun 12 20:32:08 2018 OPTIONS IMPORT: timers and/or timeouts modified
Tue Jun 12 20:32:08 2018 OPTIONS IMPORT: --ifconfig/up options modified
Tue Jun 12 20:32:08 2018 OPTIONS IMPORT: route options modified
Tue Jun 12 20:32:08 2018 Outgoing Data Channel: Cipher 'BF-CBC' initialized with 128 bit key
Tue Jun 12 20:32:08 2018 WARNING: INSECURE cipher with block size less than 128 bit (64 bit).  This allows attacks like SWEET32.  Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Tue Jun 12 20:32:08 2018 Outgoing Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jun 12 20:32:08 2018 Incoming Data Channel: Cipher 'BF-CBC' initialized with 128 bit key
Tue Jun 12 20:32:08 2018 WARNING: INSECURE cipher with block size less than 128 bit (64 bit).  This allows attacks like SWEET32.  Mitigate by using a --cipher with a larger block size (e.g. AES-256-CBC).
Tue Jun 12 20:32:08 2018 Incoming Data Channel: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jun 12 20:32:08 2018 WARNING: cipher with small block size in use, reducing reneg-bytes to 64MB to mitigate SWEET32 attacks.
Tue Jun 12 20:32:08 2018 ROUTE_GATEWAY 192.168.9.1/255.255.255.0 IFACE=eth0 HWADDR=c2:4f:b4:b3:97:d7
Tue Jun 12 20:32:08 2018 TUN/TAP device tun0 opened
Tue Jun 12 20:32:08 2018 TUN/TAP TX queue length set to 100
Tue Jun 12 20:32:08 2018 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Tue Jun 12 20:32:08 2018 /sbin/ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500
Tue Jun 12 20:32:08 2018 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.5
Tue Jun 12 20:32:08 2018 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Tue Jun 12 20:32:08 2018 Initialization Sequence Completed

看到tun0 10.8.0.6,說明連線成功,伺服器分配給我們ip地址了。

10、檢視tuno

# ifconfig
eth0      Link encap:Ethernet  HWaddr C2:4F:B4:B3:97:D7  
          inet addr:192.168.9.166  Bcast:192.168.9.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26035021 errors:0 dropped:4868 overruns:0 frame:0
          TX packets:6958380 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:578648897 (551.8 MiB)  TX bytes:989138257 (943.3 MiB)
          Interrupt:119 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:7162 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7162 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:15002931 (14.3 MiB)  TX bytes:15002931 (14.3 MiB)

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:10.8.0.6  P-t-P:10.8.0.5  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

# 

11、ping 10.8.0.1 伺服器

# ping 10.8.0.1
PING 10.8.0.1 (10.8.0.1): 56 data bytes
64 bytes from 10.8.0.1: seq=0 ttl=64 time=2.750 ms
64 bytes from 10.8.0.1: seq=1 ttl=64 time=2.190 ms

能正常通訊

12、ping 10.8.0.10 window客戶端

# ping 10.8.0.10 
PING 10.8.0.10 (10.8.0.10): 56 data bytes
64 bytes from 10.8.0.10: seq=0 ttl=128 time=4.554 ms
64 bytes from 10.8.0.10: seq=1 ttl=128 time=2.231 ms
64 bytes from 10.8.0.10: seq=2 ttl=128 time=3.651 ms

能通訊,說明兩個客戶端之間可以相互通訊了。

到此arm linux客戶端搭建完成。


相關推薦

嵌入式(arm linux搭建openvpn客戶

搭建openvpn客戶端需要 openvpn openssl lzo一、lzo-2.102、配置./configure --host=arm-hisiv100nptl-linux CC=arm-hisiv100nptl-linux-gcc --prefix=/work/my/

UDP Linux編程(客戶&服務器

res pes recvfrom types 轉換 reply include 統一 break 服務器端 服務器不用綁定地址,他只需要進行綁定相應的監聽端口即可。 #include <sys/types.h> #include <sys/socke

CAS(四基於Springboot搭建CAS-client,Springboot搭建CAS客戶

環境要求 JDK 8+ CAS 5.2 tomcat 8+ 步驟 一、搭建CAS伺服器  --> CAS(一)搭建CAS - server伺服器   二、配置hosts,加入如下配置 127.0.0.1

CAS(三基於SpringMVC搭建CAS-client,SpringMVC搭建CAS客戶

環境要求 JDK 8+ CAS 5.2 tomcat 8+ 步驟 一、搭建CAS伺服器  --> CAS(一)搭建CAS - server伺服器   二、配置hosts,加入如下配置 127.0.0.1

PostgreSQL應用(一,環境搭建客戶工具安裝

一,PostgreSQL下載 官方下載地址: https://www.postgresql.org/download/ pgAdmin4客戶端工具下載地址:https://www.pgadmin.org/download/pgadmin-4-windows/ 二,安裝 本次PostgreSQ

Eclipse初次搭建SpringCloud客戶(二

一:建立SpringBoot專案 選擇屬性時選擇client 修改DiscSystem4Application類  新增@EnableEurekaClient和@RestController import org.springframework.beans.facto

Linux搭建openvpn服務

廢話少說,這是我自己編寫的一個搭建openvpn的指令碼,增強了金鑰,遇到啥問題了歡迎留言哈;執行指令碼如下: wget https://raw.githubusercontent.com/PMJ52

linux openvpn 客戶連線配置

1.yum install openvpn 2.vi /etc/openvpn/a.openvpn client  dev tun  proto tcp remote 123.84.202

Unity3d搭建HTTP弱聯網的伺服器搭建客戶編寫(一之java伺服器

HTTP弱聯網java伺服器 通過tomcat搭建java伺服器(linux 1、java環境搭建 java環境較容易搭建,在網上很容易找到相關的教程。 2、tomcat環境搭建 開始配置tomcat: 複製解壓後的檔案到 /opt

搭建Git伺服器(Ubuntu虛擬機器和windows客戶

         一直以來用Git都是用的別人的伺服器, 比如oschina 和github,  今天因為工作需要在自己的ubuntu上搭建了自己Git 伺服器, 以下記錄一些步驟和碰到的問題

Ubuntu 12.04嵌入式交叉編譯環境arm-linux-gcc搭建過程圖解

安裝前的絮叨 首先簡單介紹一下,所謂的搭建交叉編譯環境,即安裝、配置交叉編譯工具鏈。在該環境下編譯出嵌入式Linux系統所需的作業系統、應用程式等,然後再上傳到目標機上。 交叉編譯工具鏈是為了編譯、連結、處理和除錯跨平臺體系結構的程式程式碼。對於交叉開發的工具鏈來說,在檔名稱上加了一個字首,用來區別本地的

CentOS下Git伺服器搭建客戶(windows和centos搭建

一.伺服器端 1.yum安裝Git伺服器 yum install -y git 2.建立一個git使用者,用來執行git服務 useradd git 3.建立客戶端登入證書 注,收集所有需要登入的使用者的公鑰,就是他們自己生成的id_rsa.pub檔案,把所有公鑰複製到/

Linux學習】Ubuntu下嵌入式交叉編譯環境arm-linux-gcc搭建

(1)首先選擇一個路徑用來存放arm-linux-gcc。我選用的是/home/book,並在下面建立一個資料夾arm-linux-gcc。 (2)利用cp EABI-4.3.3_Emdedsky_20100610.tar.bz2 arm-linux-gcc,將壓縮包EA

騰訊雲Linux伺服器搭建(九) Linux上DB2的客戶實現資料的備份和恢復

問題:DB2伺服器裝在AIX上,不允許直接利用伺服器做資料的匯出匯入。但是由於專案需要,需要頻繁的對一些表進行資料的備份和恢復。所以只能在一個其他伺服器上安裝DB2客戶端,通過客戶端來實現資料的備份和恢復。 思路:先從IBM官網下載客戶端;然後安裝到一個應用伺服器上(Cen

利用橋接實現OpenVPN客戶訪問與伺服器(windows同一網段的其它電腦

背景:  openvpn的伺服器和客戶端不在同一網路,均連線各自的路由器接入internet。 openvpn版本:2.1.4(OpenVPN 2.1.4 i686-pc-mingw32 [SSL] [LZO2] [PKCS11] built on Nov  8 2010

Ubuntu 14.04 LTS嵌入式交叉編譯環境arm-linux-gcc搭建過程圖解

1、將壓縮包arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2存放在一個目錄下,這個目錄就是你等會解壓縮的目錄,以後這個目錄就不能隨便刪掉了,我的存放路徑是/home/g

Elasticsearch全文檢索企業開發記錄總結(二:ES客戶搭建

專案依賴 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport<

C++傳智筆記(6:socket客戶發送報文接受報文的api接口

內存泄露 rcp 分配內存 strcpy light cpp tac 第三方 _file__ #define _CRT_SECURE_NO_WARNINGS #include "stdio.h" #include "stdlib.h" #include "string.

Linux下L2TP VPN客戶的配置

linux下xl2tpd客戶端配置系統環境centos6.81,安裝xl2tpd和pppyum -y install xl2tpd ppp2,配置xl2tpd編輯配置文件xl2tpd.confvim /etc/xl2tpd/xl2tpd.conf[lac testvpn] ;testvpn為lac的名稱n

linux編譯安裝mssql客戶和配置php連接mssql

linux 客戶端 凡是連接數據庫,必須安裝客戶端,我一般寫博客都不寫原理,但是後來發現回頭看自己寫的自己都看不懂,所以這章博客會多一點原理性的東西。數據庫的連接一般都是在客戶端上完成的,MySQL也不例外,安裝mysql時一般都會這麽安裝:#yum install mysql mysql-serve