LINUX

Cómo configurar el servicio de administración de contraseñas RatticDB en Ubuntu 16.04

RatticDB es un servicio de gestión de contraseñas de código abierto basado en Django. La API que proporciona se utiliza para el acceso de programas externos y registros de auditoría para garantizar la total responsabilidad. También hay una «Cola de cambios» para rastrear qué contraseñas deben cambiarse y cuándo.

1. Instale el requisito previo

Actualice su sistema e instale todos los requisitos previos, incluidos MySQL y Apache.

root@demohost:~# apt-get update
root@demohost:~# apt-get install apache2 php git gcc mysql-server python-setuptools gcc openssl libxml2 python-dev libxml2-dev libxslt1-dev zlib1g-dev libldap2-dev python-ldap python-mysqldb gettext apache2-dev libmysqlclient-dev libsasl2-dev python-dev libldap2-dev libssl-dev pyflakes
root@demohost:~# easy_install pip

Configure el FQDN para su host agregando la entrada adecuada para el host y el nombre de dominio en / etc / hosts & / etc / hostname (opcional)

root@demohost:~# cat /etc/hosts
127.0.0.1 localhost
172.31.24.18 demohost.com demohost

root@demohost:~# cat /etc/hostname
demohost

Reiniciar la red

root@demohost:~# service networking restart

Ahora verifique el FQDN de su host

root@demohost:~# hostname
demohost
root@demohost:~# hostname -f
demohost.com

2. Descarga RatticWeb

Descargue RatticWeb e instale los módulos requeridos por Python usando pip.

root@demohost:~# cd /opt
root@demohost:/opt# mkdir apps
root@demohost:/opt# cd apps
root@demohost:/opt/apps# git clone https://github.com/tildaslash/RatticWeb.git
Cloning into 'RatticWeb'...
remote: Counting objects: 6192, done.
remote: Total 6192 (delta 0), reused 0 (delta 0), pack-reused 6192
Receiving objects: 100% (6192/6192), 1.63 MiB | 707.00 KiB/s, done.
Resolving deltas: 100% (3553/3553), done.
Checking connectivity... done.
root@demohost:/opt/apps# cd RatticWeb/
root@demohost:/opt/apps/RatticWeb# /usr/local/bin/pip install -r requirements-mysql.txt -r requirements-dev.txt

3. Crear usuario / base de datos MySQL

Cree una base de datos / usuario MySQL y otorgue privilegios.

root@demohost:~# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 1807
Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> create database rattic CHARACTER SET utf8;
Query OK, 1 row affected (0.00 sec)

mysql> SET GLOBAL innodb_file_per_table = ON, innodb_file_format = Barracuda, innodb_large_prefix = ON;
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON rattic.* TO 'rattic'@'localhost' identified by 'somepassword';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

4. Configurar RatticWeb

De forma predeterminada, RatticWeb se ejecuta en modo de depuración utilizando una base de datos SQLite. Para cambiar esto y configurar la conexión MySQL, cree un archivo /opt/apps/RatticWeb/conf/local.cfg con el siguiente contenido.

root@demohost:~# cd /opt/apps/RatticWeb
root@demohost:/opt/apps/RatticWeb# vi conf/local.cfg

[ratticweb]
debug = False
secretkey = linoxide
hostname = demohost.com
[filepaths]
static = /opt/apps/RatticWeb/static
[database]
engine = django.db.backends.mysql
name = rattic
user = rattic
password = somepassword
host = localhost
port = 3306

Especifique su zona horaria, los días de caducidad de la contraseña y el nombre de host.

root@demohost:/opt/apps/RatticWeb# vim conf/defaults.cfg

timezone = Asia/Kolkata
passwordexpirydays = 90
hostname = demohost.com

5. Migre RatticWeb

Es posible que obtenga el siguiente error en las migraciones.

..................
..................
django.core.exceptions.ImproperlyConfigured:
For South support, customize the SOUTH_MIGRATION_MODULES setting
to point to the correct migrations module:

SOUTH_MIGRATION_MODULES = {
'kombu_transport_django': 'kombu.transport.django.south_migrations',
}

Para corregir esto, copie el módulo de migración correcto.

root@demohost:# cd /usr/local/lib/python2.7/dist-packages
root@demohost:/usr/local/lib/python2.7/dist-packages# rm -rf kombu/transport/django/migrations djcelery/migrations
root@demohost:/usr/local/lib/python2.7/dist-packages# mv kombu/transport/django/south_migrations kombu/transport/django/migrations
root@demohost:/usr/local/lib/python2.7/dist-packages# mv djcelery/south_migrations djcelery/migrations

Ahora realiza la migración

root@demohost:# cd /opt/apps/RatticWeb/
root@demohost:/opt/apps/RatticWeb# ./manage.py syncdb --noinput
root@demohost:/opt/apps/RatticWeb# ./manage.py migrate [ create and setup the database ]
root@demohost:/opt/apps/RatticWeb# mkdir static
root@demohost:/opt/apps/RatticWeb#  ./manage.py collectstatic -c --noinput [ populate the static files directory ]
root@demohost:/opt/apps/RatticWeb# ./manage.py demosetup [ to create an initial user account ]

6. Compile / instale mod_wsgi

Descargue y compile mod_wsgi. Necesita python-dev y apache2-dev para instalar mod_wsgi. Ambos se instalan en el paso 1.

