Psono |チームのオープンソースクレデンシャルマネージャー

Psono 無料のパスワード管理ソフトウェア

チームおよび企業のオープンソースクレデンシャルマネージャー

Psonoは、チーム向けに設計されたオープンソースのパスワードマネージャーです。クライアント側に自己ホストすることができ、最大のセキュリティのために多層的な暗号化を備えています。

概要

Psonoは、チームの無料パスワードマネージャーです。自由に使用できるほとんどのオープンソースのパスワードマネージャーは、チーム全体またはサーバーでそれぞれパスワードマネージャーをスケーリングおよびホストするオプションを提供しません。ただし、Psonoを使用すると、チームを念頭に置いて設計された、完全に安全なオープンソース資格情報マネージャーを無料で使用できます。 Psonoを使用すると、パスワードマネージャーを独自のサーバーに展開し、最大10人のユーザーが重要な情報を保存してアクセスできるようにすることができます。オープンソースのパスワードマネージャーとして、iOS、Android、MacOS、Linux、Chrome、Edge、Safariなどのブラウザなどの複数のデバイスとクロスプラットフォームの互換性もあります。 Psonoのようなオープンソースのパスワードマネージャーを使用する主な利便性は、いつでもどこからでも重要な情報にアクセスする機能と、クレジットカードデータ、銀行情報などなど、他の情報を保存する機能です。 Psonoは、特に特に、さまざまなアプリケーションや敏感なサーバーにログインしてアクセスしているチームにとって、便利で効率的です。 Psonoは自己ホストされたパスワードマネージャーです。 Web拡張機能として使用したり、サーバーに展開したり、Webクライアントアプリケーションを介してアクセスしたり、Dockerを介してインストールしたりすることができます。また、携帯電話でアクセスするか、あらゆるプロジェクトのCI CDパイプラインに単純にインストールすることもできます。

システム要求


UbuntuのPsonoのインストール中に、次のシステム要件があることを確認してください。 -ubuntu 20.04

  • 静的IPまたはそれを指すドメイン/ホスト名を介したサーバーアクセス。
  • サーバーに2GB RAMと2つのコアがあることを確認してください
  • sudo許可を持つ非ルートユーザー

特徴


Psonoについての特徴を知っておくべきいくつかの良いものがあります: -Psonoは、ブラウザからPsonoアプリケーションサーバーに転送されているときに、3層の暗号化がデータを保護する多層暗号化を使用します。サーバーは、検証にDBA(データベース管理者)に依存する必要性を減らすPoly1305 MACコードとともに、SALSO20ストリーム暗号を使用してデータを暗号化します。

  • パスワードジェネレーターを使用して、シンボル、数字、小文字/大文字などで構成される最低6文字以上で構成されるパスワードを作成できます。 -Psonoを使用すると、アプリケーションに必要な詳細を提供した後、さまざまなWebサイトのログイン資格情報を簡単に自動入力できます。
  • クライアント側のアプリケーションを介してオフラインである場合、パスワードにアクセスすることもできます。
  • チームメンバーの亡くなったり、緊急事態の場合の利用不可など、デジタルレガシーの問題が発生した場合にパスワードにアクセスするための緊急コードを作成することもできます。 -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
  • 〜/ .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',
            ],
        },
    },
]	

*上記のコメントに記載されているようなデータベースの資格情報 /秘密 /パスを更新します。

*テスト電子メールをsomethingsomething -comの実行に送信するには: python3〜/psono-server/psono/manage.py sendtestmail something@something.com

  • このテストの電子メールを受け取った場合、電子メールを適切に構成する必要があります。
  • データベースを作成します
python3  ~/psono-server/psono/manage.py migrate

-Psonoサーバーを実行します

cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • これにより、ポート10100でPsonoサーバーが開始されます。今すぐ開いた場合http:// your-ip:10100/info/は次のようなものを見るはずです。
{"info":"{\"version\": \"....}
  • 再びルートになります
Ctrl + D
  • スーパーバイザー構成を作成します。次のコンテンツで/etc/supervisor/conf.d/でpsono-server.confを作成します。
[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オフロードを処理し、PsonoサーバーとWebClientを接着するために逆プロキシが必要です。次のステップとして、リバースプロキシをセットアップしますのガイドに従ってください。

探検


この記事では、Psonoの概要と、信頼できる資格情報マネージャーになる機能について説明しました。他のオープンソース資格情報管理ソフトウェアについては、次のページを確認してください。

-最高のオープンソースパスワード管理ソフトウェア

 日本