プライバシー · 1 min read · Jan 26, 2026
Squidを使った安全でプライベートなブラウジング
バージョン 1.0
著者: Joe Topjian
SSLをサポートするサイトをブラウジングすることは、誰にもあなたの行動を覗かれないようにする確実な方法です。これは、ウェブでメールをチェックしたり、アマゾンで何かを購入したりするような個人的なことをしているときには良いことです。しかし、日々のニュースを読んだり、映画の上映時間を確認したりするだけの場合、プライバシーはそれほど重要でしょうか?超パラノイアの人はその質問に対して「はい」と答えるでしょうが、ほとんどの人はただ肩をすくめるでしょう。私はその二つの間にいます。家でニュースを読んでいるとき、トラフィックが暗号化されているかどうかは気にしません。しかし、公衆Wi-Fiスポットにいるときは、少し気になります。
インターネットにアクセスできるほとんどの公共エリアには、全くセキュリティがありません。良い目を覚ますために?次回公衆ホットスポットにいるとき、dsniffツールのコピーを取ってみてください。
この記事では、これからあなたを守る方法を示します – 一応。この記事では、ウェブトラフィックを保護する方法だけを示します。次のフライトを待っている間に、AIMでCEOと超秘密の製品について話すことを決めた場合、これはあなたを救うことはありません。もちろん、SquidはHTTP以外の他のアプリケーションのリクエストもプロキシできますが、私がカバーするのはHTTPだけです。別の記事で他のアプリケーションについても触れるかもしれません。
さて、始めましょう。必要なものは以下の通りです:
- 他のネットワーク上でSquidを実行しているサーバー。
- SSHとポートフォワーディングをサポートするラップトップ。
私たちがやることは、現在いるネットワークの外にSquidサーバーを設定することです。Squidはサーバー自身からの接続のみを受け入れます – 外部からの接続はありません。それでは、どうやって使うのでしょうか?SSHトンネルを作成します。トンネルが作成されると、単にウェブブラウザをSSHトンネルのアドレスを持つプロキシサーバーを使用するように設定します。これで、ラップトップからSquidサーバーに出ていくウェブトラフィックは暗号化されます。
しかし、Squidサーバーから実際のウェブページへのトラフィックはどうなるのでしょうか?残念ながら、その部分は暗号化されません。しかし、少なくとも私たちは保護されていないLANの外に安全に出ることができました。
私はSquidサーバーにDebian Sargeを使用しますが、あなたは好きなディストリビューションを使用しても構いません。Squidがインストールされた後、設定は全く同じになります。DebianにSquidをインストールするには、次のコマンドを実行します:
apt-get install squid
Debian(おそらく他のディストリビューションでも)では、デフォルトの設定はlocalhostからの接続のみを許可します。これは何も害を及ぼさないので、そのままにしておきます。しかし、外部から接続する方法が必要です。そのために、パスワードを要求し、認証されれば入れるaclを追加します。「deny all」部分の直前に追加するので、次のようになります:
acl localhost src 127.0.0.1/255.255.255.255
http_access allow localhost
http_access allow password
http_access deny all
デフォルトでは、Squidはポート3128でリッスンします。私は個人的に8080の方が好きなので、次のように変更します:
http_port 8080
次に、Squidの認証を設定する必要があります。Debianパッケージに付属するさまざまな認証方法があり、次のコマンドで確認できます:
ls /usr/lib/squid/*auth
私たちはpam_authモジュールを使用します。これにより、シェルアカウントを持っている人は誰でもSquidサーバーを使用できるようになります。設定ファイル内のauth_paramセクションを検索し、次の行を追加します:
auth_param basic program /usr/lib/squid/pam_auth
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
次に、この行を検索してコメントを解除します:
acl password proxy_auth REQUIRED
次に、/etc/pam.d/squidというpamモジュールを作成し、次の内容を含めます:
auth required /lib/security/pam_unix.so
account required /lib/security/pam_unix.so
このファイルにSUIDアクセスを与える必要がありますので、chmod 4755を実行します。はい、これは最良の方法ではないことは知っていますが、最も簡単な方法です。他の方法については自分で調査しても構いません。
Squidはすべて設定され、準備が整いました。次に、SSH経由でサーバーにシェルアクセスがあることを確認してください。パスワード、パスフレーズ、または空のパスフレーズを使用しても問題ありません。トンネルを設定するには、次のコマンドを実行します:
ssh -L 8080:squidhost:8080 username@squidhost
認証を求められ、成功すればリモートボックスにログインしたように見えます。別のウィンドウを開いて、次のコマンドを入力します:
telnet localhost 8080
これで、リモートサーバーのsquidと通信していることがわかります。
最後に、ブラウザにSSHトンネルをプロキシとして使用するように指示します。ここで各ブラウザについて詳しく説明することはしませんが、基本的には設定のどこかにあります。ホスト名にはlocalhostと入力し、ポートには8080と入力します。
これで、ウェブページをブラウジングするたびに認証を求められます。シェルアカウントの情報を入力すれば、すべて準備完了です。ブラウザが平文での認証について警告を出すかもしれませんが、無視してください。それは私たちのSSHトンネルを通過するので、暗号化されます。
おめでとうございます!これで、誰にも覗かれることなくウェブをサーフィンできます。コメント、修正、またはこの方法を改善する方法があれば、ぜひ教えてください!この文書の元の場所:
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。