CentOS7にSquidプロキシをインストールして設定する方法

Squidは、HTTP、HTTPS、FTPなどの一般的なネットワークプロトコルをサポートするフル機能のキャッシュプロキシです。 Squidをwebサーバーの前に配置すると、繰り返しの要求をキャッシュし、webトラフィックをフィルタリングし、地理的に制限されたコンテンツにアクセ

このチュートリアルでは、CentOS7でSquidを設定し、プロキシを使用するようにFirefoxとGoogle Chromeのwebブラウザを設定する方法を説明します。

CentOSへのSquidのインストール#

Squidパッケージは、デフォルトのCentOS7リポジトリに含まれています。 インストールするには、sudoユーザーとして次のコマンドを実行します:

sudo yum install squid

インストールが完了したら、Squidサービスを起動して有効にします:

sudo systemctl start squidsudo systemctl enable squid

インストールが正常に完了したことを確認するには、次のコマンドを入力して、サービスの状態を表示します:

sudo systemctl status squid
● squid.service - Squid caching proxy Loaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago...

Squid#

の設定Squidは/etc/squid/squid.confファイルを編集することで設定できます。 設定オプションを持つ追加のファイルは、”include”ディレクティブを使用して含めることができます。

変更を加える前に、cpコマンドを使用して元の設定ファイルをバックアップします:

sudo cp /etc/squid/squid.conf{,.orginal}

ファイルを編集するには、テキストエディタでファイルを開きます:

sudo nano /etc/squid/squid.conf

デフォルトでは、Squidは、サーバー上のすべてのネットワークインターフェイス上のポート3128でリッスンするように設定されています。

ポートを変更してlisteningインターフェイスを設定する場合は、http_portで始まる行を見つけて、インターフェイスのIPアドレスと新しいポートを指定します。 インターフェイスが指定されていない場合、Squidはすべてのインターフェイスでリッスンします。

/etc/squid/squid.conf
# Squid normally listens to port 3128http_port IP_ADDR:PORT

すべてのインターフェイスとデフォルトのポートでSquidを実行することは、ほとんどのユーザーにとって問題ありません。アクセス制御リスト(Acl)を使用して、Squidサーバへのアクセスを制御できます。

デフォルトでは、Squidはlocalhostとlocalnetからのアクセスのみを許可します。

プロキシを使用するすべてのクライアントに静的IPアドレスがある場合、許可されたIpを含むACLを作成できます。

メイン設定ファイルにIPアドレスを追加する代わりに、Ipを保持する新しい専用ファイルを作成します:

/etc/squid/allowed_ips.txt
192.168.33.1# All other allowed IPs

完了したら、メイン設定ファイルを開き、allowed_ipsという名前の新しいACL(最初の強調表示された行)を作成し、http_accessディレクティブ(2番目の強調表示された行)を使用してそのACLへのアクセスを許可します:

/etc/squid/squid。conf
# ...acl allowed_ips src "/etc/squid/allowed_ips.txt"# ...http_access allow localnethttp_access allow localhosthttp_access allow allowed_ips# And finally deny all other access to this proxyhttp_access deny all

http_accessルールの順序は重要です。 必ずhttp_access deny allの前に行を追加してください。

http_accessディレクティブはファイアウォールルールと同様の方法で動作します。 Squidはルールを上から下に読み取り、ルールが一致すると以下のルールは処理されません。

設定ファイルに変更を加えるたびに、変更を有効にするためにSquidサービスを再起動する必要があります:

sudo systemctl restart squid

Squid認証#

Squidは、認証されたユーザーに対するSamba、LDAP、HTTP basic authなど、さまざまなバックエンドを使用できます。

この例では、基本認証を使用するようにSquidを設定します。 これは、HTTPプロトコルに組み込まれた単純な認証方法です。

以下に示すように、opensslを使用してパスワードを生成し、username:passwordペアを/etc/squid/htpasswdファイルにteeコマンドで追加します:

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

たとえば、パスワード”Pz$lPk76“を持つ”mike”という名前のユーザーを作成するには、次のように実行します:

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/htpasswdauth_param basic realm proxyacl authenticated proxy_auth REQUIRED# ...http_access allow localnethttp_access allow localhosthttp_access allow authenticated# And finally deny all other access to this proxyhttp_access deny all

最初の3つの強調表示された行で、authenticatedという名前の新しいACLを作成しています。 最後に強調表示された行は、認証されたユーザーへのアクセスを許可することです。

Squidサービスを再起動します:

sudo systemctl restart squid

ファイアウォールの設定#

ファイアウォールを実行している場合は、ポート3128を開く必要があります。 これを行うには、次のコマンドを実行します:

sudo firewall-cmd --permanent --add-port=3128/tcpfirewall-cmd --reload
Squidが別のデフォルト以外のポートで実行されている場合は、そのポートでトラフィックを許可する必要があります。

プロキシを使用するようにブラウザを設定する#

Squidを設定したので、最後のステップは、それを使用するようにお好みのブラウザを設定することです。

Firefox#

以下の手順は、Windows、macOS、およびLinuxでも同じです。

  1. 右上隅のハンバーガーアイコンをクリックしてFirefoxのメニューを開きます:

  2. ⚙ Preferencesリンクをクリックします。

  3. Network Settingsセクションまでスクロールし、Settings...ボタンをクリックします。

  4. 新しいウィンドウが開きます。

    • Manual proxy configurationラジオボタンを選択します。
    • SquidサーバーのIPアドレスをHTTP Hostフィールドに入力し、3128Portフィールドに入力します。
    • Use this proxy server for all protocolsチェックボックスをオンにします。
    • OKボタンをクリックして設定を保存します。
    Firefox Squidプロキシ

この時点で、Firefoxが設定され、Squidプロキシを介してインターネットを閲覧することができます。 それを確認するには、google.comを開き、「what is my ip」と入力すると、SquidサーバーのIPアドレスが表示されます。

デフォルト設定に戻すには、Network Settingsに移動し、Use system proxy settingsラジオボタンを選択して設定を保存します。

FoxyproxyなどのFirefoxのプロキシ設定を構成するのに役立つプラグインもいくつかあります。

Google Chrome#

Google Chromeはデフォルトのシステムプロキシ設定を使用します。 代わりに、オペレーティングシステムのプロキシ設定を変更するのは、コマンドラインからSwitchyomegaor起動Chromeのwebブラウザなどのアドオンを使用することがで

新しいプロファイルを使用して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"

ウィンドウズ:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" ^ --user-data-dir="%USERPROFILE%\proxy-profile" ^ --proxy-server="http://SQUID_IP:3128"

プロファイルが存在しない場合、プロファイルは自動的に作成されます。 これにより、Chromeの複数のインスタンスを同時に実行できます。

プロキシサーバーが正常に動作していることを確認するには、google.comを開き、”what is my ip”と入力します。 ブラウザに表示されるIPは、サーバーのIPアドレスである必要があります。

結論#

centos7にsquidをインストールし、それを使用するようにブラウザを設定する方法を学びました。

Squidは最も人気のあるプロキシキャッシュサーバーの一つです。 これは、webサーバーの速度を向上させ、あなたが取るのを助けることができますインターネットへのユーザーアクセスを制限します。

Leave a Reply

メールアドレスが公開されることはありません。