サーバー設定 · 3 min read · Sep 09, 2025

Warpgateを使用してDebianにバスチオンサーバーを設定する方法

バスチオンサーバーとは、コンピュータネットワークへの攻撃に耐えるように設計され、構成されたコンピュータ/マシン/サーバーを指します。バスチオンサーバーの機能は、アプリケーションのプロキシまたはロードバランサーに似ています。これにより、DMZネットワークにあるコンピュータやサーバーにアクセスできます。

Warpgateは、バスチオンサーバーとして使用できる現代的なソリューションです。Rustで書かれており、Webベースの管理ダッシュボードを提供します。特定のノードにインストールした後、プライベートインフラストラクチャにあるターゲットノードやサーバーを簡単に追加できます。Warpgateは現在、SSH、MySQL/MariaDB、HTTPのバスチオンサーバーとして使用できます。

このチュートリアルでは、Warpgateを使用してDebian 11サーバー上でSSHおよびMySQL/MariaDB接続のためのバスチオンサーバーを設定します。DebianサーバーにWarpgateをインストールして構成し、SSHターゲットサーバーとMySQLサーバーをWarpgateに追加します。最後に、ターゲットホストのSSHサーバーおよびMySQLサーバーに接続して、Warpgateバスチオンサーバーが機能していることを確認します。

前提条件

このチュートリアルを完了するために、以下の要件が必要です:

  • Debian 11を実行しているLinuxサーバー - この例では、ホスト名が ‘warpgate-debian‘、IPアドレスが ‘192.168.5.10‘のサーバーを使用します。
  • sudo/root管理者権限を持つ非rootユーザー。

Warpgateバイナリファイルのダウンロード

このセクションでは、GitHubからWarpgateバイナリファイルを手動でダウンロードし、システムの ‘bin’ ディレクトリに移動します。Warpgateをインストールする別の方法は、ソースコードからコンパイルするか、Warpgate Dockerバージョンを使用することです。

まず、以下の wget コマンドを実行してWarpgateバイナリファイルをダウンロードします。最新バージョンのWarpgateについては、公式GitHubダウンロードページを訪問してください。

wget -q https://github.com/warp-tech/warpgate/releases/download/v0.7.0/warpgate-v0.7.0-x86_64-linux

ダウンロードが完了したら、Warpgateバイナリファイルを ‘/usr/local/bin/warpgate ‘ に移動します。次に、 ‘chmod +x’ コマンドを使用して実行可能にします。

mv warpgate-v0.7.0-x86_64-linux /usr/local/bin/warpgate  
sudo chmod +x /usr/local/bin/warpgate

次に、以下のコマンドを実行して、システム上の ‘ warpgate ‘ バイナリファイルを見つけます。

which warpgate

次に、Warpgateのバージョンを確認し、’warpgate’ コマンドの利用可能なパラメータをリストします。

warpgate version  
warpgate --help

以下のような出力が得られるはずです。

warpgate help

Warpgateをバスチオンサーバーとして構成する

Warpgateバイナリファイルがダウンロードされたので、これからWarpgateのインストールを設定および構成します。これは、’ warpgate ‘ コマンドを介して対話的に行うことができます。

以下のコマンドを実行して、Warpgateをバスチオンサーバーとして構成します。

warpgate setup

コマンドが実行されると、以下の構成について尋ねられます:

  • Warpgateデータをどこに保存しますか?デフォルトの ‘/var/lib/warpgate’ ディレクトリのままにします。
  • Warpgateウェブ管理ダッシュボードのエンドポイントは?デフォルトのままにして、内部/公開IPアドレスでポート8888でWarpgateを実行します。
  • SSH接続を受け入れますか?はいと入力して、WarpgateをSSHバスチオンサーバーとして有効にします。
  • SSHバスチオンサーバーのエンドポイントは?デフォルトのままにして、内部/公開IPアドレスでポート2222でSSHバスチオンサーバーを実行します。
  • MySQL接続を受け入れますか?はいと入力して、WarpgateをMySQLバスチオンサーバーとして有効にします。
  • MySQLバスチオンサーバーのエンドポイントは?デフォルトのポート33306のままにします。
  • ユーザーセッションを記録しますか?はいと入力して有効にします。
  • デフォルトユーザーadminのパスワードを設定します。Warpgateインストール用のパスワードを入力します。

