GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu20.04にSquidプロキシサーバーをインストールする方法

Squidは、トラフィック、セキュリティ、DNSルックアップのフィルタリングに主に使用されるフル機能のLinuxベースのプロキシアプリケーションです。また、リソースをキャッシュすることにより、Webサーバーのパフォーマンスを向上させるためにも使用されます。簡単に言うと、Squidサーバーは、デスクトップコンピューターとインターネットの間の仲介役として機能するコンピューターであり、受信クライアントの要求をサーバーにリダイレクトします。サーバーでは、データを簡単に取得できます。 HTTP、FTP、TLS、SSL、Internet Gopher、HTTPSなどのいくつかのプロトコルをサポートしています。

このチュートリアルでは、Ubuntu20.04サーバーにSquidプロキシサーバーをインストールしてセットアップする方法を示します。

前提条件
  • Ubuntu20.04を実行しているサーバー。
  • ルートパスワードがサーバーに設定されます。
はじめに

開始する前に、システムパッケージを最新バージョンに更新する必要があります。次のコマンドで更新できます:

apt-get update -y

すべてのパッケージが更新されたら、システムを再起動して変更を適用します。

Squidプロキシをインストールする

デフォルトでは、SquidパッケージはUbuntu20.04のデフォルトリポジトリで利用できます。次のコマンドを使用してインストールできます:

apt-get install squid -y

Squidをインストールしたら、次のコマンドでSquidサービスのステータスを確認できます。

systemctl status squid

次の出力が得られるはずです:

