月: 2023年6月 Page 2 of 3

ワイヤレスイヤホン新調。(Soundcore Sport X11 ファーストインプレッション)

こちらの記事から1年と4ヶ月。

  • 音が途切れ途切れになった
  • 充電が頼りなくなった

ことから、新調。この、物理的にまず落ちない形状は非常に気に入っていたのですがあいにく終売品。

そこで選んだのがこちらです。

Soundcore Sport X11

耳から落ちにくい形状で、比較的安価だったこのモデルを選択。

このようにイヤーフックがついていて、180度回転させることで耳にかけられるようになっています。

使ってみての感想

まず、ノイズキャンセリングが以前使っていたLife NCよりも段違い。外した瞬間に雑音だらけで戸惑ったほどです。

着用の手間は思った以上。いったん首にかけてから片耳ずつ嵌めていく運用と異なり、

一度片方を摂って展開し、装着してからもう片っぽを取り付ける形になるので、脱着自派より慎重になる必要がありました。

反面、一度でも取り付けてしまえば余程のことがない限り落ちないのは利点です。

音質に関しては余り気にしない性格なので、特に語ることはありません。

収納

以前よりも小さいケースなので

百均で購入したこちらを使います。

大きさも厚みもちょうどいいサイズ。

リュックにそのままぶら下げられるのも便利です。

続・『ライザのアトリエ3』DLC「ロスカ島(創世の社)」で詰まったところ。(ネタバレあり※不具合の追記あり※)

この記事に続けての詰まった場所です。

『ライザのアトリエ3』ロスカ島にはメインであるワールドクエストの他、ノーマルクエストもいくつか発生します。

ノーマルクエスト『バードウォッチャー・タオ』

ロスカ島でアトリエを構えた後に発生するこのイベント。

他の地方でも見かける鳥を追いかけることを3回追えることでクリアとなるのですが……

場所が曖昧で広範囲で、イベントが発生しません。そのエリアの中で「効果:動物呼び」を持つ秘密の鍵を用いても効果が無いと言われます。

そんな中で、なんとか終わらせることができましたのでメモとして残します。

ネタバレとは言えストーリー進行には絡まないため、こちらで紹介です。

1つめ:異空の社南東

ロスカ島北東に位置する「異空の社」。その南東の回廊を南から進んでいくと鳥が出てきます。

2つめ:異空の社と開明の社の間

異空の社から西、開明の社へと向かうとき、間のオアシス的な場所、小島に近づくことで鳥が出てきます。

3つめ:創世の社(※不具合あり 2024/08/10追記)

ここだけはスクリーンショットが間に合いました。

創世の社の施設内に入り、北の回廊へと進んでいくときに出てきます。

このイベント発生後、鳥を追いかけていくことで条件達成。

最終的にアトリエ内にいるタオに話しかけてクエスト完了です。

それでも出ないときは?

何度か休憩して再度チャレンジしましょう。

ただ、ハッキリ言って旨味はないです。

DLC故に実績には絡まず、ここまでやりこんでいれば報酬のSPも今更感が漂いました。

2024/08/10追記

「創世の社」で以下の再現ある不具合を確認しています。

出現しない条件

  • このクエスト(『バードウォッチャー・タオ』)を受諾していない
  • 中央の塔を最初に探索していない状態で該当地点に訪れる

と、上記の鳥は出てきません。

復活しない条件

通常のランダムクエストのように

  • 鳥が出現後、エリアから外れる
  • 追いかけている間に他の場所に行く(ファストトラベル含む)

と、やはり、二度と復活しません。

特に、創世の社は

合間にジャンプする必要のある裂け目が存在します。この段階で落ちてしまうとエリアから外れるため、二度と鳥が出てこなくなります。

上記不具合の回避策

  1. ロスカ島のワールドクエストが出現する前のセーブデータからやり直す(ここを探索の最後にしている場合は最初からになります)
  2. 本クエストを諦める

のほぼ二択でした。なので、タイミングは要注意です。

nginxでリバースプロキシ化しているgrowiサイトにセキュリティヘッダーを付与。

はじめに

現在、growiのリバースプロキシとしてnginxを利用しています。

そこで、先だってご紹介したapache利用のサイトと同じようにセキュリティヘッダーを付与しました。

環境

  • Ubuntu 20.04
  • Growi v6.1.4
  • nginx 1.24.0

前提

  • サーバへの適切な証明書は準備済みです。
  • 既にGrowiが稼働しているものとします。(hoge.example.com)

コンフィグファイル

以下、教義・信仰に沿ったエディタで編集します。自分の環境に合わせてください。

  • ファイル名:/etc/nginx/sites-available/growi
