退職は損切りかリスクか。Next.js超入門」のソースがfirebaseのバージョンのせいで動かないので、なんとかするFontAwesomeでSNSのロゴを手に入れようWEBページの余白が消えない!?そんな時はリセットCSSの出番だ【codyhouse】ページスクロールエフェクトを実装したい【オシャレ】FontAwesomeにlinkをつけるCSSの優先順位!!どのセレクタが最強なのかJINテーマの記事内の文字サイズをstyle.cssをいじって修正する不意にCSSだけでおしゃれなボタンを作りたくなったら真似ぶは学ぶ。inラズパイ4とsoftetherで自宅にVPNサーバを構築するこんにちは。僕がラズパイ4とsoftetherを使ったVPNサーバで実現したいことは3点です。自宅以外の場所から自宅のVPNサーバ経由でインターネットにアクセスする自宅以外の場所から自宅のファイルサーバ等の情報資産にアクセスする上記の構築を通して、インフラの知識を深める1について実装できたので、備忘録的に書きます。serverとの接続を設定iPhoneやAndroidで動作を確認2番のVPNserverの自動起動の設定と、5番のラズパイのネットワーク設定(ブリッジの設定)が驚くほどスタックしました。ネットに転がっている情報が少し古いものが多く、エラーの解消に手間取りました。自宅のIPを固定化2022/2/7追記これまで固定IPで利用してきましたが、固定IPのサービスを提供していないau光でも問題なく動作しています。確実性という点では固定IPサービス利用時に比べ下がるかもしれませんが、無理に申し込まなくてもVPN構築できます!光回線を契約する自宅のIPを固定化して、インターネット経由で自宅にアクセスできるようにします。これはそれぞれのISPにて設定していただく必要があります。固定IPサービスを提供していないプロバイダもあるようなので、注意が必要ですね。私が使用しているのはSo-net光で、固定IPサービスに対応しています。固定IPサービスは回線費用に追加で1,320円/月支払うことになります。勉強代として払いますが、痛い出費ですね。Airなどでインターネットに接続している場合、固定IPを振ることができないと思います。Airを契約していましたが、使用が混み合う夜間に速度が絞られることに我慢ができなくなり、違約金を払って解約しました。So-net光は僕の住んでいるマンション内のケーブリングが十分ではなく、100Mbpsに制限されていますが、平均的に下り80~90Mbpsくらいはあります。これを機に光回線に乗り換えるのは、いいと思いますね。ラズパイでVPNサーバーを作ろうという人がへぼいWi-Fiを使っているとは思いにくいけどね。固定IPサービスを申し込む固定IPサービスに対応している回線が引けたら、あるいは引けていれば固定IPサービスに申し込みます。各ISPによってサービスの名称や申し込みかたは違うと思いますので、調べて申し込みしてください。ちなみにSo-net光はマイページ>ご契約サービスのご利用状況>サービスを追加>固定IPアドレスと選択していき、申し込みにたどり着けます。ちなみに申請すると即座に固定IPが割り当てられます。固定IPが発行されたら、自宅のルータのWAN側に固定IPを設定しましょう。IPv6に対応していますし、IEEE802.11acの通信規格に対応していて、まあまあコスパがいい。僕が買った時は12,000円くらいだったのに、今amazon見たら、7,200円だったwずっと同じルーターを使い続けていて、なんだかインターネットの速度が出ないという場合、ルーターが原因である可能性があるので、見直してみることをオススメします。192.168.xx.yyなど各自のルータのIPをブラウザに入力し、ルータにアクセスします。管理画面を開いたら、WANインターフェイスにユーザー名、パスワードを入力します。インターネット接続タイプ:PPPoEユーザー名:固定IPで新たに発行されたものパスワード:固定IPで発行されたものSo-netの場合は以下のように、固定IPサービス専用のユーザーIDとパスワードが発行されます。https://www.so-net.ne.jp/option/staticip/setting/ルーターによって設定に差はあると思いますが、WAN側のインターフェイスを発行された固定IPに設定します。設定できたら、確認くん(https://www.ugtop.com/spill.shtml)などでIPアドレスを確認します。これで固定IPが表示されていると、WAN側に固定IPを割り振ることができています。serverをインストールします。ほとんど公式ドキュメント(https://ja.softether.org/4-docs/1-manual/7/7.3)を見ながらの作業になります。Serverをダウンロードsoftetherのダウンロードページ(https://www.softether-download.com/en.aspx?product=softether)からソフトウェアのダウンロードを行います。(32bit)僕のダウンロード時は、Ver4.32が最新だったので、このtar.gzファイルをダウンロードする。ダウンロードしたtar.gzファイルをtarコマンドで展開する。後ほど作成されたvpnserverのフォルダは適切なディレクトリに配置するので、tarコマンドを実行する対象のtar.gzファイルは今はどこでも(ダウンロードフォルダでも)構わない。softether-vpnserver-v4.34-9745-beta-2020.04.05-linux-arm_eabi-32bit.tar.gzCopyCopied!tarコマンドを実行すると「vpnserver」というフォルダが作業ディレクトリに作成される。serverをインストールする前準備として、vpnserverの実行可能ファイルを作成する。tarコマンドを実行して作成された「vpnserver」のディレクトリに移動して、makeコマンドを実行する。makeCopyCopied!makeを実行すると、何度か質問されるので、回答していきます。number:1CopyCopied!ライセンスを読みますか?という質問に対しては、「1」と回答し、ライセンスを確認しましょう。ライセンスの中身が表示された後、理解の有無を尋ねられますので「1」と回答します。承認するか否かを尋ねられますので、「1」と回答します。number:1CopyCopied!3回ほど「1」と回答すると、vpnserverのプログラムの生成が開始します。上記のvpnserverのプログラムの生成が完了したら、tarコマンドを実行した際に、作成された「vpnserver」のフォルダを/usr/local/のディレクトリに移動します。/usr/localCopyCopied!/usr/local/のディレクトリに「vpnserver」のフォルダを移動できたら、chmodコマンドで権限を書き換えて保護しましょう。vpnserverCopyCopied!動作確認ここまでできたら、まず動作できるかの事前確認を行いましょう。toolsを起動すると、動作環境をチェックしてくれます。Toolsコマンドの使用を選択します。Tools>checkCopyCopied!checkを実行すると、カーネル系、メモリ操作系、ファイルシステム、スレッド処理システム、ネットワークシステムがそれぞれチェックされ、全て合格と表示されました。Serverが正常に動作しそうだと確認できました。startなどのコマンドで起動することができるわけですが、ラズパイを再起動する度にいちいちコマンドを打ち込むのはなかなか厳しいものがあります。自動起動を設定します。systemdにデーモンプロセスを登録していきましょう。vpnserver.serviceのファイルを作成します。/usr/lib/systemd/system/vpnserver.serviceでvpnserver.serviceファイルを編集します。次にvpnserver.serviceファイルの7行目の/usr/lib/systemd/system/vpnserver.shのシェルスクリプトファイルを作成します。$tapCopyCopied!~~色々調べたところ、tapデバイスをブリッジするために4,5行目を記載していたのだが、「すでにブリッジに登録されている」旨のエラーが発生したため、コメントアウトしました。自動起動のスクリプトは全てVPNserverのセットアップしてから最後に設定したためだと思います。この4,5行目を記載するために、shファイルを作成したのだが、結局コメントアウトしたので、何をしているのかわからないw(※startのスクリプトだけならvpnserver.serviceに書いた方が断然いい)~~とりあえず、上記のような中身で進めることにします。ラズパイのネットワーク設定のところでコメント外すことになります。この段階ではエラーが発生するので、コメントアウトのままでいいです。無事にsystemctlのコマンドを実行し、登録ができたら、念のために確認しておく。以下のコマンドを入力し、enabledになっていればデーモンプロセスとして登録されていることがわかりますね。CopyCopied!動作確認では、実際にOSの再起動を行い自動的にプロセスが起動し、VPNのセッション待機状態になっているかを確かめよう。rebootを実行する。rebootCopyCopied!再起動したら、以下のコマンドを入力し、ステータスを確認する。(running)になっていると、起動に成功している。-xeのコマンドを入力し、遡ると割と明確にエラーが表示されていることが多い。そのようなファイルはありません。原因箇所が特定できることが多い。enableのコマンドでエラーがでた場合は、以下の記事も参考になるかもしれない。serverを設定ここからは一旦ラズパイから離れ、別のPCでの作業となります。managerをダウンロードsoftetherのダウンロードページ(https://www.softether-download.com/en.aspx?product=softether)からソフトウェアのダウンロードを行います。Manager.appを起動します。Settingを選択します。入力ができたら、OKをクリックします。今settingした接続先を選択し、Connectをクリックします。Setupここからはガシガシと簡易セットアップを行なっていきましょう。Serverを選択し、Nextをクリック。確認画面が表示されるので、「はい」を選択する。serverが初期化されるで。ほんまにええんか?です。設定ができたら、OKをクリックします。以下のように色々と設定してきます。作成した仮想HUBを選択。作成していない場合は、先に5.仮想HUBの作成から行ってください。Bridgeをクリック。「はい」を選択し、Exitをクリック。入力できたら、OKをクリック。Hostnameをクリック。設定ができたら、Exitをクリック。設定ができたら、OKをクリック。bridge(ローカルブリジッジ)の設定で仮想HUBを選択しているので、すでに作成できている場合、特に新しい設定は必要ない。設定ができたら、OKをクリック。serverの設定は終了です。Deviceが追加されているか確認しましょう。ラズパイで以下を実行します。Name]が確認できました。manegerでのセットアップは完了したので、再びラズベリーパイ上での作業となる。以下コマンドを入力し、etc/dhcpcd.confにbr0の設定を行う。/etc/dhcpcd.confCopyCopied!ファイルの最後に以下のように記載。domain_name_servers=192.168.xx.zzCopyCopied!ip_address:ラズパイのIPアドレスを指定。domain_name_servers:ルーターのIPアドレスを指定。※もしeth0の設定がコメントアウトになっていない場合(eth0に固定IPを設定している場合)は、コメントアウトしeht0のstaticIPを設定を解除する。以下のようなコマンドを入力。/etc/network/interfacesCopyCopied!ファイルの中身は、wlan0、eth0にはIPは振らない。ローカルループバックは設定。br0に固定IPを振る。10CopyCopied!address:ラズパイのIPアドレスを指定。etc/dhcpcd.confの値と合わせる。managerで設定した値にしておくと、何かと都合がいい。簡単に変えられるからそれほど問題ではないけど。gatewy:ルーターのIPアドレスを指定。etc/dhcpcd.confのroutersの値と同じ。設定ができたら、再起動をかける。rebootCopyCopied!再起動できたら、ifconfigでbr0に指定した固定IPが振られているか確認を行う。192.168.xx.yyのように自分の指定したIPアドレスが振られていれば、OKです。続いてブリッジの設定を行うために、bridge-utilsのインストールをする。bridge-utilsCopyCopied!br0とeth0をブリッジ接続する。eth0CopyCopied!コマンドを実行したら、念のために確認する。eth0CopyCopied!tapデバイスも同様にブリッジの設定を行う。ここでようやく/usr/lib/systemd/system/vpnserver.shのファイルのコメントアウトしていた部分を外そう。$tapCopyCopied!再起動し、ブリッジを確認する。enabledinterfacesbr08000.5ea60457423bnoeth0tap_bridge1CopyCopied!eth0とtap_bridge1がbr0に接続していることが確認できた。serverとの接続を設定ルーター⇄ラズパイ間のポートの解放を行う。使用しているルーターによって設定が異なるので、以外とここは難しいかもしれない。ここではTP-Linkの場合の設定を記載する。仮想サーバーの設定ブラウザでルーターにアクセスする。TP-LinkではNAT転送のタブから仮想サーバーの設定を行う。500番のポートの4500番のポートを設定する。続いて、同じくNAT転送のタブからALG(アプリケーションレイヤーゲートウェイ)の設定を行う。L2TPパススルーとIPSecのパススルーを有効化。名称の多少の違いこそあれど、iPhoneやAndroid、MacOS、WindowsOSに限らず、設定する項目はほぼ同じである。念のために入力する項目が、設定したどの項目に紐づくのかを確認しておこう。ホストネームは右側のxxxx.softether.netというものがそうである。UserNameやPasswordは以下の画面で設定した。keyは下記画面で設定した。上記の内容を正しく入力すれば、VPNサーバに接続することができる。Configuration...をタップ。managerで設定したDNSのHostnameを入力。managerで設定したUserのPasswordを入力。くん(https://www.ugtop.com/spill.shtml)などを利用して、VPN接続できているか確認する。VPN接続し、確認くんのIPアドレスが自宅の固定IPになっていれば成功。3AndroidもiPhoneとほぼ同じですが、一応接続の方法を見ていく。managerで設定したDNSのHostnameを入力。