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
次に、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の公式ドキュメントをご覧ください。