LoginSignup
5
1

More than 3 years have passed since last update.

Squidでproxy protocolを用いた送信元の制御

Posted at

背景

AWS上のプロキシをNLBで冗長化したいが、NLBはNATしてしまうため送信元IPが全て同じになってしまうため、Proxy protocolを使用した制御を行う。

要件

プロキシの冗長化
ホワイトリストのURLフィルタリング
送信元IPをベースに認証

squid

squidに下記設定を入れる。

squid.conf
#ポートの指定とproxy接続時にproxy protocolを必須にする
http_port 8080 require-proxy-header 
#NLBのIPをACLに追加
acl nlb_ip src 10.0.0.1
acl nlb_ip src 10.0.1.1
#クライアントIPをACLに追加
acl client_ip src 10.0.0.10
acl client_ip src 10.0.1.10
#URLフィルタリング
acl whitelist dstdomain "/etc/squid/whitelist"
#Proxy Protocolの利用許可
proxy_protocol_access permit nlb_ip
proxy_protocol_access permit client_ip
#httpアクセスの許可
http_access permit nlb_ip
#クライアントの許可とホワイトリストの適用
http_access permit client_ip whitelist
whitelist
google.com

AWS

  1. EC2ダッシュボードから、ターゲットグループにアクセス
  2. 対象のターゲットグループを選択し、アクション->属性の編集を選択する
  3. Proxy Protocol v2の有効化にチェックを入れ、保存を選択する。

nlb_proxy_protocol.png

nlb_proxy_protocol_2.png

その他注意事項など

  • NLBのIPもproxy_protocol_accessで許可しないとだめ
  • CLBを使う場合はサブネットを指定して許可する
  • NLB側でProxy Protocolを有効にしたときはSquid側もproxy protocolを有効にしないとうまくアクセスができなくなる逆にNLB側を無効にしてもアクセスできない。つまり、両側で有効・無効がマッチしていないとダメ

  • http_access permitは一致するルールがあると以降のルールを評価しないためAND条件を適用したい場合は同一行に記載する

参考

5
1
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
5
1