GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare il servizio di gestione delle password RatticDB su Ubuntu 16.04

RatticDB è un servizio di gestione delle password basato su Django open source. L'API fornita da esso viene utilizzata per l'accesso da parte di programmi esterni e registri di controllo per garantire la piena responsabilità. C'è anche una "Coda di cambio" in modo da tenere traccia di quali password devono essere modificate e quando.

1. Prerequisito di installazione

Aggiorna il tuo sistema e installa tutti i prerequisiti inclusi MySQL e 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

Configura FQDN per il tuo host aggiungendo la voce corretta per host e nome di dominio in /etc/hosts &/etc/hostname(opzionale)

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

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

Riavvia la rete

root@demohost:~# service networking restart

Ora controlla l'FQDN del tuo host

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

2. Scarica RatticWeb

Scarica RatticWeb e installa i moduli richiesti da 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. Crea database/utente MySQL

Crea database/utente MySQL e concedi privilegi.

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

Per impostazione predefinita RatticWeb viene eseguito in modalità di debug utilizzando un database SQLite. Per cambiarlo e configurare la connessione MySQL, crea un file /opt/apps/RapticWeb/conf/local.cfg con i seguenti contenuti.

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

[raticweb]

debug =Falsesecretkey =linoxidehostname =demohost.com

[percorsi file]

statico =/opt/apps/RapticWeb/statico

[database]

motore =django.db.backends.mysqlname =utenterattico =passwordrattica =hostpassword =localhostport =3306

Specifica il tuo fuso orario, i giorni di scadenza della password e il nome host.

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

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

5. Migrare RatticWeb

Potresti ricevere il seguente errore nelle migrazioni.

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

Per correggere questo, copia il modulo di migrazione corretto.

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

Ora esegui la migrazione

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. Compila/installa mod_wsgi

Scarica e compila mod_wsgi. Hai bisogno di python-dev e apache2-dev per l'installazione di mod_wsgi. Entrambi vengono installati nel passaggio 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

Per maggiori dettagli sulla compilazione di mod_wsgi, controlla qui.

7. Configura Apache

Crea certificato SSL e chiave utilizzando 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

Modifica il file di configurazione predefinito di Apache e cambia ServerName e ServerAlias. Assicurati di reindirizzare tutto da http a https. Modifica anche default-ssl.conf e aggiungi chiave SSL/percorso certificato, aggiungi alias e configurazione directory per 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

Ora modifica 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>

Abilita i moduli 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. Configura Firewall

Regola le regole del firewall per consentire al traffico di portare le porte n. 80 e 443

Per utenti 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

Per utenti UFW

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

9. Accedi a RatticDB

Per accedere a ratic, digita https://FQDN_Or_IP_Address_Of_Your_Server

Accedi con il nome utente predefinito come amministratore e la password come ratic, verrai reindirizzato alla dashboard delle password. Modifica la password predefinita per l'amministratore utente.

Fai clic su "Profilo" dalla barra laterale sinistra per visualizzare la pagina del profilo dell'amministratore. Fai clic su "Cambia password"

Digita la nuova password e fai clic su "Cambia password"

Fai clic su "Gestione del personale" e poi su "Aggiungi gruppo"

Assegna un nome al gruppo e invia.

Seleziona "Gestione del personale" e quindi premi "Aggiungi utente". Compila i dettagli dell'utente e fai clic su "Invia"

Per elencare gli utenti, seleziona "Gestione del personale", verranno elencati tutti gli utenti e i gruppi.

Questo è tutto per Rattic-DB, ora puoi gestire utenti/gruppi e password in modo più sicuro e accedervi tramite API sicure

Conclusioni:

Abbiamo installato e configurato un sistema di gestione delle password molto carino, ovvero RatticDB. Presenta numerosi vantaggi come semplice da usare, semplice controllo dell'accesso, registri di controllo per la responsabilità, disponibilità di API, crittografia sul file system, può essere configurato con qualsiasi database, gestire le modifiche con una coda di modifica ecc. Esistono altri gestori di password open source sono disponibili come teampass, keypass, lucchetto che puoi anche prendere in considerazione per le tue esigenze.


Ubuntu
  1. Come installare l'app di gestione delle password KeePassXC su Ubuntu

  2. Come configurare HAProxy in Ubuntu 16.04

  3. Come configurare il server SFTP MySecureShell su Ubuntu 18.04

  4. Come configurare UFW Firewall su Ubuntu 18.04

  5. Come reimpostare la password di Ubuntu?

Come installare Moodle su Ubuntu 20.04

Come reimpostare la password di root in Ubuntu 17.10

Come configurare OpenVPN su Ubuntu Server

Come configurare Git Server su Ubuntu 20.04

Come riavviare il Bluetooth in Ubuntu 20.04

Come configurare il server Rsyslog su Ubuntu