勉強日記

チラ裏

【squid】HTTPプロキシサーバ立てた


構築後のネットワークのイメージ

f:id:wand_ta:20190815005449p:plain

  • ブログのサムネ用

背景

f:id:wand_ta:20190815005047p:plain

  • 外部システムのIFと連携するシステムの構築
  • IFにアクセスするマシンは申請制
    • 不特定多数にフルオープンにしてもらうわけにはいかない
    • 特定のマシンに対してのみ穴を開けてもらう
  • 今回は開発・検証用クラウドサーバーに対してのみ穴を開けてもらった
  • ローカルマシンから気軽にHTTPリクエストを送れなくてつらい
    • Postmanとか使いたい

Solution: クラウドサーバーにHTTPプロキシを立てる

f:id:wand_ta:20190815005449p:plain

  • ローカルマシンから、クラウドサーバーを経由してHTTPリクエストを送りつける
  • プロキシサーバープログラムとしてはsquidを選定

設定

squidの設定

  • まず入れる
yum -y install squid

/etc/squid/squid.conf

  ...
+ acl whitelist src "/etc/squid/whitelist"    # whitelistの定義
  ...
+ http_access allow whitelist    # whitelistの許可
  ...
  http_access deny all    # 上からここまで、いずれにもマッチしなければ不許可

/etc/squid/whitelist

192.0.2.0/24
systemctl start squid

# すでに起動してたら
systemctl reload squid

クラウドサーバーの設定

  • TCP 3128を開けてやる必要がある
  • AWSのセキュリティグループを新しく作った
    • インバウンド TCP 3128 、ローカルマシンのグローバルIPアドレスのみ許可
      • セキュリティグループはステートフルなのでインバウンドだけでOK
    • やはり不特定多数には開放しない

プロキシ経由してHTTPリクエスト送る

curl --proxy http://<クラウドサーバーのIPアドレス>:3128 <外部IFのIPアドレス>
  • ローカルマシンから気軽にHTTPリクエストできるようになった
    • Postmanとか使えて幸せ