PSONO | Gestionnaire d'identification open source pour les équipes

Psono Logiciel gratuit de gestion des mots de passe

Gestionnaire des informations d'identification open source pour les équipes et les entreprises

PSONO est un gestionnaire de mots de passe open source conçu pour les équipes. Il peut être auto-hébergé du côté client et a un cryptage multicouche pour une sécurité maximale.

Aperçu

PSONO est un gestionnaire de mots de passe gratuit pour les équipes. La plupart des gestionnaires de mot de passe open source qui sont gratuits à utiliser ne proposent pas l’option pour mettre à l’échelle et héberger les gestionnaires de mot de passe de votre équipe ou sur vos serveurs, respectivement. Cependant, avec PSONO, vous obtenez un gestionnaire d’identification Open Source gratuit, complètement sécurisé, entièrement sécurisé qui est conçu en gardant à l’esprit les équipes. Avec PSONO, vous pouvez déployer le gestionnaire de mots de passe sur votre propre serveur et permettre à jusqu’à 10 utilisateurs de stocker leurs informations importantes et également d’y accéder. En tant que gestionnaire de mot de passe open source, il a également plusieurs compatibilité des appareils et en cross-plateforme tels que iOS, Android, MacOS, Linux et des navigateurs comme Chrome, Edge, Safari et plus encore. La principale commodité d’utiliser des gestionnaires de mot de passe open source comme PSONO est la possibilité d’accéder à vos informations critiques de n’importe où, à tout moment et la possibilité de stocker d’autres informations telles que les données de carte de crédit, les informations bancaires et plus encore. PSONO est pratique et efficace, en particulier pour les équipes qui se connectent et accèdent à différentes applications ou serveurs sensibles. PSONO est un gestionnaire de mot de passe auto-hébergé. Il peut être utilisé comme extension Web, déployé sur votre serveur, accessible via l’application client Web ou installé via le Docker. Vous pouvez également y accéder sur vos téléphones mobiles ou simplement l’installer dans votre pipeline CI CD pour n’importe quel projet.

Configuration requise


Lors de l’installation de PSONO pour Ubuntu, assurez-vous que vous avez les exigences du système suivantes:

  • Ubuntu 20.04
  • Accès du serveur via IP statique ou un nom de domaine / hôte qui le pointe.
  • Assurez-vous que le serveur a 2 Go de RAM et 2 cœurs
  • Un utilisateur non root avec les autorisations sudo

Caractéristiques


Voici quelques fonctionnalités bonnes à connaître sur PSONO:

  • PSONO utilise un chiffrement multicouche où trois couches de chiffrement protègent les données lorsqu’elles sont transférées d’un navigateur vers le serveur d’applications PSONO. Le serveur crypte les données à l’aide du chiffre de flux SALSO20 avec le code Mac Poly1305 qui réduit la nécessité de s’appuyer sur le DBA (administrateur de base de données) pour la validation.
  • Vous pouvez utiliser le générateur de mot de passe pour produire un mot de passe composé d’un minimum de 6 caractères ou plus composé de symboles, de nombres, de caractères en bas de cas / en bas de casse, etc.
  • Avec PSONO, vous pouvez facilement automatiquement automatiquement vos informations d’identification de connexion pour différents sites Web après avoir fourni les détails nécessaires sur l’application.
  • Les mots de passe sont également accessibles lorsque vous êtes hors ligne via les applications côté client.
  • Vous pouvez également créer des codes d’urgence pour accéder aux mots de passe en cas de problème d’héritage numérique, comme le décès d’un membre de l’équipe ou l’indisponibilité en cas d’urgence.
  • PSONO détecte également toute violation de mot de passe qui pourrait s’être produite et les rapporte à temps.
  • Vous trouverez plusieurs clés API qui permettent l’intégration du mot de passe pendant les builds ou les scripts de démarrage.

Installation


Ce guide installera le serveur PSONO et l’exécute avec Gunicorn et Nginx. Il a été testé sur Ubuntu 18.04.

  • devenir racine
sudo su
  • Installez des trucs génériques
apt-get update
apt-get install -y \
        git \
        libyaml-dev \
        libpython3-dev \
        libpq-dev \
        libffi-dev \
        python3-dev \
        python-pip \
        python3-pip \
        python3-psycopg2 \
        postgresql-client \
        haveged \
        libsasl2-dev \
        libldap2-dev \
        libssl-dev \
        supervisor
pip3 install gunicorn
  • Créer un utilisateur PSONO
adduser psono
  • Devenez l’utilisateur PSONO
su psono
  • Référentiel de clone git
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Installez les exigences Python
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Créer un dossier Paramètres
mkdir ~/.psono_server
  • Créer un paramètres.yaml dans ~ / .psono \ _server / avec le contenu suivant

