Psono 무료 비밀번호 관리 소프트웨어
팀 및 기업을위한 오픈 소스 자격 증명 관리자
Psono는 팀을 위해 설계된 오픈 소스 비밀번호 관리자입니다. 클라이언트 측에서 자체 주최 할 수 있으며 최대 보안을 위해 다층 암호화가 있습니다.
개요
PSONO는 팀의 무료 비밀번호 관리자입니다. 자유롭게 사용할 수있는 대부분의 오픈 소스 비밀번호 관리자는 각각 팀이나 서버에서 비밀번호 관리자를 확장하고 호스팅하는 옵션을 제공하지 않습니다. 그러나 PSONO를 사용하면 팀을 떠올리게 설계된 완전히 안전하고 안전한 오픈 소스 자격 증명 관리자가 제공됩니다. PSONO를 사용하면 자신의 서버에 암호 관리자를 배포하고 최대 10 명의 사용자가 중요한 정보를 저장하고 액세스 할 수 있습니다. 오픈 소스 비밀번호 관리자로서 iOS, Android, MacOS, Linux 및 Chrome, Edge, Safari 등과 같은 브라우저와 같은 여러 장치 및 크로스 플랫폼 호환성이 있습니다. PSONO와 같은 오픈 소스 비밀번호 관리자를 사용하는 주요 편의성은 언제 어디서나 중요한 정보에 액세스 할 수 있으며 신용 카드 데이터, 은행 정보 등과 같은 다른 정보를 저장할 수있는 기능입니다. PSONO는 특히 민감한 다른 응용 프로그램이나 서버에 로그인하고 액세스하는 팀의 경우 편리하고 효율적입니다. PSONO는 자체 주최 암호 관리자입니다. 웹 확장자로 사용하거나 서버에 배포하거나 웹 클라이언트 응용 프로그램을 통해 액세스하거나 Docker를 통해 설치할 수 있습니다. 휴대 전화에서 액세스하거나 모든 프로젝트를 위해 CI CD 파이프 라인에 설치할 수도 있습니다.
시스템 요구 사항
우분투 용 PSONO를 설치하는 동안 다음 시스템 요구 사항이 있는지 확인하십시오.
- 우분투 20.04
- 정적 IP 또는 도메인/호스트 이름을 통한 서버 액세스.
- 서버에 2GB RAM과 2 코어가 있는지 확인합니다.
- Sudo 권한이있는 뿌리가없는 사용자
특징
다음은 PSONO에 대한 기능을 알 수 있습니다. -PSONO는 브라우저에서 PSONO 애플리케이션 서버로 전송 될 때 3 개의 암호화 계층이 데이터를 보호하는 다층 암호화를 사용합니다. 서버는 SALSO20 스트림 암호를 사용하여 데이터를 암호화하여 Poly1305 MAC 코드와 함께 유효성 검사를 위해 DBA (데이터베이스 관리자)에 의존해야 할 필요성을 줄입니다.
- 비밀번호 생성기를 사용하여 기호, 숫자, 소문자/대문자 등으로 구성된 최소 6 자 이상으로 구성된 비밀번호를 생성 할 수 있습니다. -PSONO를 사용하면 응용 프로그램에 필요한 세부 정보를 제공 한 후 다른 웹 사이트에 대한 로그인 자격 증명을 쉽게 자동 수소 할 수 있습니다.
- 클라이언트 측 응용 프로그램을 통해 오프라인 상태 일 때 암호에 액세스 할 수도 있습니다.
- 팀 구성원의 통과와 같은 디지털 레거시 문제가 발생하거나 응급 상황의 경우 사용할 수없는 경우 비밀번호에 액세스하기위한 비상 코드를 만들 수도 있습니다. -PSONO는 또한 발생했을 수있는 암호 위반을 감지하고 제 시간에보고합니다.
- 빌드 또는 시작 스크립트 중에 암호를 통합 할 수있는 여러 API 키가 있습니다.
설치
이 안내서는 PSONO 서버를 설치하고 Gunicorn 및 Nginx로 실행됩니다. 우분투 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
- 파이썬 요구 사항을 설치합니다
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
- 설정 폴더를 만듭니다
mkdir ~/.psono_server
- ~/ .psono \ _server/ with 다음 내용으로 설정을 만듭니다.
# 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='ma'+'il'+'to';var path='hr'+'ef'+'=';var addy820118571330d66e81d06c4c2b562de4=''the-mail-for-for-example-useraccount-activations'+'@';addy820118571330d66e81d06c4c2b562de4=addy820118571330d66e81d06c4c2b562de4+'test'+'.'+'com';var addy_text820118571330d66e81d06c4c2b562de4=''the-mail-for-for-example-useraccount-activations'+'@'+'test'+'.'+'com';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',
],
},
},
]
-
위의 주석에 설명 된 것처럼 데이터베이스 자격 증명 / 비밀 / 경로를 업데이트합니다.
-
Somethingsomethingcom 실행에 테스트 이메일을 보내려면 : 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와의 요청을 프록시 할 예정입니다. -Reload 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 서버와 웹 클라이언트를 결합하려면 리버스 프록시가 필요합니다. 다음 단계로 설정 리버스 프록시에 대한 가이드를 따르십시오.