17. Démarrage automatique du VPN au redémarrage de la machine

Dans un premier temps, créez un répertoire tel que /etc/openvpn, pour y stocker les clef OpenVPN et les fichiers de configuration.

Décidez si vous voulez utiliser le mode TLS ou Clef Statique, et copiez les fichiers .conf, .up, .key, .pem, et .crt appropriés dans le répertoire /etc/openvpn.

Protégez les fichiers contenant les clef :

chmod go-rwx /etc/openvpn/*.key

Si vous utilisez Linux iptables, éditez le fichier de configuration firewall.sh, et effectuez les changements appropriés à votre site, et copiez le dans le répertoire /etc/openvpn.

Créez un script de démarrage qui ressemblera à ceci :

sample-config-files/openvpn-startup.sh


#!/bin/bash

# A sample OpenVPN startup script
# for Linux.

# openvpn config file directory
dir=/etc/openvpn

# load the firewall
$dir/firewall.sh

# load TUN/TAP kernel module
modprobe tun

# enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Invoke openvpn for each VPN tunnel
# in daemon mode.  Alternatively,
# you could remove "--daemon" from
# the command line and add "daemon"
# to the config file.
#
# Each tunnel should run on a separate
# UDP port.  Use the "port" option
# to control this.  Like all of
# OpenVPN's options, you can
# specify "--port 8000" on the command
# line or "port 8000" in the config
# file.

openvpn --cd $dir --daemon --config vpn1.conf
openvpn --cd $dir --daemon --config vpn2.conf
openvpn --cd $dir --daemon --config vpn2.conf


Et créez un scipt d'arrêt qui ressemblera à ceci :

sample-config-files/openvpn-shutdown.sh


#!/bin/bash

# stop all openvpn processes

killall -TERM openvpn


Enfin, ajoutez aux scripts de démarrage et d'arrêt du système, les appels aux scripts openvpn-startup.sh et openvpn-shutdown.sh. Vous pouvez aussi les intégrer dans le répertoire /etc/init.d, avec les appels à ces scripts depuis /etc/rcX.d (où X est le niveau de démarrage par défaut du système).