プロキシサーバーとは?構築の際に必要な設定をスクリプトも含めて解説

プロキシサーバーとは?
プロキシサーバーは主に企業内の内部ネットワークのセキュリティを高めるファイヤーウォールの役割や、複数のPCからのインターネットアクセスのトラフィックを軽減するキャッシュ機能などがあります。
プロキシサーバーを構築する際には下記の5つのポイントを意識して作業を行うことで、安定した通信および高いセキュリティで安心したネットワークを構築できます。
1.プロキシサーバーを構築する際の5つのポイント
まず、プロキシサーバーには主に3つの役割があります。ファイヤーウォールといったセキュリティの機能や、複数のPCをまとめて接続する代理アクセス機能、また安定した通信サービスを運用するためのキャッシュ機能があります。
この3つの機能を理解することでプロキシサーバーを構築する際の設定や内容について役立てることができます。
1-1.代理アクセス機能
1つ目の代理アクセス機能は内部ネットワークにある複数台のPCからのインターネットアクセスに代理応答する機能です。企業など組織で複数台のPCがインターネット接続をする際に、セキュリティ面も含めて個別に接続するのではなく、サーバー側でまとめて接続する機能です。
サーバー側でグローバルIPアドレスを取得するため、必要以上のネットワークリソースを用意する必要がなくなります。
1-2.キャッシュ機能
2つ目のキャッシュ機能は、プロキシサーバー側で複数PCのリクエスト情報をまとめてキャッシュを行うことでトラフィックを軽減する機能です。こちらの機能を利用することでインターネットに接続するそれぞれのPCの通信を安定化させることができます。
具体例にはYahooやGoogleなどの検索結果をサーバー側で保存することにより、各PCでの応答結果の重複を減らし安定した通信環境を提供できるようにする機能です。
1-3.ファイヤーウォール機能
3つ目のファイヤーウォール機能は、外部からのハッキングから守る機能などセキュリティに関する機能です。具体的には内部ネットワークではプライベートIPアドレスといって、外部からはプロキシサーバーを介さないと接続できない環境を構築することが可能です。
また逆に、プロキシサーバーを構築することにより内部からのアクセス可能なサイトや通信を制限することで組織内からのセキュリティ向上にも役立ちます。
2.プロキシサーバー用ソフトのSquidについて
プロキシサーバーの構築においてとても重要なソフトであるSquid(スクイッド)は、前述のキャッシュ機能やリバースプロキシ機能のように、内部ネットワーク上のPCのインターネット接続を一元的に管理できます。
主に組織内ネットワークでPCからの接続要求に代理アクセスしたり、接続を許容するIPアドレスの範囲を設定したり利用者認証を行うなどの他に、通信速度の上限を設定するなどの帯域制御を行うこともできます。
3.プロキシサーバー構築の際に必要な3つの豆知識
プロキシサーバー構築の際の設定では主にIPアドレスを使用しサービスの適用範囲などを指定します。また、外部へのアクセスが可能な端末の選定や範囲などもIPアドレスで記述することで一元的に管理されています。
設定の際にIPアドレスの記述方法やその意味について理解しておくことで、正しい設定はもちろん運用の際にもメンテナンスの簡素化やネットワーク安定化に繋がります。
3-1.IPアドレスとは
IPアドレスとは日常で利用するパソコンやサーバーなどネットワーク上の住所にあたるものです。よく目にするもので具体例をあげると、パソコンを始めスマートフォン、タブレット、ノートブックPCなどといったものがあります。
他にも、サーバーやルーター、プリンターやIP電話などにもIPアドレスが利用されています。最近では冷蔵庫など家電品にもIPアドレスが割り当てられ、リモート操作などにも利用されています。
3-2.グローバルIPアドレスとプライベートIPアドレスについて
IPアドレスには大きく分けてインターネット通信などで利用されるグローバルIPアドレスと、企業での内部ネットワークとして利用されるプライベートIPアドレスに分けられます。基本的にインターネットサービスを利用する際にはグローバルIPアドレスがないと通信ができません。
現在ではインターネットに接続できるグローバルIPアドレスの数が枯渇していて、新しい規格のIPv6という規格が注目されています。
3-3.IPアドレスの記述方法
現在世界で使用されているIPアドレス(IPv4)は4つの数字の組合せで、0~255の数字でその端末を特定できるようになっています。表記方法は「0.0.0.0~255.255.255.255」というようにピリオド(.)で区切ります。
コンピューターの内部では2進数で管理されており、0~255ですと「00000000~11111111」というように8ビットの表記で管理されています。
4.SquidでWebプロキシサーバー(CentOS)を構築するには?
今回はLinuxサーバー端末を使用して、プロキシサーバー構築のためのSquidソフトウェアを実際にインストールしています。その際に入力したコマンドやインストールの際に出力されるログなどをコードで表記しています。
なお、OSのバージョンやSquidソフトウェアのバージョンによっては出力された内容に相違がある可能性があります。
4-1.検証環境及び構成について
サーバーのハード構成はインテル系PCを使用し、OSはCentOS 7.9を使用しました。今回利用したプロキシソフトウェアはSquid3.5.20になります。OSは、CentOSインストールディスクからデフォルトでのインストールを行い、各バージョン情報は以下になります。
1
2
3
4
5
6
7
|
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# uname -r
3.10.0-1160.6.1.el7.x86_64
|
4-2.システム構成環境について
プロキシサーバーのサービスとしてファイヤーウォールと公開用Webプロキシサーバーを利用するのが一般的です。
内部ネットワーク上にある複数のPCはファイヤーウォールで守られるとともに外部からのキャッシュ機能でアクセスを安定させ、また社外の公式ホームページやファイル共有サーバー等はDMZといった公開範囲内でのアクセスが可能になる構成です。
4-3.パッケージのインストールについて
それではSquidのRPMパッケージをインストールします。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# yum -y install squid
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.riken.jp
* extras: ftp.riken.jp
* updates: ftp.riken.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ squid.x86_64 7:3.5.20-17.el7_9.5 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
【中略】
インストール中 : 7:squid-3.5.20-17.el7_9.5.x86_64 1/1
検証中 : 7:squid-3.5.20-17.el7_9.5.x86_64 1/1
インストール:
squid.x86_64 7:3.5.20-17.el7_9.5
完了しました!
|
また、以下のコマンドでSquidのバージョンが表示されます。
1
2
3
4
5
|
# squid -v
Squid Cache: Version 3.5.20
Service Name: squid
|
4-4.Squid設定の変更について
viなどのテキストエディタでSquidの設定を編集していきます。
1
2
3
|
# vi /etc/squid/squid.conf
|
内容は以下に記述します。
設定ファイルを編集する際には基本バックアップを作成してから行うのが望ましいです。
バックアップはcpコマンドで簡単に作成できます。
今回のsquid.confは元々バックアップが自動で作成されてますので、バックアップは不要です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
#
# Recommended minimum configuration:
#
# Example rule allowing access from your local networks.
# Adapt to list your (internal) IP networks from where browsing
# should be allowed
#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network
acl localnet src 192.168.10.0/24
acl SSL_ports port 443
#acl Safe_ports port 80 # http
#acl Safe_ports port 443 # https
acl Safe_ports port 80
acl Safe_ports port 443
【中略】
# Squid normally listens to port 3128
#http_port 3128
http_port 8080
# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/spool/squid 100 16 256
cache_dir ufs /var/spool/squid 5000 16 256
【中略】
### 以降はファイルの末尾に追記 ###
# アクセスログフォーマットと出力方法を変更
# 以下の例では、Squidプロセスから直接ファイルにログを出力させず、システムのsyslogソケットに出力させている
# ログ形式は、combinedを指定し、詳細情報を表示させている
access_log syslog:local0.info combined
# 各種セキュリティ対策
# プロキシアクセス元クライアントの情報を隠蔽する
visible_hostname unkown
forwarded_for off
request_header_access X-Forwarded-For deny all
request_header_access Via deny all
request_header_access Cache-Control deny all
request_header_access Referer deny all
|
記述を見ていただくとわかるように、編集する際には元々の記述を#でコメントアウトし新しい設定を追加する形式で編集することをおすすめします。
5.実際に運用を考慮した場合に必要な設定について
プロキシサーバー構築の際に必要な設定はこちらのsquid.confを編集することで完了します。設定を反映させるためにはこの後ログの設定やログローテーション、カーネルのパラメーターチューニング、その後にファイヤーウォールの設定を行いサービスを起動することで設定は完了です。
また、プロキシサーバー側だけではなくPC側でプロキシの設定をすることで、どの端末でも同じようにサービスを利用できます。
プロキシサーバー構築に関するまとめ
プロキシサーバーには内部ネットワーク上のPCをとりまとめてインターネットに接続する役割や、外部から内部ネットワークのPCの情報を守るファイヤーウォールといったセキュリティ機能があります。
また、プロキシサーバーを構築する際にはSquidというサーバーソフトを設定することで新たに開発を行わず手軽に目的が実現できます。
解説した内容を参考に、ぜひプロキシサーバーについて理解を深めてください。
ネプラス株式会社はサービス開始から10年以上
『エンジニアの生涯価値の向上』をミッションに掲げ、
多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
インフラ業界に特化
ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
-
正社員なのにフリーランスのような働き方
正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
-
大手直取引の高額案件
案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
-
スキルアップ支援
不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
-
現給与を保証します!※
前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。

