squidはプロキシサーバを立てるのに必要なものという認識しかありませんが、構築にチャレンジしてみます。下記のサイトを参考します。
CentOSのバージョンの確認
普段使わないので忘れがちファイルです。
# バージョンの確認
$ cat /etc/redhat-release
CentOS release 6.5 (Final)
インストール
squidのパッケージを探し、yumでインストールします。インストール後にインストールできたかを確認します。
rpmのオプションqでパッケージ情報を表示します。
# squidのインストール
$ yum search squid
$ yum install squid.x86_64
$ rpm -q squid
squid-3.1.10-22.el6_5.x86_64
インストール場所の確認
rpmのオプションlでパッケージ内のファイルの場所を全て表示します。
# 各ファイルの場所を確認
rpm -l squid
##### 実行結果の抜粋#####
# コマンド
/usr/bin/squidclient
/usr/sbin/squid
\#設定ファイル
/etc/httpd/conf.d/squid.conf
\#ディレクトリ
/etc/squid/
/usr/lib64/squid/
/usr/share/doc/squid-3.1.10/
/usr/share/squid/errors/
/var/log/squid/
/var/spool/squid/
yumでインストールしたら/usr/lib/
以下に入ると思っていましたが、/usr/share/
にも入るのですね。
自動起動の確認
これも忘れがちなコマンドですので使ってみました。
# 各ファイルの場所を確認
$ chkconfig --level 35 squid on
$ chkconfig --list squid
squid 0:off 1:off 2:off 3:on 4:off 5:on 6:off
ですが、サーバーとして利用しないのでoffに戻しました。起動が遅くなると嫌なので。
# 自動起動を解除する
$ chkconfig --level 35 squid off
$ chkconfig --list squid
squid 0:off 1:off 2:off 3:off 4:off 5:off 6:off
ちなみにこの時点でsquidは起動はしていません。
$ service squid status
squid は停止しています
ポート番号の慣例
プロキシサーバーが使用するポートは通常、8080番や8008番などの数字に8がつく番号を使用するのが慣例となっています。
via: Squidによるプロキシサーバーの構築
これは知らなかったです。webを扱うなら覚えておいて損は無いですね。8080を使うということは、apacheもプロキシサーバなのでしょうか。
とりあえず、squid.confに下記の一文を追加し、起動します。
# squid.conf
# プロキシサーバーへの接続を許可するネットワークの指定
acl localnet src 192.168.0.2/255.255.255.0
実際にデフォルトのポート番号が3128番なのか確認してみます。
# ポート番号を調べる
$ netstat -anp | grep 3128
# 実行結果(ヘッダーは後付)
Proto RefCnt Flags Type State I-Node PID/Program name Path
tcp 0 0 :::3128 :::* LISTEN 1412/(squid)
このままmacのプロキシを設定すると、googleの検索結果は表示されますが、そのリンク先は表示できません。
プロキシサーバに接続できない
プロキシ自体に接続が出来ていないようです。sshでホストOS(mac)からゲストOS(centos)に繋げれるので、物理的には繋がっているはず! アクセスログは記録されていました
squid.confを見てみると、定義したIPアドレスのグループからのアクセスを許可していませんでした。下記を追加します。
# squid.conf
http_access allow localnet
名前解決ができない!
プロキシには繋がりましたが、今度は名前解決ができません!どうやらsquidはresolve.confに記載したDNSサーバではなく、独自の仕組みで名前解決を行っているらしいです。
そこで下記のファイルに設定追加。
# /etc/resolv.conf
order bind,hosts
詳しくは下記を見て下さい。
これでようやくページが表示されました。アクセスログも記録されています。ちなみに上記の設定をしても最初は上手くいきませんでしたが、一度centosを終了して起動したら何故かうまくいきました。