Psono | Διαχειριστής διαπιστευτηρίων ανοιχτού κώδικα για ομάδες

Psono Δωρεάν λογισμικό διαχείρισης κωδικού πρόσβασης

Διαχειριστής διαπιστευτηρίων ανοιχτού κώδικα για ομάδες και επιχειρήσεις

Το Psono είναι ένας διαχειριστής κωδικού πρόσβασης ανοιχτού κώδικα σχεδιασμένος για ομάδες. Μπορεί να αυτο-φιλοξενείται από την πλευρά του πελάτη και έχει πολυεπίπεδη κρυπτογράφηση για μέγιστη ασφάλεια.

ΣΦΑΙΡΙΚΗ ΕΙΚΟΝΑ

Ο Psono είναι ένας δωρεάν διαχειριστής κωδικού πρόσβασης για ομάδες. Οι περισσότεροι διαχειριστές κωδικών πρόσβασης ανοιχτού κώδικα που είναι ελεύθεροι να χρησιμοποιούν μην προσφέρουν την επιλογή για κλίμακα και φιλοξενούμενους διαχειριστές κωδικών πρόσβασης σε όλη την ομάδα σας ή στους διακομιστές σας, αντίστοιχα. Ωστόσο, με το Psono παίρνετε έναν ελεύθερο, εντελώς ασφαλή, διαχειριστή ανοικτού κώδικα που έχει σχεδιαστεί με το μυαλό ομάδες. Με το Psono, μπορείτε να αναπτύξετε τον διαχειριστή κωδικών πρόσβασης στον δικό σας διακομιστή και να επιτρέψετε έως και 10 χρήστες να αποθηκεύουν τις σημαντικές πληροφορίες και να έχουν πρόσβαση επίσης. Ως διαχειριστής κωδικού πρόσβασης ανοιχτού κώδικα, διαθέτει επίσης πολλαπλές συσκευές και συμβατότητα με διασταυρούμενες πλατφόρμες, όπως iOS, Android, MacOS, Linux και προγράμματα περιήγησης όπως Chrome, Edge, Safari και πολλά άλλα. Η κύρια ευκολία χρήσης διαχειριστών κωδικών πρόσβασης ανοιχτού κώδικα όπως το PSOOO είναι η δυνατότητα πρόσβασης στις κρίσιμες πληροφορίες σας από οπουδήποτε, ανά πάσα στιγμή και τη δυνατότητα αποθήκευσης άλλων πληροφοριών όπως δεδομένα πιστωτικών καρτών, τραπεζικές πληροφορίες και πολλά άλλα. Το Psono είναι βολικό και αποτελεσματικό, ειδικά για ομάδες που συνδέονται και έχουν πρόσβαση σε διαφορετικές εφαρμογές ή διακομιστές που είναι ευαίσθητοι. Ο Psono είναι ένας αυτο-φιλοξενούμενος διαχειριστής κωδικού πρόσβασης. Μπορεί να χρησιμοποιηθεί ως επέκταση ιστού, που αναπτύσσεται στον διακομιστή σας, πρόσβαση μέσω της εφαρμογής πελάτη Web ή εγκατεστημένη μέσω του Docker. Μπορείτε επίσης να το έχετε πρόσβαση στα κινητά σας τηλέφωνα ή απλά να τα εγκαταστήσετε στον αγωγό CI CI για οποιοδήποτε έργο.

Απαιτήσεις συστήματος


Κατά την εγκατάσταση του Psono για το Ubuntu βεβαιωθείτε ότι έχετε τις ακόλουθες απαιτήσεις του συστήματος:

  • Ubuntu 20.04
  • Πρόσβαση σε διακομιστή μέσω στατικής IP ή ενός ονόματος τομέα/κεντρικού υπολογιστή που δείχνει.
  • Βεβαιωθείτε ότι ο διακομιστής έχει RAM 2GB και 2 πυρήνες
  • Ένας χρήστης μη ρίζας με δικαιώματα sudo

Χαρακτηριστικά


