Squid は、さまざまな構成と用途を持つ Web プロキシ アプリケーションです。 Squid には多数のアクセス制御があり、HTTP、HTTPS、FTP、SSL などのさまざまなプロトコルをサポートしています。この投稿では、Squid を HTTP プロキシとして使用する方法について説明します。
セットアップ
Squid はかなり古く、成熟した、一般的に使用されているソフトウェアです。通常、さまざまな Linux ディストリビューションのデフォルト パッケージとして出荷されます。
この投稿のセットアップ:
192.168.10.2 - is our proxy server. 192.168.10.3 - Will redirect/cache traffic via the proxy server.
squid プロキシのインストール
squid プロキシに必要なパッケージをインストールすると、起動時に squid サービスが自動的に開始されます。
# yum install squid # systemctl enable squid # systemctl start squid
最新の openssl バージョンがない場合、以下のエラーが表示される場合があります
Job for squid.service failed because the control process exited with error code. See "systemctl status squid.service" and "journalctl -xe" for details.
確認するには、以下のコマンドを使用して openssl のバージョンを更新してください:
# yum update openssl
これで、quid サービスを開始できます。
# systemctl start squid
squid プロキシの設定
デフォルトでは、squid プロキシはポート 3128 でリッスンします。一部の企業ではセキュリティ上の予防措置となる可能性があるため、このポートを変更することができます。 squid 設定ファイル /etc/squid/squid.conf を編集します このポートを変更する場合は、ポート 3128 の http_port ディレクティブを変更します。これはテスト セットアップであるため、ポートは同じままにします。
# vim /etc/squid/squid.conf # Squid normally listens to port 3128 http_port 3128
変更を有効にするために、squid サービスを再起動してください。
# systemctl restart squid
squid プロキシ プロセスが開始されているかどうかを確認します。
# ps -ef | grep squid root 5403 1 0 03:21 ? 00:00:00 /usr/sbin/squid -f /etc/squid/squid.conf squid 5405 5403 0 03:21 ? 00:00:00 (squid-1) -f /etc/squid/squid.conf squid 5406 5405 0 03:21 ? 00:00:00 (logfile-daemon) /var/log/squid/access.log root 5448 5158 0 03:24 pts/0 00:00:00 grep --color=auto squid
また、squid プロキシがポート 3128 でリッスンしているかどうかも確認できます。
# ss -nlp | grep squid | grep 3128 tcp LISTEN 0 128 :::3128 :::* users:(("squid",pid=5405,fd=11))
また、有効になっている場合は、firewalld でポート 3128 を許可する必要があります。または、firewalld を完全に無効にすることもできます。
# firewall-cmd --add-port=3128/tcp --permanent
squid を使用するようにクライアント サーバーをセットアップする
# export http_proxy=http://${PROXY_FQDN}:8080
リモート サーバーでプロキシに接続できることを確認するには、google.com に対して curl を実行します。
# curl -v http://google.com | head -1 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* About to connect() to google.com port 80 (#0) * Trying 2607:f8b0:4009:804::200e... * Connected to google.com (2607:f8b0:4009:804::200e) port 80 (#0) > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: google.com > Accept: */* > < HTTP/1.1 301 Moved Permanently < Location: http://www.google.com/ < Content-Type: text/html; charset=UTF-8 < Date: Wed, 05 Jun 2019 07:28:26 GMT < Expires: Fri, 05 Jul 2019 07:28:26 GMT < Cache-Control: public, max-age=2592000 < Server: gws < Content-Length: 219 < X-XSS-Protection: 0 < X-Frame-Options: SAMEORIGIN < { [data not shown] 100 219 100 219 0 0 3145 0 --:--:-- --:--:-- --:--:-- 3173 * Connection #0 to host google.com left intact