%20%E3%81%AF%E3%80%81%E5%AE%9F%E9%9A%9B%E3%81%AE%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AE%20IP%20%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%82%92%E8%A8%98%E9%8C%B2%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82.png)
解決済み
Zyxel USG 100 の NAT が未変更のパケットを Web サーバーに転送できるようにするために、Zyxel のポリシー ルートを編集しました。
Zyxel -> Configuration -> Network ->Routing -> Policy Route
「アドレス変換」オプションを「送信インターフェース」から「なし」に編集するだけです
Apacheは実際の外部クライアントのIPアドレスをログに記録するようになりました
解決済み
おはようございます
今日、私はクライアントのリクエストを会社のApache2ウェブサーバーに正しく記録できないという問題に直面しています。
ネットワークスキーム:
//////////// _ WAN1 11.11.11.12
| INTERNET / _/ ===> CISCO Router =======> first public ip ==> to corporate LAN
//////////// ||
||
||
|| zyxel eth0 ip: 11.11.11.11
|| label: WAN2
\/
ZYXEL ROUTER ___ eth0 _________________________________________________
| ZYXEL |
| Gateway
| || |
| || |
| |\/| FIREWALL (accept request from eth0/WAN2 on port |
| || 443/80 and forward them to LAN1) |
| || |
| |\/| NAT (forward request on 11.11.11.11:80 to |
| || web server on 192.168.1.10:80) |
|____||__________________________________________________|
*zyxel eth1 ip: 192.168.1.1, label: lan1*
||
\|____________________
| \ mysqlserver 192.168.1.20
________| ++
webserver 192.168.1.10 /
++
誰かが (インターネットまたは私のプライベート LAN から) ポート 80 のパブリック IP 11.11.11.11 にページを要求すると、私の Web サーバーはそれに正しく応答します。しかし、Web サーバーの access.log を確認すると、ログに記録されているのは Zyxel ルーターの IP 192.168.1.1 だけです。
NAT の問題があると思われます。Zyxel が、Web サーバーに送信される IP パケットの SRC として IP アドレスを置き換えているようです。
パブリッククライアントのIPアドレスで適切にログに記録されたWebリクエストを取得するにはどうすればいいですか? ルーターはZyxel USG 100です
これは私の Apache2 ログ設定です (apache2.log)
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
これは私のvhostログ設定です
CustomLog /var/log/apache2/xyz.com/access.log combined
ありがとう
答え1
%{X-ClientSide}i は、クライアントのリモート アドレスを取得するためにログ形式に追加する必要がある可能性があります。