1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALBの後段のEC2で送信元IPを確認する方法

Last updated at Posted at 2025-01-30

はじめに

ALBの後ろにいるEC2で、クライアントの送信元IPを確認する方法について記載します。
デフォルトではロードバランサーを経由する通信は、EC2(ウェブサーバー)のアクセスログには、ロードバランサーのIPアドレスが記載されます。

構成

簡単ですが、以下のような構成を想定します。
ALB-EC2.drawio (1).png
この構成でEC2にアクセスした通信の送信元IPを確認できるようにしたいと思います。

前提

・AWSの操作権限があること
・ALBやEC2などはすでに作成済みであること
・EC2にSSH接続できること
・EC2はapacheサーバーを想定

前提

やることは以下になります。
・現在の設定を確認
・httpd.confのLogFormatの編集
・accesslogの確認

現在の状態の確認

ALB XFF(X-Forwarded-For) が有効(付加)のステータスであること

AWSマネジメントコントローラーで、ロードバランサーの「属性」タブで「X-Forwarded-For ヘッダー」のステータスが「付加」であることを確認します。

ALB.png

ALBではデフォルトが「付加」になっています。

XFF ( X-Forwarded-For )についてはこちらを参照ください

LogFormatの編集

AWSの公式のページに設定方法が記載されています。

apacheの設定ファイル(httpd.conf)を編集します。

sshなどでEC2(apache)サーバーにアクセスします。
httpd.confの場所は設定によって異なりますが、/etc/httpd/conf/配下などにあります。
httpd.confファイルをvimなどで開きます。
LogFormat セクションで、次のように %{X-Forwarded-For}i を追加します。

変更前
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
変更後
LogFormat "%{X-Forwarded-For}i %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

変更を保存して閉じます。
Apache サービスを再ロードします。

systemctl reload httpd

アクセスログの確認

アクセスログの場所も設定によって異なります。
/var/log/apache2もしくは/var/log/httpd配下などにあります。

クライアントからアクセスを実行して、アクセスログに記載されるか確認します。
アクセスログに以下のような記載があれば送信元IPが見えるようになっています。

A.A.A.A B.B.B.B - - ログメッセージ

※A.A.A.A は送信元のグローバルIP、B.B.B.BはALBのIPになります。

VirtualHost(バーチャルホスト)を使用しており、VirtualHost内にLogFormatの設定がある場合、httpd.confで編集したLogFormatのニックネームとVirtualHostのLogFormatのニックネームを一致させることで、VirtualHostのアクセスログに送信元IPを記録することができます。
(先ほどhttpd.confで設定したLogFormatのnicknameはcombinedになります)

まとめ

LogFormatの設定を変更することで、アクセスログに送信元IPを記録できるようになります。
ALBの背後にあるEC2で送信元IPを確認したい場面で、本記事の内容が参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?