前回、VPCのNATインスタンスを作ってみる(Squid編)の記事を紹介したのですが、目的は中継するHTTP(S)のアクセスをドメイン名(DNS名)でアクセス制限する為でした。
(iptablesではIPアドレスとポートの制限までとなります)
上記より、www.google.co.jpのみにアクセスできるようにしてみました。
(設定ファイルは下記の通りです)
# cat /etc/squid/squid.conf ... acl google dstdomain www.google.co.jp http_access allow google http_access deny all
上記のNATインスタンス(Squid)を利用しているサブネット上のEC2から確認してみます。
※NATインスタンスのIPアドレスは、10.0.0.74 です。
▼プロキシーを設定してHTTPアクセス
# curl -x 10.0.0.74:3128 http://www.google.co.jp/ ...
【成功】
# curl -x 10.0.0.74:3128 http://xxx.xxx.xxx/ ...
【失敗】
▼プロキシーを設定してHTTPSアクセス
# curl -x 10.0.0.74:3128 https://www.google.co.jp/ ...
【成功】
# curl -x 10.0.0.74:3128 https://xxx.xxx.xxx/ curl: (56) Received HTTP code 403 from proxy after CONNECT
【失敗】
▼HTTPアクセス(透過プロキシーとして利用)
# curl http://www.google.co.jp/ ...
【成功】
# curl http://xxx.xxx.xxx/ ...
【失敗】
上記より、ドメイン名(DNS名)でアクセス制限できていることが確認できました。
前回も紹介しましたが、HTTPSは透過型プロキシー(Squid)が利用できません。