PSONO | Open source referenties manager voor teams

Psono Gratis software voor wachtwoordbeheer

Open source referenties manager voor teams en ondernemingen

PSONO is een open source wachtwoordbeheerder ontworpen voor teams. Het kan zelf worden gehost aan de clientzijde en heeft meerlagige codering voor maximale beveiliging.

Overzicht

PSONO is een gratis wachtwoordbeheerder voor teams. De meeste open source wachtwoordbeheerders die gratis te gebruiken zijn, bieden niet de optie om wachtwoordbeheerders in uw team of op uw servers te schalen en te hosten, respectievelijk. Met PSONO krijgt u echter een gratis te gebruiken, volledig veilige, open source referentiesmanager die is ontworpen om in gedachten teams te houden. Met PSONO kunt u de wachtwoordbeheerder op uw eigen server implementeren en maximaal 10 gebruikers toestaan ​​hun belangrijke informatie op te slaan en er ook toegang toe te krijgen. Als een open source wachtwoordbeheerder heeft het ook meerdere apparaten- en cross -platformcompatibiliteit zoals iOS, Android, MacOS, Linux en browsers zoals Chrome, Edge, Safari en meer. Het belangrijkste gemak van het gebruik van open source wachtwoordbeheerders zoals PSONO is de mogelijkheid om overal, op elk gewenst moment toegang te krijgen tot uw kritieke informatie en de mogelijkheid om andere informatie op te slaan, zoals creditcardgegevens, bankinformatie en meer. PSONO is handig en efficiënt, vooral voor teams die inloggen op en toegang hebben tot verschillende toepassingen of servers die gevoelig zijn. PSONO is een zelf gehost wachtwoordbeheerder. Het kan worden gebruikt als een webverlenging, geïmplementeerd op uw server, toegankelijk via de webclienttoepassing of geïnstalleerd via de Docker. U kunt er ook toegang toe op uw mobiele telefoons of deze gewoon in uw CI CD -pijplijn installeren voor elk project.

Systeem vereisten


Zorg er tijdens het installeren van psono voor ubuntu voor dat u de volgende systeemvereisten hebt:

  • Ubuntu 20.04
  • Servertoegang via statische IP of een domein/hostnaam die erop wijst.
  • Zorg ervoor dat de server 2 GB RAM en 2 cores heeft
  • Een niet-root gebruiker met sudo-machtigingen

Functies


Hier zijn een aantal goede functies over PSONO:

  • PSONO gebruikt een meerlagige codering waarbij drie lagen coderingslagen de gegevens beschermen wanneer deze worden overgedragen van een browser naar de PSONO -applicatieserver. De server codeert de gegevens met behulp van SALSO20 -streamcipher samen met de Poly1305 MAC -code die de noodzaak om te vertrouwen op de DBA (database -beheerder) voor validatie vermindert.
  • U kunt de wachtwoordgenerator gebruiken om een ​​wachtwoord te produceren dat bestaat uit een minimum van 6 tekens of meer bestaande uit symbolen, cijfers, tekens met kleine/hoofdletters enz.
  • Met PSONO kunt u eenvoudig uw inloggegevens voor verschillende websites automatisch afnemen na het verstrekken van de nodige details over de applicatie.
  • Wachtwoorden zijn ook toegankelijk wanneer u offline bent via de client -side -applicaties.
  • U kunt ook noodcodes maken om toegang te krijgen tot wachtwoorden in het geval van een digitaal erfenisprobleem, zoals het overlijden van een teamlid of onbeschikbaarheid in geval van nood.
  • Psono detecteert ook elke wachtwoordbreuk die mogelijk is gebeurd en rapporten op tijd.
  • U vindt meerdere API -toetsen die de integratie van het wachtwoord mogelijk maken tijdens builds of opstartscripts.

Installatie


Deze handleiding installeert de PSONO -server en voert deze uit met Gunicorn en Nginx. Het is getest op Ubuntu 18.04.

  • Word wortel
sudo su
  • Installeer wat generieke dingen
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
  • Maak PSONO -gebruiker
adduser psono
  • Word de PSONO -gebruiker
su psono
  • kloon git repository
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Installeer python -vereisten
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Map instellingen maken
mkdir ~/.psono_server
  • Maak een instellingen.yaml in ~/ .psono \ _server/ met de volgende inhoud

# 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',
            ],
        },
    },
]	
  • Update database -referenties / geheimen / paden zoals beschreven in de opmerkingen hierboven.

  • Om een ​​test-e-mail naar iets anders dan te verzenden: uitvoeren: python3 ~/psono-server/psono/manag.py sendtestmail iets@something.com -Als u deze test-e-mail ontvangt, moet e-mail worden geconfigureerd.

  • Maak onze database
python3  ~/psono-server/psono/manage.py migrate
  • Voer de PSONO -server uit
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Dit start de PSONO-server op poort 10100. Als u nu opent http: // Your-IP: 10100/info/zou zoiets als dit moeten zien:
{"info":"{\"version\": \"....}
  • Word weer wortel
Ctrl + D
  • Creëer supervisor config. Maak een psono-server.conf in /etc/supervisor/conf.d/ met de volgende inhoud:
[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
  • Je hebt misschien gerealiseerd dat we de binding hebben veranderd. Op deze manier is PSONO alleen toegankelijk vanaf LocalHost, wat prima is, omdat we verzoeken met Nginx zullen proxy.
  • Herlaad supervisorctl
supervisorctl reload
  • Setup Cleanup -taak
crontab -e
  • en voeg de volgende regel toe:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • Om de PSONO -wachtwoordbeheerder in de productie te uitvoeren, is een omgekeerde proxy nodig, om de SSL -offloading te verwerken en de PSONO -server en webclient aan elkaar te lijmen. Volg de gids naar Reverse Proxy instellen als een volgende stap.

Ontdekken


In dit artikel hebben we het overzicht van PSONO en functies besproken die het een betrouwbare manager voor referenties maken. Controleer de volgende pagina’s om meer te weten te komen over andere open source credentialsoftware:

 Nederlands