RaspberryPiにプロキシサーバ構築

RaspberryPi

RaspberyyPiにプロキシサーバ構築します。

以下のサイトを参考にしました。参考したサイトはNintendo Switchにプロキシサーバの設定をしますが、私はWindows側で設定しています。差異はそのくらいです。

Raspberry PiをHTTP/HTTPSプロキシサーバーにしてみた - Qiita
プロキシサーバーとは、主に**HTTP/HTTPS通信を"代理"(Proxy)**するサーバーのことを言います。 PCやスマホ、ゲーム機のネットワーク設定で、プロキシを設定することでHTTP/HTTPSの通信ログを...

プロキシサーバとは

参考サイトにも書かれていますが、プロキシサーバについて軽く説明しておきます。

プロキシサーバとはインターネットへの接続を代理する機器のことです。

今回の場合だとインターネットに接続されていないWindowsマシンをRaspberryPiを通して、インターネットに接続できるようになります。

メリットとしては、直接インターネットに接続するわけではないのでセキュリティ向上が見込めます。その他にも特定のドメインなどを許可・拒否できるように設定もできるようです。

Squidのセットアップ方法

基本的に参考サイトと同様です。

RaspberryPiをプロキシサーバ化する方法として、Squidというアプリを使います。

まずはSquidをインストールします。

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install squid -y

ちなみに私がインストールしたSquidバージョンは3.5.23です。

pi@raspberrypi:~ $ /usr/sbin/squid -v
Squid Cache: Version 3.5.23
Service Name: squid
Raspbian linux

Squidの設定ファイルについても参考サイトとほぼ同じです。
違う点しては、basic認証を付与している点です。
コメントアウトされている部分は削除しました。あとは、一番上のローカルネットワークの定義の部分を自分の環境に合わせて、残りは削除しています。

#ローカルネットワークの定義
acl localnet src 192.168.1.0/24 # RFC1918 possible internal network

#SSL接続時に 443 ポート以外の CONNECT を拒否
acl SSL_ports port 443
acl CONNECT method CONNECT
http_access deny CONNECT !SSL_ports

#接続先として指定されているポート以外を拒否
acl Safe_ports port 80    # http
acl Safe_ports port 21    # ftp
acl Safe_ports port 443   # https
acl Safe_ports port 70    # gopher
acl Safe_ports port 210   # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280   # http-mgmt
acl Safe_ports port 488   # gss-http
acl Safe_ports port 591   # filemaker
acl Safe_ports port 777   # multiling http
http_access deny !Safe_ports

#ローカルネットワークからのアクセスを許可
http_access allow localnet

#自身からのアクセスを許可
#http_access allow localhost

#basic認証の設定
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwords
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off
acl pauth proxy_auth REQUIRED
http_access allow pauth

#ここまで一致しなかった場合は拒否
#http_access deny all

#キャッシュしないよう設定
no_cache deny all

#Squid が使用するポート
http_port 3128

#core 出力場所の設定
coredump_dir /var/spool/squid

#QueryStringの記録
strip_query_terms off

#Apache風の形式でログを記録
logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %h" "%{User-Agent}>h" %Ss:%Sh
access_log /var/log/squid/access.log combined

basic認証用のアカウントを作成します。

sudo htpasswd -c /etc/squid/passwords <<ユーザ名>>
New password:           #パスワードの入力
Re-type new password:   #パスワードの再入力 
Adding password for user <<ユーザ名>>

入力例: sudo htpasswd -c /etc/squid/passwords test1

以下のコマンドで自動起動設定と設定ファイルの反映をしておきます。

# 自動起動設定
sudo systemctl enable squid.service
# 再起動して設定ファイルの反映
sudo systemctl restart squid.service

RaspberryPIのIPアドレスの固定設定

以下コマンドで、IPアドレスの設定ファイルを開きます。

sudo vim /etc/dhcpcd.conf

以下のように設定しまs。IPアドレスなどは各自の環境に合わせて変更してください。

interface eth0
static ip_address=192.168.0.15/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

設定の完了後は再起動してください。

Windows側のプロキシ設定

IEを立ち上げて『インターネットオプション』を開きます。

接続タブを開きます。LANの設定を開きます。

プロキシサーバーの設定項目をRaspberyyPiのIPアドレスを設定します。ポートについては、設定ファイルで設定したポートを指定します。

以上で設定は完了です。

IEやChromeで適当にYoutubeなどにアクセスして、認証画面が出てくることを確認します。
IDとパスワードを入力してアクセスできることを確認します。

スポンサーリンク

コメント

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