root@demohost:~# wget https://github.com/GrahamDumpleton/mod_wsgi/archive/develop.zip
root@demohost:~# unzip develop.zip
root@demohost:~# cd mod_wsgi-develop
root@demohost:~/mod_wsgi-develop#./configure --with-python=/usr/bin/python3.5
root@demohost:~/mod_wsgi-develop# make
root@demohost:~/mod_wsgi-develop# make install

root@demohost:~/mod_wsgi-develop# cd /etc/apache2/mods-available
root@demohost:/etc/apache2/mods-available# vi wsgi.load
LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

root@demohost:/etc/apache2/mods-available# cd /etc/apache2/mods-enabled
root@demohost:/etc/apache2/mods-enabled# ln -s ../mods-available/wsgi.load .

root@demohost:/etc/apache2/mods-enabled# service apache2 start

Para obtener más detalles sobre la compilación de mod_wsgi, consulte aquí.

7. Configurar Apache

Cree un certificado y una clave SSL con OpenSSL.

root@demohost:~# sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/demohost.com.key -out /etc/ssl/certs/demohost.com.crt

Edite el archivo de configuración predeterminado de Apache y cambie ServerName y ServerAlias. Asegúrese de redirigir todo, desde http a https. También edite default-ssl.conf y agregue la clave SSL / ruta de certificación, agregue los alias y la configuración del directorio para RatticWeb.

root@demohost# vi /etc/apache2/sites-available/000-default.conf

ServerAdmin webmaster@demohost.com
DocumentRoot /var/www/html
ServerName demohost.com
ServerAlias demohost.com
Redirect permanent / https://demohost.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

Ahora edite default-ssl.conf

root@demohost# vi /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@demohost.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/demohost.com.crt
SSLCertificateKeyFile /etc/ssl/private/demohost.com.key
<FilesMatch ".(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>

BrowserMatch "MSIE [2-6]" 
nokeepalive ssl-unclean-shutdown 
downgrade-1.0 force-response-1.0
# MSIE 7 and newer should be able to use keepalive
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

Alias /robots.txt /opt/apps/RatticWeb/static/robots.txt
Alias /favicon.ico /opt/apps/RatticWeb/static/favicon.ico

AliasMatch ^/([^/]*.css) /opt/apps/RatticWeb/static/styles/$1
Alias /media/ /opt/apps/RatticWeb/media/
Alias /static/ /opt/apps/RatticWeb/static/

<Directory /opt/apps/RatticWeb/static>
Require all granted
</Directory>
<Directory /opt/apps/RatticWeb/media>
Require all granted
</Directory>
WSGIScriptAlias / /opt/apps/RatticWeb/ratticweb/wsgi.py
WSGIPassAuthorization On
WSGIDaemonProcess rattic processes=2 threads=25 home=/opt/apps/RatticWeb/ python-path=/opt/apps/RatticWeb display-name=%{GROUP}
WSGIProcessGroup rattic
<Directory /opt/apps/RatticWeb/ratticweb>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
</VirtualHost>
</IfModule>

Habilitar módulos apache

root@demohost:~# sudo a2enmod wsgi
root@demohost:~# a2enmod rewrite
root@demohost:~# a2ensite default-ssl
root@demohost:~# a2enmod ssl
root@demohost:~# service apache2 restart

8. Configurar el cortafuegos

Ajuste las reglas del firewall para permitir el tráfico a los puertos 80 y 443

Para usuarios de IPTABLES

[root@demohost ~]# vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

[root@demohost ~]# iptables-save > /etc/iptables/rules.v4
[root@demohost ~]# service iptables-persistent restart

Para usuarios de UFW

[root@demohost ~]# ufw allow 80/tcp
[root@demohost ~]# ufw allow 443/tcp
[root@demohost ~]# ufw reload

9. Acceda a RatticDB

Para acceder a rattic, escriba https: // FQDN_Or_IP_Address_Of_Your_Server

Página de inicio de sesión de Rattic

Inicie sesión con el nombre de usuario predeterminado como administrador y la contraseña como rattic, será redirigido al panel de control de contraseñas. Cambie la contraseña predeterminada para el administrador del usuario.

Tablero Rattic

Haga clic en «Perfil» en la barra lateral izquierda para ver la página de perfil de administrador. Haga clic en «Cambiar contraseña»

Perfil de administrador de Rattic

Escriba la nueva contraseña y haga clic en «Cambiar contraseña»

Contraseña de actualización de Rattic

Haga clic en «Administración de personal» y luego en «Agregar grupo»

Rattic añadir grupo

Da un nombre de grupo y envíalo.

Grupo de envío rattic

Seleccione «Administración de personal» y luego presione «Agregar usuario». Complete los datos del usuario y haga clic en «Enviar»

Crear usuario de Rattic

Para listar usuarios, seleccione «Administración de personal», se listarán todos los usuarios y grupos.

Usuario / grupo de lista rattic

Eso es todo para Rattic-DB, ahora puede administrar usuarios / grupos y contraseñas de manera más segura y acceder a ellos a través de API seguras

Conclusiones:

Hemos instalado y configurado un sistema de gestión de contraseñas muy agradable, es decir, RatticDB. Tiene varias ventajas, como fácil de usar, control de acceso simple, registros de auditoría para la responsabilidad, disponibilidad de API, cifrado en el sistema de archivos, se puede configurar con cualquier base de datos, administrar cambios con una cola de cambios, etc. Hay otros administradores de contraseñas de código abierto están disponibles como teampass, keypass, candado que también puede considerar para sus necesidades.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar