Le serveur OpenConnect, également appelé ocserv, est un serveur VPN qui communique via SSL. De par sa conception, son objectif est de devenir un serveur VPN sécurisé, léger et rapide. Le serveur OpenConnect utilise le protocole VPN SSL OpenConnect. Au moment de la rédaction, il a également une compatibilité expérimentale avec les clients qui utilisent le protocole VPN SSL AnyConnect.
Cet article vous montrera comment installer et configurer ocserv sur Ubuntu 14.04 x64.
Installation d'ocserv
Comme Ubuntu 14.04 n'est pas livré avec ocserv, nous devrons télécharger le code source et le compiler. La dernière version stable d'ocserv est 0.9.2.
Téléchargez ocserv sur le site officiel.
wget ftp://ftp.infradead.org/pub/ocserv/ocserv-0.9.2.tar.xz
tar -xf ocserv-0.9.2.tar.xz
cd ocserv-0.9.2
Ensuite, installez les dépendances de compilation.
apt-get install build-essential pkg-config libgnutls28-dev libwrap0-dev libpam0g-dev libseccomp-dev libreadline-dev libnl-route-3-dev
Compilez et installez ocserv.
./configure
make
make install
Configurer ocserv
Un exemple de fichier de configuration est placé dans le répertoire ocser-0.9.2/doc. Nous utiliserons ce fichier comme modèle. Dans un premier temps, nous devons créer nos propres cert CA et serveur cert.
cd ~
apt-get install gnutls-bin
mkdir certificates
cd certificates
Nous créons un fichier de modèle CA ( ca.tmpl) avec un contenu similaire au suivant. Vous pouvez définir vos propres "cn" et "organisation".
cn = "VPN CA"
organization = "Big Corp"
serial = 1
expiration_days = 3650
ca
signing_key
cert_signing_key
crl_signing_key
Ensuite, générez une clé CA et un certificat CA.
certtool --generate-privkey --outfile ca-key.pem
certtool --generate-self-signed --load-privkey ca-key.pem --template ca.tmpl --outfile ca-cert.pem
Ensuite, créez un fichier de modèle de certificat de serveur local ( server.tmpl) avec le contenu ci-dessous. Veuillez faire attention au champ "cn", il doit correspondre au nom DNS ou à l'adresse IP de votre serveur.
cn = "you domain name or ip"
organization = "MyCompany"
expiration_days = 3650
signing_key
encryption_key
tls_www_server
Ensuite, générez la clé de serveur et le certificat.
certtool --generate-privkey --outfile server-key.pem
certtool --generate-certificate --load-privkey server-key.pem --load-ca-certificate ca-cert.pem --load-ca-privkey ca-key.pem --template server.tmpl --outfile server-cert.pem
Copiez la clé, le certificat et le fichier de configuration dans le répertoire de configuration ocserv.
mkdir /etc/ocserv
cp server-cert.pem server-key.pem /etc/ocserv
cd ~/ocserv-0.9.2/doc
cp sample.config /etc/ocserv/config
cd /etc/ocserv
Modifiez le fichier de configuration sous /etc/ocserv. Décommentez ou modifiez les champs décrits ci-dessous.
auth = "plain[/etc/ocserv/ocpasswd]"
try-mtu-discovery = true
server-cert = /etc/ocserv/server-cert.pem
server-key = /etc/ocserv/server-key.pem
dns = 8.8.8.8
# comment out all route fields
#route = 10.10.10.0/255.255.255.0
#route = 192.168.0.0/255.255.0.0
#route = fef4:db8:1000:1001::/64
#no-route = 192.168.5.0/255.255.255.0
cisco-client-compat = true
Générez un utilisateur qui sera utilisé pour se connecter à ocserv.
ocpasswd -c /etc/ocserv/ocpasswd username
Activez NAT.
iptables -t nat -A POSTROUTING -j MASQUERADE
Activez le transfert IPv4. Modifiez le fichier /etc/sysctl.conf.
net.ipv4.ip_forward=1
Appliquez cette modification.
sysctl -p /etc/sysctl.conf
Démarrez ocserv et connectez-vous à l'aide de Cisco AnyConnect
Tout d'abord, démarrez ocserv.
ocserv -c /etc/ocserv/config
Ensuite, installez Cisco AnyConnect sur l'un de vos appareils, tels que l'iPhone, l'iPad ou un appareil Android. Puisque nous avons utilisé une clé de serveur et un certificat auto-signés, nous devons décocher l'option qui empêche les serveurs non sécurisés. Cette option se trouve dans les paramètres d'AnyConnect. À ce stade, nous pouvons configurer une nouvelle connexion avec le nom de domaine ou l'adresse IP de notre ocserv et le nom d'utilisateur / mot de passe que nous avons créé.
Connectez-vous et profitez-en!