Setups
General information
Wirnet™ iBTS information
Wirnet™ iFemtoCell information
Wirnet™ iFemtoCell-evolution information
Wirnet™ iStation information
System management
Network management
LoRa Features
KerOS customization
Support and resources
Setups
General information
Wirnet™ iBTS information
Wirnet™ iFemtoCell information
Wirnet™ iFemtoCell-evolution information
Wirnet™ iStation information
System management
Network management
LoRa Features
KerOS customization
Support and resources
This is an old revision of the document!
Here are the instructions for the VPN configuration for older firmware versions.
The OpenVPN binary on the gateway is slightly modified to work with ProvenCore. The concept is to have all the security information managed in the secure world.
In your openvpn.conf file you must not use the options: auth-user-pass. Indeed, the security (password) information is managed by ProvenCore in the trusted execution environment.
password.
cd /user/ mkdir trustzone/ mount -t tzfs tzfs trustzone/ mkdir -p trustzone/etc/openvpn/
scp client-openvpn.conf root@192.168.0.x:/user/ scp password root@192.168.0.x:/user/ scp OpenVpnClientCert.p12 root@192.168.0.x:/user/
Be sure to replace 192.168.0.x with the IP address of the Wirnet™ iBTS.
cp /user/client-openvpn.conf /etc/openvpn/
Copy the certificate and all the CA information to the TrustZone in P12 archive format.
Reboot the Wirnet™ iBTS to initialize the TrustZone logger.
# cp OpenVpnClientCert.p12 trustzone/etc/openvpn/ Loaded 11 ELFs from archive... Parsed init/build/init with header at 0x40124800 Parsed init/build/hello with header at 0x4012ba00 Parsed uart/build/uart with header at 0x40132c00 Parsed fs/build/fs with header at 0x4013a000 Parsed mmc/build/mmc with header at 0x4014b800 Parsed mmc/build/mmc-test with header at 0x40155600 Parsed ree/build/ree with header at 0x4015cc00 Parsed syield/build/syield with header at 0x40164400 Parsed help/build/help with header at 0x4016b600 Parsed shell/build/shell with header at 0x40172a00 Parsed openvpn/build/openvpn with header at 0x4017ae00 -=-=-=- ProvenCore Kernel -=-=-=- Copyright (c) 2014-2016, Prove & Run and/or its affiliates. All rights reserved. Booted 1 core in supervisor mode. [ 137.198532] tz: provencore returned 0xbf000000 Starting OpenVPN driver ... (pid=0x90009,nr=9) Starting MMC driver... (pid=0xb000b, nr=11) Starting REE driver... (pid=0xa000a, nr=10) Starting FS driver... (pid=0x80008, nr=8) Starting Init process... (pid=0x40004, nr=4) [info] [ree] ree shared buffer successfully mapped: addr=0x30000000, pages=256 [info] [fs] map ree physbuf [info] [ree] initialised ring buffer with 512 slots [info] [fs] mount MMC on drive 0: (mmc:) [info] [ree] successfully registered SGI [ 137.622891] tzfs: push file /etc/openvpn/OpenVpnClientCert.p12 (4412 / 4412 bytes) [info] [fs] check drive 0: [info] [fs] successfully uploaded new version for /etc/openvpn/OpenVpnClientCert.p12 [ 137.970990] tzfs: successfully uploaded file
The password file is in the form:
/etc/openvpn/OpenVpnClientCert.p12 PASSWORD
To install it, run:
cp /user/password trustzone/etc/openvpn/
Sample output (debug probe only):
[ 146.172188] tzfs: push file /etc/openvpn/password (42 / 42 bytes) [info] [fs] successfully uploaded new version for /etc/openvpn/password [ 146.459796] tzfs: successfully uploaded file
Add the following iptables rules: by default, only UDP port 1194 needs to be open:
iptables -t filter -A OUTPUT -p udp --dport 1194 -j ACCEPT
This rule is enough since the rule iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT is already present in the default firewall configuration.
openvpn /etc/openvpn/client-openvpn.conf
Sample output (the TrustZone traces are not displayed over SSH, only on the debug probe):
[ 887.477787] tz: miscdev open pid:920 Thu Aug 4 07:37:00 2016 OpenVPN ERR_put_error SSL routine2.3.11 arm-poky-linux-gnueabi [SSL] [LZO] [EPOLL] [MH] [IPv6] built on Jul 27 2016 Thu Aug 4 07:37:00 2016 library versions: OpenSSL 1.0.2h 3 May 2016, LZO 2.09 s SSL3_CTX_CTRL called a function you should not call s3_lib.c 2466 ERR_put_error asn1 encoding routines ASN1_get_object too long asn1/asn1_lib.c 143 ERR_put_error PKCS12 routines PKCS12_parse mac verify failure pkcs12/p12_kiss.c 115 ERR_put_error x509 certificate routines X509_check_private_key key values mismatch x509/x509_cmp.c 355 ERR_put_error x509 certificate routines X509_check_private_key key values mismatch x509/x509_cmp.c 355 Thu Aug 4 07:37:01 2016 Socket BSSL state (connect): uffers: R=[163840->163840] S=[163840->163840] Thu Aug 4 07:37:01 2016 UDPv4 link local: [undef] Thu Aug 4 07:37:01 2016 UDPv4 link remote: [AF_INET]164.132.103.11:1194 before/connect initialization SSL state (connect): unknown state Thu Aug 4 07:37:01 2016 TLS: Initial packet from [AF_INET]164.132.103.11:1194, sid=12c41a89 7837c19f SSL state (connect): SSLv3 read server hello A VERIFY OK: depth=2, CN=KerlinkRootCA VERIFY OK: depth=1, CN=OpenVPNCA VERIFY OK: depth=0, CN=OpenVpnServerCert SSL state (connect): SSLv3 read server certificate A SSL state (connect): SSLv3 read server key exchange A SSL state (connect): SSLv3 read server certificate request A SSL state (connect): SSLv3 read server done A SSL state (connect): SSLv3 write client certificate A SSL state (connect): SSLv3 write client key exchange A SSL state (connect): SSLv3 write certificate verify A SSL state (connect): SSLv3 write change cipher spec A SSL state (connect): SSLv3 write finished A SSL state (connect): SSLv3 flush data SSL state (connect): SSLv3 read finished A Thu Aug 4 07:37:05 2016 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key Thu Aug 4 07:37:05 2016 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Thu Aug 4 07:37:05 2016 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key Thu Aug 4 07:37:05 2016 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Thu Aug 4 07:37:05 2016 [] Peer Connection Initiated with [AF_INET]164.132.103.11:1194 Thu Aug 4 07:37:08 2016 SENT CONTROL [UNDEF]: 'PUSH_REQUEST' (status=1) Thu Aug 4 07:37:08 2016 PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' Thu Aug 4 07:37:08 2016 OPTIONS IMPORT: timers and/or timeouts modified Thu Aug 4 07:37:08 2016 OPTIONS IMPORT: --ifconfig/up options modified Thu Aug 4 07:37:08 2016 OPTIONS IMPORT: route options modified Thu Aug 4 07:37:08 2016 TUN/TAP device tun0 opened Thu Aug 4 07:37:08 2016 TUN/TAP TX queue length set to 100 Thu Aug 4 07:37:08 2016 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0 Thu Aug 4 07:37:08 2016 /sbin/ip link set dev tun0 up mtu 1500 Thu Aug 4 07:37:08 2016 /sbin/ip addr add dev tun0 local 10.8.0.6 peer 10.8.0.5 Thu Aug 4 07:37:08 2016 /sbin/ip route add 164.132.103.11/32 via 192.168.4.4 Thu Aug 4 07:37:08 2016 /sbin/ip route add 0.0.0.0/1 via 10.8.0.5 Thu Aug 4 07:37:08 2016 /sbin/ip route add 128.0.0.0/1 via 10.8.0.5 Thu Aug 4 07:37:08 2016 /sbin/ip route add 10.8.0.1/32 via 10.8.0.5 Thu Aug 4 07:37:08 2016 Initialization Sequence Completed
The feature is not available.