upstream hoge {
       server 192.168.1.101:3000;
       #growiが稼働しているアドレス
}

server {
## http設定(常時SSL化を行います)
        listen 80 http2;
        server_name hoge.example.com;
        server_tokens off;
        return  301 https://$host$request_uri;
        access_log /var/log/nginx/hoge.example.com/access.log;
        error_log /var/log/nginx/hoge.example.com/error.log warn;
}

server {
## https設定
        listen 443 ssl http2;
        server_name hoge.example.com;
        server_tokens off;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_dhparam /etc/nginx/dhparam;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;

        #SecurityHeader
        add_header Strict-Transport-Security 'max-age=63072000';
        add_header X-Content-Type-Options "nosniff";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";

        ssl_certificate /etc/certs/hoge.example.com.crt;
        ssl_certificate_key /etc/private/hoge.example.com.key;

        ssl_stapling on;
        ssl_stapling_verify on;

        access_log /var/log/nginx/hoge.example.com/ssl_access.log;
        error_log /var/log/nginx/hoge.example.com/ssl_error.log warn;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_max_temp_file_size 10240m;
        client_max_body_size 10240m;
        proxy_redirect off;

       set $proxy_target  'hoge';

       location / {
          proxy_pass http://$proxy_target;
       }

       location /socket.io/ {
          proxy_http_version 1.1;
          proxy_set_header Upgrade $http_upgrade;
          proxy_set_header Connection "Upgrade";
          proxy_cache_bypass $http_upgrade;

        #SecurityHeader
        add_header Strict-Transport-Security 'max-age=63072000';
        add_header X-Content-Type-Options "nosniff";
        add_header X-Frame-Options "SAMEORIGIN";
        add_header X-XSS-Protection "1; mode=block";

          proxy_pass http://$proxy_target/socket.io/;
       }
}
  • 差分内容
+        #SecurityHeader
         add_header Strict-Transport-Security 'max-age=63072000';
+        add_header X-Content-Type-Options "nosniff";
+        add_header X-Frame-Options "SAMEORIGIN";
+        add_header X-XSS-Protection "1; mode=block";

           proxy_cache_bypass $http_upgrade;
+
+        #SecurityHeader
+        add_header Strict-Transport-Security 'max-age=63072000';
+        add_header X-Content-Type-Options "nosniff";
+        add_header X-Frame-Options "SAMEORIGIN";
+        add_header X-XSS-Protection "1; mode=block";
+
           proxy_pass http://$proxy_target/socket.io/;

コンフィグファイル反映

sudo nginx -t
# nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
# nginx: configuration file /etc/nginx/nginx.conf test is successful
# と出れば正常です

sudo systemctl restart nginx

セキュリティヘッダー付与確認

curlを用いて、開発者ツールよりも手っ取り早くヘッダ付与を確認します。

curl -I 上記、設定を行ったURL
strict-transport-security: max-age=63072000
x-content-type-options: nosniff
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block

のように表示されればOKです。

Apacheで動かしているWebサイトにセキュリティヘッダーを付与。

概要

AWS Lightsailを用いて外部公開しているWebサイトのセキュリティを高めるため、セキュリティヘッダを更に付与しました。

環境

  • Ubuntu 20.04
  • Apache 2.4系
  • Headerモジュール導入済み

また、/etc/apache2/sites-availavle配下にバーチャルサイトファイルで管理しています。

さっくりとした手順

  1. 現行のバーチャルサイトのコンフィグのバックアップを取得します。
  2. コンフィグにセキュリティヘッダを付与します。
  3. Webサービスの再起動を行います。

実施した手順

バックアップ

cd /etc/apache2/sites-available &&pwd
# 自環境のバーチャルサイトの格納場所に移動します

sudo cp -pi hoge.conf /path/to/directory/hoge.conf.$(date +%Y%m%d)
# バックアップ元とバックアップ先は自分の環境に合わせます。

diff -u hoge.conf /path/to/directory/hoge.conf.$(date +%Y%m%d)
# 差分がないことでバックアップが取れていることを確認します。

セキュリティヘッダ追記

教義・進行に沿ったエディタを用いて、以下の差分になるようにセキュリティヘッダをコンフィグに付与します。

+    Header set X-Content-Type-Options "nosniff"
+    Header always append X-Frame-Options "SAMEORIGIN"
+    Header set X-XSS-Protection "1; mode=block"

以下はChantGPTによる解説です。

X-Content-Type-Options: "nosniff"

