" Squidプロキシ"を設定する方法UbuntuとDebian上のサーバ


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

この記事では、 UbuntuおよびDebian ディストリビューションにSquidプロキシサーバーをインストールして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 configuration file: /etc/squid/squid.conf
  • Squid Access log: /var/log/squid/access.log
  • Squid Cache log: /var/log/squid/cache.log

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

このファイルをViエディタで編集用に開き、以下のように変更します。

$ sudo vim /etc/squid/squid.conf

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

  • http_port : This is the default port for the HTTP proxy server, by default it is 3128, you may change it to any other port that you want, you may also add the “transparent” tag to the end of the line like http_port 8888 transparent to make Squid proxy act like a transparent proxy if you want.
  • http_access deny all : This line won’t let anybody to access the HTTP proxy server, that’s why you need to change it to http_access allow all to start using your Squid proxy server.
  • visible_hostname : This directive is used to set the specific hostname to a squid server. You can give any hostname to squid.

上記の変更を加えた後は、コマンドを使ってSquidプロキシサーバを再起動することができます。

$ sudo systemctl restart squid

UbuntuでSquidをHTTPプロキシとして設定する

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

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

$ sudo vim /etc/squid/squid.conf

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

acl localnet src XX.XX.XX.XX

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

たとえば、 ACL の横にコメントを定義して、誰がこのIPアドレスを使用しているかなどを記述することをお勧めします。

acl localnet src 192.168.0.102  # Boss IP address

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

$ sudo systemctl restart squid

デフォルトでは、squid設定で許可されているのは特定のポートのみです。もっと追加したい場合は、表示されているように設定ファイルでそれらを定義してください。

acl Safe_ports port XXX

XXX は、許可したいポート番号です。繰り返しになりますが、 acl の横にコメントを入力して、ポートの用途を説明します。

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

$ sudo systemctl restart squid

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

$ sudo apt install apache2-utils

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

$ 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

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

$ sudo touch /etc/squid/blacklisted_sites.acl

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

.badsite1.com
.badsite2.com

次のドットは、 www.badsite1 subsite.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

キーワードのリストをブロックするには、まずブラックリストに記載されているキーワードを保存する「 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

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

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

プロキシサーバーが機能しているかどうかをテストするには、[ Firefox ]を開いて[編集 - >]にアクセスします。設定 - >詳細 - >ネットワーク - > [設定] をクリックし、[手動プロキシ設定]を選択し、次のようにすべての接続に使用するプロキシサーバーのIPアドレスとポートを入力します。

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

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

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