GNU/Linux >> Tutoriels Linux >  >> Panels >> OpenVPN

Créez votre propre serveur combiné OpenVPN/WiKID pour un VPN avec une authentification à deux facteurs intégrée à l'aide de Packer.

Dans les didacticiels précédents, nous avons ajouté des mots de passe à usage unique à OpenVPN et créé un serveur WiKID à l'aide de Packer. Dans ce didacticiel, nous créons un serveur combiné OpenVPN/WiKID à l'aide de Packer. Packer nous permet de créer des images VMware, VirtualBox, EC2, GCE, Docker, etc. en utilisant du code. Notez que combiner votre serveur d'authentification à deux facteurs et votre serveur VPN sur un seul boîtier peut être ou non la meilleure solution pour vous. Nous aimons généralement la séparation des tâches pour la sécurité et la flexibilité. Cependant, si vous avez besoin de quelque chose de rapide - les auditeurs PCI arrivent lundi - ou si vous êtes dans un état répressif et avez juste besoin d'une connexion sortante sécurisée pendant une courte période. Et vous avez encore une certaine flexibilité. Vous pouvez ajouter plus de services au serveur WiKID. Vous pouvez désactiver le serveur OpenVPN et passer à un autre VPN à la place.

Créer le serveur combiné

Tout d'abord, téléchargez et installez Packer.

Découvrez nos scripts Packer sur GitHub. Les scripts consistent en un fichier JSON principal qui indique à Packer ce qu'il fait, un répertoire http avec des scripts de construction Anaconda, un répertoire de fichiers qui est téléchargé sur l'image et des provisionneurs qui s'exécutent après la construction de l'image. Fondamentalement, Packer commence avec une source telle qu'une ISO ou une AMI, construit le serveur basé sur Anaconda (au moins pour CentOS), télécharge tous les fichiers, puis exécute les approvisionneurs. Packer est principalement orienté vers la création de serveurs idempotents. Dans notre cas, nous l'utilisons pour exécuter les commandes, ce qui nous permet d'exécuter une commande au lieu d'environ 50 (juste pour le provisionnement).

Avant de construire, vous devez modifier quelques fichiers. Tout d'abord, éditez /files/vars . Il s'agit du fichier vars standard pour créer les certificats OpenVPN. Entrez simplement vos valeurs pour les champs de certificat.

# These are the default values for fields
# which will be placed in the certificate.
# Don't leave any of these fields blank.
export KEY_COUNTRY="US"
export KEY_PROVINCE="GA"
export KEY_CITY="Atlanta"
export KEY_ORG="WiKID Systems Inc"
export KEY_EMAIL="[email protected]"
export KEY_OU="WiKID Systems, Inc"

Ensuite, vous devez modifier le secret partagé dans /files/server . Ce fichier indiquera à PAM quel serveur RADIUS utiliser. Dans ce cas, il parle directement au serveur WiKID. Le secret partagé est utilisé pour coder le trafic radius. Étant donné que WiKID s'exécute sur le même serveur, conservez l'hôte local comme serveur :

# server[:port] shared_secret      timeout (s)
127.0.0.1       secret             3
 

Vous aurez besoin de ce secret partagé plus tard.

Jetez un œil dans centos-6-x86-64.json . Vous pouvez l'exécuter tel quel, mais vous voudrez peut-être modifier quelques éléments. Vous devez confirmer le source_ami (l'ami répertorié se trouve dans l'US-East) ou le basculer vers l'une de vos AMI CentOS préférées. Si vous construisez sur VMware ou VirtualBox, vous voudrez changer l'iso_url à l'emplacement de l'ISO CentOS sur votre disque dur et mettre à jour le MD5Sum. Vous pouvez modifier les noms et les descriptions. Vous pouvez également modifier la région EC2. Plus important encore, vous pouvez modifier le ssh_password qui est le mot de passe root.

Une fois que vous êtes satisfait du fichier JSON, vous pouvez le vérifier avec Packer :

$packer_location/packer verify centos-6-x86-64.json

Si cela fonctionne, construisez-le. Vous pouvez spécifier la plate-forme cible sur la ligne de commande :

$packer_location/packer build --only=virtualbox-iso centos-6-x86-64.json

Si vous créez pour EC2, mettez les informations d'identification requises dans la ligne de commande :

$packer_location/packer build -var 'aws_access_key=XXXXXXXXXXXXXXXXXXXX' -var 'aws_secret_key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' --only=amazon-ebs centos66.json

Si vous regardez les commandes s'exécuter, vous verrez un serveur OpenVPN complet en cours de construction avec de nouveaux certificats !

Configurer le serveur d'authentification à deux facteurs WiKID