# generate the following six parameters with the following command
# python3 ~/psono-server/psono/manage.py generateserverkeys
SECRET_KEY: 'SOME SUPER SECRET KEY THAT SHOULD BE RANDOM AND 32 OR MORE DIGITS LONG'
ACTIVATION_LINK_SECRET: 'SOME SUPER SECRET ACTIVATION LINK SECRET THAT SHOULD BE RANDOM AND 32 OR MORE DIGITS LONG'
DB_SECRET: 'SOME SUPER SECRET DB SECRET THAT SHOULD BE RANDOM AND 32 OR MORE DIGITS LONG'
EMAIL_SECRET_SALT: '$2b$12$XUG.sKxC2jmkUvWQjg53.e'
PRIVATE_KEY: '302650c3c82f7111c2e8ceb660d32173cdc8c3d7717f1d4f982aad5234648fcb'
PUBLIC_KEY: '02da2ad857321d701d754a7e60d0a147cdbc400ff4465e1f57bc2d9fbfeddf0b'

# The URL of the web client (path to e.g activate.html without the trailing slash)
# WEB_CLIENT_url:  'https://www.psono.pw'

# Switch DEBUG to false if you go into production
DEBUG: False

# Adjust this according to Django Documentation https://docs.djangoproject.com/en/2.2/ref/settings/
ALLOWED_HOSTS: ['*']

# Should be your domain without "www.". Will be the last part of the username
ALLOWED_DOMAINS: ['psono.pw']

# If you want to disable registration, you can comment in the following line
# ALLOW_REGISTRATION: False

# If you want to disable the lost password functionality, you can comment in the following line
# ALLOW_LOST_PASSWORD: False

# If you want to enforce that the email address and username needs to match upon registration
# ENFORCE_MATCHING_USERNAME_AND_EMAIL: False

# If you want to restrict registration to some email addresses you can specify here a list of domains to filter
# REGISTRATION_EMAIL_FILTER: ['company1.com', 'company2.com']

# Should be the URL of the host under which the host is reachable
# If you open the url and append /info/ to it you should have a text similar to {"info":"{\"version\": \"....}
HOST_url:  'https://www.psono.pw/server'

# The email used to send emails, e.g. for activation
# ATTENTION: If executed in a docker container, then "localhost" will resolve to the docker container, so
# "localhost" will not work as host. Use the public IP or DNS record of the server.
EMAIL_FROM: <span id="cloak820118571330d66e81d06c4c2b562de4">This email address is being protected from spambots. You need JavaScript enabled to view it.</span><script type="text/javascript">document.getElementById('cloak820118571330d66e81d06c4c2b562de4').innerHTML='';var prefix='&#109;a'+'i&#108;'+'&#116;o';var path='hr'+'ef'+'=';var addy820118571330d66e81d06c4c2b562de4='&#039;th&#101;-m&#97;&#105;l-f&#111;r-f&#111;r-&#101;x&#97;mpl&#101;-&#117;s&#101;r&#97;cc&#111;&#117;nt-&#97;ct&#105;v&#97;t&#105;&#111;ns'+'&#64;';addy820118571330d66e81d06c4c2b562de4=addy820118571330d66e81d06c4c2b562de4+'t&#101;st'+'&#46;'+'c&#111;m';var addy_text820118571330d66e81d06c4c2b562de4='&#039;th&#101;-m&#97;&#105;l-f&#111;r-f&#111;r-&#101;x&#97;mpl&#101;-&#117;s&#101;r&#97;cc&#111;&#117;nt-&#97;ct&#105;v&#97;t&#105;&#111;ns'+'&#64;'+'t&#101;st'+'&#46;'+'c&#111;m';document.getElementById('cloak820118571330d66e81d06c4c2b562de4').innerHTML+='<a '+path+'\''+prefix+':'+addy820118571330d66e81d06c4c2b562de4+'\'>'+addy_text820118571330d66e81d06c4c2b562de4+'<\/a>';</script>'
EMAIL_HOST: 'localhost'
EMAIL_HOST_USER: ''
EMAIL_HOST_PASSWORD : ''
EMAIL_PORT: 25
EMAIL_SUBJECT_PREFIX: ''
EMAIL_USE_TLS: False
EMAIL_USE_SSL: False
EMAIL_SSL_CERTFILE:
EMAIL_SSL_KEYFILE:
EMAIL_TIMEOUT:

# In case one wants to use mailgun, comment in below lines and provide the mailgun access key and server name
# EMAIL_BACKEND: 'anymail.backends.mailgun.EmailBackend'
# MAILGUN_ACCESS_KEY: ''
# MAILGUN_SERVER_NAME: ''

# In case you want to offer Yubikey support, create a pair of credentials here https://upgrade.yubico.com/getapikey/
# and update the following two lines before commenting them in
# YUBIKEY_CLIENT_ID: '123456'
# YUBIKEY_SECRET_KEY: '8I65IA6ASDFIUHGIH5021FKJA='

# If you have own Yubico servers, you can specify here the urls as a list
# YUBICO_API_URLS: ['https://api.yubico.com/wsapi/2.0/verify']

# Cache enabled without belows Redis may lead to unexpected behaviour

