blob: eec1f9ba0e08ffa716082332872ddd15d0c317c8 [file] [log] [blame]
# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# An example of how to set up an OpenVPN VPN from the Client (DUT),
# through the Router to to the Server.
#
{ "name":"VPNGenesis",
"steps":[
# Create WiFi connection from Client to Router.
[ "create", { "type":"hostap" } ],
[ "config", { "channel":"2412", "mode":"11b" } ],
[ "connect", { "security":"none" } ],
# Create Client & Server VPN configurations.
#
# o Install certficiates files on Server, and Client.
# o Create VPN configuration on the Server.
[ "install_files", { "system" : "server",
"files" :
{ "/tmp/vpn-ca.crt":
site_eap_certs.ca_cert_1,
"/tmp/vpn-server.crt":
site_eap_certs.server_cert_1,
"/tmp/vpn-server.key":
site_eap_certs.server_private_key_1,
"/tmp/vpn-dh1024.pem":
site_eap_certs.dh1024_pem_key_1
}}],
[ "install_files", { "system" : "client",
"files" :
{ "/tmp/vpn-ca.crt":
site_eap_certs.ca_cert_1,
"/tmp/vpn-client.crt":
site_eap_certs.client_cert_1,
"/tmp/vpn-client.key":
site_eap_certs.client_private_key_1
}}],
# Configure and launch the VPN server. Automatically kills any
# previously running server.
#
# There are two vpn_server_config() uses to ensure that the
# internal configuration is persistent across invocations.
#
[ "vpn_server_config", { "kind" : "openvpn",
"config" :
{ "port":"1194",
"proto":"udp",
"dev":"tun",
"ca":"/tmp/vpn-ca.crt",
"cert":"/tmp/vpn-server.crt",
"key":"/tmp/vpn-server.key",
"dh":"/tmp/vpn-dh1024.pem",
"server":"10.8.0.0 255.255.255.0",
"ifconfig-pool-persist":"/tmp/ipp.txt",
"keepalive":"10 120",
"persist-key":"",
"persist-tun":"",
"status":"/tmp/openvpn-status.log",
"verb":"0"
}
}],
# Having two vpn_server_config invocations back-to-back results in
# a failure with 'pkill' right after an rspro boot. There seems
# to be some significant latency when starting the first time, so
# slow the system down a tad to avoid spurious errors.
[ "sleep", { "time": "1" } ],
[ "vpn_server_config", { "kind" : "openvpn",
"config" : { "comp-lzo":"" }
}],
# Launch the VPN Client.
[ "vpn_client_load_tunnel" ],
[ "vpn_client_config", { "kind":"openvpn",
"files":{
"ca-certificate":"/tmp/vpn-ca.crt",
"client-certificate":"/tmp/vpn-client.crt",
"client-key":"/tmp/vpn-client.key" },
"remote-cert-tls":"none"
}],
# Verify the client is connected to the server
[ "client_ping", { "ping_ip":"10.8.0.1",
"count":"10" } ],
# Ensure the VPN also works with the client-side default of
# '--remote-cert-tls server'.
[ "vpn_client_config", { "kind":"openvpn",
"files":{
"ca-certificate":"/tmp/vpn-ca.crt",
"client-certificate":"/tmp/vpn-client.crt",
"client-key":"/tmp/vpn-client.key" },
}],
# Verify the client is connected to the server
[ "client_ping", { "ping_ip":"10.8.0.1",
"count":"10" } ],
[ "vpn_server_kill" ], # Shut down the VPN Server.
[ "vpn_client_kill" ], # Shut down the VPN Client.
[ "disconnect" ], # Disconnect WiFi setup
],
}