Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Squidのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
Squid
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:プロキシサーバー]] [[en:Squid]] [[zh-hans:Squid]] Squid は HTTP, HTTPS および FTP のキャッシュプロキシであり、広範囲なアクセス制御機能を提供します。 == インストール == [[公式リポジトリ]]から {{Pkg|squid}} を[[インストール]]してください。 == 設定 == デフォルトで、キャッシュディレクトリが {{ic|/var/cache/squid}} に作成され、適当なパーミッションが設定されます。さらに {{Ic|/etc/squid/squid.conf}} を設定することで、細かい制御をすることが可能です。 設定はすべてコメントが付いていますが、コメントを除去したい場合は以下を実行: sed -i "/^#/d;/^ *$/d" /etc/squid/squid.conf 以下のオプションが一廉に役立つはずです。設定ファイルに以下のオプションが存在しない場合、追加してください。 * {{Ic|http_port}} - Squid がローカルマシンに bind するポートを設定します。http_port 行を複数行記述することで複数のポートに Squid を bind できます。デフォルトでは Squid はポート 3128 を使います。 http_port 3128 http_port 3129 * {{Ic|http_access}} - プロキシの使用を許可するアクセス制御リストです。デフォルトでは localhost だけがプロキシにアクセスできるようになっています。{{Ic|http_access deny all}} オプションを {{Ic|http_access allow all}} に変えることで、誰でもプロキシにアクセスできるようになります。サブネットからアクセスできるようにしたい場合、そのように設定することもできます: acl ip_acl src 192.168.1.0/24 http_access allow ip_acl http_access deny all *{{Ic|cache_mgr}} - キャッシュの管理人のメールアドレス。 cache_mgr squid.admin@example.com *{{Ic|shutdown_lifetime}} - Squid のサービスを停止するように言われたときに待機する時間を指定します。デスクトップ PC で squid を実行する場合、短く設定すると良いでしょう。 shutdown_lifetime 10 seconds *{{Ic|cache_mem}} - Squid がメモリにオブジェクトを保存するのに使うメモリの量です。Squid の合計のメモリ使用量はこの設定を上回ります。デフォルトでは 8MB ですが、RAM が大量に利用できるときは増加させると良いでしょう。 cache_mem 64 MB *{{Ic|visible_hostname}} - ステータス/エラーメッセージで表示されるホストネーム。 visible_hostname cerberus *{{Ic|cache_peer}} - Squid からインターネットに直接接続するのではなく、他のプロキシサーバーを通したい場合、こちらに指定してください。 *{{Ic|login}} - 親のプロキシが認証を必要とするときはこのオプションを使います。 *{{Ic|never_direct}} - ページを取得するときにキャッシュを直接インターネットに送らない。上記のオプションを設定する場合はこのオプションも設定します。 cache_peer 10.1.1.100 parent 8080 0 no-query default login=user:password never_direct allow all *{{Ic|maximum_object_size}} - キャッシュするオブジェクトの最大容量。デフォルトでは 4 MB ですが、ディスク容量がもっとある場合は適当にサイズを上げると良いでしょう。 maximum_object_size 10 MB {{Note|cache_dir を新しく定義したら、次のコマンドでキャッシュディレクトリを初期化する必要があります: <code>squid -zN</code>。-z はスワップディレクトリの作成を、-N はデーモンモードではないことを意味します。}} *{{Ic|cache_dir}} - キャッシュディレクトリです。全てのキャッシュファイルが保存されます。多数のオプションが存在しますが、基本的なフォーマットは以下の通りです: cache_dir <storage type> <directory> <size in MB> 16 256 学校のインターネットプロキシを設定する場合: cache_dir diskd /cache0 200000 16 256 キャッシュディレクトリをデフォルトから変更するときは、Squid を起動する前にキャッシュディレクトリに適当なパーミッションを設定してください。そうしないと Squid がキャッシュディレクトリを作成できずに起動に失敗します。 == ローカルホストネームのサービスにアクセス == 完全に定義されないホストネーム (例: {{ic|http://mywebapp}}) を使って LAN 上のウェブサーバーにアクセスする場合、{{ic|dns_defnames}} オプションを有効にする必要があります。このオプションが設定されていない場合、Squid はホストネームの DNS リクエストを作成してしまい ({{ic|mywebapp}})、LAN の DNS 設定によってはリクエストが失敗します。このオプションが有効になっていれば、Squid はリクエストを作成する際に {{ic|/etc/resolv.conf}} に設定されているドメインを追加します (例: {{ic|mywebapp.company.local}})。 {{bc| dns_defnames on }} == 起動 == 設定が完了したら、設定ファイルが問題ないか確認してください: # squid -k check それからキャッシュディレクトリを作成してください: # squid -z そして Squid を起動します: # systemctl start squid ブート時に squid を起動させるには次のコマンドを使用: # systemctl enable squid == コンテンツフィルタリング == Squid でコンテンツフィルタリングを行いたい場合、とても強力な機能を持っている [[DansGuardian]] を見て下さい。 == フロントエンド == Squid を管理できるウェブベースのフロントエンドが欲しい場合は [[Webmin]] がおすすめです。 == adzapper による広告ブロック == Adzapper は Squid のプラグインです。(Flash アニメーションも含めて) あらゆる広告を見つけては、設定された画像に置き換えます。そのためページのレイアウトが崩れることはありません。 === インストール === AdZapper は現在、公式リポジトリにも AUR にもありません。スクリプト、および設定と使用法に関する詳細情報は、http://adzapper.sourceforge.net にあります。 === 設定 === echo "redirect_program /usr/bin/adzapper.wrapper" >> /etc/squid/squid.conf (squid 2.6.STABLE13-1) echo "url_rewrite_program /usr/bin/adzapper.wrapper" >> /etc/squid/squid.conf echo "url_rewrite_children 10" >> /etc/squid/squid.conf adzapper の設定は自由に変えられますが、そのままでも特に問題なく動作します。 nano /etc/adzapper/adzapper.conf == アンチウイルス == HAVP プログラムを ClamAV と連携するようにすることでアンチウイルス機能を Squid に追加できます。 === 必要なパッケージのインストール === [[ClamAV]] の記事をみてシステムに ClamAV をインストールしてください。ClamAV をインストールしたら、[[AUR]] から {{AUR|havp}}{{Broken package link|{{aur-mirror|havp}}}} をインストールしてください。 === 設定 === HAVP のインストールが完了したら、HAVP インスタンスで使用するユーザーグループを作成してください: useradd havp アンチウイルスのログと一時ファイルディレクトリの所有者を havp に変更します: chown -R havp:havp /var/run/havp chown -R havp:havp /var/log/havp ファイルシステムに (HAVP が必要とする) 強制ロックオプションを追加してください。{{ic|/etc/fstab}} を開いて、以下を: [...] / ext3 defaults 1 1 以下のように修正します: [...] / ext3 defaults,mand 1 1 それからファイルシステムをリロードしてください: mount -o remount / {{ic|/etc/squid/squid.conf}} に HAVP の情報を追加: cache_peer 127.0.0.1 parent 8080 0 no-query no-digest no-netdb-exchange default cache_peer_access 127.0.0.1 allow all {{ic|/etc/havp/havp.config}} のポートが {{ic|/etc/squid/squid.conf}} の cache_peer のポートと適合しているか確認してください。 === テスト === squid をリロードして HAVP を起動: systemctl restart squid systemctl start havp ブート時に起動したい場合: systemctl enable squid systemctl enable havp [http://www.eicar.org/anti_virus_test_file.htm こちら] にあるテストウイルス (本当のウイルスではありません) でアンチウイルス機能をテストできます。 == 透過ウェブプロキシ == eth0 を通る全ての www リクエストを Squid に転送することで透過的に利用することが可能です。{{Ic|http_port}} オプションに {{Ic|intercept}} パラメータを追加して透過ウェブプロキシとして Squid を利用するように設定する必要があります (squid 3.2 の場合): http_port 3128 '''intercept''' === iptables === ターミナルから、root 権限で以下を実行: # gid=`id -g proxy` # iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --gid-owner $gid -j ACCEPT # iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination SQUIDIP:3128 # iptables-save > /etc/iptables/iptables.rules そして iptables を起動: # systemctl start iptables.service Replace SQUIDIP with the public IP(s) which squid may use for its listening port and outbound connections. {{Note|If you are using a content filtering solution, you should put the port for it, not the Squid port, and you need to remove the {{Ic|intercept}} option in the http_port line.}} === Shorewall === {{ic|/etc/shorewall/rules}} を編集して以下を追加: REDIRECT loc 3128 tcp www # redirect to Squid on port 3128 ACCEPT $FW net tcp www # allow Squid to fetch the www content systemctl restart shorewall == HTTP 認証 == Squid を使うにはユーザーとパスワードを入力しなくてはならないように設定できます。[[wikipedia:Digest_access_authentication|digest http auth]] を使います。 まず {{Ic|htdigest -c /etc/squid/users MyRealm username}} で users ファイルを作成します。パスワードが要求されたら入力してください。 そして以下の行を {{Ic|squid.conf}} に追加: auth_param digest program /usr/lib/squid/digest_file_auth -c /etc/squid/users auth_param digest children 5 auth_param digest realm MyRealm acl users proxy_auth REQUIRED http_access allow users それから squid を再起動してください。プロキシにアクセスするときにユーザー名とパスワードの入力が求められるようになります。 {{Ic|htdigest /etc/squid/users MyRealm newuser}} でさらにユーザーを追加することができます。{{Ic|htdigest}} ツールは Apache パッケージに入っています。 {{Note|Be aware that {{Ic|http_access}} rules cascade, so you need to set them in the desired order.}} === NTLM === {{Warning|NTLM は廃止予定でありセキュリティに問題を抱えています。}} [[samba]] と winbindd をセットアップして次のコマンドでテスト: ntlm_auth --username=DOMAIN\\user squid ユーザー/グループが {{ic|/var/cache/samba/winbindd_privileged/}} ディレクトリに r-x アクセスできるように権限を付与してください。 それから squid.conf に以下を追加します: auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp auth_param ntlm children 5 auth_param ntlm max_challenge_reuses 0 auth_param ntlm max_challenge_lifetime 2 minutes auth_param ntlm keep_alive off acl ntlm_users proxy_auth REQUIRED http_access allow ntlm_users http_access deny all == トラブルシューティング == === 起動後に Squid を再起動 === squid と NetworkManger の両方を使う場合、NetworkManger で wifi 接続が有効になる前に ({{ic|/etc/resolv.conf}} が空の状態で) squid が起動すると以下のエラーが表示されます: {{hc|/var/log/squid/cache.log|2= Warning: Could not find any nameservers. Trying to use localhost Please check your /etc/resolv.conf file or use the 'dns_nameservers' option in squid.conf. }} 以下の方法で対処できます: * [[NetworkManager#NetworkManager Wait Online を有効にする|NetworkManager-wait-online.service]] を有効化: {{ic|# systemctl enable NetworkManager-wait-online.service}}。 * systemd で squid を起動するかわりに [[NetworkManager#ネットワークサービスと NetworkManager dispatcher|NetworkManager dispatcher]] を使用: # systemctl disable squid.service {{hc|/etc/NetworkManager/dispatcher.d/10_squid|2= if [ $1 == 'wlp2s0' ] then if [ $2 == 'up' ] then systemctl start squid else systemctl stop squid fi fi }} # chmod u+x /etc/NetworkManager/dispatcher.d/10_squid == 参考資料 == * [https://archive.is/oOdiT Elite Proxy Config Example(cached)] ([https://web.archive.org/web/20130425134032/http://gotux.net/arch-linux/squid-proxy-server/ cache-two])
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Aur-mirror
(
ソースを閲覧
)
テンプレート:Bc
(
ソースを閲覧
)
テンプレート:Broken package link
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:Note
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Warning
(
ソースを閲覧
)
Squid
に戻る。
検索
検索
Squidのソースを表示
話題を追加