当サイトではIT・Web系技術、メタバースなどの情報提供を目的とします。
個人的な技術ブログなども投稿する予定です。

LightSail上でメールアドレス配信をSESで有効化する

こんにちは。ゆーろんです。 今回はLighSail上のWordPress環境からAmazon SESを使用してメールを送信させる方法をまとめます。 お問い合わせフォームの設置にはGoogle Formを埋め込む、LightSailにメールサーバ機能を追加するなどの方法もありますが Amazon SESを使用したほうがセキュリティ的にも良いのでSESを採用します。 目次 AmazonSESとは 実装の目標と手順 Identifyの作成 ドメインの検証 メールアドレスの検証 SMTPクレデンシャルの作成 テストメールの送信 WP Mail SMTPの設定 AmazonSESとは Amazon SES(Amazon Simple Email Service)はAWSが提供する電子メールサービスの1つです。 既存ドメインまたは既存のメールアドレスを利用して、メール配信をすることができます。 特徴としては以下の通りです。 信頼性と高い配信性能 メールの監視と管理が可能 低価格 実装の目標と手順 WordPressからSESを利用して特定のメールアドレスにお問い合わせ内容を送信できるようにする。 なおメール受信は行わず送信専用とする。 手順は以下の1から4を実施。 Identifyの作成 AWS SESのダッシュボード右より「検証済み ID」を選択。 ドメインの検証 SESのダッシュボード右「IDの作成」にて以下パラメータでIdentityの作成を行う。 IDタイプ: ドメイン ドメイン: Route53またはLightSailで設定してあるドメインを記載 DKIMの詳細設計 IDタイプ: Easy DKIM DNSレコードのRoute53への発行: 有効化 DKIM署名: 有効化 上記設定でドメインのID作成を行う。 Route53で設定してあるドメインを設定する場合数分以内に検証済みになる。 メールアドレスの検証 ドメインの検証と同様に「IDの作成」にて以下パラメータでIdentityの作成を行う。 IDタイプ: Eメールアドレス Eメールアドレス: 送信先の存在する実際のメールアドレスを設定 上記設定でメールアドレスのID作成を行う。 SMTPクレデンシャルの作成 SESのダッシュボード右「SMTP設定」にて「SMTP認証情報の作成」を選択。 画面に従いSMTP認証用のIAMユーザを作成し、作成後最後に表示されるSMTPユーザ名とSMTPパスワードをメモする。 テストメールの送信 AWS SESのページより「検証済み ID」を選択。 ドメインにチェックを入れて「テストEメールの送信」でメールが送れるかテストを行う。

【第1回】CTFをやってみる ksnctf

こんにちは。ゆーろんです。 記録がてら、CTFの備忘録をぼちぼち書いていきます。 ぼちぼち解くことを目指すので複数日またぐこともあると思いますが、よろしくお願いします。 目次 問題 解いてみる 1日目 2日目 感想 問題 国内では有名な ksnctf です。 今回の問題は以下です。 Login - ksnctf http://ctfq.u1tramarine.blue/q6/ https://ctfq.u1tramarine.blue/q6/ http://ctfq.u1tramarine.blue/q6/ https://ctfq.u1tramarine.blue/q6/ ログインフォームのURLが2つ与えられています。 ここからFLAGの文字列をどうにかして取得するということです。 解いてみる 1日目 まず入力フォームといえばSQLインジェクションが思い浮かびます。 ということで定番の” or 1=1 —を入れてみます。 以下のように表示されます。 上記コードから2点の脆弱性が確認できます。 パスワードが平文で保存されている プリペアドステートメントが実装されていない またコードからはidパラメータ入力においてSQLの条件文を満たせば写真ページが表示されることがわかります。 つまり直接パスワード自体をSQLでそのまま直接取得して表示することは厳しそうです。 2日目 SQLインジェクションにはいくつか種類があるようです。 HTTPレスポンス/リクエストなどを見た限り特に何もないようなので ここでSQLインジェクションを深めます。 インバウンドSQLインジェクション エラーベースSQLインジェクション UNIONSインジェクション ブラインドSQLインジェクション マルチブルステートメント 調べる限り、ブラインドSQLインジェクションという手法が怪しそうでした。 ブラインドSQLインジェクション Webサーバへ何種類かまたは複数のデータを送信した際のレスポンスや動作からデータベースの情報を分析する手法 ブルートフォースでやみくもにFLAG_hogehoge…と総当たりするのも大変なのでパスワードの断片情報から求めます。 まずパスワードの文字数を求めてみます。 SELECT * FROM user WHERE id="" or (SELECT length(pass) FROM user WHERE id = "admin") > 30 -- $id" AND pass="$pass" 上記のSQLとなるようにひたすらフォームに入力して調べ、Congratulationsとページが出るところを探します。

