Squidは、HTTP、HTTPS、FTPなどのよく知られたネットワークプロトコルをサポートするフル機能のキャッシュプロキシサーバーです。 SquidをWebサーバーのフロントエンドに配置すると、繰り返される要求をキャッシュし、ネットワークトラフィックをフィルタリングすることで、サーバーのパフォーマンスを大幅に向上させることができます。
このガイドでは、Ubuntu 18.04でSquidをセットアップし、このプロキシサーバーを使用するようにFirefoxおよびGoogleブラウザーを構成する方法について説明します。
Squidパッケージは、デフォルトのUbuntu18.04ソースリポジトリに含まれています。これをインストールするには、sudoユーザーとして次のコマンドを実行します。
sudo apt update
sudo apt install squid
インストールが完了すると、Squidサービスが自動的に開始されます。
インストールが成功したかどうかを確認するには、次のコマンドを入力します。サービスのステータスが出力されます。
sudo systemctl status squid
● squid.service - LSB: Squid HTTP Proxy version 3.x
Loaded:loaded(/etc/init.d/squid; generated)
Active:active(running) since Thu 2019-06-2711:45:17 UTC
...
Squidは、 / etc / squid / squid.conf
ファイルを編集して構成されます。 「include」ディレクティブを使用して、新しいファイルを構成ファイルに追加できます。
構成ファイルには、各構成オプションの役割を説明するコメントが含まれています。
変更を加える前に、次の元の構成ファイルをバックアップすることをお勧めします。
sudo cp /etc/squid/squid.conf{,.orginal}
ファイルを編集するには、テキストエディタでファイルを開きます。
sudo nano /etc/squid/squid.conf
デフォルトでは、Squidはサーバーのすべてのネットワークインターフェイスのポート 3128
でリッスンするように構成されています。
ポート番号を変更してリスニングインターフェイスを設定する場合は、 http_port
を見つけて、インターフェイスのIPアドレスと新しいポートを指定します。インターフェイスが指定されていない場合、Squidはすべてのネットワークインターフェイスでリッスンします。
/etc/squid/squid.conf
# Squid normally listens to port 3128
http_port IP_ADDR:PORT
すべてのインターフェイスとデフォルトのポートでSquidを実行すると、ほとんどのユーザーに適しています。
アクセス制御リスト(ACL)を使用して、Squidサーバーへのアクセスを制御できます。
デフォルトでは、Squidはローカルホストとローカルネットワークからのアクセスのみを許可します。
プロキシサーバーを使用するすべてのクライアントのIPアドレスが固定されている場合は、許可されたIPアドレスを含むACLを作成できます。
メイン構成にIPアドレスを追加する代わりに、アドレスを構成するための新しい構成ファイルを作成できます: / etc / squid / allowed_ips.txt
192.168.33.1
# All other allowed IPs
完了したら、メイン構成ファイルを開き、 allowed_ips
という名前の新しいACLを作成し、 http_access
ディレクティブを使用してアクセスを許可します。/ etc / squid / squid.conf
# ...
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 denyall
の前にこの行を追加してください。
http_access
ディレクティブはファイアウォールルールに似ています。 Squidはルールを上から下に読み取り、後続の一致するルールは処理されません。
構成ファイルにどのような変更を加えても、変更を有効にするにはSquidサーバーを再起動する必要があります。
sudo systemctl restart squid
Squidは、Samba、LDAP、HTTP基本認証など、さまざまなバックエンドを使用してユーザーを認証できます。
この例では、基本的な認証を使用するようにSquidを構成します。これは、HTTPプロトコルに組み込まれている単純な認証方法です。
openssl
を使用してパスワードを生成し、 username:password
ペアをファイル / etc / squid / htpasswd
に追加して表示します。
printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n"| sudo tee -a /etc/squid/htpasswd
たとえば、「mike」のユーザー名と「Pz $ lPk76」のパスワードを作成するには、次のコマンドを実行します。
printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n"| sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo
次のステップは、HTTP基本認証を有効にしてこのファイルを使用するようにSquidを構成することです。
メイン構成ファイルを開き、次のコンテンツを追加します: / etc / squid / squid.conf
# ...
auth_param basic program /usr/lib64/squid/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
[UFW](https://www.itcoder.tech/posts/how-to-setup-a-firewall-with-ufw-on-ubuntu-18-04/)を使用してファイアウォールを管理していると仮定すると、Squidポートを開く必要があります。デフォルトのSquidポートで「Squid」プロファイルを有効にするには:
sudo ufw allow 'Squid'
ステータスを確認するには、次のように入力します。
sudo ufw status
出力は次のようになります。
Status: active
To Action From
- - - - - - - - - - - - 22 /tcp ALLOW Anywhere
Squid ALLOW Anywhere
22 /tcp(v6) ALLOW Anywhere(v6)Squid(v6) ALLOW Anywhere(v6)
たとえば、Squidがデフォルト以外の別のポートで実行されている場合`8888`トラフィックがそのポートを通過できるようにすることができます。`sudo ufw allow 8888/tcp`。
Squidを作成したので、最後のステップは、それを使用するようにお気に入りのブラウザーを構成することです。
次の手順は、Windows、macOS、およびLinuxの場合と同じです。
右上隅にあるハンバーガーアイコン ☰
をクリックして、Firefoxメニューを開きます。
⚙設定
をクリックして接続します。
[ネットワーク設定]セクションまでスクロールし、[設定...]ボタンをクリックします。
新しいウィンドウを開きます。
この時点で、Firefoxが構成されています。 Squidプロキシサーバーを介してインターネットを閲覧できます。確認するには、 google.com
を開き、「what is my ip」と入力すると、SquidサーバーのIPアドレスが表示されます。
デフォルト設定に戻すには、「ネットワーク設定」を見つけ、「システムプロキシ設定を使用する」ラジオボタンを選択して、設定を保存します。
Firefoxのプロキシサーバー設定を構成するのに役立つプラグインもいくつかあります。例:[FoxyProxy](https://addons.mozilla.org/en-US/firefox/addon/foxyproxy-standard/)。
Google Chromeは、デフォルトのシステムプロキシサーバー設定を使用します。 [SwitchyOmega](https://chrome.google.com/webstore/detail/proxy-switchyomega/padekgcemlokbadohgkifijomclgjgif)などの拡張機能をインストールするか、ターミナルコマンドラインからChromeWebサーバーを起動することもできます。
新しい設定で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"
Windows:
" C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"^--user-data-dir="%USERPROFILE%\proxy-profile"^--proxy-server="http://SQUID_IP:3128"
この構成が存在しない場合は、自動的に作成されます。このようにして、複数のインスタンスを同時に実行できます。
プロキシサーバーが正しく機能しているかどうかを確認するには、 google.com
を開き、「what ismyip」と入力します。ブラウザに表示されるIPは、サーバーのIPである必要があります。
Ubuntu 18.04にsquidをインストールし、それを使用するようにブラウザーを構成する方法を学習しました。
Squidは、最も有名なプロキシキャッシュサーバーの1つです。 Webサーバーの速度が向上し、ユーザーのネットワークへのアクセスを制限するのに役立ちます。
Recommended Posts