「squid」カテゴリーアーカイブ

Squid 2.7.9 (FreeBSD)

FreeBSD 8.0-Releaseでの設定方法のメモ

portsからインストール

portsのありか

/usr/ports/www/squid

(/usr/ports/www/squid30とか/usr/ports/www/squid31があるけど今回は2.x系のままで。)

/usr/local/etc/pkgtools.conf(特に目新しいことはなし)

MAKE_ARGS = {
        '*' => 'WITHOUT_X11=yes',
  }

インストール

portinstall www/squid

オプション設定はこんな感じ
/var/db/ports/squid/options

# This file is auto-generated by 'make config'.
# No user-servicable parts inside!
# Options for squid-2.7.9
_OPTIONS_READ=squid-2.7.9
WITH_SQUID_KERB_AUTH=true
WITHOUT_SQUID_LDAP_AUTH=true
WITH_SQUID_NIS_AUTH=true
WITHOUT_SQUID_SASL_AUTH=true
WITH_SQUID_DELAY_POOLS=true
WITH_SQUID_SNMP=true
WITH_SQUID_CARP=true
WITHOUT_SQUID_SSL=true
WITHOUT_SQUID_PINGER=true
WITHOUT_SQUID_DNS_HELPER=true
WITHOUT_SQUID_HTCP=true
WITHOUT_SQUID_VIA_DB=true
WITHOUT_SQUID_CACHE_DIGESTS=true
WITH_SQUID_WCCP=true
WITHOUT_SQUID_WCCPV2=true
WITHOUT_SQUID_STRICT_HTTP=true
WITH_SQUID_IDENT=true
WITH_SQUID_REFERER_LOG=true
WITH_SQUID_USERAGENT_LOG=true
WITHOUT_SQUID_ARP_ACL=true
WITHOUT_SQUID_PF=true
WITHOUT_SQUID_IPFILTER=true
WITHOUT_SQUID_FOLLOW_XFF=true
WITHOUT_SQUID_AUFS=true
WITHOUT_SQUID_COSS=true
WITH_SQUID_KQUEUE=true
WITHOUT_SQUID_LARGEFILE=true
WITHOUT_SQUID_STACKTRACES=true

squidの設定

/usr/local/etc/squid/squid.confを編集

#キャッシュを増やす 100(MB)->4096(MB)
cache_dir ufs /var/squid/cache 4096 16 256

#アクセス許可のネットワークを指定
acl ほげほげ src www.xxx.yyy.zzz/255.255.255.248

#アクセスを許可
http_access allow ほげほげ

#できるだけ寡黙なプロキシにするための設定
visible_hostname unknown
forwarded_for off
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

#他にもパラノイア設定が必要であれば以下を
anonymize_headers deny From Referer Server
anonymize_header deny User-Agent WWW-Authenticate Link
fake_user_agent Mozilla/4.99 [en] (Windows NT 5.0; U)

設定間違いが無いかは

/usr/local/sbin/squid parse

で確認。エラーが出たら修正。

portsの場合はデフォルトで/var/squid下にキャッシュやログができます。
(以前は/usr/local/squid下だったのが変わっています)

squidは使い始めにキャッシュのディレクトリ構造を作ってやる必要があるので

/usr/local/sbin/squid -z

で初期化する。

/etc/rc.confに

squid_enable=yes

を追加。

/usr/local/etc/rc.d/squid start

で起動。

パスワードによるアクセス制限

squid.confに追記

acl hogehoge proxy_auth REQUIRED
http_access allow hogehoge

auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/passwd.squid
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

/usr/local/etcにパスワードファイル作成

# htpasswd -c passwd.squid  ユーザー名
New password:(パスワード)
Re-type new password:(パスワード)
Adding password for user  ユーザー名

以前の記事:FreeBSD (Squid2.6)

FreeBSD (Squid 2.6)

/usr/ports/www/squid26

/usr/local/etc/pkgtools.confに下記追記

MAKE_ARGS = {
‘*’ => ‘WITHOUT_X11=yes’,
‘www/squid26′ => [
‘SQUID_UIG=squid’,
‘SQUID_GID=squid’,
‘SQUID_LANGUAGES=”English Japanese”‘,
‘SQUID_DEFAULT_LANG=Japanese’,
],
}

# portinstall www/squid26

で一発。ダイアログで下記を選択

SQUID_DELAY_POOLS=true
SQUID_SNMP=true
SQUID_CARP=true
SQUID_WCCP=true
SQUID_IDENT=true
SQUID_REFERER_LOG=true
SQUID_USERAGENT_LOG=true
SQUID_KQUEUE=true

/usr/local/etc/squid/squid.confを編集
#キャッシュを増やす 100(MB)->4096(MB)
cache_dir ufs /usr/local/squid/cache 4096 16 256
#アクセス許可のネットワークを指定
acl ほげほげ src www.xxx.yyy.zzz/255.255.255.248
#アクセスを許可
http_access allow ほげほげ

#できるだけ寡黙なプロキシにするための設定
visible_hostname unknown
forwarded_for off
header_access X-Forwarded-For deny all
header_access Via deny all
header_access Cache-Control deny all

昔のsquidの時は下3行の設定が無くてソースをいじって対応してました。なのでportsは使っていなかったけど、今回はportsを使うようにしました。

他にも
anonymize_headers deny From Referer Server
anonymize_header deny User-Agent WWW-Authenticate Link
fake_user_agent Mozilla/4.99 [en] (Windows NT 5.0; U)

とかあるけど、ここまでやると逆に不自然なのであえて指定してません。

設定間違いが無いかは
/usr/local/sbin/squid parse

で確認。エラーが出たら修正。

portsの場合はデフォルトで/usr/local/squid下にキャッシュやログができます。

squidは使い始めにキャッシュのディレクトリ構造を作ってやる必要があるので

/usr/local/sbin/squid -z

で初期化する。

/etc/rc.confに

squid_enable=yes

を追加。

/usr/local/etc/rc.d/squid startで起動。

なんかstopがうまく効かない。とにかく動いたので後日調べよう。

↑これは/usr/local/squid/logs/squid.pidに変な数字が入っていたせいだった。消して再起動で動くようになった。んー、まあいいか。

パスワードによるアクセス制限

squid.confに追記

acl hogehoge proxy_auth REQUIRED
http_access allow hogehoge

auth_param basic program /usr/local/libexec/squid/ncsa_auth /usr/local/etc/passwd.squid
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours

/usr/local/etcにパスワードファイル作成

# htpasswd -c passwd.squid  ユーザー名
New password:
Re-type new password:
Adding password for user  ユーザー名