2023/08/27(日)自宅鯖その後
浅はかに光クロスを引いたらインターネットから到達可能なIPv4アドレスを失ってしまいました の続き(実際やったのは6月なかごろですが)。
v4からv6 onlyの自宅鯖への繋ぎ方は、L2TPとかNAT46とかいろいろ考えましたが、そも私自身が宅鯖に用がある場合IPv6経由で到達できる環境が(きっと)あるはずで、IPv4からはWEBサーバだけ見えればいい という要件に絞って、普通にHTTPのリバプロを立てる方向でいきます。とりあえず。他の方法は勉強するのはともかく、ちゃんと運用できる自信がない、というのもある……。
肝心の、IPv4を手に入れる方法としては、まぁ普段お仕事で使ってるGCPとかありますけど、GCPはなんか変なトラフィック流されるとパケ死[^1]しちゃう(さもなくばサービス停止)ので、非営利個人が使うにはいまいち怖いんですよね……。そんなにでかいファイルを置いているわけでもないけど、普段の流量を把握しているわけでもなし。今回は他の選択肢、というかまぁレンタルVPSかなぁ……。
[^1]: そういえば全然関係ないですが、パケ死って我々の世代(?)だと、もちろん「高額請求が来る」こと言うと思うんですが、現代では、月あたりの契約容量使い切って低速に制限されることをパケ死って言うらしいですね。(その意味でパケ死が使われてるところを観測したことはないけど)ちょっと面白い。
自宅サーバやる前にレンタルサーバでお世話になっていたさくらと迷いましたが、今回は 清楚かわいいVPS ←クーポン付きアフィリンク を借りてみることにしました。(1回くらい使ってみたかったのと、あとさくらより単に安かった……)
借りたらすぐ使える。管理コンソールがちょっと重い。
とりあえず従量制でRocky Linux鯖を立ててnginxを入れてproxy_passしただけだけど、とりあえずv4からでもこのブログが見えるようになりましたので、まぁこれでいくかということにして、長期クーポンを買って適用。(従量制部分は、利用料17円とかだったかしら)
再び IPv4 環境からも見えるようになりましたー。おわり。
作業内容備忘メモ
nginxサーバ
v4で自身に解決されては困るので /etc/hosts
を書いとく。2405:6581:39e0:b00::77 tu3.jp
コンフィグのテンプレを作るのに便利なサイトがあるんですよ(何?)から nginx.conf 作る。 https://ssl-config.mozilla.org
TLS証明書は、とりあえずオリジンのをそのままコピーして配置した。Let's encrypt だから期限3ヶ月だし、オリジン側のapacheがmod_mdでだいたい2ヶ月毎で自動更新してくれるのを、v4フロントにも同期しないとなのが、ちょっとめんどくささあるかしら。他の選択肢、フロントはフロントでcertbotでも動かすかとも思ったけどIPv4とIPv6で違う証明書が降ってくるのはなんかちょっと気持ち悪さある。他の選択肢、TCP proxyならエッジには証明書要らなくなるけど、それはそれで REMOTE_ADDR まともに機能しなくなっちゃうのが困る。証明書の同期方法は考えよ……
originサーバ側
こっちは apache なので、httpd.conf に RemoteIPHeader と RemoteIPTrustedProxy を書いて、v4経由のアクセスもXFFからIPアドレスなどログが取れるようにしたくらいですね。
ConoHa側ネットワークレベルのファイヤーウォールなど
WEBコンソールからプリセットは選べるようにはなっているけど細かいことはAPIでやってねと書いてある。まぁ、デフォルトでもいいかとか思ったけど、思い通りになるなら思い通りにしたいのが人間。
API自体のリファレンスはあっても、その操作対象となるエンティティの概念があんまり書いてなくて、 セキュリティグループとはなんぞ?状態からだったけど、GAMEの方のマニュアル見ると、ちょっとわかった。
まず「セキュリティグループ」を作って「セキュリティグループ」に(0個以上)「セキュリティルール(いわゆるFWルールの行)」を入れておいて、各「サーバ」に「セキュリティグループ」を(0個以上)アタッチすると、それらのルールがセットでまとめて適用って感じみたい。
API呼ぶの、最初はcurlでちまちまやってたけど、面倒になってググったら ConoHa Net というのがあって、大変便利でした。
v4は80と443、v6は22にするには
./conoha-net create-group v4homefront-ipv4-web
./conoha-net create-rule v4homefront-ipv4-web -d ingress -e IPv4 -P tcp -p 80
./conoha-net create-rule v4homefront-ipv4-web -d ingress -e IPv4 -P tcp -p 443
./conoha-net create-group v4homefront-ipv6-ssh
./conoha-net create-rule v4homefront-ipv6-ssh -d ingress -e IPv6 -P tcp -p 22
./conoha-net attach --name v4homefront v4homefront-ipv4-web
./conoha-net attach --name v4homefront v4homefront-ipv6-ssh
で、たぶんできてる。
そんな自然な感じー
おわりです。