退職は損切りかリスクか。Next.js超入門」のソースがfirebaseのバージョンのせいで動かないので、なんとかするFontAwesomeでSNSのロゴを手に入れようWEBページの余白が消えない!?そんな時はリセットCSSの出番だ【codyhouse】ページスクロールエフェクトを実装したい【オシャレ】FontAwesomeにlinkをつけるCSSの優先順位!!どのセレクタが最強なのかJINテーマの記事内の文字サイズをstyle.cssをいじって修正する不意にCSSだけでおしゃれなボタンを作りたくなったら真似ぶは学ぶ。insquidでフォワードプロキシを構築するsquidを用いてラズパイにフォワードプロキシを構築してみた。ラズパイでは色々遊んでいるので興味がある人は関連の記事もどうぞ。背景らしい背景もないのだが、強いていうならセキュリティの向上だろうか。自宅のIPを固定にしたので、あまり外部に自宅のIPを漏らしたくない、という想いがあった。webサーバーなどを外部に公開している訳ではないので、リバースプロキシではなくまずはフォワードプロキシの構築を試みた次第だ。apacheのmod_proxyを用いるかsquidを用いるかを少し悩んだ。squidがシンプルそうだったので、squidを選択した。できたこと、できなかったことまずはじめにできたことを述べようと思う。僕がやりたかったことの20%くらいしか達成できていないため、タイトルだけだと誤解を招く恐れがあるからである。自宅のIPの隠蔽まあご覧の通りほとんど何もできていない。今後の活動に期待を寄せるばかりである。得られた知見としては、まず自宅のIPを隠蔽したいのであれば、自宅のネットワーク外にプロキシサーバを構築しなければならないということ。企業などで接続するサイトの制限やアクセスログなどを取りたい場合には同じネットワーク内でいい。僕の目的に照らした場合、自宅のネットワーク内に構築したとて、プロキシサーバのIPは隠せないので意味がないのである。プロキシを挟んだHTTPS通信はやや手間がかかりそうである。不可能ではなさそうだ。気が向いたら、構築したい。このご時世にHTTPにのみ対応したプロキシを構築したいという酔狂な方はなかなか稀有だと思われるが、もし該当する場合は引き続き読んでほしい。version10.13.6構築squidのインストール早速ラズパイにsquidをインストールする。squidCopyCopied!squid.confの初期設定/etc/squid/のディレクトリにあるsquid.confファイルに設定を加えていく。・・・わけなんだけれども、恐ろしいくらいこのファイルには記述がある。ほとんどは説明でコメントアウトされているのだが。この説明さえ読めば設定ができると思う。記述を加えるためには見にくいことこの上ない。コメントアウトされている行は全て削除する。/etc/squid/squid.confCopyCopied!viのコマンドでファイルの編集に入る。以下のコマンドを入力し"#"から始まる行≒コメントアウトされている行を全て空行に変換する。:%s/#.*CopyCopied!続いて以下のコマンドを入力し、空行を全て削除する。:v/\S/dCopyCopied!すると以下のように実にスッキリしたファイルになる。4320CopyCopied!いくつか設定を加えていく。順番に設定を加えて変化を見ていくので、手っ取り早く設定したい場合は最後まで飛ばした方がいいかもしれない。localnet"の設定を加える。4320CopyCopied!まあ見たまんまだがlocalnetのアクセスを許可する。具体的にはファイルの初めの8行の設定に関して許可をする。machinesCopyCopied!またファイルにはhttp_portとして3128番が設定されている。必要に応じて変更してほしい。3128CopyCopied!なんとこれで最低限の設定は完了した。viから:wqなどで上書き保存し、閉じる。squidを再起動させ、今加えたsquid.confの設定を読み込ませる。squidCopyCopied!そもそも起動していない場合は以下のコマンド。squidCopyCopied!statusのコマンドを入力し、以下のようにActive:active(running)となっていればsquidが起動している。agoCopyCopied!Mac側の設定ネットワーク環境設定を開く。Wi-Fiを選択し、詳細...をクリック。プロキシのタブからWebプロキシ(HTTP)を選択。WebプロキシサーバのIPアドレス(僕の場合はラズパイのサーバーのアドレス)とportの番号を入力する。入力できたら、右下のOKをクリック。Mac側の設定は完了した。動作の確認プロキシの確認のためには診断くん(http://taruo.net/e/)を利用する。使うサイトは確認くん(https://www.ugtop.com/spill.shtml)だが、HTTPSに対応しているため、今回の構築範囲ではプロキシを確認することができない。アクセスすると以下のような情報が表示される。中程のHTTP_VIAを見ると、ラズパイのsquidを通ってサイトにアクセスしていることがわかる。squidのアクセスログでも確認ができる。/var/log/squid/access.logCopyCopied!上記コマンドを入力した後、再度診断くんにアクセスすると、以下のようなアクセスログが増えるのがわかる。text/htmlCopyCopied!これで最低限のプロキシの設定は完了した。ここからはプロキシへのアクセス元(ここでは僕のMac)の情報を隠蔽していこう。情報の秘匿の設定まずはモロに出ている情報を消していきたい。raspberry(squid/4.6)の2つの情報だ。これは同一のネットワーク内のアクセスのためローカルIPが見えているが、別のネットワークのプロキシサーバにアクセスしている場合は、グローバルIPが見えてしまっていることになる。なんのためのプロキシなのかさっぱりわからないという状況になる。情報を隠すために以下の記述を/etc/squid/squid.confに加える。追加ここまでCopyCopied!squidを再起動しconfの更新を読み込ませ、診断くんにアクセスする。無事に情報が消えている。HTTP_CACHE_CONTROLの情報も隠すことができるらしいので、その設定も追加する。追加ここまでCopyCopied!squidを再起動しconfの更新を読み込ませ、診断くんにアクセスする。HTTP_USER_AGENTの情報も隠すことができるそうだ。ミニマリストもびっくりの断捨離具合である。追加ここまでCopyCopied!squidを再起動しconfの更新を読み込ませ、診断くんにアクセスする。ここまでスッキリしたら、洗濯機や冷蔵庫なども捨ててしまう過激派のミニマリストもにっこりだろう。十分に隠蔽できることはわかったが、色々調べて出てきた設定もまじないとして加えておく。暇があったら、検証してみたい。追加ここまでCopyCopied!まとめHTTPのプロキシサーバを構築したわけだが、僕の使用用途に置いて自宅のネットワーク内に構築することは全く意味のないことだということがわかった。VPN経由で自宅のネットワークにアクセスし、再度インターネットに抜ける際にはプロキシサーバを経由しないこともわかった。今後の課題として以下をあげる。HTTPSの通信に対応すること自宅のネットワーク外にプロキシサーバを構築し、本来の目的を達成することVPN経由でアクセスした際にもプロキシを通ってインターネットアクセスしたい。