ゲーム「マインクラフト」から学ぶ ネットワークセキュリティ

サーバー
スポンサーリンク

この記事は、学校の卒業研究で提出した全40ページのレポートの内容とほぼ同じです。

Minecraftとは

「Mojang AB」の社員が2009年に開発しているサンドボックス型のゲームである
本レポートで扱うのはMinecraft Java Editionとする

スポンサーリンク

下準備

サーバー機の準備 Linux(CentOS7)編

#→root権限
$→一般ユーザー権限

自宅で物理PCを使って構築する場合(OSインストール)

  1. インストールするメディアをダウンロードする
    CentOS7の場合は[https://www.centos.org/download/]にてDVDISOをクリックし最寄りのサーバーからダウンロードする

    [最寄りのサーバーを探す(TukubaかRiken)]
  2. DVD or USBに書き込む
  3. 起動し、インストール画面に進める
  4. 以下の画面が出たら、左側の言語選択で「日本語」を選び「続行」をクリックして次の画面に行く
  5. しばらく待って「ソフトウェアの選択」をクリックします。
  6. 「サーバー(GUI 使用)」を選択し、「完了」をクリックします。
  7. 「インストール先」をクリックし、「完了」を押します。
  8. 「インストールの開始」をクリックし、インストールを開始します。
  9. インストール開始すると一般ユーザーとrootユーザーの作成の画面が出ます。
  10. rootのパスワードを設定をする
  11. ユーザー作成をする
    ※「このユーザーを管理者にする」はsudoを実行する権限を持つかどうかのチェックマークです。(今回はチェックマークを入れておきます)
  12. 両方の設定を終えたら、インストール完了するまで、待つ
  13. 終えたら、右下の「再起動」をクリックして再起動をする。
  14. 再起動後、ライセンス同意とネットワーク関連の設定を行う
  15. 「ネットワークとホスト」は初期だとオフになってるので、オンにする

Linux(CentOS7)の初期設定をする

  1. まず最初にroot権限で更新プログラムをインストールし、再起動します。
    # yum update -y
    # reboot
  2. 一般ユーザーを作ります(自宅の機器で入れた場合はインストール時に作成したユーザーがある場合はしなくて良い)
    #adduser ユーザー名
  3. 認証鍵を作成
    1. Tera Termで認証鍵を生成
      1. 立ち上げたら、「キャンセル」を押す
      2. 上の「設定」→「SSH鍵認証」を選択する
      3. 鍵生成のウインドウが出る
        • 鍵の種類
          RSA1:SSH1で必要になるが脆弱性あり
          DSA:SSH2で使えるが短めの鍵
          RSA:長くて脆弱性は今はない
        • 鍵のフレーズ
          万が一、認証鍵が盗まれてもパスフレーズが付いているとなりすましとして使えない
          推奨されているパスフレーズは以下の通り
          • 10~30文字程度
          • 推測しやすい文章を避ける
          • 大文字小文字、数字、記号を混ぜる
      4. 「生成」ボタンをクリックする
      5. パスフレーズの設定と公開鍵・秘密鍵を保存する
        • 間違えやすい事
          公開鍵(.pub)→サーバーに入れる
          秘密鍵→クライアントで使う
  4. 認証鍵を一般ユーザーに導入
    1. 一般ユーザーの標準ディレクトリに移動します。
      $ cd ~フォルダー
  5. 一般ユーザーの標準ディレクトリ直下に「.ssh」というディレクトリを作る
    $ mkdir .ssh
  6. 先程作ったディレクトリに移動
    $ cd .ssh
  7. 「authorized_keys」というファイルに作成・公開鍵を書き込むをする
    $ vi authorized_keys
  8. フォルダに対して所有者の全権限を付与する
    $ chmod 700 ~/.ssh/
  9. ファイルに対して所有者の書き込み・読み込み権限を付与する
    $ chmod 600 ~/.ssh/authorized_keys
  10. ユーザーにログインできるか確認する
    失敗した場合はこの工程をやり直す
  11. SeLinuxを無効化
    1. vimを使う場合
      #vi /etc/selinux/config
      enforcingをdisabledに書き換えます。
  12. Firewallを使ってマシンに対するポート開放する
    1. firewall-cmdを使い、publicゾーンに(–zone=public)ポート番号を例外として追加します(–add-port)。永久的に(–permanent)
      # firewall-cmd –add-port=(ポート番号)/tcp –zone=public –permanent
    2. firewall-cmdを再読み込みします。(これで追加されたポート番号の設定が反映される)
      # firewall-cmd –reload
  13. SSHの設定を変える
    1. SSHのポート番号を変える(6.でポート開放必須)
      #Port 22→Port (ポート番号) # #←は外す
    2. 一般ユーザーのみにする
      PermitRootLogin yes→PermitRootLogin no
    3. SSHの設定を適用する
      #systemctl restart sshd.service
      の後なんにも出なければ問題ない

この時点で10ページです。

スポンサーリンク

Spigotのビルド方法

Spigotとは、有志がサーバー用拡張機能を追加やパフォーマンスを調整している

java 8が必ず必要、Oracleからダウンロードする
#yum install java-1.8.0-openjdk #CentOS系ではこれで導入可

  1. Gitというソフトをインストール
    https://git-scm.com/ でGItをダウンロードしてインストールをする。
  2. BuildToolsを使ってコンパイルする
    自分でコンパイルしないと開発者から快く思っていません。
    1. https://hub.spigotmc.org/jenkins/job/BuildTools/」で最新版をダウンロードする(最新版以外は動作しないようになっている)
    2. 任意のフォルダ(ディレクトリ)にBuildTools.jarを入れる
    3. 右クリック後「Git Bash」を選択し、「java -jar BuildTools.jar –rev <ビルドしたいバージョン>」を実行する

起動方法

WindowsでSpigotを起動する場合

Spigotと同じ階層にbatファイルを作る

bat内容

@ECHO OFFjava.exe -Xms1G -Xmx2G -jar spigot-1.14.2.jar #-Xms[最小メモリ割当] -Xmx[最大メモリ割当] spigot.jarのファイル名(この記述は1.14.2のspigotを指定している)pause #処理終了した時にコマンドラインが閉じない

LinuxでSpigotを起動する場合

screenというパッケージを利用して運用すると管理が楽です。
#apt install screen -y #ubuntu系列
#yum install screen -y #CentOS系列

Spigotと同じ階層にshファイルを作る

run.sh

screen -U -AmdS [分かりやすいサーバー名] java -server -Xms[最小メモリ割当] -Xmx[最大メモリ割当] -jar  spigot.jar nogui


スポンサーリンク

中継サーバー(BungeeCord)編

BungeeCordとは、Minecraft用に作られた中継サーバーでありSpigotと組み合わて使える
流れは以下の図

BungeeCordを使うメリットはMineCraftサーバーの設置場所が中間サーバーにあるように見えて、実際の設置場所がユーザーから見えなくなる特性があるため、DDoS軽減としてBungeeCord単体をクラウドに置いて、自宅にMineCraftサーバーを置くという運用ができる

Spigotの設定方法
  • Spigot.ymlで「bungeecord」をtrueにする
  • server.propertiesで「online-mode」をfalseにする(アカウント認証はBungeeCordでする為)

問題点

  • パケット関連でMinecraftで大量の処理をしたら、BungeeCordにも負荷がかかる
  • BungeeCordをいっぱい増やすと設定の管理が大変になる

スポンサーリンク

中継サーバー(Nginx+BungeeCord)編

NginxのTCPプロキシ機能を使い、負荷がかかる部分を変える

導入方法

  1. ビルドに使うDeveloper Toolsを入れる
    #yum groupinstall “Development Tools” “Development Libraries” -y
  2. GitHubからNginxをクローンしてくる
    #git clone https://github.com/nginx/nginx
  3. クローンしてきたNginxのフォルダーに入る
    #cd nginx
  4. TCP/UDPモードで動くように設定する
    #./auto/configure –prefix=/usr/local/nginx –without-http_rewrite_module –without-http_gzip_module –with-stream
  5. ビルドとインストールをする
    #make && make install
  6. systemctlのサービスを登録する
    #cat >> /usr/lib/systemd/system/nginx.service <<- “EOF”[Unit]
    Description=nginx – high performance web server
    Documentation=http://nginx.org/en/docs/
    After=network-online.target remote-fs.target nss-lookup.target
    Wants=network-online.target
    [Service]
    Type=forkingPIDFile=/var/run/nginx.pid
    ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
    ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    ExecReload=/bin/kill -s HUP $MAINPID
    ExecStop=/bin/kill -s TERM $MAINPID
    [Install]
    WantedBy=multi-user.targetEOF
  7. Nginxの設定を変更する
    #rm -f /usr/local/nginx/conf/nginx.conf#
    cat >> /usr/local/nginx/conf/nginx.conf <<- “EOF”
    worker_processes  1; #動かすコア数
    pid        /var/run/nginx.pid;
    events { 
         worker_connections  1024;
    }
    stream { 
        upstream mcserver {
            server 転送先:ポート番号;
        }
        server {
            listen     25565; #ポート番号
            proxy_pass mcserver; #転送先のグループ        
    proxy_protocol on; #接続元を転送先で通知する    }
    }
    EOF
  8. Nginxを起動させて問題ないか確認する
    #systemctl restart nginx
  9. Nginxの自動起動を有効にする
    #systemctl enable nginx
  10. BungeeCordの「proxy protocol」を有効にする

問題点

  • 接続してるときに不定期に切断される。
  • 1つのポート番号で転送先のグループでしか飛ばせない(マルチドメイン運用が出来ない)
  • BungeeCordでしか接続元を通知できる機能が標準搭載していない

中継サーバー(HAProxy+BungeeCord)編

HAProxyとは、多機能なプロキシサーバであり、ソフトウェアロードバランサも構築も可能である
Minecraftでは、PROXY v2を使って接続元を通知している

導入方法

  1. ビルドに必要なソフトウェアをインストールする
    #yum install gcc pcre-static pcre-devel -y
  2. サイトからパッケージをダウンロードする
    #wget http://www.haproxy.org/download/1.8/src/haproxy-1.8.20.tar.gz
  3. ダウンロードしたファイルを解凍する
    #tar xfvz haproxy-1.8.20.tar.gz
  4. 解凍したディレクトリに移動する
    #cd haproxy-1.8.20/
  5. ビルドする設定をする
    #make TARGET=linux2628
  6. ビルドインストールする
    #make install
  7. /etcに「haproxy」というディレクトリを作る
    #mkdir -p /etc/haproxy
  8. /var/lib/に「haproxy」というディレクトリを作る
    #mkdir -p /var/lib/haproxy
  9. /var/lib/haproxyに「stats」というファイルを作成する
    #touch /var/lib/haproxy/stats
  10. /usr/sbin/haproxyに/usr/local/sbin/haproxyのリンクを作る
    #ln -s /usr/local/sbin/haproxy /usr/sbin/haproxy
  11. ./examples/haproxy.initを/etc/init.d/haproxyにコピーする
    #cp ./examples/haproxy.init /etc/init.d/haproxy
  12. /etc/init.d/haproxyの権限を所有者全権限・他実行以外の権限を付与する
    #chmod 755 /etc/init.d/haproxy
  13. デーモンを再起動して、さっき入れたファイルを読み込ます
    #systemctl daemon-reload
  14. HAProxyの自動起動をONにする
    #systemctl enable haproxy
  15. 元にあった設定ファイルを削除する
    #rm -f /etc/haproxy/haproxy.cfg
  16. 消した設定ファイルと同名で以下の内容を書き込む
    cat >> /etc/haproxy/haproxy.cfg <<- “EOF”
    #———————————————————————#
    Example configuration for a possible web application.  See the# full configuration options online.##   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
    ##———————————————————————
    #———————————————————————#
    Global settings
    #———————————————————————
    global
        log         127.0.0.1 local2
        chroot      /var/lib/haproxy
        pidfile     /var/run/haproxy.pid
        maxconn     4000
        user        user #一般ユーザー名
        group       wheel #所属してるグループ名
        daemon
        # turn on stats unix socket
        stats socket /var/lib/haproxy/stats
    listen minecraft #待受するポートのグループ
        mode tcp                                  # MinecraftはTCP接続
        bind 0.0.0.0:25565                      # Minecraftポート(25565)で待ち受け
        option tcplog    tcp-request inspect-delay 5s   # 最大5秒の遅延までOK(SSLやMTPでは必要だけどMinecraftでは要らないかもしれない)
        acl test_mc_1 payload(5,18) -m sub ドメイン名 # payload(*(1.8なら4,それ以降なら5),ドメインの文字数))
        tcp-request content accept if test_mc_1 # 条件一致したら受け入れる
        use_backend testi_mc_app_1 if testi_mc_1   # testi_mc_app_1のバックエンドへ
        backend test_mc_app_1 #転送先の設定
        server test_mc_ip_1 転送先のIPorドメイン:ポート番号 send-proxy-v2 #send-proxy-v2は転送先に接続元を通知する
    EOF
  17. HAProxyサービスを再起動する
    #systemctl restart haproxy
  18. BungeeCordの「proxy protocol」を有効にする

問題点

  • 現時点でSRVでの接続が出来ない(ドメインレベルでの負荷分散は出来ない)
  • BungeeCordでしか接続元を通知できる機能が標準搭載していない

スポンサーリンク

中継サーバー(HAProxy+Minecraft[Spigot])編

HAProxyの構築は中継サーバー(HAProxy+BungeeCord)編 手順17までは同じである。
BungeeCordではプロキシプロトコルの対応は出来ているが、Minecrftサーバーは標準では対応されてないが、拡張機能によって対応させることが可能である

Windows環境を使って拡張機能をビルドする!

開発対応のJavaを入れる

Javaは2019年4月頃の一部有料化により、昔の手順ではアカウント登録が必要になってくる為、本レポートでは、開発者向けはOpenJDKを扱う事とする

  1. Amazon Corretto 8のダウンロードページにアクセスし、WindowsのJDK列にある「amazon-corretto-8.2**.04.2-1-windows-x**.msi」をダウンロードする
  2. ダウンロードしたインストーラーを起動して、「Next」をクリックする
  3. 「Setup Environment」の中にある「Setup JAVA_HOME」と「Add to PATH」が以下のマークになっていれば「Next」をクリックする
  4. 「Install」をクリックしてインストールを開始する
  5. この画面出たら、JDKのインストールは完了!

総合開発ツールを入れる

※今回は、少し古いNetBeansを使用する

  1. 日本語版NetBeansサイトにアクセスし、「最新版(日本語版)ダウンロード」をクリックする
  2. リダイレクトされ、英語表記のダウンロード一覧が表示される
    「Older releases」にある「Find out more」をクリックする
  3. 「Pre-Apache NetBeans versions」にある「https://netbeans.org/downloads/8.2/」をクリックする
  4. 表の「Java SE」の列にあるダウンロードをクリックし、インストーラーをダウンロードする
  5. ダウンロードした、インストーラーを起動させ「次へ」をクリックする
    1. 失敗例
      1. 入ってないにもかかわらず「開発対応のJavaを入れる」を飛ばした場合
      2. インストール済みの場合はこのようなメッセージが出る
  6. ライセンス契約に同意して、「次へ」をクリックする
  7. JDKのディレクトリパスを確認して「次へ」をクリックする
  8. 「インストール」をクリックしてインストールを開始します。
  9. インストール完了するまで、しばらく待つ
  10. インストール完了したら、「終了」をクリックして閉じます。
    (チェックマークは自由)

ソースコードをビルドする

  1. GitHubより「SpigotProxy」のリポジトリからソースコードをダウンロードする
    1. Gitというソフトウェアでクローンする
      $git clone https://github.com/riku6460/SpigotProxy.git
    2. Zipでダウンロードして、解凍する
  2. NetBeansを起動する
  3. 起動したら、左上の「ファイル」から「プロジェクトを開く」をクリックして先程ダウンロードしたフォルダを読み込ませる
  4. 読み込ませたプロジェクトのプロジェクト名を右クリックし、「ビルド」をクリックしてビルドを開始する
  5. 出力ログで「BUILD SUCCESS」と出たら成功
  6. ビルドで出来たJarファイルは「target」のフォルダの中に生成される
  7. 出来たJarを、Minecraftサーバーの「plugins」というフォルダに入れると導入完了となる。
  8. あとはHAProxyの転送先・ポート番号とMinecraftサーバーのポート番号に合わせると、接続元が通知され接続ができる。

問題点

  • 検証したサーバーでは全て不定期に一時的にサーバーの動作が止まる症状があった

ここまで28ページです。

スポンサーリンク

運用監視ができるツールを紹介・導入

Glances

Glancesとは、Pythonで作られたコマンドラインモニタリングツールです。

導入方法

  1. EPELリポジトリをインストールします。
    #yum -y install epel-release
  2. Pythonをインストールします。
    #yum install -y python-pip –enablerepo=epel
  3. Pythonの管理ツールで更新をします。
    #pip install –upgrade pip
  4. Glancesと前提パッケージのインストールをします。
    (とても終わるまでに時間が掛かる)
    #curl -4 -L http://bit.ly/glances | /bin/bash

Zabbix

Zabbixとは、web上の運用監視システムで、プロセス監視やOSの使用状態が見れてます。
また、障害検知した場合は、Slack(Discord)やEmailで通知をすることも出来ます。

導入方法

※今回はZabbix4.2を導入します。

Zabbixサーバーのインストール
  1. Mysqlのリポジトリを入れる
    #curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
  2. mysqlをインストールする
    #yum install MariaDB-server MariaDB-client -y
  3. mysqlを起動させます。
    #systemctl start mariadb
  4. mysqlの自動起動を有効にします。
    #systemctl enable mariadb
  5. データベースで文字化け対策をする
    vi /etc/my.cnf.d/server.cnf
    [client]
    default-character-set = utf8mb4
    [mysqld]
    character-set-server = utf8mb4
  6. mysqlの初期設定をする
    #mysql_secure_installation
    1. 「Enter current password for root」→Enterキーを押す
    2. 「Set root password?」→ rootのパスワードを設定しますか?:yを送信する
    3. 「New password」→新しいパスワード:新しいパスワードを入力する
    4. 「Re-enter new password」→再度、新しいパスワード:新しいパスワードを入力する
    5. 「Remove anonymous users?」→匿名ユーザーは削除しますか?:yを送信する
    6. 「Disallow root login remotely?」→rootユーザーのリモートログインを禁止しますか?:yを送信する
    7. 「Remove test database and access to it?」→テストデータベースを削除しますか?:yを送信する
    8. 「Reload privilege tables now?」→ユーザ権限テーブルを再読込しますか?:yを送信する
  7. Zabbixのリポジトリを入れる
    #rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
  8. Yumパッケージのキャッシュを削除します。
    #yum clean all
  9. Zabbixサーバー(親機)・エージェント(子機)・mysqlのモジュールをインストールします。
    ※予めremi等でphpをインストールした場合は、競合が起きるので、一度PHPをアンイストールしてください
    #yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-agent
  10. mysqlにログインします。
    #mysql -uroot -p
  11. データベース名「zabbix」というデータベースを作成します。
    > create database zabbix character set utf8 collate utf8_bin;
  12. zabbixというデータベースに対して「zabbix@localhost」を作成する
    > grant all privileges on zabbix.* to zabbix@localhost identified by ‘パスワード’;
  13. mysqlから抜ける
    > quit;
  14. データベースをインポートする
    #zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
  15. zabbixのサーバーの設定ファイルの「DBPassword」にデータベースのパスワードを記入する(DBPasswordの手前にある#を消し忘れないように
    #vi /etc/zabbix/zabbix_server.conf
  16. 「# php_value date.timezone Europe/Riga」の下に「php_value date.timezone Asia/Tokyo」を記入して、日本標準時間で動くようにする
    #vi /etc/httpd/conf.d/zabbix.conf
  17. Zabbix関連とWebサーバーを再起動して設定ファイルを再読込させます。
    #systemctl restart zabbix-server zabbix-agent httpd
  18. Zabbix関連とWebサーバーの自動起動を有効にします。
    #systemctl enable zabbix-server zabbix-agent httpd
  19. 「http://server_ip_or_name/zabbix 」にアクセスしたら、初期設定画面が出ます。
    「Next step」をクリックし、次の画面に行く
  20. 一通り見て、NG付いてないことを確認して、「Next step」をクリックし、次の画面に行く
  21. WebUIのZabbixをデータベースの情報を入れて、「Next step」をクリックし、次の画面に行く
  22. Zabbixサーバーのサーバー名を任意にできる。「Next step」をクリックし、次の画面に行く
  23. 最終確認画面が出るので、間違いが無ければ、「Next step」をクリックし、次の画面に行く
  24. Zabbixサーバーの設定が完了しました。「Finish」をクリックし、ログイン画面に行く
  25. ログイン画面では、まずUsername[Admin],pasword[zabbix]を入れてログインする
  26. ログイン後、トップページに飛びます。そして右上の人マークをクリックします。
  27. Language(言語)をJPに変更し、Updateをクリックする
  28. 管理→ユーザーをクリックしてユーザー管理を開き「ユーザー作成」をクリックし、ユーザー作成をする
  29. 以下の必須項目入れてユーザー作成をする
    • エイリアス:ニックネーム的なもの
    • グループ:管理グループで、「Zabbix administrators」に所属させるようにする
    • パスワード:パスワード
    • 言語:日本語(ja_JP)にする
    • 権限→ユーザーの種類を「管理者」or「特権管理者」にする
  30. 右上のボタンを押して、一度ログアウトして、先程作成したユーザーにログインする。
  31. 管理→ユーザーをクリックしてユーザー管理を開き、「Admin」と「guest」を「Disabled」グループに所属させてユーザーを無効化する
  32. 最低限の設定は以上
Zabbixエージェントだけをインストールする
  1. Zabbixのリポジトリを入れる
    #rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
  2. Yumパッケージのキャッシュを削除します。
    #yum clean all
  3. Zabbixエージェント(子機)だけ
    #yum install zabbix-agent -y
  4. /etc/zabbix/zabbix_agentd.conf
    Server=(Zabbix サーバー IP)
    ServerActive=(Zabbix サーバーIP)
    #Hostname=[Hostname] (コメントアウトもしくはZabbixサーバーで表示するホスト名)
  5. ポート開放する
    #firewall-cmd –add-port=10050/tcp –permanent
  6. 設定→ホストから「ホスト作成」をクリックする
  7. 分かりやすいホスト名・エージェントのIPを入力し、グループを選択する
    1. ホストのグループを選択する
    2. テンプレートを選択する
      ※追加を押さないと追加されない
      1. グループで絞れて、「Template OS Linux」をチェック入れて選択後、追加を押して、更新を押す

Discordで障害の検知を通知する

  1. 「alertscripts」のディレクトリを探す。
    #grep AlertScriptsPath /etc/zabbix/zabbix_server.conf
    # Option: AlertScriptsPath#
    AlertScriptsPath=${datadir}/zabbix/alertscripts
    AlertScriptsPath=/usr/lib/zabbix/alertscripts

    /usr/lib/zabbix/にalertscriptsというディレクトリがあると分かった
  2. 先程見つけた、ディレクトリに移動する
    #cd /usr/lib/zabbix/alertscripts
  3. GitHubからシェルスクリプトファイルをダウンロードする
    #wget https://raw.githubusercontent.com/atomy/zabbix-discord/master/discord.sh
  4. ダウンロード完了したファイルは実行権限無いので、実行権限を付与する
    #chmod a+x discord.sh
  5. webhookのURLとZabbixのURLを書き込む(6箇所書き換える所がある)
    #vi discord.sh
    https://zabbix.your-domain-bleh.foo/→zabbixのURL
    https://discordapp.com/api/webhooks/xxx/yyy→通知先のwebhook
  6. 管理→メディアタイプから「メディアタイプの作成」をする
  7. メディアタイプで以下の内容を書き込み、「更新」をクリックし保存する。
    スクリプト名:discord.sh
    【パラメータ】
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}
  8. 設定→アクションから「アクションの作成」をする
  9. アクション名と実行条件を記入し
  10. 実行内容は以下の画像のように設定する(「ユーザーに送信」はサウンドで鳴る)
  11. トリガーでアクションされたらこんな感じになります。(なお、サイトでは警報音が鳴ってます。)

大抵は、調べたら出てくるのですが、なかなか出なかったりして頻繁にする作業は、マニュアル化したりして再構築できるようにしています。
ここまでお読みいただきありがとうございます。m(_ _)m

Digiprove sealCopyright secured by Digiprove © 2019

コメント

スポンサーリンク
タイトルとURLをコピーしました