Squidではアクセス先のドメインでフィルターをかけることができます。
具体的には、特定のドメインへのアクセスでないとプロキシを通過させないよといった制限をかけることができます。
※社内サイトのみアクセスを許可して、外部サイトへのアクセスは禁止するなど..
本記事ではSquid上にホワイトリストを作成する手順を紹介します。
概要
本記事の概要を下記に記載します。
目標
Squid上にホワイトリストを作成して、プロキシサーバ上でアクセス制限をかける。
作業工程
- 設定ファイルの修正
- ホワイトリストへドメインを追加する
- アクセス確認
事前準備
Squidサーバの作成手順は以下の記事に載せていますのでご参照下さい。
ホワイトリストの作成
Squidではホワイトリストを作成できます。
ホワイトリストにはアクセスを許可するドメインを登録することができます。
リストに記載したドメインに対してのみアクセスすることができるというわけです。
設定ファイルの修正
Squidサーバへssh接続します。
Squidの設定ファイルを開き、下記の通り中身を修正します。
$ sudo vi /etc/squid/squid.conf
#
# Recommended Squid configuration:
#
#
# 許可設定:
# 上から順に有効化されていくので最後にDeny設定を記載する
#
# IPv4優先
dns_v4_first on
# IPアドレス定義(接続元のIPアドレスを指定)
acl localnet src xx.xx.xx.xx/32 # From Local IPAddress
# ポート80、443以外のHTTP通信を拒否する
acl Safe_ports port 80 # http
acl Safe_ports port 443 # https
http_access deny !Safe_ports
# SSLの場合、ポート443以外のHTTP通信を拒否する
acl SSL_ports port 443 # https
acl CONNECT method CONNECT
http_access deny CONNECT !SSL_ports
# ホワイトリストを指定
acl whitelist dstdomain "/etc/squid/whitelist"
# 接続元IPアドレス外の通信を拒否
http_access deny !localnet
# ホワイトリストで定義したURLへのアクセスを許可する
http_access allow whitelist
# これまで定義した以外のアクセスはすべて拒否する
http_access deny all
#
# 基本設定:
# Squidの基本設定:
#
# デフォルトのSquid使用ポート
http_port 3128
# キャッシュを用いない
no_cache deny all
# コアファイルの格納する場所
coredump_dir /var/spool/squid
# access.logのフォーマット(ローカル時間 送信元IP リクエストステータス レスポンスサイズ リクエストメソッド リクエストURL ユーザ名 階層コード コンテンツタイプ)
logformat squid %tl %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
#
# セキュリティ設定:
# 必須では無いが余程の理由がない限り設定しておくこと
#
# ホスト名の秘匿
visible_hostname unknown
# プロキシ情報の秘匿
forwarded_for off
request_header_access User-Agent deny all
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
- Squidの設定ファイルの詳細
https://tech-mmmm.blogspot.com/2018/01/squid.html
ホワイトリストへドメインを登録
ホワイトリストへドメインを登録します。
例えばGoogleへのアクセスを許可してみます。
※ホワイトリストへはURLを記載するだけです
※「.」を指定すると
$ sudo vi /etc/squid/whitelist
.google.com
変更内容の反映
設定を反映させる為にSquidをリスタートしたいとこですが、リスタートすると一瞬ですがSquidが止まってしまう為、通信中のセッションが瞬断してしまいます。
なのでリスタートではなく、リロードを行い設定ファイルを反映させます。
$ sudo systemctl reload squid
アクセス確認
プロキシへ接続して、ホワイトリストへ登録したURL(サイト)へのみアクセスできることを確認します。
※今回でいうと「https://www.google.com」へはアクセスできること。それ以外のサイトへはアクセスできないことになります。
まとめ
設定自体は本記事の通り簡単です。
しかし、実務で使用するレベルになると、非常に細かい設定を行う必要があります。
どんなケースでのアクセス制限がかけられるように、Squidの設定ファイルの構文を理解しておくようにしましょう。
コメント
なんか一発で制限破れる神サイトないの?
なんかすごいサイト確かにないのかな?