GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Mengatur Layanan Manajemen Kata Sandi RatticDB di Ubuntu 16.04

RatticDB adalah layanan manajemen kata sandi berbasis Django open source. API yang disediakan olehnya digunakan untuk akses oleh program luar, dan log audit untuk memastikan akuntabilitas penuh. Ada juga "Ubah Antrian" untuk melacak kata sandi mana yang perlu diubah dan kapan.

1. Instal Prasyarat

Perbarui sistem Anda dan instal semua prasyarat termasuk MySQL dan 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

Konfigurasikan FQDN untuk host Anda dengan menambahkan entri yang sesuai untuk host dan nama domain di /etc/hosts &/etc/hostname(Opsional)

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

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

Mulai ulang jaringan

root@demohost:~# service networking restart

Sekarang periksa FQDN dari host Anda

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

2. Unduh RatticWeb

Unduh RatticWeb dan instal modul yang diperlukan python menggunakan 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. Buat database/pengguna MySQL

Buat database/pengguna MySQL dan berikan hak istimewa.

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

Secara default RatticWeb berjalan dalam mode debug menggunakan database SQLite. Untuk mengubah ini dan mengkonfigurasi koneksi MySQL, buat file /opt/apps/RatticWeb/conf/local.cfg dengan konten berikut.

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

[ratticweb]

debug =Falsesecretkey =linoxidehostname =demohost.com

[jalur file]

static =/opt/apps/RatticWeb/static

[basis data]

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

Tentukan zona waktu, hari kedaluwarsa kata sandi, dan nama host Anda.

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

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

5. Migrasi RatticWeb

Anda mungkin mendapatkan kesalahan berikut dalam migrasi.

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

Untuk memperbaikinya, salin modul migrasi yang benar.

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

Sekarang lakukan migrasi

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. Kompilasi/instal mod_wsgi

Unduh dan kompilasi mod_wsgi. Anda memerlukan python-dev dan Apache2-dev untuk menginstal mod_wsgi. Keduanya diinstal pada langkah1.

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

Untuk detail lebih lanjut tentang kompilasi mod_wsgi, periksa di sini.

7. Konfigurasi Apache

Buat sertifikat dan kunci SSL menggunakan 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

Edit file konfigurasi default Apache dan ubah ServerName dan ServerAlias. Pastikan untuk mengarahkan semuanya dari http ke https. Juga edit default-ssl.conf dan tambahkan kunci SSL/jalur sertifikat, tambahkan Alias ​​​​dan konfigurasi Direktori untuk 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

Sekarang edit 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>

Aktifkan modul 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. Konfigurasi Firewall

Sesuaikan aturan firewall untuk mengizinkan lalu lintas ke port no 80 dan 443

Untuk pengguna 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

Untuk pengguna UFW

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

9. Akses RatticDB

Untuk mengakses rattic, ketik https://FQDN_Or_IP_Address_Of_Your_Server

Login dengan nama pengguna default sebagai admin dan kata sandi sebagai rattic, Anda akan diarahkan ke dasbor kata sandi. Ubah kata sandi default untuk admin pengguna.

Klik "Profil" dari bilah sisi kiri untuk melihat halaman profil admin. Klik "Ubah kata sandi"

Ketik kata sandi baru dan klik "Ubah Kata Sandi"

Klik "Manajemen staf" lalu "Tambahkan grup"

Beri nama grup dan kirim.

Pilih "Manajemen staf" dan kemudian tekan "Tambah pengguna". Isi detail pengguna dan klik "Kirim"

Untuk membuat daftar pengguna, pilih "Manajemen staf", semua pengguna dan grup akan dicantumkan.

Itu saja untuk Rattic-DB, Anda sekarang dapat mengelola pengguna/grup dan kata sandi dengan lebih aman dan mengaksesnya melalui API yang aman

Kesimpulan:

Kami telah menginstal dan mengonfigurasi sistem manajemen kata sandi yang sangat bagus yaitu RatticDB. Ini memiliki beberapa keunggulan seperti mudah digunakan, kontrol akses sederhana, log audit untuk akuntabilitas, ketersediaan API, enkripsi pada sistem file, dapat diatur dengan database apa pun, mengelola perubahan dengan antrian perubahan, dll. Ada pengelola kata sandi sumber terbuka lainnya tersedia seperti teampass, keypass, gembok yang juga dapat Anda pertimbangkan untuk kebutuhan Anda.


Ubuntu
  1. Cara Mengatur HAProxy di Ubuntu 16.04

  2. Cara Mengatur Server SFTP MySecureShell di Ubuntu 18.04

  3. Cara Mengatur Firewall UFW di Ubuntu 18.04

  1. Cara Menginstal MySQL di Ubuntu 20.04

  2. Cara Memasang Aplikasi Manajemen Kata Sandi KeePassXC di Ubuntu

  3. Bagaimana Cara Mengatur Ulang Kata Sandi Ubuntu?

  1. Bagaimana memulai layanan saat boot di Ubuntu 22.04

  2. Cara Menginstal Nginx di Ubuntu 18.04

  3. Cara Mengubah Kata Sandi Pengguna di Ubuntu