Vagrant+VirtualBoxで仮想サーバ構築①Webサーバ編

こんにちは、ゆーろんです。 今回はVagrant+VirtualBoxでWebサーバをローカルで建ててみますので、手順をまとめます。 目次 説明 VirtualBoxとは Vagrantとは AlmaLinuxについて 環境 構築手順 Vagrant+VirtualBoxの設定 AlmaLinuxの設定 おまけ 説明 初めに今回の使用技術とAlmaLinuxに関して説明します。 VirtualBoxとは ホスト型の仮想化ソフトウェア。 Vagrantとは 一言でいうと仮想マシンなどを簡単に構築/操作するためのソフトウェア。 VirtualBoxやVMwareを直接操作せずともエージェントとして操作できる。 ちなみにTerraformと同じHashiCorp製。 Vagrant by HashiCorp Vagrant by HashiCorp AlmaLinuxについて RHELのクローン。 サーバ用Linuxの事実上の標準だったCentOSの開発終了に伴い、AlmaLinuxまたはRockyLinuxに移行するケースが多い模様。

【AWS】WordPressをLightsail+CloudFrontに移行した話

こんにちは、ゆーろんです。 今回は今回はレンタルサーバで動いていた当ブログ(yuuronacademy.com)をAWSのLightSail上に移動(お引越し)させたので、そのことに関してお話ししようと思います。 目次 使用したAWSのサービス LightSail CloudFront Route53 ACM 構築したアーキテクチャ 構築にあたっての小話 使用サービス サービス システム 基盤環境 アクセス解析 今後に関して 使用したAWSのサービス まず、今回利用したAWSのサービスに関して簡単に説明します。 LightSail AWS LightSailはAWSが提供しているVPS(仮想プライベートサーバ)です。 仮想マシンのEC2と異なり、VPCやサブネット等の作成も不要で、月額料金なためコスト見積もりしやすい特徴があります。 CloudFront AWS CloudFrontはAWSが提供しているCDN(コンテンツデリバリネットワーク)です。 サイトコンテンツ(静的・動的なウェブコンテンツ、ビデオ、アプリケーションデータなど)をAWSの管理する世界中のエッジサーバに配置することで効率的にデータを配信することができます。 CDNとは キャッシュサーバなどで構成されたシステムを用いることによって、Webサイト上のコンテンツを迅速にユーザに届けるための仕組み。 通常のWebサイトでは、コンテンツを配信するためのサーバの処理能力やネットワークの帯域幅などの影響で、沢山のユーザーがWebサイトにアクセスするとレスポンスが低下する。 また、物理的に離れた場所からのアクセスに対してネットワーク遅延によりレスポンスが低下する場合がある。そういったものに対処するための仕組みといえる。 Route53 AWS Route53はAWSが提供しているDNS(Domain Name System)です。 Route53ではドメインの登録やDNS、ロードバランサの機能などサイトアクセスのための様々なDNS機能を提供しています。 ゆーろん Route53の名前の由来はDNSのポート番号が53だからなのかな? ACM AWS Certificate ManagerはAWSが提供しているSSL/TLS証明書のサービスです。 AWS上でホストされるウェブサイトやアプリケーションに対して、暗号化通信を実現するためのSSL/TLS証明書の取得、管理、自動更新を行うことができます。 構築したアーキテクチャ 今回AWSで構築したリソースのインフラ構成図は概ね以下の通りです。 見ての通りLIghtSail+CloudFrontの構成となっています。 HTTPS化にALBの利用などをする方法もありますが、料金を抑えるためにCloudFrontでSSL終端を行う構成にすることにしました。 SSL終端構成により「サーバへ直接クライアントのアクセスをさせない」、「CloudFrontによるキャッシュ/高速化」を実現しています。 またサイトへのアクセスステップは以下のようになっています。 HTTPSによるアクセス(:443) Route53 CloudFront(:80) Route53 Static IP(Lightsail) 構築にあたっての小話 サイトのインフラ基盤の管理にあたって当初Terraformを利用することを計画し、以下のように実行可能なコードを作成をしました。 GitHub - yuron3141/aws-lightsail-tf: This repo is to create the wp lightsail instance with the terraform. GitHub This repo is to create the wp lightsail instance with the terraform. - yuron3141/aws-lightsail-tf 上記コードをAWS Cloud9上で利用し.tfstateはS3で管理するというものです。