Une fois celle-ci créée, vous devrez lancer l'AMI ou importer la machine virtuelle. Démarrez VirtBox et sélectionnez Fichier, Importer l'appliance. Pointez-le vers le répertoire output-virtualbox-iso créé par la commande build et ouvrez le fichier OVF. Apportez les modifications que vous souhaitez à la machine virtuelle (par exemple, la mémoire ou le réseau) et démarrez le serveur.

Connectez-vous en utilisant root/wikid ou tout ce que vous avez défini comme mot de passe root comme dans le fichier JSON. Nous allons configurer le serveur WiKID à l'aide de l'option de configuration de démarrage rapide. Copiez le fichier dans le répertoire courant :

cp /opt/WiKID/conf/sample-quick-setup.properties wikid.conf

Modifiez wikid.conf selon ces instructions. Utilisez l'adresse IP externe de votre serveur ou de votre instance EC2 complétée de zéros comme code de domaine. Ainsi, 54.163.165.73 devient 054163165073. Pour l'hôte RADIUS, utilisez l'hôte local et le secret partagé que vous avez créé dans /files/server ci-dessus :

information for setting up a RADIUS host
radiushostip=127.0.0.1
radiushostsecret=secret
; *NOTE*: YOU SHOULD REMOVE THIS SETTING AFTER CONFIGURATION FOR SECURITY
  

Si vous êtes sur une VM, vous pouvez configurer le réseau en exécutant :

wikidctl setup

Sur EC2, vous pouvez simplement configurer le serveur WiKID :

wikidctl quick-setup configfile=wikid.conf

Vous verrez défiler les informations de configuration. Démarrez le serveur WiKID :

wikidctl start

Vous serez invité à saisir la phrase de passe que vous avez définie dans wikid.conf. Accédez à l'interface WIKIDAdmin sur https://votreserveur.com/WiKIDAdmin/ et vous devriez voir votre domaine créé, votre client réseau Radius configuré et tous les certificats requis complétés.

Avant de quitter le serveur, vous devez ajouter votre nom d'utilisateur en tant que compte sur le serveur avec 'useradd $username'. Il n'est pas nécessaire d'ajouter un mot de passe.

Enregistrer le jeton logiciel WiKID

Téléchargez un jeton logiciel WiKID ou installez-en un pour iOS ou market://search?q=pname:com.wikidsystems.android pour Android dans les magasins d'applications.

Démarrez le token et sélectionnez "Ajouter un domaine". Entrez le code d'identification de domaine que vous avez défini dans wikid.conf et vous devriez être invité deux fois à définir votre code PIN. Faites-le et vous recevrez un code d'enregistrement. Accédez à l'interface utilisateur Web de WiKIDAdmin et cliquez sur l'onglet Utilisateurs, puis sur Valider manuellement un utilisateur. Cliquez sur votre code d'enregistrement et entrez votre nom d'utilisateur. Ce processus associe le jeton (et les clés échangées) à l'utilisateur.

Configurer le client VPN

Téléchargez le ca.crt sur le client :

scp -i ~/Downloads/wikid.pem [email protected]:/etc/openvpn/ca.crt .

Modifiez le fichier OpenVPN client.conf. Définissez le serveur distant comme votre serveur combiné WiKID/OpenVPN :

# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote yourserver.com 1194
   

Commentez les lignes pour le certificat et la clé. Ne laissant que le CA. Puisque nous utilisons WiKID pour authentifier et identifier l'utilisateur, ils ne sont pas nécessaires.

ca ca.crt
#cert client.crt
#key client.key
 

Au bas du fichier, dites au client de demander un mot de passe :

auth-user-pass

Démarrez maintenant le client OpenVPN :

sudo openvpn client.conf

Un nom d'utilisateur et un mot de passe vous seront demandés. Demandez un mot de passe à votre jeton WiKID et saisissez-le dans le champ du mot de passe. Vous devriez être autorisé à accéder.

Connexe :

  • WiKID - Serveur d'authentification à deux facteurs
  • OpenVPN
  • Emballeur

OpenVPN
  1. Configurez votre serveur OpenVPN sous Linux

  2. Installez OpenVPN sur votre PC Linux

  3. Comment configurer sudo pour l'authentification à deux facteurs à l'aide de pam-radius sur Ubuntu et CentOS

  4. OpenVPN - Sécurisez l'administration de votre serveur avec une connexion VPN multiplateforme

  5. Sécurisez OpenVPN avec l'authentification à deux facteurs de WiKID sur Centos 7

Configurez votre propre serveur VPN WireGuard sur Debian 11 et Debian 10

Création de certificats et de clés pour votre serveur OpenVPN

Configuration d'un serveur OpenVPN avec l'authentification Web et la viscosité Okta Single Sign-on

Comment créer votre propre serveur VPN IPsec sous Linux

Comment créer votre propre VPN – Instructions détaillées

DIY NAS Freenas Server - Construisez votre propre NAS avec Freenas