前回の投稿「LinuxにSquidProxyServerをインストールする方法」では、Squidサーバーの基本的な紹介とLinuxシステムへのインストールについて説明しました。この投稿では、Squidプロキシサーバーを構成するためのフォローアップを行います。次のトピックについて説明します。
- 別のポートでリッスンするようにSquidを構成する
- Squidプロキシサーバーのホスト名の構成
- Squidキャッシュメモリサイズの設定
- 使用するDNSネームサーバーの指定
- Squidプロキシサーバーの特定のWebサイトへのアクセスを拒否する
- SquidProxyクライアント認証の構成
- Squidプロキシサーバーを介して接続するようにクライアントを構成する
注: この記事で説明するコマンドと手順は、 Ubuntu 20.04 LTSでテストされています。 (Focal Fossa)。 同じコマンドと手順がDebianディストリビューションにも有効です。
前提条件
- UbuntuまたはDebianがインストールされたマシン
- Sudoユーザー
LinuxでのSquidプロキシサーバーの構成
Squidプロキシサーバー構成ファイルは/etc/squid/squid.confにあります。 。リスト。このファイルには、Squidプロキシサーバーを構成するためのディレクティブが含まれています。
別のポートでリッスンするようにSquidを構成する
デフォルトでは、Squidプロキシサーバーはポート3128でクライアントマシンからのトラフィックをリッスンします。ただし、 http_port を使用して、デフォルトポート以外の別のポートでリッスンするように構成できます。 ディレクティブ。
次のコマンドを使用して、イカの構成を編集します。
$ sudo nano /etc/squid/squid.conf
次に、構成ファイルで以下のエントリを見つけます。
注: Ctrl + Wを使用できます 任意の行を検索します。 Ctrl + Wを押してキーワードを入力し、Enterキーを押します。
http_port 3128
ここで、 3128を置き換えます Squidプロキシサーバーがリッスンするポート番号を使用して、たとえば 3155 :
http_port 3155
次に、変更を有効にするためにsquidプロキシサーバーサービスを再起動します。
$ sudo service squid restart
Squidプロキシサーバーのホスト名の構成
Squidプロキシサーバーがそれ自体でマシンのホスト名を判別できない場合は、Squidプロキシサーバーのホスト名を構成できます。ホスト名を構成するには、 visible_hostnameを使用できます 指令。この名前は、エラーメッセージ、内部URL、FTPディレクトリリストなどでSquidによって使用されます。
次のコマンドを使用して、イカの構成を編集します。
$ sudo nano /etc/squid/squid.conf
次に、構成ファイルに次のエントリを追加して、
visible_hostname <host_name>
たとえば、「 linuxways 」をSquidプロキシサーバーのホスト名として使用すると、エントリは次のようになります。
visible_hostname linuxways
構成が完了したら、構成ファイルを保存して終了します。
次に、Squidプロキシサービスを再起動して、構成の変更を有効にします。
$ sudo service squid restart
Squidクライアントがエラーページを受け取った場合、Webページの下部にホスト名が表示されます。
Squidキャッシュメモリサイズの設定
Squidは、頻繁にアクセスするコンテンツをメモリにキャッシュします。 Squidキャッシュメモリのデフォルトサイズは256MBです。 Squidキャッシュメモリのサイズを変更するには、 cache_mem ディレクティブが使用されます。
次のコマンドを使用して構成ファイルを編集します。
$ sudo nano /etc/squid/squid.conf
次に、構成ファイルで次のエントリを検索し、256をキャッシュメモリサイズに設定する量に置き換えます。
cache_mem 256 MB
たとえば、キャッシュサイズを512 MBに設定するには、エントリを次のように変更します。
cache_mem 512 MB
構成が完了したら、構成ファイルを保存して終了します。
次に、squidサービスを再起動して、変更を適用します。
$ sudo service squid restart
使用するDNSネームサーバーの指定
デフォルトでは、Squidは /etc/resolv.confを使用します ドメイン名を解決します。 Squidで別のネームサーバーを使用する場合は、 dns_nameserversを使用して使用できます。 指令。次のコマンドを使用して、イカの構成を編集します。
$ sudo nano /etc/squid/squid.conf
次に、構成ファイルに次のエントリを追加して置き換えます。
dns_nameservers <IP address of DNS server>
たとえば、 8.8.4.4を設定するには ネームサーバーとしてのエントリは次のようになります:
dns_nameservers 8.8.8.8 8.8.4.4
構成が完了したら、ファイルを保存して終了します。
次に、squidサービスを再起動して、変更を適用します。
$ sudo service squid restart
プロキシサーバーへのアクセスの制御
SquidACLの仕組み
アクセス制御の場合、ACLはアクセス制御ディレクティブと組み合わせて使用されます。 ACLだけでは役に立ちません。ACLは、さまざまなルールに基づいてユーザーの要求を識別するのに役立つだけです。アクセスを許可または拒否するために、それらは http_accessと組み合わされます ディレクティブ。
ACLを定義するための構文は、次のとおりです。
acl NAME TYPE value
例: Squidプロキシサーバーを介したLANトラフィックを許可する
LANからのトラフィックを照合する192.168.5.0/24 、Squid構成ファイルにACLルールを作成する必要があります:
acl myacl src 192.168.5.0/24
ACLが定義されると、 http_accessを使用できます。 アクセスを許可/拒否するディレクティブ。 http_accessの構文は次のとおりです。 ディレクティブ:
http_access allow|deny NAME
NAMEは、アクセスを許可/拒否するトラフィックを識別します。
ACLで識別されたトラフィックを許可するには、次の http_accessを追加する必要があります。 Squid構成ファイルのディレクティブ:
http_access allow myacl
インターネットにアクセスするためのプロキシソースの構成
まず、プロキシサーバーを介したインターネットへのアクセスを許可するソースを構成します。たとえば、内部ネットワークからのみプロキシサーバーへのアクセスを許可したい場合があります。
1.許可されたソースを構成するには、squid構成ファイルを編集します。
$ sudo nano /etc/squid/squid.conf
2.次に、エントリ acl localnet srcを検索します。 。
注: Nanoエディターでエントリを検索するには、 Ctrl + wを押します。 、検索する式を入力します。上記の例の場合、 Ctr + wを押します。 acl localnet srcと入力します 次のスクリーンショットに示すように。
3.ここに、さまざまなIPアドレス範囲のエントリ数が表示されます。ここで、次のようにネットワークのエントリを追加します。
acl localnet src subnet_ID/subnet_mask
たとえば、ローカルネットワークは 192.168.72.0/24で実行されます サブネット。この場合、エントリは次のようになります。
acl localnet src 192.168.72.0/255.255.255.0
4. http_accessを使用します ディレクティブ、 localnetという名前のaclによって識別されるソースを許可します 上で定義されています。 http_accessディレクティブは、構成済みですでに定義されています。必要なのは、それを見つけてコメントを外すだけです。
エントリ#http_accessallow localnetを検索します 次に、#を削除してコメントを解除します キャラクター。
http_access allow localnet
次に、squid構成ファイルを保存して終了します。
3.次に、次のコマンドを使用してsquidサービスを再起動します。
$ sudo service squid restart
Squidプロキシサーバーの特定のWebサイトへのアクセスを拒否する
Squidプロキシサーバーの一部のWebサイトへのアクセスを拒否するには、ファイルを作成し、アクセスを拒否するすべてのWebサイトを一覧表示します。
$ sudo nano /etc/squid/deniedsites.acl
次に、アクセスを拒否するサイトをリストし、ファイルを保存して終了します。
…
.msn.com
.yahoo.com
.bbc.com
…
次に、次のコマンドを使用してsquid構成ファイルを編集します。
$ sudo nano /etc/squid/squid.conf
次に、拒否されたWebサイトのACLルールを作成し、拒否されたWebサイトのリストを含むファイルに言及します。
acl denied_sites dstdomain “/etc/squid/deniedsites.acl”
ACLルールdenied_sites 「/etc/squid/deniedsites.acl」にリストされているWebサイト宛てのすべてのリクエストに一致します 」ファイル。
次に、 http_accessを追加する必要があります denied_sitesという名前の上記のACLルールで識別されるWebサイトを拒否するディレクティブ 。 Squid構成ファイルに次の行を追加します。
http_access deny denied_sites
構成が完了したら、ファイルを保存して終了します。
次に、以下のコマンドを使用してsquidサービスを再起動します。
$ sudo service squid restart
Squidプロキシクライアント認証の構成
Squidプロキシサーバーを使用すると、セキュリティのために基本的なユーザーベースの認証を追加できます。そのために、 htpasswdを使用します ApacheHTTPサーバーに付属するプログラム。次に、認証用のユーザー名とパスワードを含むファイルを作成します。
1.まず、Apache2-utilsをインストールする必要があります。これを行うには、次のコマンドを使用します。
$ apt install -y apache2-utils
2. / etc / squidにpasswdファイルを作成します パスワードを保存するディレクトリ:
$ touch /etc/squid/passwd
3.以下のコマンドを使用して、所有権をユーザー「プロキシ」に設定します。
$ chown proxy: /etc/squid/passwd
4.次に、 / etc / squid / passwdにユーザーを追加します ファイル:
htpasswd /etc/squid/passwd tin
パスワードを入力し、再入力して確認します。これで、ユーザーとその暗号化されたパスワードが / etc / squid / passwdに保存されます。 ファイル。
5. /etc/squid/squid.confを編集します 以下のコマンドを使用してファイルを作成します:
$ sudo nano /etc/squid/squid.conf
ファイルに以下の行を追加します:
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwdauth_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
Once you are done with the configurations, save and exit the configuration file.
Squidプロキシサーバーを介して接続するようにクライアントを構成する
このセクションでは、Squidプロキシサーバーを介して接続するようにクライアントを構成します。
1.システムでWebブラウザを開きます。ここでは、 Firefoxを使用します ブラウザ。
2.ブラウザの右上隅に移動し、3つの横棒アイコンをクリックします。次に、オプションをクリックします 。
3.次に、検索バーに「 network」と入力します 。検索結果が表示されたら、[設定]をクリックします 下のスクリーンショットに見られるように。
4.手動プロキシ構成を選択します オプションボタン。次に、SquidプロキシサーバーのIPアドレスをHTTPプロキシに入力します ポートのフィールドとポート番号 分野。また、FTPとHTTPSにもこのプロキシを使用するを確認してください チェックボックス。次に、[ OK]をクリックします 。
ここで、Squidサーバーが機能しているかどうかを確認するために、ブラウザーで任意のWebサイトにアクセスしてみてください。認証ダイアログが表示されます。以前に作成したsquidのユーザー名とパスワードを入力し、 OKをクリックします。 。
これで、リクエストされたWebサイトにアクセスできるようになります。
次に、アクセスリストを使用してブロックした別のWebサイトにアクセスしてみます。ブラウザには、「プロキシサーバーが接続を拒否しています」という次のページが表示されます。
これですべてです。この記事では、LinuxシステムでSquidプロキシサーバーを構成する方法を学習しました。基本的な構成について説明しました。 Squidプロキシサーバーでできることは他にもたくさんあります。詳細については、公式ドキュメントをご覧ください。