話題の「手のひらネットワーク機器」レビュー

こんにちは。ゆーろんです。 先日からインフラ界隈で話題になっている。カプセルトイの「手のひらネットワーク機器」を入手してきたのでレビューしようと思います。 ゆーろん サイト運営者は大学ではネットワークの研究室に所属していたよ~(実機は見たけどコロナの関係で触れる機会がありませんでした) 目次 開封レビュー フィギュアのモデルとネットワークの小話 【A10】Thunder 7655S 【Cisco】C9300-48UXM 【Cisco】MX85 【古河電工】FITELnet FX2 ネットワーク機器の国内シェア 各ネットワーク機器に関して AGW L3スイッチ ルータ まとめ 開封レビュー 入手したのは下記のものです。 ITインフラをもっと身近に!『カプセルトイ 手のひらネットワーク機器』を企画・総合監修しました | INSIDE APC INSIDE APC | 株式会社エーピーコミュニケーションズ INSIDE APC by エーピーコミュニケーションズ 開封前は以下のような感じです。(4つ購入しました) ちなみにガチャの購入の際、ガチャの量は残り半分ほどになっていました。

【2023年】VRChatの次の進化と注目すべき技術

みなさんこんにちは。ゆーろんです。 2023年最初の記事ということで、今回は2023年にVRchatでの表現をさらに広げる新しい技術とVRC世界を創るために使われているテクノロジをいくつか紹介します。 個人的には、私自身(ゆーろん)が元々、VRChat用のワールドを開発していたということもあり、一昨年(2021年)と比較してVRChatで表現できることの幅が何段階も増えていることを確信できました。 またVRC内の個人開発者などからも話を聞いてきたので、その辺も少し織り交ぜながらVRChatの将来的なビジョンに関しても触れていこうと思います。 目次 VRChatでワールドを構築するための技術 参考記事(外部リンク) VCCとOSC VCCとは OSCとは 参考記事(外部リンク) 2023年注目のUdon2 参考記事(外部リンク) まとめ VRChatでワールドを構築するための技術 VRChatでクオリティの良いワールドを作るためには、ゲーム系(Unityやシェーダ、3DCG、グラフィックなど)の知識や実装経験があるとスムーズにできるでしょう。もちろん、そういった知識がほとんどなくても現在、豊富にネット上にワールドを制作するための情報が転がっているので、それらを組み合わせることで個人の思い描くワールドを大まかには作ることができます。 具体的にワールドを作るためには、「Unity」「VRChat SDK」「コンテンツデータ(3Dモデルデータや音声、画像データなど)」が必要です。また複雑なギミック(ゲーム系のシステム)を作るにはUnityC#やUdonSharpに関する知識があると実装可能です。 UdonSharpとは UdonSharp(U#)はMerlin氏が開発したオープンソースソフトウェアで、C#に似たコードをUdon Assemblyにコンパイルすることができるものです。 通常のUdon(VRChat上でギミックを作るための仕組み)はノードベースでプログラミングする必要がありますが、U#を用いることでC#でUdonを書くことが可能になります。ただ標準のUnity C#と異なりさまざまな制限事項があるためUnity C#のコードをそのままストレートに書くことはできません。 参考記事(外部リンク) GitHub - MerlinVR/UdonSharp: An experimental compiler for compiling C# to Udon assembly GitHub An experimental compiler for compiling C# to Udon assembly - MerlinVR/UdonSharp シン・U# 入門 ② - ハツェの真時代傾向璋 ハツェの真時代傾向璋 こんばんは。ハツェです。 今回も、Udonをスクリプトで制作するための記事を書いていきます。 今回は、Udonの同期関連について話して行けたらなと思っています。 あくまでもU#を扱っているので、この記事はコードを基礎的に書ける方を対象としています。予めご了承ください。 動作環境は、Unity : 2019.4.29f1、VRCSDK : 2021.08.11.15.16、U# : v0.20.2です。 目次 前回 今回の概要 同期について ObjectSyncによる同期 変数の同期 変数の同期方法 Inspectorから同期方法を指定する スクリプト内から同期方法を指定する Continuou…

