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

推薦する

MySQLのダウンロードとインストールのプロセスの詳細な説明

1: MySqlをダウンロードする公式サイトのダウンロードアドレス: https://dev.mys...

MySQL ビューの原則と使用例の概要

この記事では、MySQL ビューの原理と使用法についてまとめます。ご参考までに、詳細は以下の通りです...

MySQL 5.7.21 のインストールと設定方法のグラフィックチュートリアル (ウィンドウ)

ウィンドウ環境にmysql5.7.21をインストールします。詳細は次のとおりです。 1. MySQL...

div を下から上にスライドさせる CSS3 の例

1. まず、CSS3 のターゲット セレクターを使用し、a タグを使用して id セレクターを指定し...

innodb_flush_method 値メソッド (例の説明)

innodb_flush_methodのいくつかの典型的な値 fsync: InnoDB は fs...

HTML シンプルショッピング数量アプレット

この記事では、参考までにシンプルなHTMLショッピング数量アプレットを紹介します。具体的な内容は次の...

Dockerの匿名マウントと名前付きマウントの具体的な使用法

目次データ量匿名マウントと名前付きマウントデータボリュームの場所データ量匿名マウントと名前付きマウン...

XHTML 1.0 リファレンス

機能別に並べ替えNN: このタグをサポートする Netscape の以前のバージョンを示しますIE:...

MySQL データベース グループ クエリの group by ステートメントの詳細な説明

1: グループ化関数の記述順序 1 選択 ... 2 から ... 3 どこで ... 4 グループ...

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

この記事では、主に Linux で MYSQL データベースをインストールする方法について説明し、M...

Windows 64 ビットに MySQL を再インストールするチュートリアル (Zip バージョン、解凍バージョンの MySQL インストール)

MySQLをアンインストールする1. コントロールパネルで、MySQLのすべてのコンポーネントをア...

Docker コンテナのログを表示およびクリーンアップする方法 (テスト済みで効果的)

1. 問題Docker コンテナのログにより、ホストのディスク領域がいっぱいになりました。 doc...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

Uniappの小規模プログラム開発経験

1. 新しいUIプロジェクトを作成するまず、私たちの UI は ColorUI に基づいています。C...

MySQLにおける正規表現の一般的な使用法

MySQL における Regexp の一般的な使用法特定の文字列を含むあいまい一致# コンテンツフィ...