Squidは、HTTP、HTTPS、FTPなどの一般的なネットワークプロトコルをサポートするフル機能のキャッシングプロキシです。繰り返しリクエストをキャッシュしたり、ウェブトラフィックをフィルタリングしたり、地理的に制限されたコンテンツにアクセスしたりすることで、ウェブサーバーのパフォーマンスを向上させるために使用できます。
このチュートリアルでは、Ubuntu 20.04でSquidプロキシを設定し、それを使用するようにFirefoxおよびGoogleChromeWebブラウザーを構成する方法について説明します。
UbuntuへのSquidのインストール#
squidパッケージは、標準のUbuntu20.04リポジトリに含まれています。インストールするには、sudoユーザーとして次のコマンドを実行します。
sudo apt update
sudo apt install squid
インストールが完了すると、Squidサービスが自動的に開始されます。確認するには、サービスステータスを確認してください:
sudo systemctl status squid
出力は次のようになります:
● squid.service - Squid Web Proxy Server
Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2020-10-23 19:02:43 UTC; 14s ago
Docs: man:squid(8)
...
squidサービスは、 /etc/squid/squid.conf
を編集することで構成できます。 ファイル。構成ファイルには、各構成オプションの機能を説明するコメントが含まれています。構成設定を個別のファイルに入れることもできます。これらのファイルは、「include」ディレクティブを使用してメイン構成ファイルに含めることができます。
変更を加える前に、元の構成ファイルをバックアップすることをお勧めします:
sudo cp /etc/squid/squid.conf{,.orginal}
squidインスタンスの構成を開始するには、テキストエディタでファイルを開きます。
sudo nano /etc/squid/squid.conf
デフォルトでは、squidはポート 3128
でリッスンするように設定されています サーバー上のすべてのネットワークインターフェースで。
ポートを変更してリスニングインターフェイスを設定する場合は、 http_port
で始まる行を見つけます インターフェイスのIPアドレスと新しいポートを指定します。インターフェイスが指定されていない場合、Squidはすべてのインターフェイスでリッスンします。
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
ほとんどのユーザーにとって、すべてのインターフェースとデフォルトのポートでSquidを実行することは問題ありません。
Squidを使用すると、アクセス制御リスト(ACL)を使用してクライアントがWebリソースにアクセスする方法を制御できます。デフォルトでは、アクセスはローカルホストからのみ許可されます。
プロキシを使用するすべてのクライアントが静的IPアドレスを持っている場合、プロキシサーバーへのアクセスを制限する最も簡単なオプションは、許可されたIPを含むACLを作成することです。それ以外の場合は、認証を使用するようにsquidを設定できます。
メインの構成ファイルにIPアドレスを追加する代わりに、許可されたIPを保持する新しい専用ファイルを作成します。
/etc/squid/allowed_ips.txt192.168.33.1
# All other allowed IPs
完了したら、メインの構成ファイルを開き、 allowed_ips
という名前の新しいACLを作成します。 (最初に強調表示された行) http_access
を使用してそのACLへのアクセスを許可します ディレクティブ(2番目に強調表示された行):
# ...
acl allowed_ips src "/etc/squid/allowed_ips.txt"
# ...
#http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all
http_access
の順序 ルールは重要です。 http_access deny all
の前に必ず行を追加してください 。
http_access
ディレクティブは、ファイアウォールルールと同じように機能します。 Squidはルールを上から下に読み取り、ルールが一致すると、以下のルールは処理されません。
構成ファイルに変更を加えるときはいつでも、変更を有効にするためにSquidサービスを再起動する必要があります:
sudo systemctl restart squid
IPに基づいてアクセスを制限することがユースケースで機能しない場合は、バックエンドを使用してユーザーを認証するようにsquidを構成できます。 Squidは、Samba、LDAP、およびHTTP基本認証をサポートしています。
このガイドでは、基本認証を使用します。これは、HTTPプロトコルに組み込まれている単純な認証方法です。
暗号化されたパスワードを生成するには、 openssl
を使用します 道具。次のコマンドは、 USERNAME:PASSWORD
を追加します / etc / squid / htpasswd
とペアリングします ファイル:
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd
たとえば、パスワード「 P @ ssvv0rT
」でユーザー「josh」を作成するには 」、実行します:
printf "josh:$(openssl passwd -crypt 'P@ssvv0rd')\n" | sudo tee -a /etc/squid/htpasswd
josh:QMxVjdyPchJl6
次のステップは、HTTP基本認証を有効にし、ユーザー資格情報を含むファイルをsquid構成ファイルに含めることです。
メイン構成を開き、以下を追加します:
sudo nano /etc/squid/squid.conf
/etc/squid/squid.conf # ...
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
# ...
#http_access allow localnet
http_access allow localhost
http_access allow authenticated
# And finally deny all other access to this proxy
http_access deny all
強調表示されている最初の3行は、 authenticated
という名前の新しいACLを作成しています。 、最後に強調表示されている行は、認証されたユーザーへのアクセスを許可しています。
Squidサービスを再起動します:
sudo systemctl restart squid
Squidポートを開くには、 UFW
を有効にします 「イカ」のプロフィール:
sudo ufw allow 'Squid'
Squidがデフォルト以外の別のポートで実行されている場合、たとえば 8888
sudo ufw allow 8888 / tcp
を使用して、そのポートでのトラフィックを許可できます。 。
プロキシを使用するようにブラウザを設定する#
Squidをセットアップしたので、最後のステップは、Squidを使用するように優先ブラウザーを構成することです。
Firefox#
以下の手順は、Windows、macOS、およびLinuxでも同じです。
-
右上隅にあるハンバーガーアイコン
☰
をクリックします Firefoxのメニューを開くには: -
⚙設定コード>をクリックします リンク。
-
ネットワーク設定
まで下にスクロールします セクションをクリックし、設定...
をクリックします ボタン。 -
新しいウィンドウが開きます。
手動プロキシ設定
を選択します ラジオボタン。- SquidサーバーのIPアドレスを
HTTPHost
に入力します フィールドと3128
Port
で フィールド。 すべてのプロトコルにこのプロキシサーバーを使用する
を選択します チェックボックス。-
OK
をクリックします ボタンをクリックして設定を保存します。
この時点で、Firefoxが構成され、Squidプロキシを介してインターネットを閲覧できます。確認するには、 google.com
を開きます 、「what is my ip」と入力すると、SquidサーバーのIPアドレスが表示されます。
デフォルト設定に戻すには、ネットワーク設定
に移動します 、システムプロキシ設定を使用
を選択します ラジオボタンを押して設定を保存します。
FoxyProxyなど、Firefoxのプロキシ設定を構成するのにも役立つプラグインがいくつかあります。
Google Chrome#
Google Chromeは、デフォルトのシステムプロキシ設定を使用します。オペレーティングシステムのプロキシ設定を変更する代わりに、SwitchyOmegaなどのアドオンを使用するか、コマンドラインからChromeウェブブラウザを起動することができます。
新しいプロファイルを使用してChromeを起動し、Squidサーバーに接続するには、次のコマンドを使用します。
Linux:
/usr/bin/google-chrome \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--user-data-dir="$HOME/proxy-profile" \
--proxy-server="http://SQUID_IP:3128"
ウィンドウ:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^
--user-data-dir="%USERPROFILE%\proxy-profile" ^
--proxy-server="http://SQUID_IP:3128"
プロファイルが存在しない場合、プロファイルは自動的に作成されます。このようにして、Chromeの複数のインスタンスを同時に実行できます。
プロキシサーバーが正しく機能していることを確認するには、 google.com
を開きます 、「whatismyip」と入力します。ブラウザに表示されるIPは、サーバーのIPアドレスである必要があります。