? squid.service - Squid Web Proxy Server
     Loaded: loaded (/lib/systemd/system/squid.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-23 12:00:24 UTC; 11s ago
       Docs: man:squid(8)
    Process: 49265 ExecStartPre=/usr/sbin/squid --foreground -z (code=exited, status=0/SUCCESS)
    Process: 49282 ExecStart=/usr/sbin/squid -sYC (code=exited, status=0/SUCCESS)
   Main PID: 49283 (squid)
      Tasks: 4 (limit: 2353)
     Memory: 16.4M
     CGroup: /system.slice/squid.service
             ??49283 /usr/sbin/squid -sYC
             ??49285 (squid-1) --kid squid-1 -sYC
             ??49287 (logfile-daemon) /var/log/squid/access.log
             ??49288 (pinger)

Aug 23 12:00:24 ubuntu2004 squid[49285]: Max Swap size: 0 KB
Aug 23 12:00:24 ubuntu2004 squid[49285]: Using Least Load store dir selection
Aug 23 12:00:24 ubuntu2004 squid[49285]: Set Current Directory to /var/spool/squid
Aug 23 12:00:24 ubuntu2004 squid[49285]: Finished loading MIME types and icons.
Aug 23 12:00:24 ubuntu2004 squid[49285]: HTCP Disabled.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Pinger socket opened on FD 14
Aug 23 12:00:24 ubuntu2004 squid[49285]: Squid plugin modules loaded: 0
Aug 23 12:00:24 ubuntu2004 squid[49285]: Adaptation support is off.
Aug 23 12:00:24 ubuntu2004 squid[49285]: Accepting HTTP Socket connections at local=[::]:3128 remote=[::] FD 12 flags=9
Aug 23 12:00:25 ubuntu2004 squid[49285]: storeLateRelease: released 0 objects

デフォルトでは、Squidはポート3128でリッスンしています。次のコマンドで確認できます:

netstat -plunt | grep 3128

次の出力が表示されます。

tcp6       0      0 :::3128                 :::*                    LISTEN      50017/(squid-1)

終了したら、次のステップに進むことができます。

IPベースの認証を設定する

クライアントがインターネットにアクセスするのを制限する方法はいくつかあります。このセクションでは、クライアントのIPアドレスに基づいて認証するようにSquidを設定します。

Squidのデフォルト設定ファイルを編集することでそれを行うことができます:

nano /etc/squid/squid.conf

ファイルの先頭に次の行を追加します。

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
http_access allow client1 client2

終了したら、ファイルを保存して閉じます。次に、Squidサービスを再起動して、変更を適用します。

systemctl restart squid

場所:

  • client1 およびclient2 クライアントコンピュータを識別する名前です。
  • 192.168.10.10 および192.168.10.11 クライアントコンピュータのIPアドレスです。

現在、IP192.168.10.10および192.168.10.11で構成されているコンピューターのみがインターネットにアクセスできます。

ユーザーベースの認証を設定する

ユーザーとパスワードに基づいて認証するようにSquidを設定することもできます。そのためには、システムにApacheutilsパッケージをインストールする必要があります。

次のコマンドを実行して、Apacheutilsパッケージをインストールします。

apt install apache2-utils -y

インストールしたら、次のコマンドを使用して最初のユーザーを作成します。

htpasswd /etc/squid/passwd client1

以下に示すように、パスワードを設定するように求められます。

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

次に、次のコマンドを使用して2番目のユーザーを作成します。

htpasswd /etc/squid/passwd client2

以下に示すようにパスワードを設定します:

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

次に、次のコマンドを使用して両方のユーザーを確認できます。

cat /etc/squid/passwd

次の出力が得られるはずです:

client1:$apr1$CPlx8eVt$NJq3CT/hzfDCnAZRypIq5/
client2:$apr1$XYxQ2npc$IW0Nqjp15O5WYCo/wCFlB0

次に、Squidのデフォルト構成ファイルを開きます。

nano /etc/squid/squid.conf

前のセクションで追加した最初の3行を削除し、ファイルの先頭に次の行を追加します。

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

ファイルを保存して閉じます。次に、Squidプロキシサービスを再起動して変更を適用します。

systemctl restart squid

次に、インターネットにアクセスするためにユーザー名とパスワードを入力する必要があります。

複合認証の設定

IPアドレスとユーザー名/パスワードに基づいてクライアントを認証するようにSquidを設定することもできます。

Squidのデフォルト設定ファイルを開きます:

nano /etc/squid/squid.conf

前のセクションで追加した次の行を見つけます。

auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow ncsa_users

そして、それらを次の行に置き換えます。

acl client1 src 192.168.10.10
acl client2 src 192.168.10.11
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwd
acl ncsa_users proxy_auth REQUIRED
http_access allow client1 client2 ncsa_users

終了したらファイルを保存して閉じ、Squidサービスを再起動して変更を適用します。

systemctl restart squid
トラフィックを匿名化するようにSquidを設定する

次に、SquidHTTPプロキシからトラフィックを受信するサーバーからクライアントIPアドレスをマスクするためのルールを追加する必要があります。

Squidのデフォルト設定ファイルを編集することでそれを行うことができます:

nano /etc/squid/squid.conf

ファイルの先頭に次の行を追加します。

forwarded_for off
request_header_access Allow allow all
request_header_access Authorization allow all
request_header_access WWW-Authenticate allow all
request_header_access Proxy-Authorization allow all
request_header_access Proxy-Authenticate allow all
request_header_access Cache-Control allow all
request_header_access Content-Encoding allow all
request_header_access Content-Length allow all
request_header_access Content-Type allow all
request_header_access Date allow all
request_header_access Expires allow all
request_header_access Host allow all
request_header_access If-Modified-Since allow all
request_header_access Last-Modified allow all
request_header_access Location allow all
request_header_access Pragma allow all
request_header_access Accept allow all
request_header_access Accept-Charset allow all
request_header_access Accept-Encoding allow all
request_header_access Accept-Language allow all
request_header_access Content-Language allow all
request_header_access Mime-Version allow all
request_header_access Retry-After allow all
request_header_access Title allow all
request_header_access Connection allow all
request_header_access Proxy-Connection allow all
request_header_access User-Agent allow all
request_header_access Cookie allow all
request_header_access All deny all

終了したらファイルを保存して閉じ、Squidサービスを再起動して変更を適用します。

systemctl restart squid

Squidプロキシを確認する

次に、MozillaWebブラウザでプロキシサーバーを定義する必要があります。

クライアントシステムに移動し、Mozilla Webブラウザーを開いて、編集をクリックします。 =>設定 以下に示すように:

ネットワークをクリックします 設定 セクションをクリックし、設定をクリックします 。次のページが表示されます:

手動を選択します プロキシ 構成 ラジオボタンで、SquidサーバーのIPアドレスを[HTTPホスト]フィールドに入力し、 3128 [ポート]フィールドで、[すべてのプロトコルにこのプロキシサーバーを使用する]チェックボックスをオンにして、[ OK]をクリックします。 ボタンをクリックして設定を保存します。

これで、ブラウザはSquidプロキシを介してインターネットを閲覧するように設定されました。

確認するには、URLhttps://www.whatismyip.com/を入力します。以下に示すように、ユーザー名とパスワードを入力するように求められます。

以前に作成したSquidプロキシサーバーのユーザー名とパスワードを入力し、 OKをクリックします。 ボタン。次のページが表示されます:

上記のページには、クライアントコンピューターのIPアドレスではなく、SquidサーバーのIPアドレスが表示されているはずです。

結論

おめでとう!これで、Ubuntu20.04サーバーにSquidプロキシサーバーが正常にインストールおよび構成されました。単語、ドメイン、IPに基づいて特定のWebサイトを制限するようにSquidプロキシを構成することもできます。詳細については、Squidの公式ドキュメントをご覧ください。


Ubuntu
  1. Ubuntu14.04サーバーにZimbra8.6をインストールする方法

  2. Ubuntu18.04LTSにSquidプロキシサーバーをインストールする方法

  3. Ubuntu14.04にSquidプロキシサーバーをインストールします

  1. CentOS7にSquidプロキシサーバーをインストールする方法

  2. Ubuntu18.04にSquidプロキシサーバーをセットアップしてインストールする方法

  3. Ubuntu20.04にSquidプロキシをインストールして構成する方法

  1. Ubuntu18.04にMySQLをインストールする方法

  2. Ubuntu18.04にMinecraftサーバーをインストールする方法

  3. Ubuntu20.04にNginxをインストールする方法