Image

ナレッジベース → NATを使用したiptablesのsquid transperentによるトラフィックアカウンティング

[仮想サーバー]
公開日: 12.03.2024

デフォルトでは、サーバーはルーターモードで動作し、サーバーに接続されたすべてのローカルデバイスのWebトラフィックを記録することが目的です。

現在の設定についてはこちらで説明しています:Linux DebianでのNATの設定(ローカルネットワークでのインターネット)

すべてのWebトラフィックをSquidに転送し、デバイスごとにグループ化されたすべてのサイトに関する詳細な統計を取得できるようにします。

1. SquidとSSLコンポーネントのインストール

apt install squid squid-openssl

1.1 自己署名証明書を生成

これはポート443でのトラフィックリダイレクトを設定するために必要です。

mkdir -p /etc/squid/ssl
openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout squidCA.pem -out /etc/squid/ssl/squidCA.pem

1.2 Squidの設定をまとめる

nano /etc/squid/squid.conf
...
acl localnet src 100.100.100.0/24
...
acl SSL_ports port 443
acl Safe_ports port 80 # http
...
http_access allow localhost
...
sslproxy_cert_error allow all
sslproxy_flags DONT_VERIFY_PEER
...
http_port 3128
http_port 3129 intercept
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump splice all
https_port 3130 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl/squidCA.pem

1.2.1 サービスの再起動

service squid restart

1.3 Webトラフィックをプロキシに転送

iptables -A PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-port 3129
iptables -A PREROUTING -t nat -p tcp --dport 443 -j REDIRECT --to-ports 3130

1.4 トラフィックフローを確認

tail -f /var/log/squid/access.log

ローカルネットワークのデバイスから任意のWebサイトを開いてみてください。操作に関連するイベントがログに表示されるはずです。

1710202038.351 5012 100.100.100.101 TCP_TUNNEL/500 3815 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -
1710202108.954 75616 100.100.100.101 TCP_TUNNEL/500 9916 CONNECT synay.net:443 - ORIGINAL_DST/89.104.77.7 -

これで完了です。すべてのWebトラフィックがSquidサービスを通過し、SARGを使用して読みやすいログを取得できるようになりました。設定方法はこちらで説明しています:SARGのインストールとSQUIDプロキシサーバーでの設定

これで、オフィス内のすべてのデバイスのWebトラフィックが記録され、どのデバイスがどのサイトにいつアクセスしたか、データ量も含めていつでも確認できるようになりました。





No Comments Yet