Psono | Manajer Kredensial Sumber Terbuka untuk Tim

Psono Perangkat Lunak Manajemen Kata Sandi Gratis

Manajer Kredensial Sumber Terbuka untuk Tim dan Perusahaan

PSONO adalah manajer kata sandi open source yang dirancang untuk tim. Ini dapat diselenggarakan sendiri di sisi klien dan memiliki enkripsi berlapis-lapis untuk keamanan maksimum.

Ringkasan

PSONO adalah manajer kata sandi gratis untuk tim. Sebagian besar manajer kata sandi sumber terbuka yang bebas digunakan tidak menawarkan opsi untuk mengukur dan meng -host manajer kata sandi di seluruh tim Anda atau di server Anda, masing -masing. Namun, dengan PSONO Anda mendapatkan yang bebas untuk digunakan, benar -benar aman, manajer kredensial open source yang dirancang menjaga tim. Dengan PSONO, Anda dapat menggunakan kata sandi Manajer di server Anda sendiri dan mengizinkan hingga 10 pengguna untuk menyimpan informasi penting mereka dan mengaksesnya juga. Sebagai manajer kata sandi open source, ia juga memiliki beberapa perangkat dan kompatibilitas lintas platform seperti iOS, android, macOS, linux dan browser seperti chrome, edge, safari dan banyak lagi. Kenyamanan utama menggunakan manajer kata sandi open source seperti PSONO adalah kemampuan untuk mengakses informasi kritis Anda dari mana saja, kapan saja dan kemampuan untuk menyimpan informasi lain seperti data kartu kredit, informasi perbankan dan banyak lagi. PSONO nyaman dan efisien, terutama untuk tim yang masuk dan mengakses berbagai aplikasi atau server yang sensitif. PSONO adalah manajer kata sandi yang diselenggarakan sendiri. Ini dapat digunakan sebagai ekstensi web, digunakan di server Anda, diakses melalui aplikasi klien web atau diinstal melalui Docker. Anda juga dapat mengaksesnya di ponsel Anda atau hanya menginstalnya ke dalam pipa CD CI Anda untuk proyek apa pun.

Persyaratan sistem


Saat menginstal psono untuk ubuntu pastikan Anda memiliki persyaratan sistem berikut:

  • Ubuntu 20.04
  • Akses server melalui IP statis atau nama domain/host yang menunjuk ke sana.
  • Pastikan server memiliki 2GB RAM dan 2 core
  • Pengguna non-root dengan izin sudo

Fitur


Berikut adalah beberapa fitur yang bagus untuk diketahui tentang psono:

  • PSONO menggunakan enkripsi berlapis -lapis di mana tiga lapisan enkripsi melindungi data ketika ditransfer dari browser ke server aplikasi PSONO. Server mengenkripsi data menggunakan Cipher Stream Salso20 bersama dengan kode MAC Poly1305 yang mengurangi kebutuhan mengandalkan DBA (Administrator Basis Data) untuk validasi.
  • Anda dapat menggunakan generator kata sandi untuk menghasilkan kata sandi yang terdiri dari minimal 6 karakter atau lebih terdiri dari simbol, angka, karakter huruf kecil/huruf besar dll.
  • Dengan PSONO Anda dapat dengan mudah mengarahkan kredensial login Anda untuk situs web yang berbeda setelah memberikan detail yang diperlukan pada aplikasi.
  • Kata sandi juga dapat diakses saat Anda offline melalui aplikasi sisi klien.
  • Anda juga dapat membuat kode darurat untuk mengakses kata sandi jika terjadi masalah warisan digital seperti pengesahan anggota tim atau tidak tersedianya jika terjadi keadaan darurat.
  • PSONO juga mendeteksi pelanggaran kata sandi yang mungkin terjadi dan melaporkannya tepat waktu.
  • Anda akan menemukan beberapa tombol API yang memungkinkan integrasi kata sandi selama skrip build atau startup.

Instalasi


Panduan ini akan menginstal server PSONO, dan menjalankannya dengan Gunicorn dan Nginx. Ini telah diuji pada Ubuntu 18.04.

  • menjadi root
sudo su
  • Instal beberapa hal generik
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
  • Buat pengguna psono
adduser psono
  • Menjadi Pengguna Psono
su psono
  • Klon Git Repositori
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Pasang persyaratan Python
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Buat Folder Pengaturan
mkdir ~/.psono_server
  • Buat pengaturan.yaml di ~/ .psono \ _server/ dengan konten berikut

# 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',
            ],
        },
    },
]	
  • Perbarui kredensial / rahasia database seperti yang dijelaskan dalam komentar di atas.

  • Untuk mengirim email tes ke Somethingsomethingcom Execute: python3 ~/psono-server/psono/kelola.py sendtestmail sesuatu@something.com -Jika Anda menerima email tes ini, email harus dikonfigurasi dengan benar.

  • Buat database kami
python3  ~/psono-server/psono/manage.py migrate
  • Jalankan server psono
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Ini akan memulai server psono di port 10100. Jika Anda membuka sekarang http: // Anda-IP: 10100/info/akan melihat sesuatu seperti ini:
{"info":"{\"version\": \"....}
  • Menjadi root lagi
Ctrl + D
  • Buat konfigurasi supervisor. Buat psono-server.conf di /etc/supervisor/conf.d/ dengan konten berikut:
[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
  • Anda mungkin telah menyadari bahwa kami mengubah ikatan. Dengan cara ini PSONO hanya dapat diakses dari LocalHost, yang baik -baik saja karena kami akan memberikan permintaan proxy dengan Nginx.
  • Reload supervisorctl
supervisorctl reload
  • Pekerjaan Pengaturan Pembersihan
crontab -e
  • dan tambahkan baris berikut:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • Untuk menjalankan PSONO Password Manager dalam produksi, diperlukan proxy terbalik, untuk menangani pembongkaran SSL dan merekatkan server PSONO dan WebClient bersama -sama. Ikuti panduan ke Pengaturan Proxy Terbalik sebagai langkah berikutnya.

Mengeksplorasi


Dalam artikel ini kita telah membahas tinjauan dan fitur PSONO yang menjadikannya manajer kredensial yang andal. Untuk mempelajari tentang perangkat lunak manajemen kredensial open source lainnya, silakan periksa halaman berikut:

 Indonesia