Psono | Gerente de credenciales de código abierto para equipos

Psono Software gratuito de administración de contraseñas

Gerente de credenciales de código abierto para equipos y empresas

PSONO es un administrador de contraseñas de código abierto diseñado para equipos. Puede ser autohospedado en el lado del cliente y tiene un cifrado de múltiples capas para la máxima seguridad.

Descripción general

Psono es un administrador de contraseñas gratuito para equipos. La mayoría de los administradores de contraseñas de código abierto que son gratuitos no ofrecen la opción de escalar y alojar a los administradores de contraseñas en su equipo o en sus servidores, respectivamente. Sin embargo, con Psono obtienes un gerente de credenciales de código abierto, completamente seguro y de código abierto que está diseñado para tener en cuenta los equipos. Con PSONO, puede implementar el Administrador de contraseñas en su propio servidor y permitir que hasta 10 usuarios almacenen su información importante y también accedan a ella. Como administrador de contraseñas de código abierto, también tiene múltiples compatibilidad con dispositivos y plataformas cruzadas, como iOS, Android, MacOS, Linux y navegadores como Chrome, Edge, Safari y más. La principal comodidad de usar administradores de contraseñas de código abierto como PSONO es la capacidad de acceder a su información crítica desde cualquier lugar, en cualquier momento y la capacidad de almacenar otra información como datos de tarjetas de crédito, información bancaria y más. PSONO es conveniente y eficiente, especialmente para los equipos que están iniciando sesión y accediendo a diferentes aplicaciones o servidores sensibles. Psono es un administrador de contraseñas autohospedado. Se puede utilizar como una extensión web, implementada en su servidor, accedido a través de la aplicación del cliente web o instalado a través del Docker. También puede acceder a él en sus teléfonos móviles o simplemente instalarlo en su canal de CI CI para cualquier proyecto.

Requisitos del sistema


Al instalar Psono para Ubuntu, asegúrese de tener los siguientes requisitos del sistema:

  • Ubuntu 20.04
  • Acceso al servidor a través de IP estática o un nombre de dominio/host que le apunta.
  • Asegúrese de que el servidor tenga 2 GB de RAM y 2 núcleos
  • Un usuario no raíz con permisos de sudo

Características


Aquí hay algunas funciones buenas para saber sobre Psono:

  • PSONO utiliza un cifrado multicapa donde tres capas de cifrado protegen los datos cuando se transfieren de un navegador al servidor de aplicaciones PSONO. El servidor encripta los datos utilizando el cifrado de transmisión Salso20 junto con el código Mac Poly1305 que reduce la necesidad de confiar en el DBA (administrador de la base de datos) para la validación.
  • Puede usar el generador de contraseñas para producir una contraseña que consta de un mínimo de 6 caracteres o más que consiste en símbolos, números, caracteres en minúsculas/mayúsculas, etc.
  • Con PSONO, puede automáticamente sus credenciales de inicio de sesión para diferentes sitios web después de proporcionar los detalles necesarios sobre la aplicación.
  • También se puede acceder a las contraseñas cuando está fuera de línea a través de las aplicaciones del lado del cliente.
  • También puede crear códigos de emergencia para acceder a las contraseñas en caso de un problema de legado digital, como la fallecimiento de un miembro del equipo o la falta de disponibilidad en caso de emergencia.
  • PSONO también detecta cualquier incumplimiento de contraseña que pueda haber sucedido e informa sobre ella a tiempo.
  • Encontrará varias teclas API que permiten la integración de la contraseña durante las compilaciones o scripts de inicio.

Instalación


Esta guía instalará el servidor PSONO y lo ejecuta con Gunicorn y Nginx. Se ha probado en Ubuntu 18.04.

  • convertirse en raíz
sudo su
  • Instale algunas cosas genéricas
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
  • Crear usuario de psono
adduser psono
  • Conviértete en el usuario de Psono
su psono
  • Repositorio de clones git
git clone https://gitlab.com/psono/psono-server.git ~/psono-server
  • Instale los requisitos de Python
Ctrl + D
cd /home/psono/psono-server
pip3 install -r requirements.txt
su psono
  • Crear carpeta de configuración
mkdir ~/.psono_server
  • Cree un settings.yaml en ~/ .psono \ _server/ con el siguiente contenido

# 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',
            ],
        },
    },
]	
  • Actualice credenciales de base de datos / secretos / rutas como se describe en los comentarios anteriores.

  • Para enviar un correo electrónico de prueba a algo que algo ejecutar: python3 ~/psono-server/psono/manage.py sendtestmail algo@something.com -Si recibe este correo electrónico de prueba, el correo electrónico debe configurarse correctamente.

  • Crea nuestra base de datos
python3  ~/psono-server/psono/manage.py migrate
  • Ejecute el servidor psono
cd ~/psono-server/psono
gunicorn --bind 0.0.0.0:10100 wsgi
  • Esto iniciará el servidor psono en el puerto 10100. Si abre ahora http: // su-ip: 10100/info/debería ver algo como esto:
{"info":"{\"version\": \"....}
  • Conviértete en la raíz de nuevo
Ctrl + D
  • Crear configuración de supervisor. Cree un psono-server.conf in /etc/supervisor/conf.d/ con el siguiente contenido:
[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
  • Es posible que se haya dado cuenta de que cambiamos el enlace. De esta manera, PSONO solo es accesible desde Localhost, lo cual está bien, ya que presentaremos solicitudes con Nginx.
  • Recargar supervisorctl
supervisorctl reload
  • Configuración de trabajo de limpieza
crontab -e
  • y agregue la siguiente línea:
30 2 * * * psono python3 /home/psono/psono-server/psono/manage.py cleartoken >> /var/log/cron.log 2>&1
  • Para ejecutar el Administrador de contraseñas de PSONO en producción, se necesita un proxy inverso, para manejar la descarga SSL y pegue el servidor PSONO y WebClient juntos. Siga la guía a Configuración de proxy inversa como un siguiente paso.

Explorar


En este artículo hemos discutido la descripción general y las características de PSONO que lo convierten en un gerente de credenciales confiable. Para conocer otro software de administración de credenciales de código abierto, verifique las siguientes páginas:

 Español