2&>1

AWSとかGCPとかGolangとかとか

HTTPSぷろきしー(CentOS7.5)の構築とログ結果

はじめに

HTTPSプロキシについてちょっと勉強する機会があったのでまとめます

構成

test.jpg

クライアントがプロキシー通ってインターネッツの世界へ

構築手順

ロキシーサーバには「CentOS7.5」と定番「squid」を使用する

squidリポジトリを準備 /etc/yum.repos.d/squid.conf

[code lang=text] [squid] baseurl=http://www1.ngtech.co.il/repo/centos/$releasever/$basearch/ failovermethod=priority enabled=1 gpgcheck=0 [/code]

・epelの有効化 /etc/yum.repos.d/epel.repo

[code lang=text] [epel] …

常時利用、基本リポジトリと同様に利用

enabled=1 priority=1 [/code]

・インストール yum install perl-Crypt-OpenSSL-X509 squid

・/etc/squid/squid.confを編集 とりあえず最終行に以下を追記

[code lang=text] sslproxy_options NO_SSLv2,NO_SSLv3,NO_TLSv1,SINGLE_DH_USE

forwarded_for off request_header_access Referer deny all request_header_access X-Forwarded-For deny all request_header_access Via deny all request_header_access Cache-Control deny all [/code]

squidのリスタート systemctl restart squid

テスト

クライアント側から以下コマンドでプロキシーサーバ経由でHTTPSとHTTPへのアクセスを行い違いをみる ここではプロキシーサーバのIPとportは172.168.0.210:3128である。 curlでコンテンツダウンロードしてみる

curl -L -O --proxy 172.168.0.210:3128 https://xxxxxx/xxx/xxxx curl -L -O --proxy 172.168.0.210:3128 http://xxxxxx/xxx/xxxx

ログ確認

HTTPへのアクセス

[code lang=text] 1538383639.389 0 172.168.3.201 TCP_MEM_HIT/200 14740 GET http://www.xxxxx.tokyo.jp/xxxxxx.html - HIER_NONE/- text/html [/code]

HTTPSへのアクセス

[code lang=text] 1538383760.574 151 172.168.3.201 TCP_TUNNEL/200 301405 CONNECT www.xxxxx.com:443 - HIER_DIRECT/180.235.251.31 - [/code]

まとめ

ロキシーをする場合でもやはりHTTPSではアクセスの中身は見えない。がURLについては確認できる。 ということはHTTPSアクセスについてもURLフィルタリングは可能ということ。(コンテンツフィルタリングは不可能) ただ一般的にHTTPSの場合証明書不一致のエラーをブラウザが表示する。回避するにはクライアントープロキシー間で別の証明書を用意する必要があるが不特定多数が使用する環境では準備をするのが難しいため意図的にプロキシーサーバをおいてフィルタリングするのはいろいろ問題となる。 (ホテルによくある無料WIFIシステムなどがこれに近い)

自分だけの環境であればアクセス元をウヤムヤにできたりIP制限回避できたり、自分用のログとったりまぁ使いみちありそう(普通は使わない)。

*URLフィルタリング・・・URLを判断基準にした、見せたくないページを見せない行為・機能・仕組み *コンテンツフィルタリング・・・ページの中身を判断基準にして見せたくないページを見せない行為・機能・仕組み

参考

http://kikumoto.hatenablog.com/entry/2016/06/04/124922