このヘッダーは、ブラウザがレスポンスのContent-Typeヘッダーと実際のコンテンツの種類が一致しない場合に、ブラウザが自動的にコンテンツのタイプを推測するのを防止します。これにより、悪意のあるコンテンツが実行されるリスクを低減することができます。

X-Frame-Options: "DENY" または "SAMEORIGIN"

このヘッダーは、クリックジャッキング攻撃を防止するために使用されます。"DENY" を指定すると、ページがフレーム内で表示されることが完全に禁止されます。"SAMEORIGIN" を指定すると、同じオリジン(ドメインとプロトコルが一致)のフレーム内でのみページが表示されます。

X-XSS-Protection: "1; mode=block"

このヘッダーは、クロスサイトスクリプティング(XSS)攻撃からの保護を目的としています。ブラウザによって検出されたXSS攻撃が検出された場合、ブラウザはページをブロックするように指示されます。

コンフィグの整合性確認と再起動

  • コンフィグ確認
sudo apache2ctl configtest
#Syntax OKを確認します
  • サービス再起動
sudo systemctl restart apache2.service

systemctl status apache2.service
#Active(running)を確認します

ヘッダ付与確認

  1. Google Chromeを開き、対象のウェブサイトにアクセスします。
  2. ウェブサイトを表示した状態で、右クリックしてコンテキストメニューを表示し、「検証」を選択します。
  3. 開発者ツールが表示されたら、上部のメニューバーの中から「Network」(ネットワーク)タブを選択します。
  4. ページをリロードするか、ウェブサイト上で任意のアクションを実行してネットワークタブにリクエストが表示されるようにします。
  5. ネットワークタブで、対象のリクエストを選択します。
  6. 右側のパネルで、"Headers"(ヘッダー)セクションを展開します。
  7. ヘッダーセクションには、レスポンスヘッダーが表示されるので、以下を確認してください。
  • X-Content-Type-Options
  • X-Frame-Options
  • X-XSS-Protection

ヘッダーが正しく設定されていれば、それぞれのヘッダーの値が表示されます。

Fail2banによる防御効果確認。

侵入防御システム、Fail2banを本格的に導入してから半年余り。その効果のフィードバックです。

導入環境

  • Ubuntu 20.04
  • Fail2ban 0.11.1
  • AWS Lightsailで運用しており、鍵交換認証を行っています。
  • Lightsailで開けているポートは22(SSH),80(http),443(https)の3つです。

設定ファイル

  • /etc/fail2ban/jail.local
[ufw]
enabled=true
filter=ufw.aggressive
action=iptables-allports
logpath=/var/log/ufw.log
maxretry=1
bantime=-1
ignoreip = 127.0.0.0/8 ::1
# 他、自環境のアクセス元

[sshd]
enabled=true
filter=sshd
mode=normal
port=22
protocol=tcp
logpath=/var/log/auth.log
maxretry=3
bantime=-1
ignoreip = 127.0.0.0/8 ::1
# 他、自環境のアクセス元

bantimeは「-1」。つまり、一度でもリストに入るような不審な兆候があれば、永久に追放します。

半年の経過

この設定で、どのぐらいのIPアドレスを弾いたのか、確認してみました。

  • 確認コマンド(ufw)
sudo fail2ban-client status ufw
  • 確認結果(ufw)
Status for the jail: ufw
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     0
|  `- File list:        /var/log/ufw.log
`- Actions
   |- Currently banned: 187
   |- Total banned:     187
   `- Banned IP list: (後略)
  • 確認コマンド(sshd)
sudo fail2ban-client status sshd
  • 確認結果(sshd)
Status for the jail: sshd
|- Filter
|  |- Currently failed: 0
|  |- Total failed:     29
|  `- File list:        /var/log/auth.log
`- Actions
   |- Currently banned: 5125
   |- Total banned:     5125
   `- Banned IP list: (後略)

