仮想ルーターのファイアウォールログを転送したい(ログ転送機能) | IDCFクラウド ご利用ガイド

仮想ルーターのファイアウォールログを転送したい(ログ転送機能)

IDCFクラウドでは、標準ネットワークの仮想ルーターが出力するログを、指定した仮想マシンに転送する機能を提供しています。

この機能を活用すると、想定外の通信が発生していないか確認するなど、以下のようなユースケースで役立ちます。

  • 想定外の通信がないか確認する監査対応
  • ファイアウォール新規設定時のトラブルシューティング
  • 監視と連携した迅速な障害対応

本マニュアルでは、仮想ルーターから転送されるログを受信する仮想マシンの設定方法と、IDCFクラウドのコンソール上でログ転送機能を有効化する手順について説明します。転送されるログの種類は「ネットワークのログ転送機能ではどのようなログが転送されますか?」をご参照ください。


目次


1. ログを受信する仮想マシンの設定

この章では、ログを受信する仮想マシンの設定方法を説明します。仮想ルーターからは、syslog 形式のファイアウォールログが TCP/514 番ポートに送信されるので、受信側の仮想マシンではこのポートを開放し、ログ収集ソフトウェアで受信・保存する設定を行います。

本手順では Rocky Linux 9.6 に rsyslog を設定して受信しますが、他の OS やログ収集ソフトウェアを利用する場合も、受信ポートの開放とログ保存先の設定といった基本的な流れは同様です。

  1. まずは仮想マシンを作成します。本ご利用ガイドでは次の設定で仮想マシンを作成する例を紹介しますが、ネットワークインターフェースに標準ネットワークが含まれていれば、他のパラメータはカスタマイズできます。

    項目設定内容
    マシンタイプLight.S1
    イメージ(テンプレート)標準テンプレート - Rocky Linux 9.6 64-bit
    ボリュームデータディスクなし(空欄のまま)
    SSH Key※注1
    仮想マシン台数1台
    ネットワークインターフェースvolt-network1 ※注2
    詳細情報 - マシン名syslog
    詳細情報 - グループ(なし)

    注記

    • ※注1:SSH Key の項目は、SSH 秘密鍵を未作成の場合は[作成]を選択し、生成された秘密鍵をローカル PC に保存します。詳しくは「めちゃ楽ガイド」 6 ページの手順 3 を参照してください。
    • ※注2:ご利用のアカウントによって、ネットワークインターフェースとして選択できるゾーン名が異なります。利用したいゾーンを選択してください。
  2. Webサイトの本番環境を構築したい(Web1台構成)」の2番目の手順を参考にポートフォワード・ファイアウォール設定を行い、SSHログインの準備を行います。

  3. 仮想マシンにログインし、rsyslogの設定を行います。まずは、/etc/rsyslog.d/my-setting.conf を作成し、以下の内容を記述します。このファイルでは、514番ポートにTCPで送られてくる、リモートホストからのログを /var/log/remote/ホスト名/ファシリティ.log の形式で保存するように設定しています。また、実運用の際は監視のための権限設定やパフォーマンス・チューニング、ログローテーションも必要に応じて設定してください。

    # --- モジュールのロード ---
    module(load="imtcp")
    
    # --- テンプレート定義 ---
    # ファイル名の定義
    template(name="RemoteHostLogs" type="string" string="/var/log/remote/%HOSTNAME%/%syslogfacility%.log")
    
    # --- ルールセット定義 ---
    ruleset(name="remote_log_processing") {
        # ファイル出力設定
        action(type="omfile" 
            DynaFile="RemoteHostLogs"
    
            # 権限設定: root以外(ログ監視エージェント等)も読めるように調整
            FileCreateMode="0644"
            DirCreateMode="0755"
    
            # パフォーマンスチューニング: 非同期書き込み設定
            queue.type="LinkedList"
            queue.size="10000"
            queue.filename="q_remote_logs" # ディスク退避用ファイル名
            queue.saveonshutdown="on"      # rsyslog停止時にキューをディスクへ保存
        )
    
        stop
    }
    
    # --- 入力設定 ---
    input(type="imtcp" port="514" ruleset="remote_log_processing")
    
  4. rsyslogサービスを再起動し、必要に応じて自動起動を有効化します。

    # systemctl restart rsyslog
    # systemctl enable rsyslog
    
  5. rsyslogが514番ポートで待ち受けていることを確認します。

    # ss -lntp | grep ":514"
    LISTEN 0      25           0.0.0.0:514       0.0.0.0:*    users:(("rsyslogd",pid=14689,fd=4))
    LISTEN 0      25              [::]:514          [::]:*    users:(("rsyslogd",pid=14689,fd=5))
    
  6. 次に、ファイアウォールの設定を行いますが、まずは既存の設定を確認します。

    # firewall-cmd --list-all
    public (active)
        target: default
        icmp-block-inversion: no
        interfaces: ens160
        sources: 
        services: cockpit dhcpv6-client ssh
        ports: 
        protocols: 
        forward: yes
        masquerade: no
        forward-ports: 
        source-ports: 
        icmp-blocks: 
        rich rules:
    
  7. ファイアウォールで514番ポートを開放します。

    # firewall-cmd --add-port=514/tcp --permanent
    success
    
  8. 設定を反映します。

    # firewall-cmd --reload
    success
    
  9. 514番ポートが開放されたことを確認します。以下のように、portsの項目に514/tcpが含まれることを確認します。

    # firewall-cmd --list-all
    public (active)
        target: default
        icmp-block-inversion: no
        interfaces: ens160
        sources: 
        services: cockpit dhcpv6-client ssh
        ports: 514/tcp
        protocols: 
        forward: yes
        masquerade: no
        forward-ports: 
        source-ports: 
        icmp-blocks: 
        rich rules:
    

