はじめに
サイバーセキュリティの世界では、データベース管理に関する深い理解が不可欠です。このチュートリアルでは、一般的なオープンソースデータベース管理システムである PostgreSQL のセットアップと操作について、Kali Linux プラットフォーム上で解説します。このチュートリアルを終える頃には、サイバーセキュリティ関連のタスクやプロジェクトで PostgreSQL を使い始めるための知識が身についているでしょう。
サイバーセキュリティの世界では、データベース管理に関する深い理解が不可欠です。このチュートリアルでは、一般的なオープンソースデータベース管理システムである PostgreSQL のセットアップと操作について、Kali Linux プラットフォーム上で解説します。このチュートリアルを終える頃には、サイバーセキュリティ関連のタスクやプロジェクトで PostgreSQL を使い始めるための知識が身についているでしょう。
PostgreSQL(Postgres とも呼ばれる)は、強力なオープンソースのリレーショナルデータベース管理システム (RDBMS: Relational Database Management System) であり、さまざまな業界やアプリケーションで広く使用されています。その堅牢な機能、信頼性、および SQL (Structured Query Language) 標準への準拠で知られています。
PostgreSQL は、構造化データと非構造化データを含む幅広いデータ型を処理するように設計されており、さまざまなユースケースに対応できる汎用性の高い選択肢となっています。トランザクション、同時実行制御、データ整合性などの高度な機能をサポートしており、データの信頼性と一貫性を保証します。
PostgreSQL の主な利点の 1 つは、その拡張性です。ユーザーはカスタムデータ型、関数、さらにはプログラミング言語を作成できるため、特定のビジネス要件に高度に適応できます。さらに、PostgreSQL は、ロールベースのアクセス制御や暗号化などの高度なセキュリティ機能を提供し、不正アクセスからデータを保護します。
PostgreSQL には、次のような幅広いアプリケーションがあります。
| Application | Description |
|---|---|
| Web Applications | e コマースプラットフォーム、コンテンツ管理システム、ソーシャルメディアプラットフォームなど、Web ベースのアプリケーションのデータを保存および管理します。 |
| Business Intelligence | ビジネスインテリジェンスと意思決定のために、大規模なデータセットを保存および分析します。 |
| Geospatial Applications | 位置情報サービスや地理情報システム (GIS: Geographic Information Systems) など、地理空間データを処理します。 |
| Scientific and Research | ゲノムデータ、天文観測、環境モニタリングなど、科学データを保存および分析します。 |
PostgreSQL の基本を理解することで、その強力な機能を活用して、データ管理のニーズを満たす堅牢でスケーラブルなアプリケーションを構築できます。
Kali Linux は、Debian をベースとした一般的なペネトレーションテストおよび倫理的ハッキングディストリビューションです。Kali Linux は主にセキュリティ関連のツールに重点を置いていますが、データベース管理、データ分析、セキュリティ関連アプリケーションとの統合など、さまざまな目的で PostgreSQL のインストールと使用もサポートしています。
ターミナルを開くと、自動的に Kali Linux コンテナシェルに入ります。以下のコマンドはすべて、この Kali Linux 環境内で実行する必要があります。
まず、パッケージリストを更新して、利用可能なパッケージに関する最新の情報があることを確認します。
apt-get update
次に、PostgreSQL パッケージをインストールします。このコマンドは、PostgreSQL サーバーとクライアントツールをダウンロードしてインストールします。
apt-get install -y postgresql postgresql-contrib
-y フラグはインストールを自動的に確認するため、プロンプトが表示されたときに「y」と入力する必要はありません。postgresql-contrib パッケージには、PostgreSQL 用の追加のユーティリティと拡張機能が含まれています。
インストールが完了したら、次のコマンドを実行して PostgreSQL のバージョンを確認できます。
psql --version
これにより、インストールされている PostgreSQL のバージョンが表示され、インストールが成功したことが確認されます。
PostgreSQL をインストールすると、通常、サービスは自動的に開始されます。ただし、Docker コンテナ環境内では、サービスを手動で開始するか、実行されていることを確認する必要がある場合があります。
Kali Linux コンテナ内で PostgreSQL サービスを開始するには、次のコマンドを使用します。
service postgresql start
このコマンドは、PostgreSQL データベースサーバープロセスを開始します。
サービスが実行されたら、psql コマンドラインツールを使用して PostgreSQL データベースに接続できます。デフォルトでは、PostgreSQL はスーパーユーザー権限を持つ postgres という名前のユーザーを作成します。このユーザーに切り替えてから、データベースに接続できます。
su - postgres
このコマンドは、現在のユーザーを postgres に切り替えます。これで、postgres ユーザーのホームディレクトリにいることになります。
次に、psql と入力するだけで、PostgreSQL インタラクティブターミナルに接続します。
psql
postgres=# のような PostgreSQL プロンプトが表示されるはずです。これは、postgres ユーザーとして PostgreSQL データベースに正常に接続されたことを示します。

