この記事の内容は、プロキシサーバーを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アドレスが表示されていると思います。
これで、プロキシサーバー経由でアクセスしているのは確定です。