はじめに
システム管理者は、SquidProxyを使用してコンテンツ配信を強化します。 Squid Proxyを使用すると、サーバーは頻繁にアクセスするWebページをキャッシュできます。
どのように?ユーザーがWebページまたはファイルを探すと、要求はプロキシサーバー(デスクトップコンピューターとインターネットの間の中間デバイス)に送信されます。プロキシサーバーは、新しいデータをキャッシュし、同じサーバーに対して行われる将来のリクエストに使用することで、リソースを取得してユーザーに中継します。
このガイドでは、 CentOS7でSquidProxyサーバーをセットアップ、構成、およびインストールする方法を学習します。
前提条件
- CentOSオペレーティングシステム
- ターミナルウィンドウ/コマンドラインへのアクセス(Ctrl-Alt-T)
- rootまたはsudo権限を持つCentOSユーザー
- yumパッケージインストーラー 、デフォルトで含まれています
- vimなどのテキストエディタ
CentOSにSquidプロキシをインストールする手順
ステップ1:CentOSソフトウェアリポジトリを更新する
リポジトリを更新して、最新のソフトウェアバージョンで作業していることを確認してください。
ターミナルウィンドウを起動し、次のように入力します。
sudo yum -y update
ステップ2:CentOSにSquidパッケージをインストールする
Squidをインストールするには、次のように入力します。
yum -y install squid
次に、次のコマンドを入力してSquidを起動します。
systemctl start squid
起動時に自動開始を設定するには:
systemctl enable squid
サービスのステータスを確認し、以下を使用します:
systemctl status squid
以下の例では、状態が「アクティブ」であることがわかります。
Squidプロキシサーバーの構成
Squid構成ファイルは/etc/squid/squid.confにあります。
1.お好みのテキストエディタ( vim )でファイルを開きます この例では使用されました}:
sudo vi /etc/squid/squid.conf
2.移動してhttp_portオプションを見つけます 。通常、これはポート3218でリッスンするように設定されています 。このポートは通常、TCPトラフィックを伝送します。システムが別のポートのトラフィック用に構成されている場合は、ここで変更します:
プロキシモードを透過に設定することもできます Squidがリクエストとレスポンスを変更しないようにしたい場合。
次のように変更します:
http_port 1234 transparent
3. http_acacess deny allに移動します オプション。
現在、すべてのHTTPトラフィックをブロックするように構成されており、以下に示すようにWebトラフィックは許可されていません。
これを次のように変更します:
http_access allow all
4.次のように入力して、Squidサービスを再起動します。
sudo systemctl restart squid
Squidクライアントの構成
これで、Squidプロキシサーバーが構成されました。クライアントサーバーを構成するには、クライアントマシンに切り替えて、Webブラウザを開きます。
Firefoxを使用している場合、プロキシ設定は次の場所にあります:
メニュー>オプション>ネットワーク設定>設定
手動プロキシ設定のラジオボタンを選択します。
SquidプロキシをホストしているシステムのIPアドレスを使用します。
テストするには、https://whatismyipaddress.com/ip-lookupにアクセスしてください。 IPアドレスがプロキシサーバーのIPアドレスとして表示されます。
アクセス制御リスト(ACL)を作成する
プロキシサーバーのローカルネットワーク外の接続については、アクセス制御リスト(ACL)を構成する必要があります。これは、「接続を拒否しました」というエラーが発生した場合に必要になることがあります。
この問題を解決するには、新しいACLエントリを使用して安全なポートのリストに追加するだけです。
/etc/squid/squid.confを編集します もう一度ファイルします。次のように新しい行を追加します:
acl localnet src 192.166.0.10
これにより、このIPアドレスのシステムのみが接続できるようにするルールが作成されます。
ルールを識別するために行にコメントを付けます。 #記号の後のテキストはSquidによって無視されます。
acl localnet src 192.166.0.10 # test computer
次のようにIPアドレスの範囲を指定できます。
acl localnet src 192.166.0.10/30
Squidプロキシポートを開く
特定のポートを開くには、次を追加します。
acl Safe_ports port 123 # Custom port
変更を保存するには、Squidを再起動します:
systemctl restart squid
プロキシ認証の設定
Squidは、他のタイプの認証をサポートするとともに、基本認証を提供します。
まず、 httpd-toolsをインストールします 次のコマンドを使用します:
yum -y install httpd-tools
ツールをインストールしたら、新しいファイルを作成します。
touch /etc/squid/passwd && chown squid /etc/squid/passwd
パスワードを作成するには、次のコマンドを使用します:
htpasswd /etc/squid/passwd newuser
‘を交換します newuser ‘ ユーザー名を使用します。
「newuser」のパスワードを入力して確認するように求められます。
プロキシサービスを再起動し、次のように挿入してブラウザを再度開きます。
systemctl restart squid
/etc/squid/squid.confを編集します ファイルを作成し、次のコマンドラインを追加します。
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_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
これ以降、Linuxプロキシサーバーに接続すると、ユーザー名とパスワードの入力を求めるプロンプトが表示されます。認証されていない人は、エラーメッセージによって停止されます。
Squidプロキシを使用してWebサイトをブロックする方法
1.新しいテキストファイルを作成および編集します/etc/squid/blocked.acl 次のように入力します:
sudo vi /etc/squid/blocked.acl
2.このファイルで、ブロックするWebサイトをドットで始めて追加します:
.facebook.com
.twitter.com
ドットは、メインサイトのすべてのサブサイトをブロックすることを指定します。
3. /etc/squid/squid.confを開きます 再度ファイルする:
sudo vi /etc/squid/squid.conf
4.ACLリストのすぐ上に次の行を追加します。
acl blocked_websites dstdomain “/etc/squid/blocked.acl”
http_access deny blocked_websites