GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu16.04でRatticDBパスワード管理サービスをセットアップする方法

RatticDBは、オープンソースのDjangoベースのパスワード管理サービスです。それによって提供されるAPIは、外部プログラムによるアクセス、および完全な説明責任を保証するための監査ログに使用されます。どのパスワードをいつ変更する必要があるかを追跡するための「変更キュー」もあります。

1。前提条件をインストールする

システムを更新し、MySQLや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

/ etc / hosts&/ etc / hostname(オプション)

にホストとドメイン名の適切なエントリを追加して、ホストのFQDNを構成します。
root@demohost:~# cat /etc/hosts
127.0.0.1 localhost
172.31.24.18 demohost.com demohost

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

ネットワークを再開する

root@demohost:~# service networking restart

次に、ホストのFQDNを確認します

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

2。 RatticWebをダウンロード

RatticWebをダウンロードし、pipを使用してPythonに必要なモジュールをインストールします。

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データベース/ユーザーを作成する

MySQLデータベース/ユーザーを作成し、権限を付与します。

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を構成する

デフォルトでは、RatticWebはSQLiteデータベースを使用してデバッグモードで実行されます。これを変更してMySQL接続を構成するには、次の内容で/opt/apps/RatticWeb/conf/local.cfgファイルを作成します。

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

[ratticweb]

debug =Falsesecretkey =linoxidehostname =demohost.com

[ファイルパス]

static =/ opt / apps / RatticWeb / static

[データベース]

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

タイムゾーン、パスワードの有効期限、ホスト名を指定します。

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

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

5。 RatticWebを移行する

移行中に次のエラーが発生する場合があります。

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

これを修正するには、正しい移行モジュールをコピーします。

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

次に移行を実行します

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。 mod_wsgiをコンパイル/インストールします

mod_wsgiをダウンロードしてコンパイルします。 mod_wsgiをインストールするには、python-devとapache2-devが必要です。これらは両方ともステップ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

mod_wsgiのコンパイルの詳細については、こちらを確認してください。

7。 Apacheを構成する

OpenSSLを使用してSSL証明書とキーを作成します。

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

apacheのデフォルト構成ファイルを編集し、ServerNameとServerAliasを変更します。必ずすべてをhttpからhttpsにリダイレクトしてください。また、default-ssl.confを編集し、SSLキー/証明書パスを追加し、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

次に、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モジュールを有効にする

root@demohost:~# sudo a2enmod wsgi
root@demohost:~# a2enmod rewrite
root@demohost:~# a2ensite default-ssl
root@demohost:~# a2enmod ssl
root@demohost:~# service apache2 restart

8。ファイアウォールの構成

ポート番号80および443へのトラフィックを許可するようにファイアウォールルールを調整します

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

UFWユーザー向け

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

9。 RatticDBにアクセスする

ラティックにアクセスするには、https:// FQDN_Or_IP_Address_Of_Your_Server

と入力します

デフォルトのユーザー名をadmin、パスワードをratticとしてログインすると、パスワードダッシュボードにリダイレクトされます。ユーザーadminのデフォルトのパスワードを変更します。

左側のサイドバーから[プロファイル]をクリックして、管理者プロファイルページを表示します。 [パスワードの変更]をクリックします

新しいパスワードを入力し、[パスワードの変更]をクリックします

[スタッフ管理]、[グループの追加]の順にクリックします

グループ名を付けて送信します。

「スタッフ管理」を選択し、「ユーザーの追加」をクリックします。ユーザーの詳細を入力し、[送信]をクリックします

ユーザーを一覧表示するには、[スタッフ管理]を選択すると、すべてのユーザーとグループが一覧表示されます。

Rattic-DBはこれですべてです。ユーザー/グループとパスワードをより安全に管理し、安全なAPIを介してアクセスできるようになりました

結論:

非常に優れたパスワード管理システム、つまりRatticDBをインストールして構成しました。使いやすさ、アクセス制御、説明責任の監査ログ、APIの可用性、ファイルシステムでの暗号化、任意のデータベースでのセットアップ、変更キューでの変更の管理など、いくつかの利点があります。他にもオープンソースのパスワードマネージャーがあります。チームパス、キーパス、パドロックなど、要件に応じて検討できるものがあります。


Ubuntu
  1. Ubuntuにパスワード管理アプリKeePassXCをインストールする方法

  2. Ubuntu16.04でHAProxyをセットアップする方法

  3. Ubuntu18.04でMySecureShellSFTPサーバーをセットアップする方法

  1. Ubuntu20.04にMySQLをインストールする方法

  2. Ubuntu18.04でUFWファイアウォールを設定する方法

  3. Ubuntuのパスワードをリセットする方法は?

  1. Ubuntu22.04で起動時にサービスを開始する方法

  2. Ubuntu18.04にNginxをインストールする方法

  3. Ubuntuでユーザーパスワードを変更する方法