AWS上にTLSで受信できるSyslogサーバーを構築する

Soliton OneGateにて「ログ転送機能」が2025年1月のアップデートで実装され、OneGateのログをインターネット上のSyslogサーバーにTLSを使用した暗号化通信によるログ転送することが可能になりました。
このTLS通信によるSyslog転送機能はSIEMを運用している環境にてM365をはじめとしてクラウドサービスにて何らかのインシデントが発生した際に、クラウドサービス側のログとOneGateでの認証ログと突き合わせて事象の究明や解決を行っていただくことを目的としています。
ただ「SIEMは運用していないが、とりあえずOneGateからどんなログが飛んでくるのか確認してみたい」と思いつつも、インターネット上、つまりグローバルIPを持っているSyslogサーバーを所持していない方もいらっしゃると思います。
そこでグローバルIPを持っているSyslogサーバーを保持していない方のために、AWS上でLinuxサーバーをデプロイしてrsyslogを動作させて比較的安価にTLS通信によるSyslogを受信する環境を構築する方法を2025年1月のAWSおよびOneGateを使用して紹介します。
(※今後のAWS及びOneGateの機能改善・強化でGUIや動作仕様が変更になる可能性もございます)
なお、OneGateでのログ転送機能は既存・新規・評価のお客様に対して全プランでご利用いただけますが機能を有効にする場合には申請が必要となりますので、担当営業までご相談ください。
構成
AWS上に新規でVPCを作成し、ALBなどを返さずにAmazon Linux 2023インスタンスで直接TLS通信ができるSyslogサーバーを構築し、ログはNFSマウントしたEFSに格納させます。
通信を暗号化するためのSyslogサーバーにインポートさせるサーバー証明書、ならびにログ送信元にインポートするクライアント証明書はAmazon Linux 2023上でOpenSSLを使って生成することもできますが、今回はログ転送元のOneGateのCAを利用することにします。
なおSyslogサーバーは最初はサーバー証明書を使った通信の暗号化を行う構成を構築してログの着信を確認したあとに、最終仕上げとしてクライアント証明書認証を行ってログ送信元を厳密に限定させる構成にします。
※本構成は一時的に利用する検証環境を想定しており、必要最低限の内容になっています。本番運用に使用するSyslogサーバーを構築する場合には、AWS構築ベンダーやSyslogサーバー構築ベンダーにご相談の上、セキュリティやコスト、パフォーマンスが最適になるように構築してください。
AWSの設定
AWS上に色々と検証環境があり、それらと区別するために名前タグの命名規則をNetAttest-tlsSyslog-<リソース名>としています。
実際に構築する場合には、自社内のAWS利用規則に従って命名規則やVPCのIPアドレスレンジなどを設定してください。
VPC
まずはAWS上にSyslogサーバ用のクラウド空間であるVirtual Private Cloud(VPC)を作成します。このVPC上にネットワークや仮想マシン(インスタンス)、ストレージを構築してきます。
VPCの作成
- VPCダッシュボードにて「仮想プライベートクラウド」→「お使いのVPC」を開き、「VPCを作成」をクリックします。
項目 値 作成するリソース VPCのみ 名前タグ NetAttest-tlsSyslog-vpc IPv4 CIDRブロック IPv4 CIDRの手動割当 IPv4 CIDR 192.168.200.0/24 IPv6 CIDRブロック IPv6 CIDRブロックなし - 「DNSホスト名を有効化」にチェックをいれて「保存」をクリックします。
インターネットゲートウェイの作成
VPCとインターネットが通信せきるようにゲートウェイを設定します。
- VPCダッシュボードにて「仮想プライベートクラウド」→「インターネットゲートウェイ」を開いて「インターネットゲートウェイの作成」をクリックします。
- 名前タグ欄に「NetAttest-tlsSyslog-igw」を入力して「インターネットゲートウェイの作成」をクリックします。
- インターネットゲートウェイが作成されたら「アクション」→「VPCにアタッチ」をクリックします。
- 使用可能なVPC欄にカーソルを当てると、アタッチできるVPCが表示されますので、作成したVPCを選択して、「インターネットゲートウェイのアタッチ」をクリックします。
サブネットの作成
VPCにSyslogサーバーを設置するためのサブネットを作成します。
- VPCダッシュボードの「仮想プライベートクラウド」→「サブネット」を開き、「サブネットを作成」をクリックします。
- VPC ID欄にカーソルを当ててサブネットを作成したいVPCを選択します。
- サブネットの設定で下記の様に設定して「サブネットを作成」をクリックします。
項目 値 サブネット名 NetAttest-tlsSylog-server-sub アベイラビリティーゾーン アジアパシフィック(東京)/ ap-northeast-1a IPv4 VPC CIDRブロック 192.168.200.0/24 IPv4サブネット CIDRブロック 192.168.200.0/28
ルートテーブルの作成
作成したサブネットとインターネット間をインターネットゲートウェイを経由して通信するルートテーブルを作成します。
- VPCダッシュボードにて「仮想プライベートクラウド」→「ルートテーブル」を開き「ルートテーブルを作成」をクリックします。
- 名前にNetAttest-tlsSyslog-rtを入れ、VPCを作成したVPCを選択して「ルートテーブルを作成」をクリックします。
- ルートタブの「ルートを編集」をクリックします。
- 「ルートを追加」をクリック
- 下記のようにルートを追加して「変更を保存」をクリックします。
項目 値 送信先 0.0.0.0/0 ターゲット NetAttest-tlsSyslog-igw - 「サブネットの関連付け」タブを開いて「サブネットの関連付けを編集」をクリックします。
- 利用可能なサブネット欄で作成したサブネットにチェックをいれて「関連付けを保存」をクリックします。
Syslog受信、SSH接続用のセキュリティグループの作成
Syslogサーバーはインターネット上にさらすことになるので、SyslogやSSH接続の送信元IPアドレスなどを制限する必要があります。
今回は下記のようにセキュリティグループを設定して、不特定な第三者からのアクセスを防ぐように設定します。
- インバウンドルール
プロトコル ポート範囲 ソース 備考 TCP 6514 OneGateのグローバルIPアドレス TLS通信のSyslog受信用 TCP 22 社内 社内からSyslogサーバーにSSHでアクセス - アウトバンドルール
プロトコル ポート範囲 送信先 備考 すべて すべて 0.0.0.0/0 Syslogサーバーからインターネットヘはすべて通信を許可する
※OneGateのグローバルIPアドレスについては、OneGate契約者向けFAQ No.16880「Soliton OneGateで使用しているURLとグローバルIPアドレスを教えて下さい」の「OneGateから外向き通信で使用する送信元IPアドレス」に記載されています。
- VPCダッシュボードの「セキュリティ」→「セキュリティグループ」を開き「セキュリティグループを作成」をクリックします。
- 下記のように設定して「セキュリティグループを作成」をクリックします。
【基本的な詳細】項目 値 セキュリティグループ名 NetAttest_tlsSyslog-nsg 説明 Allow_SyslogAndSSH VPC NetAttest-tlsSyslog-vpc
【インバウンドルール】タイプ プロトコル ポート範囲 ソース 説明 SSH TCP 22 マイIPアドレス from_HQ カスタム TCP 6514 OneGateのグローバルIPアドス from_SOG1 カスタム TCP 6514 OneGateのグローバルIPアドレス from_SOG2 ・・・ ・・・ ・・・ ・・・ ・・・
【アウトバンドルール】タイプ プロトコル ポート範囲 送信先 オプション すべてのトラフィック すべて すべて 0.0.0.0/0
Amazon EFS用のセキュリティグループの作成
着信したログをAmazon EFSに格納する構成にしているので、仮想LinuxサーバーからAmazon EFSへのNFS通信を許可します。
- VPCダッシュボードにて「セキュリティ」→「セキュリティグループ」を開いて「セキュリティグループを作成」をクリックします。
- 下記のように設定して「セキュリティグループを作成」をクリックします。
【基本的な設定】項目 値 セキュリティグループ名 NetAttest-tlsSyslog-NFS-nsg 説明 Allow_NFS VPC NetAttest-tlsSyslog-vpc
【インバウンドルール】タイプ プロトコル ポート範囲 ソース 説明 NFS TCP 2049 NetAttest-tlsSyslog-nsg
【アウトバンドルール】タイプ プロトコル ポート範囲 送信先 説明 すべてのトラフィック すべて すべて 0.0.0.0/0
ログの格納先を作成する
受信したSyslogファイルを格納するAmazon EFSでファイルシステムを作成します。
- Elastic File Systemを開き「ファイルシステム」の「ファイルシステムの作成」をクリックします。
- 下記のように設定して「作成」をクリックします。
項目 値 名前 NetAttest-tlsSyslog-efs Virtual Private Cloud(VPC) NetAttest-tlsSyslog-vpc - 作成されたEFSを選択して「ネットワーク」タブを開き、「管理」をクリックします。
- マウントターゲットのセキュリティグループをNFSマウント用に作成したNetAttest-tlsSyslog-NFS-nsgにして「保存」をクリックします。
仮想Linuxサーバーを構築する
キーペアの作成
SyslogサーバーにSSH接続する際に使用するキーペアを作成します。
- EC2ダッシュボードの「ネットワーク&セキュリティ」→「キーペア」を開き「キーペアを作成」をクリックします。
名前、キーペアのタイプ、プライベートキーファイル形式を適宜設定して「キーペアを作成」をクリックします。
項目 値 名前 NetAttest-tlsSyslog-key キーペアのタイプ RSA プライベートキーファイル形式 .pem
(ご利用になられるターミナルソフトウェアに合わせて選択してください)
Syslogサーバー用のLinuxインスタンスを作成する
- EC2ダッシュボードの「インスタンス」→「インスタンス」を開き、「インスタンスを起動」をクリックします。
- 下記のように設定します。
- 名前とタグ
項目 値 名前 NetAttest-tlsSyslog-syslog-vm - アプリケーションおよびOSイメージ(Amazonマシンイメージ)はクイックスタートタブにて下記のように設定します。
項目 値 Amazon マシンイメージ(AMI) Amazon Linux 2023 AMI アーキテクチャ 64ビット( x86) - インスタンスタイプ
項目 値 インスタンスタイプ t2.micro 項目 値 キーペア名 NetAttest-tlsSyslog-key - ネットワーク設定は「編集」をクリックして下記のように設定します。
項目 値 VPC NetAttest-tlsSyslog-vpc サブネット NetAttest-tlsSyslog-server-sub パブリックIPの自動割り当て 有効化 ファイアウォール 既存のセキュリティグループを選択する 共通のセキュリティグループ NetAttest-tlsSyslog-nsg - ストレージはファイルシステム欄の「詳細を表示」クリックして「EFS」にチェックを付けて、「共有ファイルシステムを追加」をクリックして、下記のように設定します。
項目 値 ファイルシステム NetAttest-tlsSyslog-efs マウントポイント /mnt/efs/fs1 セキュリティグループを自動的に作成してアタッチ チェックなし 必要なユーザーデータスクリプトをアタッチして、共有ファイルシステムを自動マウント チェック有り
- 名前とタグ
- 「インスタンスを起動」をクリックします。
- インスタンスページで作成したインスタンス(NetAttest-tlsSyslog-syslog-vm)をクリックして、インスタンス状態が「実行中」になっており、ステータスチェックが「2/2のチェックに合格しました」なるまで待ちます。
Elasitc IPアドレス
作成したインスタンスに紐づいているグローバルIPアドレスは動的なため、インスタンスを停止したり、再起動するたびにIPアドレスが変わります。IPアドレスが変わるたびにOneGateでのSyslog転送先の設定をするのも手間になりますので、Elatic IPアドレスを作成してインスタンスに紐づけて固定のグローバルIPアドレスを利用します。
- EC2ダッシュボードの「ネットワーク & セキュリティ」→「Elastic IP」を開き「Elastic IPアドレスを割り振る」をクリックします。
- 「AmazonのIPv4アドレスプール」を選択して、必要に応じてタグを設定して「割り振る」をクリックします。
- 作成したElastic IPアドレスにチェックをいれて、「アクション」→「Elastic IPアドレスを関連付ける」をクリックします。
- インスタンスで作成したNetattest-tlsSyslog-syslog-vmを選択して「関連付ける」をクリックします。
- EC2ダッシュボードにてNetAttest-tlsSyslg-syslog-vmを開くと、「パブリックIPv4アドレス」が関連付けたElastic IPアドレスになっています。
TLS通信でログを受信できるSYSLOGサーバーの構築
VPC上に作成したAmazon Linux2023インスタンスをSyslogサーバーにします。
SSHでLinuxインスタンスに接続する
ここではTera Termを利用してSSHでLinuxインスタンスに接続する方法を説明します。
なおAmazon Linux2023に搭載されているSSHはrsa-sha署名での接続ができなくなりましたので、rsa-sha2-256に対応したTera Term 5をご利用ください。
- Tera Termを起動して、下記のように設定して「OK」をクリックします。
項目 値 ホスト Elastic IPアドレス サービス SSH TCPポート 22 SSHバージョン SSH2 IPバージョン Auto
これ以後のLinuxの設定は、TeraTermで行います。
また必要に応じて"dnf -y update"でインストール済みパッケージのアップデート、timedatectlコマンドでタイムゾーンの変更などを実施してください。
RSYSLOGのインストール
Amazon Linux 2023よりRSYSLOGが含まれなくなりましたので、別途インストールする必要があります。
"sudo dnf -y instal l rsyslog"を実行することでRSYSLOGがインストールされます。
[ec2-user@ip-192-168-200-9 ~]$ sudo dnf -y install rsyslog
<中略>
Installed:
libestr-0.1.11-1.amzn2023.0.2.x86_64
libfastjson-0.99.9-1.amzn2023.0.3.x86_64
rsyslog-8.2204.0-3.amzn2023.0.4.x86_64
rsyslog-logrotate-8.2204.0-3.amzn2023.0.4.x86_64
Complete!
[ec2-user@ip-192-168-200-9 ~]$
インストールが完了したら、systemctlコマンドでrsyslogを起動、並びにOSの再起動後に自動で起動するようにenableを実行します。
[ec2-user@ip-192-168-200-9 ~]$ sudo systemctl start rsyslog
[ec2-user@ip-192-168-200-9 ~]$ sudo systemctl enable rsyslog
RFC5424フォーマットでログを記録するようにする
RSYSLOGのデフォルトではログのタイムスタンプがRFC 3164 BSD Syslog形式になっているのでので、これを現行のRFC5424に合わせたフォーマットで記録するようにします。
設定は/etc/rsyslog.confファイルのMODULEセクションのUse default timestamp formatの項目を変更します。
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.conf
<中略>
#### MODULES ####
# Use default timestamp format
# module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat") # この行コメントアウトする
module(load="builtin:omfile" Template="RSYSLOG_FileFormat") # 追記
<略>
ファシリティLocal0のログをNFSマウントしたEFSに書き込むようにする
OneGateから送られて来るログのファシリティはLocal0ですので、Local0のログをEFSマウントしたディスクに書き込むようにします。
まずはdfコマンドでEFSがLinuxインスタンス作成時に指定した/mnt/efs/fs1にマウントできているかを確認します。
[ec2-user@ip-192-168-200-9 ~]$ df
Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 4096 0 4096 0% /dev
tmpfs 486128 0 486128 0% /dev/shm
tmpfs 194452 584 193868 1% /run
/dev/xvda1 8310764 1650476 6660288 20% /
tmpfs 486132 0 486132 0%
/tmp/dev/xvda128 10202 1310 8892 13% /boot/efi
127.0.0.1:/ 9007199254739968 0 9007199254739968 0% /mnt/efs/fs1
tmpfs 97224 0 97224 0% /run/user/1000
/mnt/efs/fs1がマウントできているので、下記ファイルを作成してLocal0のログがEFSに保存されるようにします。
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/local0.conf
local0.* -/mnt/efs/fs1/local0.log
TLS通信でSyslogを受信する設定を行う
RSYSLOGに信頼するCAから発行したサーバー証明書を読み込ませてTLS通信できるようにします。
今回はOneGateのCAにてサーバー証明書を発行することにします。
サーバー証明書の発行
サーバー証明書はLinux上でCSR作成("openssl genpkey"でキーペア作成して、そのキーーペアを使って"openssl req"でCSRを作成)してOneGateのCAで署名して作成する方法と、OneGateのCAでキーペアを生成して署名して作成する方法がありますが、今回は後者を利用してサーバー証明書を発行します。
- OneGateの管理ページにて「証明書管理」→「証明書発行」を開きます。
- サーバー証明書 発行欄の「PCKS#12ファイル または 秘密鍵+証明書 PEM形式のサーバー証明書を発行」をクリックします。
名前(CN)、DNS名、IPアドレス欄にElastic IPアドレスを入力し、他のサブジェクトは適宜入力して、ダウンロードファイル形式を「PEM形式 (秘密鍵+サーバー証明書)」にして、パスフレーズを適宜入力して「発行」をクリックして、証明書を保存します。
CA証明書のダウンロード
OneGateを信頼するCAとするためにRSYSLOGに読み込ませるCA証明書をダウンロードします。
- OneGateの管理ページにて「証明書管理」→「CA情報」をクリックします。
- 画面下部のCA証明書ファイルのダウンロードの「PEM」形式をクリックして、CA証明書ファイルを保存します。
- ダウンロードした証明書ファイルをメモ帳で開いておきます。
証明書ファイルの配置
証明書ファイルをLinuxインスタンス上に下記のように保存すようにします。
- CA証明書:/etc/rsyslog.d/tls/ca.cer
- サーバー証明書:/etc/rsyslog.d/tls/server.cer
- 秘密鍵:/etc/rsyslog.d/tls/server.key
- mkdirコマンドで/etc/rsyslog.d/tlsフォルダを作成します。[ec2-user@ip-192-168-200-9 ~]$ sudo mkdir /etc/rsyslog.d/tls[ec2-user@ip-192-168-200-9 ~]$ ls /etc/rsyslog.d/21-cloudinit.conf local0.conf tls
- /etc/rsyslog.d/tls/ca.cerファイルを作成して、メモ帳で開いておいたCA証明書の中身をコピー&ペーストして保存します。
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/tls/ca.cer -----BEGIN CERTIFICATE----- MIIECTCCAvGgAwIBAgIQGjppmjv6G8+wwrEX+X9pCzANBgkqhkiG9w0BAQsFADAm <中略> omMwgUpAq+MhSVZ/d3ge3fHo1WTEIJThGJ5RAfQ= -----END CERTIFICATE-----
- /etc/rsyslog.d/tls/server.cerファイルを作成して、メモ帳で開いておいたサーバー証明書のうち-----BEGIN CERTIFICATE-----から-----END CERTIFICATE-----をコピー&ペーストします。
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/tls/server.cer
-----BEGIN CERTIFICATE-----
MIIEdzCCA1+gAwIBAgIQZeAPoWmCBe0yKpPeUFg6hjANBgkqhkiG9w0BAQsFADAm
<中略>
OmDXk48bmbWqCj27stLfv9j62RMbYz2vz/LfMEFql+5YerR3cqXOUq7xrg==
-----END CERTIFICATE----- - 同じ要領で秘密鍵ファイルを作成してしまうとrsyslogが起動するたびに秘密鍵を読み込むためのパスフレーズが必要になってしまうので、一旦/etc/rsyslog.d/tls/keyファイルを作成して、メモ帳で開いていおいたサーバー証明書のうち、-----BEGIN ENCRYPTED PRIVATE KEY-----から-----END ENCRYPTED PRIVATE KEY-----をコピー&ペーストします。[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/tls/key-----BEGIN ENCRYPTED PRIVATE KEY-----MIIFGjBMBgkqhkiG9w0BBQ0wPzAnBgkqhkiG9w0BBQwwGgQUoWuZ3rbdKJ6P4jxX<中略>uohfRuqRkfAN8/LBHag=-----END ENCRYPTED PRIVATE KEY-----
- opensslコマンドを使って/etc/rsyslog.d/tls/keyファイルからパスフレーズなしの秘密鍵ファイル/etc/rsyslog.d/tls/server.keyファイルを作成します。途中でパスフレーズが求められるので、OneGateでサーバー証明書を発行する際に入力したパスフレーズを入力します。
[ec2-user@ip-192-168-200-9 ~]$ cd /etc/rsyslog.d/tls/ [ec2-user@ip-192-168-200-9 tls]$ sudo openssl rsa -in key -out server.key Enter pass phrase for key: writing RSA key [ec2-user@ip-192-168-200-9 tls]$
- chmodコマンドを利用して秘密鍵ファイルをrootのみ読み込み可にします。[ec2-user@ip-192-168-200-9 tls]$ ls -altotal 16drwxr-xr-x. 2 root root 67 Jan 15 05:48 .drwxr-xr-x. 3 root root 61 Jan 15 05:32 ..-rw-r--r--. 1 root root 1461 Jan 15 05:35 ca.cer-rw-r--r--. 1 root root 1850 Jan 15 05:46 key-rw-r--r--. 1 root root 1610 Jan 15 05:38 server.cer-rw-------. 1 root root 1704 Jan 15 05:48 server.key[ec2-user@ip-192-168-200-9 tls]$ sudo chmod 400 server.key[ec2-user@ip-192-168-200-9 tls]$ ls -altotal 16drwxr-xr-x. 2 root root 67 Jan 15 05:48 .drwxr-xr-x. 3 root root 61 Jan 15 05:32 ..-rw-r--r--. 1 root root 1461 Jan 15 05:35 ca.cer-rw-r--r--. 1 root root 1850 Jan 15 05:46 key-rw-r--r--. 1 root root 1610 Jan 15 05:38 server.cer-r--------. 1 root root 1704 Jan 15 05:48 server.key
rsyslog-opensslのインストールと設定
RSYSLOGでTLS通信するためのrsyslog-opensslをインストールします。
[ec2-user@ip-192-168-200-9 ~]$ sudo dnf -y install rsyslog-openssl
<中略>
Installed:
rsyslog-openssl-8.2204.0-3.amzn2023.0.4.x86_64
Complete!
[ec2-user@ip-192-168-200-9 ~]$
このモジュールを使ってRSYSLOGでTLS通信するための設定ファイル/etc/rsyslog.d/80-Syslogtls.confを作成します。
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/80-Syslogtls.conf
module(
load="imtcp"
StreamDriver.Name="ossl"
StreamDriver.Mode="1"
StreamDriver.Authmode="anon"
)
input(type="imtcp" port="6514")
global(
DefaultNetstreamDriver="ossl"
DefaultNetStreamDriverCAFile="/etc/rsyslog.d/tls/ca.cer"
DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/server.cer"
DefaultNetStreamDriverKeyFile="/etc/rsyslog.d/tls/server.key"
)
rsyslogを再起動して設定に間違いが無いかを確認します。
[ec2-user@ip-192-168-200-9 ~]$ sudo systemctl restart rsyslog [ec2-user@ip-192-168-200-9 ~]$ sudo systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled) Active: active (running) since Wed 2025-01-15 06:35:17 UTC; 1s ago Docs: man:rsyslogd(8)
https://www.rsyslog.com/doc/ Main PID: 147680 (rsyslogd) Tasks: 8 (limit: 1111) Memory: 2.1M CPU: 9ms CGroup: /system.slice/rsyslog.service mq147680 /usr/sbin/rsyslogd -n Jan 15 06:35:17 ip-192-168-200-9.ap-northeast-1.compute.internal systemd[1]: Starting rsyslog.service - System Logging Service... Jan 15 06:35:17 ip-192-168-200-9.ap-northeast-1.compute.internal systemd[1]: Started rsyslog.service - System Logging Service. Jan 15 06:35:17 ip-192-168-200-9.ap-northeast-1.compute.internal rsyslogd[147680]: [origin software="rsyslogd" swVersion="8.2204.0-3.amzn2023.0.4" x-pid="147680"> Jan 15 06:35:17 ip-192-168-200-9.ap-northeast-1.compute.internal rsyslogd[147680]: imjournal: journal files changed, reloading... [v8.2204.0-3.amzn2023.0.4 try
この設定により、SyslogサーバーはOneGateを信頼するCAとして、OneGateから発行したサーバー証明書を使ったTLS通信を行うことができます。
OneGateでTLS通信でのログ転送
Soliton OneGateの設定
- OneGateの管理Webにて「システム設定」→「ログ転送設定」をクリックします。(※「ログ転送設定」メニューはサービス利用申請書にてお申し込みいただいたテナントのみ表示されます)
- 下記のように設定して保存をクリックします。
項目 値 有効/無効 チェック有り 転送先ホスト LinuxインスタンスのElastic IPアドレス 転送先ポート 6514 転送先サーバーのCA証明書 OneGateの管理WebよりダウンロードしたCA証明書をアップロードしてください 転送するログ 下記にチェックを入れます。
・管理者ログイン
・利用者ログイン
・SSOアクセスログ
・証明書発行ログ
・同期実行ログ
ログの確認
OneGateで管理ページにログインや、SSO実行などが行われますとログが転送されます。転送されたログは/mnt/efs/fs1/local0.logに格納されますので、tailコマンドなどログの中身を確認することができます。
[ec2-user@ip-192-168-200-9 ~]$ sudo tail /mnt/efs/fs1/local0.log
2025-01-15T07:25:36+00:00 OneGate manager {"log_type":"login_manager","log_level":"INFO","tenantcode":"xxxx","message":"Successfully logged in.","params":{"code":"IM-605-I-001000","ip_address":"xxx.xxx.xxx.xxxx","user_agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36","username":"xxxxx"},"timestamp":"2025-01-15T07:25:36.523+00:00"}
相互認証を行うTLS通信でのログ転送
上記までの操作では通信の暗号化を行ったログ転送を行っていますが、SIEMなどでは決められた機器からのみログを受信させるために、クライアント証明書による認証を実施してログを受信する機能を実装しているものもあります。
OneGateでもログ送信時(セッション確立時)にクライアント証明書を使ってSyslogサーバーで認証を行う設定が可能です。
ここでは上記のSyslogサーバーにてクライアント証明書認証を実施する設定、並びにOneGateにてクライアント証明書認証を実施しているSyslogサーバーにログを転送する方法を紹介いたします。
Syslogサーバーでの認証に利用するクライアント証明書は、OneGateのCAから発行します。
クライアント証明書の発行
OneGateではOneGateに登録された利用者に対して発行しますので、登録済みの利用者で証明書を発行するか、新たにSyslogサーバーの認証用のユーザーを作成してそのユーザーに対して証明書を発行します。今回は後者の手順を紹介します。
利用者の登録
- OneGateの管理Webページにて「利用者管理」→「利用者一覧」を開き、「登録」をクリックします。
- ログイン名、パスワードを入力して保存をクリックします。
- 「同期スケジュール設定」→「同期スケジュール設定」をクリックします。
- 差分同期スケジュールの「即時同期」をクリックします。
- 「はい」をクリックします。
- クライアント証明書(利用者)発行の「PKCS#12ファイルのクライアント証明書を発行」をクリックします。
- 名前(CN)欄を作成したユーザーにし、その他の項目は適宜入力して「発行」をクリックして、証明書ファイルをダウンロードしておきます。
Syslogサーバーでクライアント証明書認証を行う設定
rsyslogでTLS通信するための設定ファイル/etc/rsyslog.d/80-Syslogtls.confをクライアント認証を必須とする設定に変更します。
既存の設定をバックアップしておきます。
[ec2-user@ip-192-168-200-9 ~]$ sudo cp /etc/rsyslog.d/80-Syslogtls.conf /etc/rsyslog.d/80-Syslogtls.conf.org
/etc/rsyslog.d/80-Syslogtls.confを編集して証明書認証を行うようにします。変更箇所はmoduleで下記に変更します。
- StreamDriver-Authmodeをanonからx509/name
- PermittedPeerを追記して、クライアント証明書のCN値を入れる
[ec2-user@ip-192-168-200-9 ~]$ sudo vi /etc/rsyslog.d/80-Syslogtls.conf
module(
load="imtcp"
StreamDriver.Name="ossl"
StreamDriver.Mode="1"
StreamDriver.Authmode="x509/name" # anonからx509/nameに変更
PermittedPeer=["aws-syslog"] # 追記 値はクライアント証明書のCN
)
input(type="imtcp" port="6514")
global(
DefaultNetstreamDriver="ossl"
DefaultNetStreamDriverCAFile="/etc/rsyslog.d/tls/ca.cer"
DefaultNetstreamDriverCertFile="/etc/rsyslog.d/tls/server.cer"
DefaultNetStreamDriverKeyFile="/etc/rsyslog.d/tls/server.key"
)
rsyslogを再起動します。
[ec2-user@ip-192-168-200-9 ~]$ sudo systemctl restart rsyslog
[ec2-user@ip-192-168-200-9 ~]$ sudo systemctl status rsyslog
● rsyslog.service - System Logging Service
Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; preset: enabled)
Active: active (running) since Thu 2025-01-16 04:11:53 UTC; 1s ago
Docs: man:rsyslogd(8)
https://www.rsyslog.com/doc/
Main PID: 266171 (rsyslogd)
Tasks: 8 (limit: 1111)
Memory: 2.1M
CPU: 10ms
CGroup: /system.slice/rsyslog.service
mq266171 /usr/sbin/rsyslogd -n
Jan 16 04:11:53 ip-192-168-200-9.ap-northeast-1.compute.internal systemd[1]: Starting rsyslog.service - System Logging Service...
Jan 16 04:11:53 ip-192-168-200-9.ap-northeast-1.compute.internal systemd[1]: Started rsyslog.service - System Logging Service.
Jan 16 04:11:53 ip-192-168-200-9.ap-northeast-1.compute.internal rsyslogd[266171]: [origin software="rsyslogd" swVersion="8.2204.0-3.amzn2023.0.4" x-pid="266171" x-info="https://www.rsyslog.com"] start
Jan 16 04:11:53 ip-192-168-200-9.ap-northeast-1.compute.internal rsyslogd[266171]: imjournal: journal files changed, reloading... [v8.2204.0-3.amzn2023.0.4 try https://www.rsyslog.com/e/0 ]
OneGateのログ転送設定を変更してSyslogサーバーでの証明書認証を行うようにする
- OneGate管理Webページで「システム設定」→「ログ転送設定」を開きます。
- サーバー接続時のクライアント認証欄の「有効/無効」にチェックをいれて、クライアント証明書欄で発行済のクライアント証明書を選択し、証明書のパスフレーズ欄にクライアント証明書発行時に設定したパスフレーズをいれて「保存」をクリックします。
この状態でOneGateにログインするなどのイベントが発生すれば、Syslogサーバーでクライアント証明書認証を行ったうえでログた転送されます。
Pickup ピックアップ
-
インタビュー
無線LAN+認証の導入から運用保守まですべてお任せ、 月額サブスクのマネージドサービスを提供 |Cisco Meraki® ×...
-
イベント報告
【ウェビナー】「医療情報システムの安全管理に関するガイドライン」に基づくランサムウェア等へのセキュリティ対策と導入事例/効果に...
-
インタビュー
「切れない」VPNに認証の側面から安心をプラス|Absolute Secure Access ✕ Soliton OneGat...
-
イベント報告
【ウェビナー】知っておきたい「医療ガイドライン第6.0版」のポイントと、求められるセキュリティ対策とは?|アクシオ×ソリトンシ...
-
インタビュー
フルマネージドの連携ソリューションで快適かつ安全な無線環境を負荷なく実現|Hypersonix × Soliton OneGa...