# Cache with Redis
# By default you should use something different than database 0 or 1, e.g. 13 (default max is 16, can be configured in
# redis.conf) possible URLS are:
#    redis://[:password]@localhost:6379/0
#    rediss://[:password]@localhost:6379/0
#    unix://[:password]@/path/to/socket.sock?db=0
# CACHE_ENABLE: False
# CACHE_REDIS: False
# CACHE_REDIS_LOCATION: 'redis://127.0.0.1:6379/13'

# Disables Throttling (necessary for unittests to pass) by overriding the cache with a dummy cache
# https://docs.djangoproject.com/en/2.2/topics/cache/#dummy-caching-for-development
# THROTTLING: False

# Enables the management API, required for the psono-admin-client / admin portal
# MANAGEMENT_ENABLED: False

# Enables the fileserver API, required for the psono-fileserver
# FILESERVER_HANDLER_ENABLED: False

# Enables files for the client
# FILES_ENABLED: False

# Allows that users can search for partial usernames
# ALLOW_USER_SEARCH_BY_USERNAME_PARTIAL: True

# Allows that users can search for email addresses too
# ALLOW_USER_SEARCH_BY_EMAIL: True

# Disables central security reports
# DISABLE_CENTRAL_SECURITY_REPORTS: True

# Configures a system wide DUO connection for all clients
# DUO_INTEGRATION_KEY: ''
# DUO_SECRET_KEY: ''
# DUO_API_HOSTNAME: ''

# If you are using the DUO proxy, you can configure here the necessary HTTP proxy
# DUO_PROXY_HOST: 'the-ip-or-dns-name-goes-here'
# DUO_PROXY_PORT: 80
# DUO_PROXY_TYPE: 'CONNECT'
# If your proxy requires specific headers you can also configure these here
# DUO_PROXY_HEADERS: ''

# Normally only one of the configured second factors needs to be solved. Setting this to True forces the client to solve all
# MULTIFACTOR_ENABLED: True

# Allows admins to limit the offered second factors in the client
# ALLOWED_SECOND_FACTORS: ['yubikey_otp', 'google_authenticator', 'duo']

# Your Postgres Database credentials
# ATTENTION: If executed in a docker container, then "localhost" will resolve to the docker container, so
# "localhost" will not work as host. Use the public IP or DNS record of the server.
DATABASES:
    default:
        'ENGINE': 'django.db.backends.postgresql_psycopg2'
        'NAME': 'psono'
        'USER': 'psono'
        'PASSWORD': 'password'
        'HOST': 'localhost'
        'PORT': '5432'
# for master / slave replication setup comment in the following (all reads will be redirected to the slave
#    slave:
#        'ENGINE': 'django.db.backends.postgresql_psycopg2'
#        'NAME': 'YourPostgresDatabase'
#        'USER': 'YourPostgresUser'
#        'PASSWORD': 'YourPostgresPassword'
#        'HOST': 'YourPostgresHost'
#        'PORT': 'YourPostgresPort'

# Update the path to your templates folder
# If you do not want to change it (yet) you can leave it like it is.
TEMPLATES: [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['/home/psono/psono-server/psono/templates'],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]	
  • Mettre à jour les informations d’identification / secrets / chemins de données comme décrits dans les commentaires ci-dessus.

  • Pour envoyer un e-mail de test à Quelque chose Exécuter: python3 ~ / psono-server / psono / manage.py sendtestmail quelque chose@something.com

  • Si vous recevez cet e-mail de test, le courrier électronique doit être configuré correctement.
  • Créez notre base de données
python3  ~/psono-server/psono/manage.py migrate
  • Exécutez le serveur PSONO
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Cela démarrera le serveur PSONO sur le port 10100. Si vous ouvrez maintenant http: // your-ip: 10100 / info / devrait voir quelque chose comme ceci:
{"info":"{\"version\": \"....}
  • redevenir racine
Ctrl + D
  • Créer la configuration du superviseur. Créez un psono-server.conf dans /etc/supervvisor/conf.d/ avec le contenu suivant:
[program:psono-server]
command = /usr/local/bin/gunicorn --bind 127.0.0.1:10100 wsgi
directory=/home/psono/psono-server/psono
user = psono
autostart=true
autorestart=true
redirect_stderr=true
  • Vous avez peut-être réalisé que nous avons changé la liaison. De cette façon, PSONO n’est accessible qu’à partir de LocalHost, ce qui est bien car nous allons proxy les demandes avec Nginx.
  • Recharger le supervisorctl
supervisorctl reload
  • Configuration du travail de nettoyage
crontab -e
  • et ajouter la ligne suivante:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • Pour exécuter le gestionnaire de mots de passe PSONO en production, un proxy inversé est nécessaire, pour gérer le déchargement SSL et coller le serveur PSONO et le WebClient ensemble. Suivez le guide à Configuration du proxy inversé comme étape suivante.

Explorer


Dans cet article, nous avons discuté de l’aperçu et des fonctionnalités de PSONO qui en font un gestionnaire d’identification fiable. Pour en savoir plus sur les autres logiciels de gestion des informations d’identification open source, veuillez consulter les pages suivantes:

 Français