ITエンジニア性格診断のフロントエンドをアップデートしました

みなさんこんにちは。ゆーろんです。 今回は2022/5/12に公開したWEBアプリケーションである「ITエンジニア性格診断テスト」に関して本日(2022/12/15)に更新したので改良点の紹介がメインとなります。 また「ITエンジニア性格診断テスト」を開発しようと思ったきっかけ的なものも思い出しがてら記録しておきます。 目次 ITエンジニア性格診断テストとは 開発のきっかけ 今回の更新で改善した実装内容 今後の開発予定 ITエンジニア性格診断テストとは ITエンジニア性格診断は「WEBに関わるシステムやアプリの開発を行うエンジニア向けの性格診断」を提供するWEBアプリケーションです。 構想と内部設計に2日程、実装に4,5日かけて開発しました。フロントエンド部のデプロイ先はPaaSのNetlifyになっており、バックエンド部のデプロイ先はHerokuになっていました。 (2022年12月現在、HerokuにデプロイしたAPIサーバは削除済み(現在利用不能)) 大まかな機能としては10種類のエンジニアタイプを定義しておき、各質問への回答結果をもとににエンジニアタイプを判断し、その結果を表示すると言うものになります。なおバックエンドのサーバ機能にはデータベースへの回答登録機能とデータベース上の総計をGET Requestがきたら返すという機能が実装してありました。 開発のきっかけ もともと自分は性格診断に興味があり、ネット上で様々な診断アプリを受けていました。具体的には「データでわかる辛口性格診断」や「MBTI 無料性格診断テスト」など。 そんな中、記事をあさってる最中に「ITエンジニアにも複数のタイプがいる」的な内容が書かれてある記事を見つけました。それで「ITエンジニア版の性格診断テスト」があったら面白いのではないかと思い製作してみた次第です。 制作にあたって、ネット上の記事や各種SNSや技術ブログなどを回って、自分なりに10タイプのエンジニアを定義することとしました。そのため要件定義(仕様決定)には半日以上かかりました。 今回の更新で改善した実装内容 前回デプロイした5/12時点ではReactを触ってまだ4, 5日程度であり、実装されたコードの内容もかなり見にくく、Reactの仕様にも理解が不十分なまま実装したため、あまり設計の良い設計ができませんでした。 今回の更新では不十分だった質問設計とパラメータ(得点)の演算処理、そして結果文の大幅の見直しと訂正を行いました。またコードもかなり書き換え、統計情報の画面もかなり訂正しました。(このページはバックエンドのAPIサーバが用意されれば統計情報を表示できるものとなってます) 結果画面の各ポイントのパラメータ名と表示も下の画像のように書き換えました。 今後の開発予定 バックエンドのAPIサーバ(Rails駆動)はFireBaseに変える、つまりNodeベースにする予定です。 それにより「統計情報」の画面を提供できるようになると思います。 ここまでご覧くださりありがとうございました。

最新ネットワークアーキテクチャのCCN(ICN)とは

