Installer 2FAuth avec Docker
2FAuth

Installer 2FAuth avec Docker

Table des matières

J'utilisais Google Authenticator dans le passé, outre le fait que ça me dérangeait un peu de tout confier à Google, il m'est arrivé une "blague", j'ai changé de téléphone et j'ai oublié de sauvegarder le nécessaire pour mes 2FA.

C'est le drame. Je prends énormément de soin à sauver mes serveurs, mais ça, j'avais complètement oublié de le faire...

J'ai donc cherché une alternative solide et je suis tombé sur 2FAuth et depuis, je n'ai pas changé. De plus elle offre des possibilités que Google Authenticator n'offre pas comme le temps qu'il s'écoule avant que le code change, le partage d'accès,...


2FAuth est une alternative Web auto-hébergée aux générateurs de codes d'accès à usage unique (OTP) comme Google Authenticator, conçue pour les appareils mobiles et les ordinateurs de bureau.

Il vise à vous faciliter la réalisation de vos démarches d'authentification 2FA quel que soit l'appareil que vous manipulez, avec une interface claire et adaptée.

⚡Caractéristiques

  • Gérez vos comptes 2FA et organisez-les à l'aide de groupes.
  • Scannez et décodez n'importe quel code QR pour ajouter un compte en un rien de temps.
  • Ajoutez un compte personnalisé sans QR code grâce à un formulaire avancé
  • Modifier les comptes, même ceux importés.
  • Générez des codes de sécurité TOTP et HOTP et des codes Steam Guard.
  • Partagez un accès 2FA avec une personne de confiance.
  • Adapté au mobile et tablette.

L'installation

Avec Cosmos Cloud

Cette application peut-être installée en un clic sur votre Cosmos Cloud en cliquant sur l'image ci-dessous:


Avec docker-compose

  1. On commence par créer le dossier ou on va installer 2fauth:
sudo mkdir 2fauth

On donne les bons droits comme le recommande la documentation:

chown 1000:1000 2fauth
chmod 700 2fauth

On va se rendre dans le dossier pour l'étape 2:

cd 2fauth
  1. Créez votre docker-compose.yml:
sudo nano docker-compose.yml
  1. Collez ça dedans en prenant soin d'adapter le port et les volumes suivant votre configuration:
version: "3"
services:
  2fauth:
    image: 2fauth/2fauth
    container_name: 2fauth
    volumes:
      - /srv/appdata/2fauth:/2fauth
    ports:
      - 8000:8000/tcp
    environment:
      # You can change the name of the app
      - APP_NAME=2FAuth
      - APP_ENV=local
      - APP_DEBUG=false
      - SITE_OWNER=mail@example.com
      - APP_KEY=SomeRandomStringOf32CharsExactly #32 caractères
      # This variable must match your installation's external address.
      # Webauthn won't work otherwise.
      - APP_URL=http://localhost
      - IS_DEMO_APP=false
      - LOG_CHANNEL=daily
      - LOG_LEVEL=notice
      - DB_DATABASE="/srv/database/database.sqlite"
      - CACHE_DRIVER=file
      - SESSION_DRIVER=file
     # - MAIL_DRIVER=log
     # - MAIL_HOST=smtp.mailtrap.io
     # - MAIL_PORT=2525
     # - MAIL_USERNAME=null
     # - MAIL_PASSWORD=null
     # - MAIL_ENCRYPTION=null
     # - MAIL_FROM_NAME=null
     # - MAIL_FROM_ADDRESS=null
      - MAIL_VERIFY_SSL_PEER=true
      - THROTTLE_API=60
      - LOGIN_THROTTLE=5
      - AUTHENTICATION_GUARD=web-guard
      - AUTH_PROXY_HEADER_FOR_USER=null
      - AUTH_PROXY_HEADER_FOR_EMAIL=null
      - PROXY_LOGOUT_URL=null
      - WEBAUTHN_NAME=2FAuth
      - WEBAUTHN_ID=null
      - WEBAUTHN_ICON=null
      - WEBAUTHN_USER_VERIFICATION=preferred
      - TRUSTED_PROXIES=null
      - PROXY_FOR_OUTGOING_REQUESTS=null
      - BROADCAST_DRIVER=log
      - QUEUE_DRIVER=sync
      - SESSION_LIFETIME=120
      - REDIS_HOST=127.0.0.1
      - REDIS_PASSWORD=null
      - REDIS_PORT=6379
      - PUSHER_APP_ID=
      - PUSHER_APP_KEY=
      - PUSHER_APP_SECRET=
      - PUSHER_APP_CLUSTER=mt1
      - VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
      - VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
      - MIX_ENV=local

SITE_OWNER=mail@example.com => indiquez votre mail, au choix
APP_KEY=SomeRandomStringOf32CharsExactly => choisissez une clé de 32 caractères, pas un de plus, pas un de moins.
APP_URL => cette variable doit correspondre à l'adresse externe de votre installation, ou, pour une utilisation en http mettre l'ip:port. Mais vivement déconseillé!

  1. On installe l'application:
docker-compose up -d

ou avec docker-compose V2:

docker compose up -d
  1. Rendez-vous sur l'ip:port, suivant l'IP de votre serveur local et du port choisi.

En HTTP:

http://ip:8000

ou votre domaine:

https://ndd.tml

Il vaut évidemment mieux choisir de se connecter avec du HTTPS, même en local!

⚠️
Si jamais cela semble ne pas démarrer, faites ces commandes à nouveau avant de relancer le container:
chown 1000:1000 2fauth
chmod 700 2fauth
  1. Créez votre compte et commencez à utiliser 2fauth:

Configurer le serveur mail

Pour activer le serveur mail, veillez à décommenter les lignes suivants et remplir les informations demandées:

MAIL_DRIVER=smtp
MAIL_HOST=SSL0.OVH.NET
MAIL_PORT=465
MAIL_USERNAME=john.doe@example.com
MAIL_PASSWORD=MyP4Ssw0rd
MAIL_ENCRYPTION=ssl
MAIL_FROM_NAME="John"
MAIL_FROM_ADDRESS=john.doe@example.com

Si vous n'avez pas de serveur mail personnel, vous pouvez utiliser votre Gmail, votre mail Microsoft,...:

Configurer le SMTP pour envoyer un mail avec une application Docker
Tutoriel pour configurer le SMTP afin d’envoyer un mail à partir de vos applications self-hosted.

zarev

🐧 Passionné de self-hosting, je partage ce que je connais et me nourris des connaissances des bonnes âmes qui partagent avec moi. Soutenons l'utilisation des apps open source et leurs développeurs.

Vous pourriez aussi aimer