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フック関数はルーティングガードを実装します

推薦する

CSS でショートカット プロパティを記述する際は、トラブルの順序に注意してください (落とし穴を避けるため)

ショートハンドプロパティは、複数のプロパティに同時に値を割り当てるために使用されます。たとえば、fo...

携帯電話に GreasyFork js スクリプトをインストールするチュートリアル

目次序文1. Iceraven ブラウザ (Firefox) (Android) 2. (アンドロイ...

初心者向けMySQLシリーズチュートリアル

目次1. 基本概念と基本コマンド1) 基本的な概念2) 基本コマンド2. SQL文の記述順序と実行順...

nginx は画像表示の遅さとダウンロードの不完全さの問題を解決します

前面に書かれた最近、ある読者から、ブラウザからサーバーにアクセスすると、画像の表示が遅く、ブラウザに...

Tomcatのサーバーオプションの詳細な説明

1. 構成デフォルトでは、最初の 2 つはチェックされていないので、チェックする必要があります。 (...

MySQL 同期遅延が発生したときに Seconds_Behind_Master が 0 のままになる理由

目次問題の説明原理分析問題分析拡大する総括する問題の説明ユーザーはプライマリ データベースに対して変...

TypeScript ジェネリックパラメータのデフォルト型と新しい厳密なコンパイルオプション

目次概要コンポーネントクラスの型定義を作成するジェネリック型を使用してPropsとStateを定義す...

Docker-compose ワンクリックデプロイ gitlab 中国語版の方法手順

1. GitLabの紹介Gitlab 公式アドレス: https://about.gitlab.co...

JavaScript イベントバブリング、イベントキャプチャ、イベント委任の詳細な説明

1. イベントバブリング: JavaScript イベント伝播のプロセスでは、要素でイベントがトリガ...

CentOS はローカル yum ソースを使用して LAMP 環境を構築するグラフィック チュートリアル

この記事では、ローカル yum ソースを使用して CentOS 上に LAMP 環境を構築する方法に...

Windows Server 2016 に Oracle をインストールする方法

1. Oracle をインストールします。インターネット上には Oracle のインストール手順が多...

Angular構造ディレクティブモジュールとスタイルの詳細な説明

目次1. 構造指示モジュールforRoot()を書く3. スタイルの定義ドラッグ時の順序を調整するに...

MySQL シリーズ II マルチインスタンス構成

チュートリアルシリーズMySQL シリーズ: MySQL リレーショナル データベースの基本概念My...

Nginx における accept lock の仕組みと実装の詳細な説明

序文nginx はマルチプロセス モデルを使用します。リクエストが届くと、システムはプロセスをロック...

WeChatアプレットのスケルトン画面の実装例

目次スケルトンスクリーンとはアプレットでスケルトン画面を生成する方法導入方法表示と非表示ユーザーエク...