Linux で Squid プロキシ サーバーを構築するための完全な手順

Linux で Squid プロキシ サーバーを構築するための完全な手順

序文

この記事では、Linux で Squid プロキシ サーバーを設定することに関する関連コンテンツを主に紹介します。詳細な紹介を見てみましょう。

実験環境:

イントラネット Web サーバー (およびイントラネット クライアント) として機能する Linux ベースの Web サーバー 202.100.10.100

Linuxシステムはゲートウェイサーバーとして機能し、2つのネットワークカードがあり、ルーティング転送192.168.133.131と202.100.10.1が有効になっています。

Linux ベースの Web サーバーは外部 Web サーバー (および外部クライアント) として機能します 192.168.133.131

実験手順:

1. イントラネット Web サーバー、ゲートウェイ サーバー、およびエクストラネット Web サーバーの IP アドレスを構成し、ゲートウェイのルーティング転送を有効にし、ゲートウェイのファイアウォールをオフにして、イントラネット Web サーバーとエクストラネット Web サーバー間の接続をテストし、相互に通信できることを確認します。

2. イントラネットWebサーバーとエクストラネットWebサーバーのWebサービスをインストールし、サービスを開始して、新しいテストページを作成します。

3. 外部Webサーバーにアクセスするイントラネットクライアントと、イントラネットWebサーバーにアクセスする外部クライアントをテストします。

4. イントラネットクライアントが外部Webサーバーにアクセスする

5. 外部ネットワーククライアントが内部ネットワークのWebサーバーにアクセスする

ファイアウォール SNAT と DNAT

1. イントラネットクライアントが外部Webサーバーにアクセスする

2. 外部ウェブサーバー上のログを表示する

テール -f /var/log/httpd/access_log 

3. ゲートウェイでアドレス変換を設定する

iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eth2 -j SNAT --to-source 202.100.10.1

または、iptables -t nat -A POSTROUTING -s 192.168.133.0/24 -o eth2 -j MASQUERADE

4. イントラネット クライアントから外部 Web サーバーに再度アクセスし、外部 Web サーバーをチェックして、ログ ファイルに記録されている IP がイントラネット クライアントの IP ではないことを確認します。

DNAT:

1. ゲートウェイ上で設定し、イントラネット Web サーバーをゲートウェイの外部ネットワーク インターフェイスにマップします。

iptables -t nat -A PREROUTING -i eth2 -d 202.100.10.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.133.131

2. ゲートウェイの外部ネットワークインターフェースIPにアクセスする(実際にはイントラネットWebサーバーにアクセスする)

3. イントラネットウェブサーバーのログファイルを表示する

Squid プロキシサーバー

1. ゲートウェイサーバーでsquidプロキシサーバーを設定し、squidをインストールします。yum install -y squid

1.1 従来のプロキシサーバー

Squidサービスを開始します。service squid start

squid.conf設定ファイルでは、デフォルトですべてのプライベートIPが通過できるため

1.2 イントラネットクライアントにブラウザを設定し、プロキシに参加してテストする

外部サーバーのログ ファイルを確認すると、IP がプロキシ サーバーの IP であることがわかります。

1.3 ゲートウェイサーバーのプロキシサーバーを閉じて再度テストします。次の図は、クライアントがプロキシサーバーを介して外部Webサーバーにアクセスしていることを示しています。

2. 透過プロキシサーバー

2.1 ゲートウェイサーバーで設定し、透過プロキシを設定してキャッシュを有効にします。vim /etc/squid/squid.conf

http_port 192.168.133.130: 3128 透過 #192.168.133.130 はイントラネットインターフェース IP です

キャッシュディレクトリ ufs /var/spool/squid 100 16 256

iptables -t nat -A PREROUTING -i eth1 -s 192.168.133.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128 # -i インターフェースはイントラネットインターフェースです -s はイントラネットセグメントに従います -j は REDIRECT (リダイレクト) に従います

2.2 Squidサービスを再起動し、イントラネットクライアントでテストし、前のテストでブラウザによって設定されたプロキシをキャンセルします。透過プロキシはクライアントで設定する必要はありません。

2.3 外部ウェブサーバー上のログを表示する

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • Linux でパッケージから Docker CE をインストールする方法の詳細な説明
  • Linux に Docker をインストールして使用する方法
  • Linux での Docker のインストールと設定のチュートリアル
  • Linux での Docker のインストールと使用方法のチュートリアル
  • Linux DockerにWordPressをインストールする方法の詳細なチュートリアル
  • Linux で crontab を使用してスケジュールされたタスクを追加する方法
  • Linux のタイムドログ削除を実装する簡単な方法
  • Linuxのアラーム機能の例の説明
  • DockerでMySQLコンテナを作成する簡単な手順
  • LinuxにDockerをインストールする(非常に簡単なインストール方法)

<<:  LinuxにMySQLデータベース5.6のソースコードをインストールし、ログインユーザーのパスワードを変更する

>>:  vue-routerフック関数はルーティングガードを実装します

推薦する

vue3 のコンポーネントの互換性のない変更の詳細な説明

目次機能コンポーネント非同期コンポーネントの書き方とdefineAsyncComponentメソッド...

CSS3で実装された6つの境界遷移効果

6つの効果実装コードhtml <h1>CSS 境界遷移</h1> <セ...

Linux exa コマンド (ls よりも優れたファイル表示エクスペリエンス)

インストールREADMEに従ってインストールしてくださいドキュメントには、exa は Rust で実...

Dockerを使用してSonarQubeをインストールする詳細なチュートリアル

目次1. イメージをプルする1.1 関連するイメージをプルして実行する1.1.1 関連する画像を取得...

mysql5.7のインストールとNavicateの長期無料利用の実施手順

(I) mysql5.7のインストール: ❀詳細:無料のグリーンバージョン5.7のインストール方法は...

Celery と Docker を使用して Django で定期的なタスクを処理する方法

Django アプリケーションを構築して拡張していくと、必然的に特定のタスクをバックグラウンドで自動...

Alibaba Cloud OSS によってアップロードされた Nginx プロキシ転送実装コード

序文ミニプログラムのアップロードには https が必要なので、サーバーの https は lets...

Linux でのソース パッケージ インストールのサービス管理

目次1. ソースパッケージサービスの起動管理2. ソースパッケージサービスのセルフスタート管理3. ...

JavaScript を使用してハイパーリンクのリダイレクトを防ぐ方法 (複数の書き方)

JavaScript を使用すると、ハイパーリンクがジャンプするのを防ぐことができます。方法は次の...

Dockerデータのバックアップとリカバリプロセスの詳細な説明

データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...

初心者向け入門講座⑧:記事サイトを簡単に作る

前回の投稿では、Web ページの作成方法について説明しました。Web サイトは多くの Web ページ...

ミニプログラムカスタムタブバーコンポーネントのカプセル化

この記事の例では、ミニプログラムのカスタムタブバーコンポーネントをカプセル化するための具体的なコード...

jQueryチェーン呼び出しの詳細な説明

目次チェーン呼び出し小さなケースチェーン呼び出しjQuery オブジェクトが任意のメソッド (ノード...

MySQL での一時テーブルの使用例

ここ2日間ちょっと忙しくて、公式アカウントも数日更新が止まってしまいました。その結果、何人かの読者か...

Vueはページを更新するために3つの方法を使用する

プロジェクトを作成しているときに、ユーザーがアクションを実行し、特定の状態を変更し、ページを更新して...