Squidによるプロキシサーバー構築手順【Ubuntu】

Squidによるプロキシサーバー構築手順【Ubuntu】 サーバー

この記事の内容は、プロキシサーバーをUbuntuで構築する手順です。
出来る限りでシンプルな方法を採用しています。

また、ユーザー認証ありでプロキシサーバーを構築します。

本記事の内容

  • プロキシサーバーの環境
  • Squidのインストール
  • Squidのポート番号開放
  • ユーザー認証の設定
  • ユーザーの登録
  • プロキシサーバーの機能をブラウザで確認

まずは、今回の記事で出てくる環境についての説明です。

プロキシサーバーの環境

SquidをUbuntuにインストールして、Proxyサーバーを構築します。

  • Ubuntu 18.04
  • Squid Version 3.5.27

Ubuntuは、月額349円のVPSで稼動しています。
契約から利用までの手順は次の記事をご覧ください。

また、初期設定は次の記事の内容を実施済みです。

Ubuntuのバージョン

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"

アーキテクチャ

$ arch
x86_64

もちろん、X86_64で64bitです。

Squidのインストール

インストール

$ sudo apt install squid

バージョン確認

$ squid -v                                                                       
Squid Cache: Version 3.5.27

Squidのポート番号開放

Squidの利用には、3128番ポートを開放する必要があります。
よって、ポート番号3128を開放します。

 $ sudo ufw allow 3128 

確認します。

$ sudo ufw status                                                                            
状態: アクティブ


To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere                  
3128                       ALLOW       Anywhere                  
22 (v6)                    ALLOW       Anywhere (v6)             
3128 (v6)                  ALLOW       Anywhere (v6)  

3128が開放されていますね。

ユーザー認証の設定

Squidは、外部の認証機能を利用できるようになっています。
そのため、ユーザー認証にはBasic認証を利用します。

apache2-utilsのインストール

まずは、Basic認証を行うために必要なapache2-utilsをインストールします。

$ sudo apt install apache2-utils

SquidでBasic認証を行うための設定

Squidの設定ファイルを変更します。

$ sudo vi /etc/squid/squid.conf

993行目以降に以下を追記します。
「acl CONNECT method CONNECT」で検索すれば、992行目に移動可能です。

# 認証用プログラムとユーザー認証ファイルを指定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/.htpasswd
# 認証プロセスの最大数
auth_param basic children 3
# ブラウザで認証プロンプトに表示されるテキスト
auth_param basic realm Proxy Authentication
# 認証が保持される時間
auth_param basic credentialsttl 24 hours
# REQUIREDの指定により、ユーザー認証ファイルに登録されたすべてのユーザーが対象
acl basic_user proxy_auth REQUIRED
# 指定したユーザーによるアクセスを許可
http_access allow basic_user

項目の詳細は、Squidの公式ドキュメントに説明があります。
http://www.squid-cache.org/Doc/config/

個人的な利用を考えているため、認証プロセスの最大数は3とします。
その分、認証が保持される時間を24時間に設定します。

ユーザーの登録

ユーザー認証ファイルを指定して、ユーザーを新規で作成します。
ユーザー名は「testuser」です。

$ sudo htpasswd -c /etc/squid/.htpasswd testuser
New password:
Re-type new password:
Adding password for user testuser

確認します。

$ cat /etc/squid/.htpasswd                                                                        
testuser:$aqr5$aUmPPPCZ$8F9o/FRFVE3Eip6nf8WcV2

ユーザー認証ファイルには、ユーザー名と暗号化されたパスワードが登録されています。

プロキシサーバーの機能をブラウザで確認

確認の前に、変更した設定をSquidに反映しましょう。

$ sudo systemctl reload squid

反映が完了したら、ブラウザで確認します。
プロキシサーバーが正常に動いているかの確認を行います。

確実な確認方法は、実際にプロキシサーバーとして利用することです。

プロキシサーバーをPCに設定する

まず、PCに構築したプロキシサーバーを設定します。
アドレス部分には、サーバーのIPアドレスを入力してください。

プロキシサーバー設定

ブラウザで確認する

ブラウザを起動して、適当なサイトにアクセスしようとしてください。

プロキシ認証のプロンプト

このようなプロンプトが出てきます。
ユーザー登録の際に作成した、ユーザー名とパスワードを入力します。

認証が成功すれば、Squidの設定に問題はないと言えます。
でも、本当にプロキシサーバーを経由しているのか心配になりますよね。

そのようなときは、次のツールを利用しましょう。
「使用中のIPアドレス確認」を確認できるツールです。
https://www.cman.jp/network/support/go_access.cgi

サーバーのIPアドレスが表示されていると思います。
これで、プロキシサーバー経由でアクセスしているのは確定です。

タイトルとURLをコピーしました