GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment configurer le service de gestion de mot de passe RatticDB sur Ubuntu 16.04

RatticDB est un service open source de gestion de mots de passe basé sur Django. L'API fournie par celui-ci est utilisée pour l'accès par des programmes externes et des journaux d'audit pour assurer une responsabilité totale. Il existe également une "Change Queue" afin de savoir quels mots de passe doivent être modifiés et quand.

1. Installer le prérequis

Mettez à jour votre système et installez tous les prérequis, y compris MySQL et 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

Configurez le nom de domaine complet de votre hôte en ajoutant une entrée appropriée pour l'hôte et le nom de domaine dans /etc/hosts &/etc/hostname (facultatif)

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

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

Redémarrer le réseau

root@demohost:~# service networking restart

Vérifiez maintenant le FQDN de votre hébergeur

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

2. Télécharger RatticWeb

Téléchargez RatticWeb et installez les modules python requis à l'aide de 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. Créer une base de données/un utilisateur MySQL

Créez une base de données/un utilisateur MySQL et accordez des privilèges.

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. Configurer RatticWeb

Par défaut, RatticWeb s'exécute en mode débogage en utilisant une base de données SQLite. Pour changer cela et configurer la connexion MySQL, créez un fichier /opt/apps/RatticWeb/conf/local.cfg avec le contenu suivant.

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

[ratticweb]

debug =Falsesecretkey =linoxidehostname =demohost.com

[chemins de fichiers]

statique =/opt/apps/RatticWeb/statique

[base de données]

moteur =django.db.backends.mysqlname =ratticuser =ratticpassword =somepasswordhost =localhostport =3306

Spécifiez votre fuseau horaire, les jours d'expiration du mot de passe et le nom d'hôte.

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

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

5. Migrer RatticWeb

Vous pouvez obtenir l'erreur suivante dans les migrations.

..................
..................
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',
}

Pour corriger cela, copiez le bon module de migration.

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

Effectuez maintenant la migration

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. Compiler/installer mod_wsgi

Téléchargez et compilez mod_wsgi. Vous avez besoin de python-dev et apache2-dev pour installer mod_wsgi. Ces deux éléments sont installés à l'étape 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

Pour plus de détails sur la compilation de mod_wsgi, cliquez ici.

7. Configurer Apache

Créez un certificat SSL et une clé à l'aide d'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

Modifiez le fichier de configuration par défaut d'Apache et modifiez ServerName et ServerAlias. Assurez-vous de tout rediriger de http vers https. Modifiez également default-ssl.conf et ajoutez la clé SSL/chemin de certification, ajoutez les alias et la configuration du répertoire pour 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

Modifiez maintenant 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>

Activer les modules 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. Configurer le pare-feu

Ajustez les règles de pare-feu pour autoriser le trafic sur les ports 80 et 443

Pour les utilisateurs d'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

Pour les utilisateurs UFW

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

9. Accéder à RatticDB

Pour accéder à rattic, tapez https://FQDN_Or_IP_Address_Of_Your_Server

Connectez-vous avec le nom d'utilisateur par défaut en tant qu'administrateur et le mot de passe en tant que rattic, vous serez redirigé vers le tableau de bord du mot de passe. Modifiez le mot de passe par défaut pour l'utilisateur admin.

Cliquez sur "Profil" dans la barre latérale gauche pour afficher la page de profil d'administrateur. Cliquez sur "Modifier le mot de passe"

Tapez le nouveau mot de passe et cliquez sur "Modifier le mot de passe"

Cliquez sur "Gestion du personnel" puis sur "Ajouter un groupe"

Donnez un nom de groupe et soumettez.

Sélectionnez "Gestion du personnel" puis cliquez sur "Ajouter un utilisateur". Remplissez les détails de l'utilisateur et cliquez sur "Soumettre"

Pour lister les utilisateurs, sélectionnez "Gestion du personnel", tous les utilisateurs et groupes seront listés.

C'est tout pour Rattic-DB, vous pouvez désormais gérer les utilisateurs/groupes et les mots de passe de manière plus sécurisée et y accéder via des API sécurisées

Conclusion :

Nous avons installé et configuré un très bon système de gestion des mots de passe, c'est-à-dire RatticDB. Il présente plusieurs avantages, tels qu'une utilisation simple, un contrôle d'accès simple, des journaux d'audit pour la responsabilité, la disponibilité de l'API, le cryptage sur le système de fichiers, peut être configuré avec n'importe quelle base de données, gérer les modifications avec une file d'attente de modifications, etc. Il existe d'autres gestionnaires de mots de passe open source sont disponibles comme teampass, keypass, cadenas que vous pouvez également considérer selon vos besoins.


Ubuntu
  1. Comment installer l'application de gestion de mot de passe KeePassXC sur Ubuntu

  2. Comment configurer HAProxy dans Ubuntu 16.04

  3. Comment configurer le serveur SFTP MySecureShell sur Ubuntu 18.04

  4. Comment configurer le pare-feu UFW sur Ubuntu 18.04

  5. Comment réinitialiser le mot de passe Ubuntu ?

Comment installer Moodle sur Ubuntu 20.04

Comment réinitialiser le mot de passe root dans Ubuntu 17.10

Comment configurer OpenVPN sur Ubuntu Server

Comment configurer le serveur Git sur Ubuntu 20.04

Comment redémarrer Bluetooth dans Ubuntu 20.04

Comment configurer le serveur Rsyslog sur Ubuntu