【Squid】プロキシサーバ / Squid ~ Linux / 初期設定編 ~

■ はじめに

* プロキシサーバ構築のために、Squidを導入する
* プロキシについては、以下の関連記事を参照のこと。

https://dk521123.hatenablog.com/entry/2017/08/08/224300

【1】Squid

cf. Squid(スクウィッド) = イカ(由来は以下のサイトを参照)

https://www.ossnews.jp/oss_info/Squid

 * プロキシサーバソフト
 * オープンソース(フリー)

1)機能

 * リバース・フォワードプロキシ
 * 認証
  + LDAP認証
  + Basic認証
  + Digest認証
  + NTLMドメイン認証(Windowsドメイン認証)

などなど

2)認証方式

http://squid.robata.org/proxy_auth.html
http://squid.robata.org/faq_23.html

3)公式サイト

http://www.squid-cache.org/

【2】環境構築

* OS : CentOS7

0)はまりポイント

[1] ファイアウォールを開けているか
[2] 起動し忘れ(systemctl start squid)

1)インストール

# インストール
sudo yum -y install squid

# バージョン確認
squid -v
 => 「Squid Cache: Version 3.5.20

Debian系の場合

sudo apt-get install squid3

2)起動

起動確認 / 開始 / 停止

# 起動確認
systemctl status squid

# 開始
systemctl start squid

# 停止
systemctl stop squid

自動起動確認 / 自動起動開始 / 自動起動停止

# 自動起動確認
systemctl is-enabled squid

# 自動起動開始
systemctl enable squid

# 自動起動停止
systemctl disable squid

3)ファイアウォールの設定

# ファイアウォールが有効か?(「active (running)」なら以下を実行)
systemctl status firewalld

sudo firewall-cmd --add-service=squid --zone=public --permanent

sudo firewall-cmd --reload

4)動作確認

[1] アクセスログに対して、tail を実行する

sudo tail -f /var/log/squid/access.log

[2] IEChrome などのブラウザからプロキシの設定を行う

* 以下を設定
  + アドレス:【プロキシサーバのIPアドレス】
  + ポート :3128

# 以下を参考に...

https://pc-karuma.net/internet-explorer-proxy-settings/

[3] ブラウザで「yahoo.co.jp」をアクセスする

* [1] に「yahoo.co.jp」のログが出力されたらOK

【3】設定補足:ファイルの格納場所

1)設定ファイル

 * /etc/squid/squid.conf
 ~~~
sudo vi /etc/squid/squid.conf
 ~~~

設定反映

 * ファイルを反映するには以下のコマンドを実行
 ~~~
 systemctl reload squid
 ~~~

文法チェック

* 設定ファイル「squid.conf」の文法チェックには以下のコマンドを実行
 ~~~
 # 文法チェック
 sudo squid -k check

 # 設定ファイルのリロード(既存セッションに影響なく反映可能)
 squid -k reconfigure
 ~~~

2)ログファイル

アクセスログ

* /var/log/squid/access.log
 ~~~
 sudo tail -f /var/log/squid/access.log
 ~~~

デバッグログ

* /var/log/squid/cache.log

Debian系の場合

sudo tail -f /var/log/squid3/access.log

【任意設定】アクセスログのフォーマットを変える

* デフォルトのアクセスログだと時間が分かりづらいので変更する

logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined

参考文献

https://blog.trippyboy.com/2011/squid2-6/squid2-6-access-log%E3%82%92apahce%E3%81%AEaccess_log%E9%A2%A8%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95/
http://blog.cybozu.io/entry/2017/02/03/080000
http://qiita.com/ota42y/items/6d8b2279d6456ff389a0

関連記事

【ネットワーク】プロキシ / Proxy
https://dk521123.hatenablog.com/entry/2017/08/08/224300
プロキシサーバ / SquidLinux / Basic認証編 ~
https://dk521123.hatenablog.com/entry/2017/06/26/224311
プロキシサーバ / SquidLinux / SSLプロキシ構築編 ~
https://dk521123.hatenablog.com/entry/2017/06/24/235123
プロキシサーバ / SquidLinux / 設定ファイル編 ~
https://dk521123.hatenablog.com/entry/2017/08/15/234457
プロキシサーバ / SquidSquid for Windows編 ~
https://dk521123.hatenablog.com/entry/2017/11/12/211732
Squid に関するトラブルシュート
https://dk521123.hatenablog.com/entry/2017/08/10/235733