みなさんこんにちは。ゆーろんです。 今回は私が大学で研究した内容でもあるCCN(Content Centric Network)に関して解説します。 目次 CCNとは CCNの特徴 CCNで変わること CCNの将来 CCNとは CCNとは、コンテンツ指向ネットワーク(情報指向ネットワーク)と呼ばれる新しい通信のアーキテクチャです。ロケーション型であるIP通信と異なり、CCNはコンテンツ(データ)に重きを置いたネットワークです。 CCNの特徴 CCNでは、クライアント側のデータの要求にはコンテンツ名でアクセスするため、IPアドレスやポート番号等の情報が不要です。また、コンテンツはサーバからの転送時にCCNネットワークのノード(ルータ)上にキャッシュできるため、クライアントが同じデータを要求した場合ノード上にキャッシュがあればサーバまで行くことなくノード上でデータを取得できます。そのため、通信資源の節約が期待されています。 また、通常のIPネットワークより高速で安定した通信ができるため、今のWEB通信のメイントラフィックコンテンツである画像や音声動画などの大容量データを扱う通信に向いていると考えられます。 現在、CCNは米国のFIAや欧州FP7を中心に世界中で研究されています。 CCNで変わること CCNでは、大容量データの通信が得意と言えます。そのため、実用化されれば今よりも高速なインターネットが可能であると見積もられています。 現在、5Gの普及やIoTなどにより通信トラフィック量が増大しています。そのため、IPネットワークではネットワーク資源に対する負荷がノードあたりに大きくなっていると言えます。 CCNの将来 CCNには今の通信アーキテクチャを一新し、更なる高速化が可能な通信環境を構築できる可能性があります。 また、この30~40年でIPネットワークを中心としたシステムが世界中で構築され、WEBやITの発展に寄与した歴史的背景があります、これらのことから、今現在のIPネットワークすべてを一新するにはモノリシックなシステムとなってしまったのです。 これはすぐにネットワークを完全にCCNに置き換えられないことを意味します。現在のシステムが維持できている状態であることや、CCNへの移行にはコストの問題があるためです。 そのため、現実的な実用化の方法として、IPネットワークとCCNネットワークを組み合わせた通信アーキテクチャを想定して、実用化のための研究が進んでいます。実用化までにはまだ十年単位で時間がかかると思われますが、今世紀後半くらいには一部でも実用化されることを期待しています。 ここまでご覧くださり、ありがとうございました。

日本中心のメタバース Cluster に行ってみた!

先日、初めてVRSNSの1つである Cluster に行ってきました。 存在自体は2020年ごろから知っていたのですが、当時は参入者が少ないこととまだ機能や文化が十分ではなく発展途上だったこともあり、様子を見ていました。 今年になってユーザがかなり増えたと聞いたので、Clusterの文化・風土の確認と調査も含めて参入してみた次第です。VRChatを含む他のメタバースとの違いや特徴もまとめたいと思います。 目次 Clusterとは Clusterの特徴 Clusterユーザや文化に関して 他のメタバースプラットフォームとの比較 メタバースの可能性と個人的な考え Clusterとは 「Cluster」は VRChatと同じく、大人数でアバターを使いコミュニケーションできるソーシャルVRと呼ばれるジャンルのサービスです。 他のメタバースの違いはモバイル(IOS/Android)端末によるアクセスがサポートされていることです。これによりPCやVR機器を持っていなくてもワールドに入り、コミュニケーションをとったりイベント(後述)に参加することができます。 アバターデータは数年前と異なりUnityを通したアップロードではなく、WEBサイト上でアバターデータをアップロードして利用する方式となっています。 またアバターデータは一般的な「fbx」ではなく、株式会社ドワンゴが中心となって開発された「vrm」となっています。 運営元の企業が日本の法人であることも特徴の1つです。 Clusterの特徴 そんなClusterですが、Clusterはイベント特化型のプラットフォームと言えます。 どういうことかというと、Clusterのコンセプトとして「バーチャルイベント会場やバーチャル空間上での会議、音楽ライブ向けへの利用」を想定したアーキテクチャとなっているためです。 画像は先日Cluster上で音楽活動をされている方である「フォックスレイア(@Foxrayer)」さんのライブに行ったときの様子です。 Clusterではイベント企画者を中心にワールドのコンセプトや場の雰囲気を用意し、ワールド参加ユーザに提供することができます。こういったことはVRChatやNeos VRなどでは難しいです。 そのためただ単に集客するのではなく、コンセプトに沿ってユーザを集め、場を提供できることは非常に大きいです。 Clusterはそういう意味ではClusterは「VRSNS版のYoutube」としてのポテンシャルも持っていると考えています。 VRChatを含む他のメタバースは「開発勢やクリエイタ勢」が中心となって文化や世界観を提供する必要がありましたが、Clusterではそういった人たちだけではなく、ユーザ自身がコンテンツ配信者(イベント企画者)として振る舞えるのが、他のVRSNSと一線を画す魅力となっていると言えます。 Clusterユーザや文化に関して Clusterのユーザ層や文化をVRChat, Neos VR, Clusterの3つのメタバースを体験してきた身として、比較しながら述べたいと思います。 Clusterでは他の2つのプラットフォームと違って「ライトなユーザ」が多い気がしました。 ライトなユーザ とは「幅広いベクトルをもったユーザ」を指します。 VRChatでは「アニメ・アート・キャラクタ・ゲーム・動画などのサブカルチャに付随するWebコンテンツやゲーム・WEB系技術が好きなユーザ」である ヘビーユーザ が非常に多いですが、Clusterでは 「音楽家や僧侶、アーティスト、絵師、Vtuber、ラジオ話者、司会者など 様々な分野で活躍している人 」が中心となって文化を盛り上げているように思えました。 また、ボイスチャットだけではなくテキストチャットもサポートされているので気兼ねなくコミュニケーションが可能です。テキストチャットのインターフェスも非常に操作しやすいです。 他のメタバースプラットフォームとの比較 前述したVRChat、Cluster、Neos VRを大雑把に比較してみます。 名称 人数 規模 ユーザ層 VRChat ◎ グローバル ヘビーユーザ Cluster ○ 日本中心 ライトユーザ NeosVR ○ グローバル VRユーザ またVRChatとClusterでのユーザへの価値提供のヒエラルキーをまとめると以下のような感じです。 メタバースの可能性と個人的な考え メタバースは通常のSNSであるTwitter, Facebook, Mixiなどでは提供できなかった新しい価値を提供できるのは明白です。ただより多くの人に普及するには、ユーザビリティに考慮した環境やコミュニティ文化の構築、VR機器の廉価化や軽量化、ARの普及など課題は山積みです。