setup warpgate

セットアッププロセスが完了すると、以下のような出力が得られます。また、プロセス中に作成されたWarpgate構成ファイル ‘/etc/warpgate.yaml’ とデータディレクトリ ‘/var/lib/warpgate’ も表示されます。

setup finished

次に、以下のコマンドを実行して ‘/etc/warpgate.yaml’ ファイルの内容と ‘/var/lib/warpgate’ の利用可能なファイルおよびディレクトリのリストを表示します。

cat /etc/warpgate.yaml  
ls /var/lib/warpgate

以下は、ターミナルに表示される出力です。

warpgate config files and directories

次に、以下のコマンドを実行してWarpgateを実行します。’ Warpgate is now running ‘ という出力が表示され、SSH、MySQL、HTTP接続用のTCPポートが開かれます。

warpgate --config /etc/warpgate.yaml run

running warpgate

Webブラウザを開き、ポート8888を付けたWarpgateのIPアドレス(例: https://192.168.5.10:8888/)にアクセスします。成功すると、Warpgateのログインページが表示されます。

accessing warpgate

ターミナルに戻り、Ctrl+c を押してWarpgateプロセスを終了します。

WarpgateをSystemdサービスとして実行する

このセクションでは、WarpgateをSystemdで実行するように設定および構成します。これにより、Warpgateをバックグラウンドで実行でき、systemctlコマンドユーティリティを介して管理が容易になります。

以下のnanoエディタコマンドを使用して新しいsystemdユニットファイル ‘/etc/systemd/system/warpgate.service’ を作成します。

sudo nano /etc/systemd/system/warpgate.service

ファイルに以下のsystemdユニット構成を追加します。

[Unit]  
Description=Warpgate  
After=network.target  
StartLimitIntervalSec=0  
  
[Service]  
Type=notify  
Restart=always  
RestartSec=5  
ExecStart=/usr/local/bin/warpgate --config /etc/warpgate.yaml run  
  
[Install]  
WantedBy=multi-user.target

ファイルを保存し、終了します。

以下のコマンドを実行してsystemdマネージャーをリロードし、変更を適用します。

sudo systemctl daemon-reload

次に、以下のsystemctlコマンドユーティリティを使用してWarpgateサービスを開始および有効にします。

sudo systemctl start warpgate  
sudo systemctl enable warpgate

wearpgate systemd

その後、Warpgateサービスのステータスを確認して、サービスが実行中であることを確認します。

sudo systemctl status warpgate

以下の出力は、Warpgateサービスが実行中であることを確認します。

warpgate service status

サーバー上のオープンポートのリストを確認すると、LISTEN状態のポート2222、8888、33306が複数表示されます。以下のssコマンドを実行します。

ss -tulpn

出力:

check open ports

UFWの設定

このセクションでは、DebianサーバーにUFWをインストール、実行、および有効にします。また、Warpgateで使用されるポートも開きます。

以下のaptコマンドを実行してUFWをインストールします。

sudo apt install ufw

プロンプトが表示されたら、yを入力してENTERを押します。

install ufw

UFWがインストールされたら、以下のコマンドを実行して OpenSSH サービスとWarpgateポート 22228888、および 33306 を開きます。

sudo ufw allow OpenSSH  
sudo ufw allow 8888/tcp  
sudo ufw allow 2222/tcp  
sudo ufw allow 33306/tcp

次に、以下のコマンドを使用してUFWを開始および有効にします。プロンプトが表示されたらyを入力してENTERを押して続行します。

sudo ufw enable

以下のコマンドが実行された後、UFWは実行中および有効になっているはずです。つまり、UFWはシステム起動時に自動的に実行されます。

setup ufw

次に、以下のコマンドを入力してUFWのステータスを確認します。UFWが ‘Status: Active’ で、 OpenSSH サービス、ポート 2222, 8888, および 33306 が追加されているのが表示されるはずです。

sudo ufw status

出力:

verify ufw

Warpgateへのログイン

Warpgateがsystemdサービスとして実行され、UFWが実行中であるため、これからWarpgateインストールにアクセスします。

Webブラウザを開き、サーバーIPアドレスの後にポート8888を付けて(例: https://192.168.5.20:8888 /)アクセスすると、Warpgateのログインページが表示されます。

デフォルトユーザー ‘admin‘ と設定したパスワードを入力します。次に、Login をクリックして続行します。

Warpgate login as admin

admin ‘ としてログインしたら、メニュー ‘Manage Warpgate‘ をクリックします。

manage warpgate

これでWarpgateユーザーダッシュボードが表示されるはずです。

warpgate dashboard

この時点で、Debianサーバー上にSSHおよびMySQLバスチオンサーバーとしてWarpgateのインストールが完了しました。これからサーバーとMySQLサーバーをWarpgateに追加する準備が整いました。

SSHターゲットサーバーの追加

このセクションでは、IPアドレス 192.168.5.25 とホスト名 ‘node1‘ を持つLinuxサーバーをWarpgateバスチオンサーバーに追加します。そのためには、Warpgate SSH公開鍵をターゲットサーバーに追加する必要があります。

Warpgateダッシュボードで、SSH メニューをクリックすると、ターゲットサーバーにログインするために使用されるWarpgate SSH公開鍵と秘密鍵が表示されます。

SSH公開鍵をメモにコピーします。

list ssh keys

次に、ターゲットサーバーにログインし、新しいディレクトリ ‘~/.ssh ‘ を作成し、以下のnanoエディタコマンドを使用してファイル ‘authorized_keys ‘ を作成します。

mkdir -p ~/.ssh/  
nano ~/.ssh/authorized_keys

Warpgate SSH公開鍵を追加します。

add SSH key to node

次に、Warpgateダッシュボードに移動し、Config メニューをクリックして、’ Add a target ‘ をクリックします。

add target server

ターゲットサーバーのホスト名を入力し、タイプを SSH に選択して、Create target をクリックします。

create target

ターゲットサーバーのIPアドレスとサーバーにログインするために使用されるユーザーを変更します。認証については、’ Warpgate’s private keys ‘ を選択します。次に、’ Allow access for roles ‘ セクションで ‘warpgate:admin’ ロールを有効にする必要があります。

完了したら、’ Update configurations ‘ をクリックします。

details target ssh

これでターゲットサーバー ‘node1 ‘ がWarpgateに追加されました。これからWarpgateバスチオンサーバーを介して ‘node1 ‘ に接続できます。

以下のsshコマンドを実行して、Warpgateバスチオンサーバーを介して ‘node1 ‘ に接続します。このコマンドでは、形式が ‘role: server-name’ で、バスチオンサーバーのIPアドレス 192.168.5.10 とポート 2222 を使用します。

ssh 'admin:[email protected]' -p 2222

確認のためにyesを入力し、ターゲットのSSHフィンガープリントを追加します。パスワードを求められたら、バスチオンの ‘admin‘ ユーザーのパスワードを入力します。

接続が成功すると、’ Warpgate connected ‘ という出力が得られ、ターゲットサーバー ‘node1 ‘ にログインします。

以下のコマンドを入力して、現在ログインしているサーバーを確認します。Warpgate SSHバスチオンサーバーを介して ‘node1 ‘ サーバーにログインしていることがわかります。

id  
hostname

出力:

connect to target server via Warpgate bastion Server

Warpgateウェブ管理ダッシュボードを確認すると、SSHターゲットサーバーのフィンガープリントが表示されるはずです。

list known hosts

MySQL/MariaDBターゲットサーバーの追加

このセクションでは、MariaDBサーバーをWarpgateバスチオンサーバーに追加します。その前に、MariaDBサーバーをプライベート/内部IPアドレスで実行するように設定し、リモート接続用の新しいMariaDBユーザーを作成します。

MariaDBサーバーにログインし、以下のnanoエディタコマンドを使用して構成ファイル ‘/etc/mysql/mariadb.conf.d/50-server.cnf’ を開きます。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

bind-address ‘ パラメータのコメントを外し、値を内部IPアドレスに変更します。この例では、MariaDBサーバーはプライベートIPアドレス ‘192.168.5.25‘ で実行されます。

bind-address            = 192.168.5.25

ファイルを保存し、エディタを終了します。

以下のコマンドを入力してMariaDBサービスを再起動し、変更を適用します。再起動後、MariaDBはデフォルトのlocalhostではなく、IPアドレス ‘192.168.5.25’ で実行されるはずです。

sudo systemctl restart mariadb

次に、rootユーザーとしてMariaDBシェルにログインして、新しいユーザーを設定および作成します。

sudo mariadb -u root -p

以下のクエリを入力して、新しいMariaDBユーザー ‘appuser’ を作成し、そのユーザーがMariaDBサーバー上のすべてのデータベースにアクセスできるようにします。また、以下のクエリでパスワードを変更してください。

CREATE USER 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
GRANT ALL PRIVILEGES ON *.* TO 'appuser'@'%' IDENTIFIED BY 'p4@@w0rd';  
FLUSH PRIVILEGES;  
EXIT;

次に、MariaDBサーバーに接続するために使用されるマシンにMariaDBクライアントパッケージを設定します。

create mariadb server

以下のコマンドを使用して ‘mariadb-client’ パッケージをインストールします。プロンプトが表示されたらyを入力してENTERを押します。

sudo apt install mariadb-client

install mariadb client

次に、Warpgateサーバーに移動し、作業ディレクトリを ‘/var/lib/warpgate ‘ に変更し、Warpgate TLS証明書をMariaDBクライアントマシンにコピーします。

cd /var/lib/warpgate/  
sudo scp tls.certificate.pem tls.key.pem [email protected]:/etc/mysql/

copy tls certificates to mariadb client

次に、クライアントマシンに戻り、MariaDBクライアント構成 ‘/etc/mysql/mariadb.conf.d/50-client.cnf’ を以下のnanoエディタコマンドを使用して開きます。

sudo nano /etc/mysql/mariadb.conf.d/50-client.cnf

以下の構成を ‘ [client] ‘ セクションに追加して、安全なクライアント接続を有効にします。

[client]  
....  
ssl-cert=/etc/mysql/tls.certificate.pem  
ssl-key=/etc/mysql/tls.key.pem

ファイルを保存し、終了します。

次に、Warpgateダッシュボードで Config メニューをクリックし、’ Add a target ‘ をクリックします。

add target warpgate

MariaDBサーバー名を入力し、タイプを ‘ MySQL ‘ に選択して、Create target をクリックします。

add target mysql server

詳細ホスト、ユーザー、およびパスワードをMariaDBユーザーの詳細に変更します。デフォルトのTLS証明書がある場合は、’ Verify certificate ‘ オプションをオフにし、’ Allow access for roles ‘ セクションで ‘ warpgate:admin ‘ ロールを有効にします。

完了したら、’ Update configuration ‘ をクリックします。

setup target server

MariaDBサーバーがWarpgateに追加されたので、Warpgate MySQLバスチオンサーバーを介してMariaDBサーバーにアクセスできます。

MariaDBクライアントマシンから、以下のコマンドを入力してMariaDBサーバーに接続します。プロンプトが表示されたら、Warpgate管理ユーザーのパスワードを入力します。

mysql -u 'admin#mysql1' --host '192.168.5.10' --port 33306 --ssl -p

接続されると、’ MySQL [(dbname)]> ‘ のようなMariaDBシェルプロンプトが表示されます。以下のクエリを入力して、使用しているユーザーがMariaDBサーバーで利用可能であることを確認します。

SELECT host, user, plugin, authentication_string from mysql.user;  
SHOW GRANTS FOR appuser@'%';

出力:

connect to MySQL server via Warpgate Bastion Server

これで、Warpgate MySQL/MariaDBバスチオンサーバーを介してMariaDBサーバーに接続しました。

結論

このチュートリアルでは、Debian 11にWarpgateバスチオンサーバーをインストールおよび構成しました。WarpgateをsystemdおよびUFWファイアウォールで実行するように構成しました。それに加えて、WarpgateをSSHおよびMySQL/MariaDBバスチオンサーバーとして構成し、SSHターゲットサーバーを追加し、MySQL/MariaDBターゲットサーバーも追加しました。

これを念頭に置いて、新しいユーザー、ロールを設定し、Warpgateバスチオンサーバーに新しい接続を追加できます。そして、単一の集中型バスチオンサーバーを介してユーザー接続とアクセスを集中化できます。Warpgateの詳細については、Warpgate公式ドキュメントを訪問してください。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。