驚くべきはSSHのリスト数。半年で5000件を超えているので、単純計算で一月に833件超。BANされたリストをランダムに選んでabusedIP (https://www.abuseipdb.com/)で検索をかけると、いずれも

Confidence of Abuse is 100%

と表示されるものがほとんどです。

  • 鍵交換認証だろうとお構いなしに攻撃を仕掛けるアクセス元の多さ
  • これらを(ほぼ自動的に)弾いてくれるシステムのありがたさ

を改めて思い知りました。また、IPアドレス固定サービスを利用しているのであれば、アクセス許可を固定する(ポジティブリスト形式)が確実です。

ボードゲーム『バラージ』コンポーネント一部差し替え。

先日、ようやく崩すことができたボードゲーム『バラージ』。

既に専用オーガナイザーとホイールとアップグレードを行っていますが、そこに更に改善を行いました。

水トークン差し替え

電力の源となる水。

  • ダムに溶け込んでしまう
  • 少々小さくて取り回ししづらい

と実際に遊んで分かったので、この、キューブビーズに差し替えます。

色的にも調和しますし、経常的に転がり落ちることもありません。

コイン差し替え

各種クレジットは大きさと数字が違うのみ。「1クレジット差」が大きな差になる本ゲームにおいて、この視認性の悪さは無視できません。

これに関しては汎用のボードゲーム用コインに差し替えます。

それぞれ色が異なるので使う時も受け取るときも便利。

収納

こうして用意した水トークンと木製コインをオーガナイザー内のスペースに差し替えます。

それぞれ、サイズ感を損なうことなく差し替えられました。

箱と鏡。-百均グッズの撮影用小物(その46)-

状況に応じたパーツを増やしました。

ミニチュア宝箱

まずは宝箱。きちんと蓋も開き

なので、ボードゲーム『宝石の煌めき』のアップグレードトークンを入れて

こう撮影。RPGなどにも使える素材となりました。

スタンドミラー

そしてこちらスタンドミラー。

1/12とサイズ感も完璧です。

配置にさえ気をつければ余計な写り込みはありません。そして、背中も両方移せるという利点が生まれます。

この手の単体でも仕事をする小物があって役立ちました。

蓮と傘。-百均グッズの撮影用小物(その45)-

ちょっとした閃きがありました。

セリアで見つけたロータスリーフ。(雨つき)

池に浮かんでいる蓮の葉の造花(?)です。これを手に取ったときのサイズ感がピッタリでした。

早速購入し、

figmaライザに持たせたらジャストフィット。

以前作っていた紫陽花の木枠とも相性抜群です。

フィルターかけても楽しいです。

『ライザのアトリエ3』鍵利用による属性値変化。

こちらの記事の補足になります。

はじめに

『ライザのアトリエ3』で、ストーリー/戦闘/調合/探索と全てに関わってくる秘密の鍵。

今回は調合時の違いです。

通常通りに作った場合の古の賢者の石

パーティークエストの条件にもなっている調合アイテム《古の賢者の石》。

全ての効果/特性を発現させた場合の属性値は10。

特性のみ発現させない場合でも8の属性値を持っています。

効果「属性値増加」を付与した場合

ここに、レシピの起点(精霊の小瓶)からシンセサイズ効果「属性値増加」を加えます。

秘密の鍵はレシピ変化ごとに追加できるので……

  1. 精霊の小瓶
  2. クリスタルエレメント
  3. 賢者の石

と、それぞれに付与。この途上で超特性「超濃度」を付与していくと

属性値「22」まで膨れ上がります。

最後の《古の賢者の石》のみ属性追加を付与しているので、こちらでも使うと更に属性値は上がるでしょう。

「ここまで上げてどうする」レベルではありますが、レシピ変化にはこういう側面があります。

Nextcloud、メンテナンスモードの解除方法。

はじめに

プライベートのオンラインストレージをWebベースで構築できるNextcloud。

ブラウザ上からもアップデートなどを行えるのは大きな利点ですが:メンテナンス中にWebブラウザが落ちてしまった場合に

このようなメンテナンスモードが出ます。(ブラウザ上で処理ができなかったことが原因です)

サーバ自体を

sudo reboot

と再起動を行ってもその状態であることが多いです。

「処理が終わるまでブラウザを落とさず待つ」が正常な手順ですが、それを怠った場合のリカバリについてです。

動作環境

  • Ubuntu 20.04
  • Nextcloud
  • Apache 2.4
  • PHP8.1

さっくりとした手順

  1. Nextcloudサーバにアクセスします。
  2. 設定ファイルを書き換えます。
  3. Apacheサービスを再起動します。
  4. メンテナンスモードの解除を確認します。

Nextcloudサーバへのアクセス

cd /home/www-data/nextcloud/config && pwd
# 自分のディレクトリを指定します

コンフィグファイルのバックアップ

sudo cp -pi config.php /path/to/backup/directory/config.php.$(date +%Y%m%d)

ファイルの内容書き換え

sudo -u www-data sed -i "s/'maintenance' => true/'maintenance' => false/" config.php
# メンテナンスモードを無効化します。

apache2サービス再起動

sudo systemctl restart apache2.service

再起動後の確認

メンテナンスモードが解除されました。「アップデートを開始」をクリックします。(今度はブラウザを閉じないようにしましょう)

その後、NextcloudのWeb画面が出てきたので問題なくアップデートされました。

Page 2 of 3

Powered by WordPress & Theme by Anders Norén