AWSで共用EC2を構築した話

こんにちは。ゆーろんです。 12/4に友人と共用で使用するAmazon EC2を作成しました。 苦労した部分や前回EC2を建てたときとの違いや新たな発見や実装内容を記録しておきます。 目次 インフラ構成図 今回の構築で新しく取り組めた内容 AWSに関して Linux(Amazon Linux)に関して まとめと反省点 インフラ構成図 今回作成したEC2のアーキテクチャ図は以下のような感じです。 以前EC2でマイクラサーバを構築した際はELBやCloudWatchは利用しませんでした。 今回の構築で新しく取り組めた内容 今回の構築ではNLBとFlow logを使用しました。 AWSに関して 私だけではなく友人もEC2を停止・起動、なお且つEC2に入れる必要があったため初めてIAMのユーザを作成しました。IAMユーザ(EC2と停止,起動のみの権限)の作成とセキュリティグループの設定は比較的スムーズにできました。 またNLBとFlow Logsをインフラ構築に導入した理由は、EC2へ入ってくる通信を監視するためです。これによりEC2にアクセスをAWSコンソール上で監視できるためです。 Linux(Amazon Linux)に関して EC2には当初「Ubuntu22.04LTS」を入れてましたが、このディストリビューションではssh-rsa がデフォルトで無効になっているためTeraTermでアクセスする際のRSA鍵がうまく認証されませんでした。 修正するにはPowershellからSSH接続で入り、ssh-rsaを有効にする必要がありましたが、それを知ったのは「Amazon Linux」に変えた後でした… 結局RSA鍵で詰まって、以前構成したEC2と同じくAmazon Linuxを入れました。 ちなみにAmazon LinuxはRedHat / CentOS7系のディストリビューションと言われています。そのためPackage管理コマンドはaptではなくyumになります。 また今回初めてLinuxOS内で他のユーザやRSA鍵を生成しました。これによりユーザごとのディレクトリにファイルやディレクトリが構築できるので個人性を持った開発ができると思います。 まとめと反省点 今回は以前EC2を建てたときよりも、インフラ構成やネットワークの知識、Linuxの操作を以前より意識して組むことができたと思います。 ただ構築とLinux内の設定に5,6時間かかってしまったので、もっとAWSやネットワークを理解そしてAWSコンソールに慣れていきたいと思います。 ここまでご覧くださり、ありがとうございました。