Psono Nemokama slaptažodžio valdymo programinė įranga
Komandų ir įmonių atvirojo kodo kredencialų vadybininkas
„PSONO“ yra atvirojo kodo slaptažodžių tvarkyklė, skirta komandoms. Jis gali būti priglobtas kliento pusėje ir turi daugiasluoksnį šifravimą, kad būtų maksimalus saugumas.
Apžvalga
„Psono“ yra nemokamas slaptažodžių valdytojas komandoms. Daugelis atvirojo kodo slaptažodžių valdytojų, kuriuos galima laisvai naudoti, nesiūlo galimybės atitinkamai mastelio ir priglobti slaptažodžių valdytojus visoje jūsų komandoje ar jūsų serveriuose. Tačiau naudodamiesi „PSONO“ gausite nemokamą naudojimą, visiškai saugų, atvirojo kodo kredencialų vadybininką, kuris yra sukurtas atsižvelgiant į komandas. Naudodamiesi „PSONO“ galite įdiegti slaptažodžių tvarkyklę savo serveryje ir leisti iki 10 vartotojų išsaugoti svarbią informaciją ir pasiekti ją. Kaip atvirojo kodo slaptažodžių tvarkyklė, jis taip pat turi kelis įrenginius ir kryžminių platformų suderinamumą, pavyzdžiui, „iOS“, „Android“, „MacOS“, „Linux“ ir naršykles, tokias kaip „Chrome“, „Edge“, „Safari“ ir dar daugiau. Pagrindinis atvirojo kodo slaptažodžių valdytojų, tokių kaip „PSONO“, patogumas yra galimybė bet kuriuo metu pasiekti savo kritinę informaciją iš bet kurios vietos, ir galimybės saugoti kitą informaciją, pavyzdžiui, kreditinės kortelės duomenis, bankininkystės informaciją ir dar daugiau. „PSONO“ yra patogus ir efektyvus, ypač komandoms, kurios prisijungia prie skirtingų programų ar prieigos prie skirtingų programų ar jautrių serverių. PSONO yra savarankiškai priglobtas slaptažodžių tvarkyklė. Jis gali būti naudojamas kaip žiniatinklio plėtinys, įdiegtas jūsų serveryje, pasiekiamas per interneto kliento programą arba įdiegta per „Docker“. Taip pat galite pasiekti jį savo mobiliuosiuose telefonuose arba tiesiog įdiegti jį į savo CI CD vamzdyną bet kokiam projektui.
Sistemos reikalavimai
Diegdami „PSONO“, skirtą „Ubuntu“, įsitikinkite, kad turite šiuos sistemos reikalavimus:
- „Ubuntu 20.04“
- Serverio prieiga per statinį IP arba domeno/pagrindinio kompiuterio pavadinimą, nurodantį į jį.
- Įsitikinkite, kad serveris turi 2 GB RAM ir 2 branduolius
- Ne šaknų vartotojas su sudo leidimais
Funkcijos
Štai keletas gerų žinių apie „PSONO“ funkcijas:
- „PSONO“ naudoja daugiasluoksnį šifravimą, kai trys šifravimo sluoksniai apsaugo duomenis, kai jie perkeliami iš naršyklės į PSONO programų serverį. Serveris užšifruoja duomenis naudodamas „Salso20“ srauto šifrą kartu su „Poly1305 Mac“ kodu, kuris sumažina būtinybę pasikliauti DBA (duomenų bazės administratoriumi) patvirtinimui.
- Slaptažodžių generatorių galite naudoti norėdami sukurti slaptažodį, kurį sudaro mažiausiai 6 ar daugiau simbolių, kuriuos sudaro simboliai, skaičiai, mažosios raidės/didžiosios raidės simboliai ir kt.
- Naudodamiesi „PSONO“, galite lengvai automatiškai nufotografuoti savo prisijungimo kredencialus skirtingoms svetainėms, pateikę reikiamą informaciją apie programą.
- Slaptažodžius taip pat galima pasiekti, kai esate neprisijungę per kliento programas.
- Taip pat galite sukurti avarinius kodus, kad pasiektumėte slaptažodžius, jei bus skaitmeninės palikimo problemos, tokios kaip komandos nario panaikinimas arba nepasiekiamumas, jei avarijos atveju.
- PSONO taip pat aptinka bet kokį slaptažodžio pažeidimą, kuris galėjo nutikti, ir laiku apie tai praneša.
- Rasite kelis API klavišus, leidžiančius integruoti slaptažodį kūrimo ar paleidimo scenarijų metu.
diegimas
Šis vadovas įdiegs „PSONO“ serverį ir paleis jį su „Gunicorn“ ir „Nginx“. Jis buvo išbandytas Ubuntu 18.04.
- Tapk šaknimi
sudo su
- Įdiekite keletą bendrų daiktų
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
- Sukurkite „PSONO“ vartotoją
adduser psono
- Tapkite „PSONO“ vartotoju
su psono
- „Clone Git“ saugykla
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
- Įdiekite „Python“ reikalavimus
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
- Sukurti „Nustatymų“ aplanką
mkdir ~/.psono_server
- Sukurkite nustatymus.yaml ~/ .psono \ _server/ su šiuo turiniu
# 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',
],
},
},
]
Atnaujinkite duomenų bazės kredencialus / paslaptis / kelius, kaip aprašyta aukščiau esančiuose komentaruose.
Norėdami išsiųsti bandomąjį el. Laišką į „SomeSomethingcom“ vykdymą: python3 ~/psono-server/psono/manage.py sendtestmail kažkas@something.com -Jei gaunate šį bandomąjį el. Laišką, el. Paštas turėtų būti sukonfigūruotas tinkamai.
- Sukurkite mūsų duomenų bazę
python3 ~/psono-server/psono/manage.py migrate
- Paleiskite „PSONO“ serverį
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
- Tai pradės PSONO serverį 10100 prievade. Jei atidarysite dabar http: // your-ip: 10100/Info/turėtų pamatyti kažką panašaus:
{"info":"{\"version\": \"....}
- Vėl tapti šaknis
Ctrl + D
- Sukurkite prižiūrėtojo konfigūraciją. Sukurkite „psono-server.conf“ /etc/supervisor/conf.d/ su šiuo turiniu:
[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
- Galbūt supratote, kad mes pakeitėme įrišimą. Tokiu būdu PSONO galima pasiekti tik iš „Localhost“, o tai yra gerai, nes mes su „Nginx“ užklausomis.
- Perkrauti „Supervisorctl“
supervisorctl reload
- Sąrankos valymo darbas
crontab -e
- ir pridėkite šią eilutę:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
- Norint paleisti PSONO slaptažodžių tvarkyklę gamyboje, reikalingas atvirkštinis tarpinis serveris, norint tvarkyti SSL iškrovimą ir priklijuoti PSONO serverį bei „WebClient“ kartu. Vykdykite vadovą į Sąrankos atvirkštinis tarpinis serveris kaip kitą žingsnį.