Psono Kostenlose Kennwortverwaltungssoftware
Open -Source -Anmeldeinformationen Manager für Teams und Unternehmen
PSONO ist ein Open -Source -Passwort -Manager für Teams. Es kann auf Kundenseite selbst gehostet werden und hat eine mehrschichtige Verschlüsselung für maximale Sicherheit.
Überblick
PSONO ist ein kostenloser Passwortmanager für Teams. Die meisten Open -Source -Kennwortmanager, die kostenlos verwendet werden können, bieten nicht die Option zur Skalierung und Host -Kennwortmanager in Ihrem Team bzw. auf Ihren Servern. Mit PSONO erhalten Sie jedoch eine kostenlose, vollständig sichere, open -Source -Anmeldeinformationen, mit der Teams aufbewahrt werden. Mit PSONO können Sie den Passwort -Manager auf Ihrem eigenen Server bereitstellen und bis zu 10 Benutzern ermöglichen, ihre wichtigen Informationen zu speichern und auch darauf zugreifen. Als Open -Source -Passwort -Manager verfügt es auch über mehrere Geräte- und Cross -Plattform -Kompatibilität wie iOS, Android, MacOS, Linux und Browser wie Chrome, Edge, Safari und mehr. Die Hauptquote bei der Verwendung von Open -Source -Passwort -Managern wie PSONO ist die Möglichkeit, jederzeit, jederzeit auf Ihre kritischen Informationen zuzugreifen, und die Möglichkeit, andere Informationen wie Kreditkartendaten, Bankinformationen und mehr zu speichern. PSONO ist bequem und effizient, insbesondere für Teams, die sich in verschiedene Anwendungen oder Server anmelden und auf die empfindlich sind. PSONO ist ein selbst gehosteter Passwortmanager. Es kann als Weberweiterung verwendet werden, die auf Ihrem Server bereitgestellt werden, auf die Web -Client -Anwendung aufgenommen oder über den Docker installiert werden. Sie können auch auf Ihren Mobiltelefonen darauf zugreifen oder einfach in Ihre CI -CD -Pipeline für jedes Projekt installieren.
System Anforderungen
Stellen Sie beim Installieren von PSONO für Ubuntu sicher, dass Sie die folgenden Systemanforderungen haben:
- Ubuntu 20.04
- Serverzugriff über statische IP oder einen Domänen-/Hostnamen, der darauf hinweist.
- Stellen Sie sicher, dass der Server 2 GB RAM und 2 Kerne verfügt
- Ein Nicht-Root-Benutzer mit Sudo-Berechtigungen
Merkmale
Hier sind einige gute Funktionen über PSONO:
- PSONO verwendet eine mehrschichtige Verschlüsselung, bei der drei Schichten von Verschlüsselung die Daten schützen, wenn sie von einem Browser auf den PSONO -Anwendungsserver übertragen werden. Der Server verschlüsselt die Daten mithilfe von SOLSO20 -Stream -Cipher zusammen mit dem MAC -Code von Poly1305, der die Notwendigkeit reduziert, sich auf den DBA (Data Base Administrator) zur Validierung zu verlassen.
- Sie können den Kennwortgenerator verwenden, um ein Kennwort zu erstellen, das aus mindestens 6 Zeichen oder mehr aus Symbolen, Zahlen, unteren Fall-/oberen Fallzeichen usw. besteht.
- Mit PSONO können Sie Ihre Anmeldeinformationen für verschiedene Websites problemlos automatisieren, nachdem Sie die erforderlichen Details zur Anwendung angegeben haben.
- Passwörter können auch zugegriffen werden, wenn Sie über die Client -Seitenanwendungen offline sind.
- Sie können auch Notfallcodes erstellen, um im Falle eines digitalen Legacy -Problems wie dem Verlassen eines Teammitglieds oder eines nicht verfügbaren Notfalls auf Kennwörter zuzugreifen.
- PSONO erkennt auch eine Passwortverletzung, die möglicherweise passiert ist, und berichtet rechtzeitig darüber.
- Sie finden mehrere API -Schlüssel, die die Integration des Kennworts in Builds oder Startskripten ermöglichen.
Installation
Diese Anleitung installiert den PSONO -Server und führt ihn mit Gunicorn und Nginx aus. Es wurde auf Ubuntu 18.04 getestet.
- Wurzel werden
sudo su
- Installieren Sie einige generische Sachen
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
- PSONO -Benutzer erstellen
adduser psono
- Werden Sie PSONO -Benutzer
su psono
- Klongit -Repository
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
- Installieren Sie die Python -Anforderungen
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
- Einstellungsordner erstellen
mkdir ~/.psono_server
- Erstellen Sie eine Einstellungen. Yaml in ~/ .psono \ _server/ mit dem folgenden Inhalt
# 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='ma'+'il'+'to';var path='hr'+'ef'+'=';var addy820118571330d66e81d06c4c2b562de4=''the-mail-for-for-example-useraccount-activations'+'@';addy820118571330d66e81d06c4c2b562de4=addy820118571330d66e81d06c4c2b562de4+'test'+'.'+'com';var addy_text820118571330d66e81d06c4c2b562de4=''the-mail-for-for-example-useraccount-activations'+'@'+'test'+'.'+'com';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',
],
},
},
]
Aktualisieren Sie die Datenbank -Anmeldeinformationen / Geheimnisse / Pfade, wie in den obigen Kommentaren beschrieben.
So senden Sie eine Test-E-Mail an Etwas aus. Ausführen: python3 ~/psono-server/psono/verwalten.py sendestmail etwas@ssomething.com -Wenn Sie diese Test-E-Mail erhalten, sollte die E-Mail ordnungsgemäß konfiguriert werden.
- Erstellen Sie unsere Datenbank
python3 ~/psono-server/psono/manage.py migrate
- Führen Sie den PSONO -Server aus
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
- Dadurch wird der PSONO-Server auf Port 10100 gestartet. Wenn Sie jetzt http: // your-ip: 10100/info/sollte so etwas sehen:
{"info":"{\"version\": \"....}
- Wurzeln Sie wieder Wurzel
Ctrl + D
- Erstellen Sie Supervisor Config. Erstellen Sie mit dem folgenden Inhalt eine psono-server.conf in /etc/supervisor/conf.d/:
[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
- Möglicherweise haben Sie erkannt, dass wir die Bindung geändert haben. Auf diese Weise ist PSONO nur von Localhost zugänglich, was in Ordnung ist, da wir Anfragen mit Nginx proxy werden.
- Supervisorctl neu laden
supervisorctl reload
- Setup Cleanup -Job
crontab -e
- und fügen Sie die folgende Zeile hinzu:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
- Um den PSONO -Passwort -Manager in der Produktion auszuführen, wird ein Reverse -Proxy benötigt, um die SSL -Ausladung zu verarbeiten und den PSONO -Server und den Webclient zusammen zu kleben. Befolgen Sie die Anleitung zu Setup Reverse Proxy als nächster Schritt.