Εδώ είναι μερικά καλά να γνωρίζετε χαρακτηριστικά για το psono:

  • Το PSONO χρησιμοποιεί μια κρυπτογράφηση πολλαπλών στρώσεων όπου τρία στρώματα κρυπτογράφησης προστατεύουν τα δεδομένα όταν μεταφέρονται από ένα πρόγραμμα περιήγησης στον διακομιστή εφαρμογών PSONO. Ο διακομιστής κρυπτογραφεί τα δεδομένα χρησιμοποιώντας τον κρυπτογραφημένο κρυπτογράφημα Salso20 μαζί με τον κώδικα MAC Poly1305 που μειώνει την αναγκαιότητα να βασίζεται στο DBA (διαχειριστής βάσης δεδομένων) για επικύρωση.
  • Μπορείτε να χρησιμοποιήσετε τη γεννήτρια κωδικών πρόσβασης για να παράγετε έναν κωδικό πρόσβασης που αποτελείται από τουλάχιστον 6 χαρακτήρες ή περισσότερο που αποτελείται από σύμβολα, αριθμούς, χαμηλότερους χαρακτήρες περίπτωσης/ανώτερες περιπτώσεις κ.λπ.
  • Με το PSONO μπορείτε εύκολα να αυτόματα τα διαπιστευτήρια σύνδεσης για διαφορετικούς ιστότοπους μετά την παροχή των απαραίτητων λεπτομερειών σχετικά με την εφαρμογή.
  • Οι κωδικοί πρόσβασης μπορούν επίσης να έχουν πρόσβαση όταν είστε εκτός σύνδεσης μέσω των εφαρμογών πλευράς πελάτη.
  • Μπορείτε επίσης να δημιουργήσετε κωδικούς έκτακτης ανάγκης για να αποκτήσετε πρόσβαση σε κωδικούς πρόσβασης σε περίπτωση ψηφιακής κληρονομιάς, όπως η απόρριψη ενός μέλους της ομάδας ή μη διαθεσιμότητας σε περίπτωση έκτακτης ανάγκης.
  • Ο Psono ανιχνεύει επίσης οποιαδήποτε παραβίαση κωδικού πρόσβασης που μπορεί να έχει συμβεί και να αναφέρει εγκαίρως.
  • Θα βρείτε πολλά κλειδιά API που επιτρέπουν την ενσωμάτωση του κωδικού πρόσβασης κατά τη διάρκεια των κτιρίων ή των σεναρίων εκκίνησης.

Εγκατάσταση


Αυτός ο οδηγός θα εγκαταστήσει τον διακομιστή Psono και θα τον εκτελεί με το Gunicorn και το Nginx. Έχει δοκιμαστεί στο Ubuntu 18.04.

  • Γίνετε ρίζα
sudo su
  • Εγκαταστήστε μερικά γενικά πράγματα
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
adduser psono
  • Γίνετε ο χρήστης Psono
su psono
  • Αποθήκη κλώνου Git
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Εγκαταστήστε τις απαιτήσεις Python
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Δημιουργία φακέλου ρυθμίσεων
mkdir ~/.psono_server
  • Δημιουργήστε ένα settings.yaml in ~/ .psono \ _server/ με το ακόλουθο περιεχόμενο

# 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',
            ],
        },
    },
]	
  • Ενημέρωση διαπιστευτηρίων βάσης δεδομένων / μυστικά / διαδρομές όπως περιγράφονται στα παραπάνω σχόλια.

  • Για να στείλετε ένα δοκιμαστικό e-mail σε κάτι εκτελέστε: python3 ~/psono-server/psono/manage.py sendtestmail κάτι@something.com -Εάν λάβετε αυτό το e-mail δοκιμής, το e-mail θα πρέπει να διαμορφωθεί σωστά.

  • Δημιουργήστε τη βάση δεδομένων μας
python3  ~/psono-server/psono/manage.py migrate
  • Εκτελέστε τον διακομιστή Psono
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Αυτό θα ξεκινήσει τον διακομιστή Psono στη θύρα 10100. Εάν ανοίξετε τώρα http: // your-ip: 10100/info/θα πρέπει να δείτε κάτι σαν αυτό:
{"info":"{\"version\": \"....}
  • Γίνετε ξανά ρίζα
Ctrl + D
  • Δημιουργήστε το Supervisor Config. Δημιουργήστε ένα psono-server.conf στο /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
  • Μπορεί να έχετε συνειδητοποιήσει ότι αλλάξαμε τη δέσμευση. Με αυτόν τον τρόπο ο Psono είναι προσβάσιμος μόνο από το LocalHost, το οποίο είναι καλό, καθώς θα υποβάλουμε αιτητικές αιτήσεις με NGINX.
  • Επαναλάβετε το supervisorctl
supervisorctl reload
  • Εργασία καθαρισμού ρύθμισης
crontab -e
  • και προσθέστε την ακόλουθη γραμμή:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • Για να εκτελέσετε τον διαχειριστή κωδικού πρόσβασης Psono στην παραγωγή, απαιτείται αντίστροφη πληρεξούσιο, για να χειριστείτε την εκφόρτωση SSL και να κολλήσετε μαζί τον διακομιστή PSOYO και το webclient. Ακολουθήστε τον οδηγό στο Ρύθμιση αντίστροφου πληρεξούσιου ως επόμενο βήμα.

Εξερευνήστε


Σε αυτό το άρθρο συζητήσαμε την επισκόπηση του Psono και τα χαρακτηριστικά που το καθιστούν αξιόπιστο διαχειριστή διαπιστευτηρίων. Για να μάθετε για άλλα λογισμικά διαχείρισης διαχείρισης ανοικτού κώδικα, ελέγξτε τις ακόλουθες σελίδες:

 Ελληνικά