ウェブサイト検索

Ubuntu および Debian で「Squid Proxy」サーバーをセットアップする方法


Squid は最も一般的なキャッシュおよび転送 HTTP Web プロキシ サーバーであり、Web サーバーの速度を向上させ、応答時間を短縮し、ネットワーク帯域幅の使用量を削減するために、Web サーバーから Web ページをキャッシュするためにさまざまな企業で使用されています。

こちらもお読みください: CentOS 7 で Squid を使用して HTTP プロキシを作成する方法

この記事では、squid プロキシ サーバーをUbuntu および Debian ディストリビューションにインストールし、HTTP プロキシ サーバーとして使用する方法を説明します。

UbuntuにSquidをインストールする方法

始める前に、Squid サーバーには要件はありませんが、RAM 使用量はプロキシ サーバー経由でインターネットを閲覧するクライアントによって異なる可能性があることを知っておいてください。

Squid パッケージはベースの Ubuntu リポジトリからインストールできますが、その前に実行してパッケージを更新してください。

sudo apt update

パッケージが最新の状態になったら、さらに次のコマンドを使用して、squid をインストールし、システム起動時にそれを起動して有効にすることができます。

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

この時点で、Squid Web プロキシはすでに実行されているはずで、サービスのステータスを確認できます。

sudo systemctl status squid
サンプル出力
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

以下に、注意すべき重要な Squid ファイルの場所をいくつか示します。

  • Squid 設定ファイル: /etc/squid/squid.conf
  • Squid アクセス ログ: /var/log/squid/access.log
  • Squid キャッシュ ログ: /var/log/squid/cache.log

デフォルトの設定ファイルには、Squid の動作に影響を与えるように設定する必要があるいくつかの設定ディレクティブが含まれています。

次に、Vi エディターを使用してこのファイルを編集用に開き、以下に示すように変更を加えます。

sudo vim /etc/squid/squid.conf

ここで、次の行を検索し、要求に応じて変更できます。Vi エディタで、「ESC」 を押して「/」と入力することで、これらの行を検索できます。 」は、検索する特定の行を書くための鍵となります。

  • http_port : これは HTTP プロキシ サーバーのデフォルト ポートです。デフォルトでは 3128 です。必要な他のポートに変更できます。また、必要に応じて、http_port 8888 透過のように行末に「透過」 タグを追加して、Squid プロキシを透過プロキシのように動作させます。
  • http_access destroy all : この行では誰も HTTP プロキシ サーバーにアクセスできません。そのため、Squid プロキシ サーバーの使用を開始するには、この行を http_access allowed all に変更する必要があります。 。
  • visible_hostname : このディレクティブは、Squid サーバーに特定のホスト名を設定するために使用されます。 Squid には任意のホスト名を付けることができます。

上記の変更を行った後、コマンドを使用して Squid プロキシ サーバーを再起動できます。

sudo systemctl restart squid

Ubuntu で Squid を HTTP プロキシとして構成する

このsquid設定セクションでは、認証にクライアントIPアドレスのみを使用してsquidをHTTPプロキシとして設定する方法を説明します。

Squid ACL の追加

新しいプロキシ サーバー経由で 1 つの IP アドレスのみがインターネットにアクセスできるようにしたい場合は、設定ファイルで新しいacl (アクセス コントロール リスト) を定義する必要があります。

sudo vim /etc/squid/squid.conf

追加する必要があるACL ルールは次のとおりです。

acl localnet src XX.XX.XX.XX

XX.XX.XX.XX はクライアント マシンの IP アドレスです。次のスクリーンショットに示すように、このACL は ACL のセクションの先頭に追加する必要があります。

たとえば、この IP アドレスを誰が使用するかを説明するコメントを ACL の横に定義することを常にお勧めします。

acl localnet src 192.168.0.102  # Boss IP address

新しい変更を有効にするには、Squid サービスを再起動する必要があります。

sudo systemctl restart squid

Squid プロキシでポートを開く

デフォルトでは、squid 設定では特定のポートのみが許可されています。さらに追加したい場合は、図のように設定ファイルで定義するだけです。

acl Safe_ports port XXX

XXX は、許可するポート番号です。繰り返しになりますが、acl の横に、ポートの使用目的を説明するコメントを定義することをお勧めします。

変更を有効にするには、squid をもう一度再起動する必要があります。

sudo systemctl restart squid

Squid プロキシ クライアント認証

プロキシを使用する前にユーザーが認証できるようにするには、構成ファイルで基本的な http 認証を有効にする必要がありますが、その前に、次のコマンドを使用してapache2-utils パッケージをインストールする必要があります。

sudo apt install apache2-utils

ここで、後で認証用のユーザー名を保存する「passwd」 というファイルを作成します。 Squid はユーザー「プロキシ」 で実行されるため、ファイルはそのユーザーが所有する必要があります。

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

ここで、「 tecmint 」という新しいユーザーを作成し、そのパスワードを設定します。

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

基本的な http 認証を有効にするために、構成ファイルを開きます。

sudo vim /etc/squid/squid.conf

ポート ACL の後に次の行を追加します。

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

ファイルを保存してsquidを再起動し、新しい変更を有効にします。

sudo systemctl restart squid

Squid Proxy で Web サイトをブロックする

望ましくない Web サイトへのアクセスをブロックするには、まずブラックリストに登録されたサイトを保存する「blacklisted_sites.acl」というファイルを作成します。

sudo touch /etc/squid/blacklisted_sites.acl

たとえば、アクセスをブロックしたい Web サイトを追加します。

.badsite1.com
.badsite2.com

先頭のドットは、www.badsite1subsite.badsite1.comなどを含むそのサイトへのすべての参照をブロックするようにsquidに通知します。

次に、Squid の設定ファイルを開きます。

sudo vim /etc/squid/squid.conf

上記の ACL の直後に、次の 2 行を追加します。

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

ファイルを保存して、squid を再起動します。

sudo systemctl restart squid

Squid で特定のキーワードをブロックする

キーワードのリストをブロックするには、まずブラックリストに登録されたキーワードを保存する「blockkeywords.lst」というファイルを作成します。

sudo touch /etc/squid/blockkeywords.lst

ここで、たとえばアクセスをブロックしたいキーワードを追加します。

facebook
instagram
gmail

次に、Squid の設定ファイルを開き、次のルールを追加します。

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

ファイルを保存して、squid を再起動します。

sudo systemctl restart squid

すべてが正確に構成されたら、新しく構成されたイカ HTTP プロキシを使用するようにローカル クライアントの Web ブラウザーまたはオペレーティング システムのネットワーク設定を構成できるようになります。

Squid プロキシを使用するようにクライアントを構成する

ここで、プロキシ サーバーが動作しているかどうかをテストするには、Firefox を開き、[編集] -> [環境設定] -> [詳細設定] -> [ネットワーク] -> [設定] に移動して [< 「strong>手動プロキシ設定」をクリックし、次のようにすべての接続に使用するプロキシ サーバーの IP アドレスとポートを入力します。

必要なプロキシの詳細をすべて入力すると、Squid プロキシ サーバーを使用して Web サーフィンができるようになります。他のブラウザやプログラムでも同じことを行うことができます。

プロキシ サーバーを使用して Web サーフィンをしていることを確認するには、http://www.ipaddresslocation.org/ にアクセスします。右上隅にサーバーと同じ IP アドレスが表示されている必要があります。 IPアドレス。

追加の構成設定については、squid の公式ドキュメントを確認してください。ご質問やご意見がございましたら、下のコメント欄にご記入ください。