Psono | Open Source Creditials Manager för lag

Psono Gratis lösenordshanteringsprogramvara

Open Source Creditials Manager för team och företag

Psono är en open source -lösenordshanterare designad för lag. Det kan vara självhostat på klientsidan och har flerskiktskryptering för maximal säkerhet.

Översikt

Psono är en gratis lösenordshanterare för lag. De flesta lösenordshanterare som är fria att använda erbjuder inte möjlighet att skala och vara värd för lösenordschefer över ditt team eller på dina servrar. Men med PSONO får du en gratis att använda, helt säker, öppen källkodsuppgifter som är utformad med tanke på team. Med PSONO kan du distribuera lösenordshanteraren på din egen server och låta upp till 10 användare lagra sin viktiga information och få åtkomst till den också. Som en öppen källkodslösenordshanterare har den också flera enheter och tvärplattformskompatibilitet som iOS, Android, MacOS, Linux och webbläsare som Chrome, Edge, Safari och mer. Den största bekvämligheten med att använda Open Source -lösenordschefer som PSONO är förmågan att få tillgång till din kritiska information var som helst, när som helst och möjligheten att lagra annan information som kreditkortsdata, bankinformation och mer. PSONO är bekvämt och effektivt, särskilt för team som loggar in på och får åtkomst till olika applikationer eller servrar som är känsliga. Psono är en självhostad lösenordshanterare. Det kan användas som en webbtillägg, distribuerad på din server, åtkomst via webbklientapplikationen eller installeras via Docker. Du kan också komma åt den på dina mobiltelefoner eller helt enkelt installera den i din CI CD -rörledning för alla projekt.

Systemkrav


När du installerar Psono för Ubuntu, se till att du har följande systemkrav:

  • Ubuntu 20.04
  • Serveråtkomst via statisk IP eller ett domän/värdnamn som pekar på den.
  • Se till att servern har 2 GB RAM och 2 kärnor
  • En användare som inte är root med sudo-behörigheter

Funktioner


Här är några bra att veta funktioner om PSONO:

  • PSONO använder en flerskikts kryptering där tre lager av kryptering skyddar data när de överförs från en webbläsare till PSONO -applikationsservern. Servern krypterar data med SALSO20 -stream -chiffer tillsammans med Poly1305 MAC -koden som minskar nödvändigheten av att förlita sig på DBA (databasadministratör) för validering.
  • Du kan använda lösenordsgeneratorn för att producera ett lösenord som består av minst 6 tecken eller mer bestående av symboler, siffror, små bokstäver/stora tecken etc.
  • Med PSONO kan du enkelt automatiskt på dina inloggningsuppgifter för olika webbplatser efter att ha tillhandahållit nödvändiga detaljer på applikationen.
  • Lösenord kan också nås när du är offline via klientens sida -applikationer.
  • Du kan också skapa nödkoder för att få tillgång till lösenord i händelse av ett digitalt arvsproblem, till exempel borttagning av en teammedlem eller otillgänglighet i en nödsituation.
  • PSONO upptäcker också alla lösenordsöverträdelser som kan ha hänt och rapporterar om det i tid.
  • Du hittar flera API -nycklar som möjliggör integration av lösenord under byggnader eller startskript.

Installation


Den här guiden kommer att installera PSONO -servern och kör den med Gunicorn och Nginx. Det har testats på Ubuntu 18.04.

  • Bli rot
sudo su
  • Installera några generiska saker
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
  • Skapa PSONO -användare
adduser psono
  • Bli PSONO -användaren
su psono
  • Clone Git Repository
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Installera pythonkraven
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Skapa inställningsmapp
mkdir ~/.psono_server
  • skapa en inställningar.yaml i ~/ .psono \ _server/ med följande innehåll

# 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',
            ],
        },
    },
]	
  • Uppdatera databasuppgifter / hemligheter / sökvägar som beskrivs i kommentarerna ovan.

  • För att skicka ett test e-post till något av allt Execute: python3 ~/psono-server/psono/manage.py sissTestmail något@something.com -Om du får detta test e-post bör e-post konfigureras korrekt.

  • Skapa vår databas
python3  ~/psono-server/psono/manage.py migrate
  • Kör PSONO -servern
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Detta kommer att starta PSONO-servern på port 10100. Om du öppnar nu http: // your-ip: 10100/info/bör se något liknande:
{"info":"{\"version\": \"....}
  • Bli rot igen
Ctrl + D
  • Skapa handledare -konfiguration. Skapa en psono-server.conf i /etc/supervisor/conf.d/ med följande innehåll:
[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
  • Du kanske har insett att vi ändrade bindningen. På detta sätt är Psono endast tillgängligt från localhost, vilket är bra eftersom vi kommer att förfrågningar med Nginx.
  • Ladda om supervisorctl
supervisorctl reload
  • Setup Cleanup Job
crontab -e
  • och lägg till följande rad:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • För att köra PSONO -lösenordshanteraren i produktion behövs en omvänd proxy, för att hantera SSL -avlastning och lim PSONO -servern och WebClient tillsammans. Följ guiden till Installera omvänd proxy som nästa steg.

** Utforska **


I den här artikeln har vi diskuterat PSONO: s översikt och funktioner som gör det till en tillförlitlig referenschef. För att lära dig mer om andra program för hantering av öppen källkod, kontrollera följande sidor:

 Svenska