前回、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)が利用できません。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら