通行の妨げになる防火壁から華麗に逃げる方法

# はじめに
高専生歴３年のこーいちです。情報工学科でちまちまプログラミングしています。

最近はもっぱら技術バイトをしていて、とっても楽しいので、みんなも一回は技術バイトしてみようね:thumbsup:

あと、これは木更津高専AdventCalender 12/24 の記事です。ほかの方のもぜひ見てくださいね
（と思ったけど、僕がアンカーのようです。25暇な人多いと思うんですけどね）
# お題紹介
さて、いきなりですが日ごろよく目に見かける**防火壁**ってものありますよね？

> 建築基準法に定められた区画で、火災時に火炎が急激に燃え広がることを防ぐためのものである。準耐火建築物及び耐火建築物に求められるもので、技術的基準は建築基準法施行令第112条に定められている。(中略)
>
>防火区画と似た概念が防火壁である。これは、準耐火建築物でも耐火建築物でもない、一定以上の面積の建築物に備えられる。建築基準法第26条に規定され、技術的基準が建築基準法施行令第113条に定められている。
(wikipedia 「防火区画」 より)(なぜか、防火壁はなかった)

というものであり、学校などでは必ず作ると法律で決まっており、よく見かけるのも納得というわけです。

様々なところにある、防火壁ですが実生活において役に立つことはなくむしろ、無くてもよいもののように思われます。そんなこんなで、今回は、実生活における邪魔者、防火壁から華麗に逃げる方法をお伝えしたいと思います。

:::note alert
とはいえ、防火壁は有事の際に、ひじょーに役に立つものでありますので（昨今のニュースを見てるとソフトのアップデートしろよ。。。みたいなところはありますが）、**自前で建築した防火壁、もしくはお勉強ていど**で使ってみるようにしてください。許可されてないところで使って怒られても私は責任とりませんよー
:::
それでは、やっていこう！

# 用意するもの
* @hogehoge.ac.jpのメールアドレス
* ネットワークにつながったパソコン１台
* sshとか、vpnとかがなんとなくわかる知識

# 何するかを軽く説明

さて、防火壁から華麗に逃げるためには、いくつか方法があります。
ぱっと思いつくものは、
* sshポートフォワーディング
* http or socks proxy
* vpn

こんなところでしょうか？

::: note
火災と関係ないことを察してください。立場上こういう言い方になります
:::

まず、sshポートフォワーディングはそれ単体ではやはり通信ができないですし（http proxyと組み合わせる必要が）
proxyも平文で流れると防火壁が邪魔してきます。また、ゲームなど複数のポートを使う場合はやはり楽ということ今回はVPNを選びました。

そいで、次に、どのvpnを使うのかというところです。

問題は２つほどあります
1. 金がないのでタダのやつ
2. 80,443ポートでも通信できて、HTTPパケットに偽装できるもの

これでピンとくるでしょう。
そう、この条件といえば、SoftEtherを使うのがベスト！というわけです。

なぜベストなのかは後程。。

それでは、今回の目標は、**softether vpn server を作って華麗逃げる**ということにします。

# １．土台を用意しよう

serverというわけですから、なんらかのサーバーを用意する必要があります。
自宅で、ラズパイ鯖を作ってもいいですが、筆者はAzureを使うことを勧めます。

理由1. クラウドがはやっているから（ふんわり
理由2. ipアドレスが変えやすいから

長時間、帯域を占有しているとときに、防火壁の点検に消防署の方から来た人が我々が華麗に逃げているのに気づいてしまうことがあります。そんな時、そのアクセス先のipアドレスをブラックリストに入れて通信できなくされることがあるんですよね。
もし、家に鯖を置いてる場合、おおよそグローバルIPを変更するのは大変なことでしょう。
でも、クラウドならちょちょいのちょい！

::: note
あと、みなさんazureのクレジット$100もらえるんで、お得ってのもあります
(円安なので14000円くらい使える。円安サイコー！)
:::

さて、こっからやり方を解説かと思いましたが、力尽きました。ということで参考リンクを提示します。
ここを見れば、全てわかる。。

まずは、azureで仮想マシンを作りましょう。（ここは、他のサイトをｇｇっていただき。。。）

https://portal.azure.com

::: note warn
以下のことに気を付けてください！
* b1lsのインスタンスにすること（ほかのは金がかかる）
* 22,443ポートを開けておくこと（sshできたら、ポートは変えときましょう）
* 秘密鍵のダウンロードを忘れないこと
* OSはubuntuにする
* standard hdd or ssdにすること（少しの節約）
* **リージョンをEast Japan or West Japanにすること！！**（pingとかパケロスがひどくなります）
:::

さて、ここまでできたら
sshしてインスタンスに入りましょう。ここまでできたら、実はもうだいたい終わりです。この先は誰でもできます。

# 2. ソフトをインストールしよう

**このサイトを見れば行ける！！！！！！！！👇**

https://qiita.com/honahuku/items/7be170ffe36405fc5c88

二番煎じしても仕方ないので、こちらを見てください。

::: note warn
以下のことに気を付けてください！
* CUIでSoftEtherServerの設定をしているが、GUIでやった方が楽
* グローバルIPは、ifconfigで必ず調べること
:::

# なんで、規制を回避できるの？
さてみなさん、快適なネットライフを送れているでしょうか？冷静に考えるとこれで、規制を回避できるのは不思議ですよね？

どうやってこれを実現しているかを答えましょう！

## 1. 443ポートを介して通信してくれるから
皆さん、**ポート**って知ってますか？アプリケーションというのは、一つの端末にたくさん動いています。そのため、アプリケーションごとに、情報をやりとりする窓口を決めています。それがポートです。例えば、SSHなら22、HTTPなら80みたいにですね。
管理者としては、ウイルスが **The Internet(ジ・インターネット)** と通信するのを防ぎたいわけですから、アプリが開ける窓口を制限します。現状、80,443ポートといったWebサイトを見るためのポートしか空いてないところが多いと思います。つまり、ゲームなどは80,443以外で窓口を開けないわけです。**困ったなぁ！**

そんなときに、VPNは役立ちます。VPNは自動で、開いた窓口で通信してくれるようにデーターを加工してくれるんですね。正確に言うと、パケットをTCPでカプセル化して、443ポートを通して送ることができます。こうして、窓口を開けるところから通信して、データが無事サーバーに到達するわけですね。ゲームの通信も、Softetherが勝手に、空いてる窓口から通信してくれるので、できるようになるってわけです。

ちなみ、Softetherを選んだ理由はこれをHTTPでカプセル化してくれるからというのがあります。なにせ、HTTPを使ってで443にアクセスされたらブラウザでネットサーフィンしてるんだろーなと思うにきまってます。これにより、超強力な防火壁も余裕で攻略できます。**これは、公式も言っていること**なので、面白いです。

余談ですが、このSoftetherは、けしからんで有名な「登 大遊」さんが作り始めたものです。この開発がもととなり、経産省とひと悶着あったりしたそうですが、そこらへんもぜひ面白いので調べてみてください。

## 2. 宛先が規制されていないから
管理者は宛先を制限して、許可されていないアクセス先の場合は通信を拒否します。もちろんゲームなどは規制対象です。
例えば

https://www.minecraft.net/

https://5ch.net/

ここら辺は、ダメなアクセス先に指定されていると思います。
しかし、VPNのサーバー（自前のもの）は知られていない確率が高いので、ばれずに通信できるわけです。

ただ、通信ができるとはいえ使いすぎると、使いすぎ！という理由でブロックされることもあるようなので、それによりそのIPにアクセスできなくなる可能性は十分にあります。


# まとめ
このようなネットワークの話は、結構おもしろいですし、実務で役に立ちます（僕が現在一番役に立った授業ランキング１位がネットワークの授業です）
興味がわいたらぜひ、TCP/IPに関する本を読んでみるといいと思います。

最後にかけて、文が雑になりすみません。燃え尽き症候群です
ほかのみんなの記事はすげーので、ぜひご覧ください

**今更ですが、今日が誕生日です。おめでとうの代わりにLGTMをお送りください。**

明日はちゃんと用事がありますので、これくらいで終わりにしたいと思います。
みなさんが、良いクリスマスと、年末と2023年を快適なネットライフで過ごせますように

閲覧ありがとうございました。