RatticDB ist ein Open-Source-Django-basierter Passwortverwaltungsdienst. Die von ihm bereitgestellte API wird für den Zugriff durch externe Programme und Prüfprotokolle verwendet, um eine vollständige Verantwortlichkeit sicherzustellen. Es gibt auch eine "Änderungswarteschlange", um nachzuverfolgen, welche Passwörter wann geändert werden müssen.
1. Voraussetzung installieren
Aktualisieren Sie Ihr System und installieren Sie alle Voraussetzungen, einschließlich MySQL und 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
Konfigurieren Sie den FQDN für Ihren Host, indem Sie den richtigen Eintrag für den Host- und Domänennamen in /etc/hosts &/etc/hostname(Optional)
hinzufügenroot@demohost:~# cat /etc/hosts
127.0.0.1 localhost
172.31.24.18 demohost.com demohost
root@demohost:~# cat /etc/hostname
demohost
Netzwerk neu starten
root@demohost:~# service networking restart
Prüfen Sie nun den FQDN Ihres Hosts
root@demohost:~# hostname
demohost
root@demohost:~# hostname -f
demohost.com
2. RatticWeb herunterladen
Laden Sie RatticWeb herunter und installieren Sie die erforderlichen Python-Module mit 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. MySQL-Datenbank/Benutzer erstellen
MySQL-Datenbank/Benutzer erstellen und Berechtigungen erteilen.
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. RatticWeb konfigurieren
Standardmäßig läuft RatticWeb im Debug-Modus unter Verwendung einer SQLite-Datenbank. Um dies zu ändern und die MySQL-Verbindung zu konfigurieren, erstellen Sie eine /opt/apps/RatticWeb/conf/local.cfg-Datei mit folgendem Inhalt.
root@demohost:~# cd /opt/apps/RatticWeb
root@demohost:/opt/apps/RatticWeb# vi conf/local.cfg
[ratticweb]
debug =Falsesecretkey =linoxidehostname =demohost.com
[Dateipfade]
static =/opt/apps/RatticWeb/static
[Datenbank]
engine =django.db.backends.mysqlname =ratticuser =ratticpassword =somepasswordhost =localhostport =3306
Geben Sie Ihre Zeitzone, die Ablauftage des Passworts und den Hostnamen an.
root@demohost:/opt/apps/RatticWeb# vim conf/defaults.cfg
timezone = Asia/Kolkata
passwordexpirydays = 90
hostname = demohost.com
5. RatticWeb migrieren
Möglicherweise erhalten Sie bei Migrationen den folgenden Fehler.
..................
..................
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',
}
Um dies zu korrigieren, kopieren Sie das richtige Migrationsmodul.
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
Führen Sie jetzt die Migration durch
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. Kompilieren/installieren Sie mod_wsgi
Laden Sie mod_wsgi herunter und kompilieren Sie es. Für die Installation von mod_wsgi benötigen Sie python-dev und apache2-dev. Beide werden in Schritt 1 installiert.
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
Weitere Einzelheiten zum Kompilieren von mod_wsgi finden Sie hier.
7. Apache konfigurieren
SSL-Zertifikat und -Schlüssel mit OpenSSL erstellen.
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
Bearbeiten Sie die Standardkonfigurationsdatei von Apache und ändern Sie ServerName und ServerAlias. Stellen Sie sicher, dass Sie alles von http auf https umleiten. Bearbeiten Sie auch default-ssl.conf und fügen Sie SSL-Schlüssel/Zertifikatspfad hinzu, fügen Sie Aliasse und Verzeichniskonfiguration für RatticWeb hinzu.
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
Bearbeiten Sie nun 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>
Apache-Module aktivieren
root@demohost:~# sudo a2enmod wsgi
root@demohost:~# a2enmod rewrite
root@demohost:~# a2ensite default-ssl
root@demohost:~# a2enmod ssl
root@demohost:~# service apache2 restart
8. Firewall konfigurieren
Passen Sie die Firewall-Regeln an, um Datenverkehr zu den Ports Nr. 80 und 443 zuzulassen
Für IPTABLES-Benutzer
[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
Für UFW-Benutzer
[root@demohost ~]# ufw allow 80/tcp
[root@demohost ~]# ufw allow 443/tcp
[root@demohost ~]# ufw reload
9. Greifen Sie auf RatticDB
zuUm auf Rattic zuzugreifen, geben Sie https://FQDN_Or_IP_Address_Of_Your_Server
einMelden Sie sich mit dem Standardbenutzernamen als admin und dem Passwort als rattic an, Sie werden zum Passwort-Dashboard weitergeleitet. Ändern Sie das Standardpasswort für den Benutzer admin.
Klicken Sie in der linken Seitenleiste auf „Profil“, um die Admin-Profilseite anzuzeigen. Klicken Sie auf "Passwort ändern"
Geben Sie das neue Passwort ein und klicken Sie auf "Passwort ändern"
Klicken Sie auf „Personalverwaltung“ und dann auf „Gruppe hinzufügen“
Geben Sie einen Gruppennamen ein und senden Sie ihn ab.
Wählen Sie „Personalverwaltung“ und klicken Sie dann auf „Benutzer hinzufügen“. Füllen Sie die Benutzerdaten aus und klicken Sie auf „Senden“
Um Benutzer aufzulisten, wählen Sie "Personalverwaltung", alle Benutzer und Gruppen werden aufgelistet.
Das ist alles für Rattic-DB, Sie können jetzt Benutzer/Gruppen und Passwörter sicherer verwalten und über sichere APIs darauf zugreifen
Schlussfolgerungen:
Wir haben ein sehr schönes Passwortverwaltungssystem installiert und konfiguriert, nämlich RatticDB. Es hat mehrere Vorteile wie einfache Verwendung, einfache Zugriffskontrolle, Audit-Protokolle für Rechenschaftspflicht, Verfügbarkeit von API, Verschlüsselung im Dateisystem, kann mit jeder Datenbank eingerichtet werden, verwaltet Änderungen mit einer Änderungswarteschlange usw. Es gibt andere Open-Source-Passwort-Manager sind verfügbar wie Teampass, Keypass, Vorhängeschloss, die Sie auch für Ihre Anforderungen berücksichtigen können.