2. ログ転送機能の有効化

つぎに、IDCFクラウドのコンソール上でログ転送機能を有効化する手順について説明します。

  1. ネットワーク画面を開き、ログ転送を有効化したいネットワークの詳細画面を開きます。本ご利用ガイドでは、「volt-network1」を例に説明します。
  2. 「volt-network1」の詳細画面で、ログ転送の設定を開きます。
  3. ログ転送のタブを開いたら、先程作成した仮想マシン「syslog」を選択し、有効化ボタンを押します。
  4. 確認モーダルが表示されたら「はい」ボタンを押し、有効化を実行します。
  5. ネットワーク画面で、ログ転送先が表示されていることを確認します。
※注1 もし転送先の仮想マシンを変更したい場合は一度無効化を行い、再度有効化の手順を実行してください。

※注2 ログ転送機能は標準ネットワークの仮想ルーターでのみ利用可能です。追加ネットワークの仮想ルーターでは利用できません。

3. 転送されたログの確認

最後に、転送設定が実際に動作していることを確認します。転送設定を行った仮想マシンにログインし、仮想ルーターにログが書き込まれるような通信を発生させ、実際に転送されたログを確認します。

  1. まずは作成していた仮想マシン「syslog」にログインします。

  2. 次にこの仮想マシンから以下のようにpingコマンドをうち、仮想マシンから外部へ通信を発生させ、ログを生成します。数回のレスポンスが帰ってきたらCtrl + Cで終了します。

    # ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=1.24 ms
    
  3. 手順1-3では、ログを /var/log/remote/%HOSTNAME%/%syslogfacility%.log に保存するよう設定しています。今回の送信元はvoltの仮想ルーターで、ホスト名は volt-network1、ファシリティは 1 と設定されているため、保存先は /var/log/remote/volt-network1/1.log になります。

    # ls /var/log/remote/volt-network1/
    1.log
    
  4. ログの中身を確認します。以下のコマンドを実行し、DST=8.8.8.8 を含む FW_EGRESS_ACCEPT_LOG のログが保存されていることを確認します。

    # grep "DST=8.8.8.8" /var/log/remote/volt-network1/1.log
    Jan  6 18:xx:xx volt-network1 [xx.xx] FW_EGRESS_ACCEPT_LOG IN=ethx OUT=ethx MAC=xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx SRC=xx.xx.xx.xx DST=8.8.8.8 LEN=xx TOS=0x00 PREC=0x00 TTL=xx ID=xx DF PROTO=ICMP TYPE=8 CODE=x ID=x SEQ=x