接続を確認し、利用可能なデータベースを表示するには、psql プロンプト内で \l コマンドを使用できます。
\l
このコマンドは、PostgreSQL インスタンスに存在するすべてのデータベースを一覧表示します。postgres、template0、template1 などのデフォルトデータベースが表示されるはずです。
psql プロンプトを終了するには、\q と入力して Enter キーを押します。
\q
postgres ユーザーセッションを終了して、root ユーザー(または以前のユーザー)に戻るには、exit と入力して Enter キーを押します。
exit
これで、Kali Linux コンテナシェルに戻ります。
PostgreSQL に接続できるようになったので、新しいデータベースを作成し、その中に簡単なテーブルを作成しましょう。
まず、データベース操作を実行するために、postgres ユーザーに戻ります。
su - postgres
psql プロンプトに接続します。
psql
psql プロンプト内で、cyberdb という名前の新しいデータベースを作成します。
CREATE DATABASE cyberdb;
CREATE DATABASE のようなメッセージが表示されるはずです。
次に、新しく作成したデータベースに接続します。これを行うには、\c の後にデータベース名を入力します。
\c cyberdb
プロンプトが cyberdb=# に変わるはずです。これは、cyberdb データベースに接続されていることを示します。
次に、cyberdb データベース内に users という名前の簡単なテーブルを作成しましょう。このテーブルには、ID、ユーザー名、メールアドレスなど、ユーザーに関する情報が格納されます。
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL
);
このコマンドは、次の 3 つの列を持つテーブルを作成します。
id: 主キーとして機能する自動インクリメント整数 (auto-incrementing integer)。username: 最大 50 文字の文字列で、一意である必要があり、空にすることはできません。email: 最大 100 文字の文字列で、一意である必要があり、空にすることはできません。CREATE TABLE のようなメッセージが表示されるはずです。
テーブルが作成されたことを確認するには、\dt コマンドを使用して、現在のデータベース内のテーブルを一覧表示できます。
\dt
これにより、cyberdb データベース内のテーブルのリストが表示され、users テーブルがリストされているはずです。
最後に、psql プロンプトと postgres ユーザーセッションを終了します。
\q
exit
これで、Kali Linux コンテナシェルに戻ります。

データベースとテーブルができたので、users テーブルにデータを挿入し、クエリを実行してみましょう。
まず、postgres ユーザーに戻り、cyberdb データベースに接続します。
su - postgres
psql -d cyberdb
これで、cyberdb データベースに接続されました。
INSERT INTO コマンドを使用して、新しいユーザーを users テーブルに挿入します。
INSERT INTO users (username, email) VALUES ('labex', 'info@labex.io');
INSERT 0 1 のようなメッセージが表示されるはずです。これは、1 行が正常に挿入されたことを示します。
次に、別のユーザーを挿入しましょう。
INSERT INTO users (username, email) VALUES ('kaliuser', 'kali@example.com');
再び INSERT 0 1 が表示されるはずです。
users テーブルからすべてのデータを取得するには、SELECT コマンドを使用します。
SELECT * FROM users;
このコマンドは、users テーブルのすべての行と列を表示します。先ほど挿入した 2 人のユーザーが表示されるはずです。
特定の列を選択することもできます。
SELECT username FROM users;
これにより、テーブルからユーザー名のみが表示されます。
条件に基づいて特定のユーザーを選択するには、WHERE 句を使用します。
SELECT * FROM users WHERE username = 'labex';
これにより、ユーザー名が 'labex' の行が取得されます。
最後に、psql プロンプトと postgres ユーザーセッションを終了します。
\q
exit
これで、Kali Linux コンテナシェルに戻ります。

このチュートリアルでは、サイバーセキュリティ分野で広く使用されているプラットフォームである Kali Linux 環境で PostgreSQL データベースをセットアップおよび管理する方法について、包括的なガイドを提供しました。PostgreSQL のインストール、サービスの開始、psql コマンドラインツールを使用したデータベースへの接続、新しいデータベースとテーブルの作成、データの挿入とクエリの方法を学びました。概説された手順に従うことで、PostgreSQL を自信を持って使い始め、その機能を活用してサイバーセキュリティに焦点を当てたプロジェクトやタスクをサポートできます。この知識により、サイバーセキュリティのスキルセットをさらに強化し、サイバーセキュリティの分野におけるデータベース管理の広大な可能性を探求できます。