コラボ製品の方は値上げラッシュに巻き込まれませんでした。
いわゆるスマートタグが比較的安価で売られていたことは幸いでした。
これをこんな形でキーリングに装着です。
これのお陰で
- スマートタグからスマートフォンを探す(音を出す)
- スマートフォンからスマートタグ付きの聞きを探す(音を出す)
の二面が可能になりました。これから、段々と治安が物騒になっていくため、この手の自衛のための買い物でした。
コラボ製品の方は値上げラッシュに巻き込まれませんでした。
いわゆるスマートタグが比較的安価で売られていたことは幸いでした。
これをこんな形でキーリングに装着です。
これのお陰で
の二面が可能になりました。これから、段々と治安が物騒になっていくため、この手の自衛のための買い物でした。
分冊型の「ほぼ日手帳」を2冊めにしたことで、今年も折り返しであると知りました。
そこで、覚えている限り、2023年上半期に購入してよかったものの振り返りです。
これは革命的なものでした。
「自宅、職場を問わず本格的にお茶を入れられる」の安心感は果てしなく。
紅茶、緑茶、中国茶などのバリエーションを楽しむことができました。
のパターンにより、季節を問わない喫茶ライフを構築です。
健康診断で節制するように言われ、そのためには現状を知ることが第一と考えて購入したのがこのスマートウォッチ。
これも生活習慣を大きく変えてくれるものでした。
の2つを教えてくれるのは安心感がありますし、自転車で移動時にマッピングをしてくれるのもありがたい限りです。
下半期もいいものを買えればいいと思っています。
2023/09/11にサポート終了を迎えるOpenSSL1.1.1。
2023年6月現在の最新安定版である3.1.1にアップデートを行います。
https://www.openssl.org/blog/blog/2023/06/15/1.1.1-EOL-Reminder/
openssl version -a
OpenSSL 1.1.1f 31 Mar 2020
built on: Wed May 24 17:14:51 2023 UTC
platform: debian-amd64
options: bn(64,64) rc4(16x,int) des(int) blowfish(ptr)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -Wa,--noexecstack -g -O2 -fdebug-prefix-map=/build/openssl-mSG92N/openssl-1.1.1f=. -fstack-protector-strong -Wformat -Werror=format-security -DOPENSSL_TLS_SECURITY_LEVEL=2 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2
OPENSSLDIR: "/usr/lib/ssl"
ENGINESDIR: "/usr/lib/x86_64-linux-gnu/engines-1.1"
Seeding source: os-specific
ことから、AWS Lightsailのスナップショットを利用して全体のバックアップを取りました。
sudo aptitude install build-essential checkinstall zlib1g-dev
# 筆者はaptitudeを用いています。必要に応じてaptを使ってください。
sudo su -
# 以下、管理者権限で実施します
cd /hoge
# 任意のディレクトリを指定します
git clone https://github.com/openssl/openssl -b openssl-3.1.1
# 2023/06/20時点での最新安定版を指定します
cd openssl
./config --prefix=/usr/local/ssl --openssldir=/usr/local/ssl shared zlib
make
# makeは時間がかかります。状況を時折確認しながら待ちましょう。
make test
make install
cat <<- __EOF__ | tee -a /etc/ld.so.conf.d/openssl-3.1.1.conf
/usr/local/ssl/lib64
__EOF__
ldconfig -v
mv /usr/bin/c_rehash /path/to/backup/c_rehash.$(date +%Y%m%d)
mv /usr/bin/openssl /path/to/backup/openssl.$(date +%Y%m%d)
# 任意の退避ディレクトリを指定します
cat <<- __EOF__ | tee -a /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
__EOF__
source /etc/environment
echo $PATH
# PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/local/ssl/bin"
# と表示されることを確認します
openssl version -a
OpenSSL 3.1.1 30 May 2023 (Library: OpenSSL 3.1.1 30 May 2023)
built on: Tue Jun 20 01:47:24 2023 UTC
platform: linux-x86_64
options: bn(64,64)
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_BUILDING_OPENSSL -DZLIB -DNDEBUG
OPENSSLDIR: "/usr/local/ssl"
ENGINESDIR: "/usr/local/ssl/lib64/engines-3"
MODULESDIR: "/usr/local/ssl/lib64/ossl-modules"
Seeding source: os-specific
CPUINFO: OPENSSL_ia32cap=0x7ffaf3ffffebffff:0x27ab
これで、Ubuntu20.04でもOpenSSL3.1.1を利用することが可能になりました。
2023/06/22
部屋を整理中に発掘です。
かなり前にOLYMPUS PEN-Liteを購入したときの同梱品、望遠レンズです。
ダブルレンズキットの片方の標準レンズが非常に使い勝手が高かったことと、買った当時は望遠域を使わなかったことで長々と放置。
「面白そうだ」ということで、実際に試してみます。
左がいつも使っているマクロレンズ。右側が今回試したズームレンズです。
ズームレンズだけあって
の2つに面食らいましたが、キチッと撮影できます。
フィルターをかけての比較。同様に左がマクロレンズで右が今回のズームレンズです。
やはりズームレンズはちょっとしたブレで全体がずれるので手持ち撮影には向きません。
ただ、この描写力は今後の可能性を感じさせます。まずはこのレンズでもう200枚ほど撮ってみてからフィードバックをしたいと思います。
こちらの記事から1年と4ヶ月。
ことから、新調。この、物理的にまず落ちない形状は非常に気に入っていたのですがあいにく終売品。
そこで選んだのがこちらです。
耳から落ちにくい形状で、比較的安価だったこのモデルを選択。
このようにイヤーフックがついていて、180度回転させることで耳にかけられるようになっています。
まず、ノイズキャンセリングが以前使っていたLife NCよりも段違い。外した瞬間に雑音だらけで戸惑ったほどです。
着用の手間は思った以上。いったん首にかけてから片耳ずつ嵌めていく運用と異なり、
一度片方を摂って展開し、装着してからもう片っぽを取り付ける形になるので、脱着自派より慎重になる必要がありました。
反面、一度でも取り付けてしまえば余程のことがない限り落ちないのは利点です。
音質に関しては余り気にしない性格なので、特に語ることはありません。
以前よりも小さいケースなので
百均で購入したこちらを使います。
大きさも厚みもちょうどいいサイズ。
リュックにそのままぶら下げられるのも便利です。
現在、growiのリバースプロキシとしてnginxを利用しています。
そこで、先だってご紹介したapache利用のサイトと同じようにセキュリティヘッダーを付与しました。
以下、教義・信仰に沿ったエディタで編集します。自分の環境に合わせてください。
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です。
AWS Lightsailを用いて外部公開しているWebサイトのセキュリティを高めるため、セキュリティヘッダを更に付与しました。
また、/etc/apache2/sites-availavle配下にバーチャルサイトファイルで管理しています。
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による解説です。
このヘッダーは、ブラウザがレスポンスのContent-Typeヘッダーと実際のコンテンツの種類が一致しない場合に、ブラウザが自動的にコンテンツのタイプを推測するのを防止します。これにより、悪意のあるコンテンツが実行されるリスクを低減することができます。
このヘッダーは、クリックジャッキング攻撃を防止するために使用されます。"DENY" を指定すると、ページがフレーム内で表示されることが完全に禁止されます。"SAMEORIGIN" を指定すると、同じオリジン(ドメインとプロトコルが一致)のフレーム内でのみページが表示されます。
このヘッダーは、クロスサイトスクリプティング(XSS)攻撃からの保護を目的としています。ブラウザによって検出されたXSS攻撃が検出された場合、ブラウザはページをブロックするように指示されます。
sudo apache2ctl configtest
#Syntax OKを確認します
sudo systemctl restart apache2.service
systemctl status apache2.service
#Active(running)を確認します
ヘッダーが正しく設定されていれば、それぞれのヘッダーの値が表示されます。
侵入防御システム、Fail2banを本格的に導入してから半年余り。その効果のフィードバックです。
[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アドレスを弾いたのか、確認してみました。
sudo fail2ban-client status 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: (後略)
sudo fail2ban-client status 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アドレス固定サービスを利用しているのであれば、アクセス許可を固定する(ポジティブリスト形式)が確実です。
プライベートのオンラインストレージをWebベースで構築できるNextcloud。
ブラウザ上からもアップデートなどを行えるのは大きな利点ですが:メンテナンス中にWebブラウザが落ちてしまった場合に
このようなメンテナンスモードが出ます。(ブラウザ上で処理ができなかったことが原因です)
サーバ自体を
sudo reboot
と再起動を行ってもその状態であることが多いです。
「処理が終わるまでブラウザを落とさず待つ」が正常な手順ですが、それを怠った場合のリカバリについてです。
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
# メンテナンスモードを無効化します。
sudo systemctl restart apache2.service
メンテナンスモードが解除されました。「アップデートを開始」をクリックします。(今度はブラウザを閉じないようにしましょう)
その後、NextcloudのWeb画面が出てきたので問題なくアップデートされました。
サイトのセキュリティを高めるため、HSTSプリロードを設定したときのメモとなります。
ここでは、hoge.example.com というサイトに対してHSTSプリロードを設定します。
※ドメインやDocumentRoot等は書き換えてください。また、サブドメインごとに複数のサイトがある場合、その全てを修正します。
<VirtualHost _default_:80>
servername hoge.example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>
<VirtualHost _default_:443>
servername hoge.example.com
ErrorLog /var/log/apache/error.log
CustomLog /var/log/apache/access.log combined
DocumentRoot /var/www/html/hoge
<Directory /var/www/html/hoge>
Options -MultiViews
AllowOverride All
Require all granted
</Directory>
SSLEngine on
Protocols h2 http/1.1
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
SSLCertificateFile /etc/certs/hoge.example.com.crt
SSLCertificateKeyFile /etc/private/hoge.example.com.key
</VirtualHost>
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
SSLCipherSuite 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
SSLHonorCipherOrder off
SSLSessionTickets off
- Header always set Strict-Transport-Security "max-age=63072000"
+ Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
-SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
+SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 -TLSv1.2
sudo apache2ctl configtest
# Syntax OKを確認します
sudo systemctl restart apache2.service
systemctl satus apache2.service
# active(running)を確認します。
Status: laplacemine.com is pending submission to the preload list.
と表示されます。Powered by WordPress & Theme by Anders Norén