GNU/Linux >> Tutoriales Linux >  >> Ubuntu

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

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

1. Instalar 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 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 redes

root@demohost:~# service networking restart

Ahora verifique el FQDN de su host

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

2. Descargar RatticWeb

Descargue RatticWeb e instale los módulos requeridos de 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 base de datos/usuario 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

Por defecto, 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

[telaraña]

depuración =Falsesecretkey =linoxidehostname =demohost.com

[rutas de archivo]

estático =/opt/apps/RatticWeb/estático

[base de datos]

motor =django.db.backends.mysqlname =ratticuser =ratticpassword =somepasswordhost =localhostport =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. Migrar 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 realice 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. Compilar/instalar mod_wsgi

Descarga y compila 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 cómo compilar mod_wsgi, consulta aquí.

7. Configurar Apache

Cree un certificado SSL y una clave usando 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úrate de redirigir todo, desde http a https. También edite default-ssl.conf y agregue la clave SSL/ruta de certificado, agregue Alias ​​y configuración de Directorio para RatticWeb.

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

ServerAdmin [email protected]
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 [email protected]
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 de 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 cortafuegos

Ajuste las reglas del cortafuegos 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. Acceder a RatticDB

Para acceder a rattic, escriba https://FQDN_Or_IP_Address_Of_Your_Server

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

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

Escriba una nueva contraseña y haga clic en "Cambiar contraseña"

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

Proporcione un nombre de grupo y envíelo.

Seleccione "Administración de personal" y luego presione "Agregar usuario". Rellene los datos de usuario y haga clic en "Enviar"

Para enumerar a los usuarios, seleccione "Gestión de personal", se enumerarán todos los usuarios y grupos.

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

Conclusiones:

Hemos instalado y configurado un muy buen sistema de gestión de contraseñas, es decir, RatticDB. Tiene varias ventajas, como fácil de usar, control de acceso simple, registros de auditoría para 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 pase de equipo, pase de llave, candado que también puede considerar para sus requisitos.


Ubuntu
  1. Cómo instalar la aplicación de gestión de contraseñas KeePassXC en Ubuntu

  2. Cómo configurar HAProxy en Ubuntu 16.04

  3. Cómo configurar el servidor SFTP de MySecureShell en Ubuntu 18.04

  4. Cómo configurar el cortafuegos UFW en Ubuntu 18.04

  5. ¿Cómo restablecer la contraseña de Ubuntu?

Cómo instalar Moodle en Ubuntu 20.04

Cómo restablecer la contraseña de root en Ubuntu 17.10

Cómo configurar OpenVPN en Ubuntu Server

Cómo configurar el servidor Git en Ubuntu 20.04

Cómo reiniciar Bluetooth en Ubuntu 20.04

Cómo configurar el servidor Rsyslog en Ubuntu