投稿

2023の投稿を表示しています

Ubuntu Server 22.04 を仮想マシンとしてインストール

Ubuntu Serverを試したくなってインストールしたときの覚書。 環境: VMware Fusion 13.0.2 LinuxディストリビューションのシェアはUbuntuが31.8% Historical trends in the usage statistics of Linux subcategories, May 2023 1.仮想マシンとしてインストール 公式サイトからisoファイルをダウンロードする。 参考:  Ubuntuを入手する | Ubuntu | Ubuntu VMware Fusionの仮想マシンとしてインストールする。 OSインストール時に選択した項目 Ubuntu Server (minimized) Featured Server Snapsは何も選択しない 2.初期設定 OSインストール時に設定したユーザー名でログインする。 IPアドレスの確認 $ ip a WindowsからSSHでアクセスする。 C:> ssh hoge@192.168.0.2 rootになる。 $ sudo su - パッケージを最新にする。 # apt update # apt list --upgradable # apt upgrade ホスト名の確認 # hostnamectl status タイムゾーンの変更して確認。 # dpkg-reconfigure tzdata # date 稼働しているサービスの一覧 # service --status-all CentOSで慣れているsystemctlも使える。 # systemctl list-unit-files -t service 3.ソフトウェアのバージョンを確認 カーネルのバージョンを確認 # uname -a Linux vm-dev4 5.15.0-71-generic #78-Ubuntu SMP Tue Apr 18 09:00:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux 以下、気になっていたソフトウェアのバージョンをチェック。 # apt show nginx Version: 1.18.0-6ubuntu14.3 Depends: nginx-core (<< 1.18.0-6ubuntu14.3.1~) | ngi

マザーボードの電源が入らない

自作PCのマザーボードの電源が入らなくて原因を切り分けているときの覚書。 環境: ASUS TUF GAMING B550-PLUS, Ryzen 7 5700X BOX 確認すること マザーボード+CPU+電源ケーブルのみで起動するか。 (PCケースに固定しない状態) CPUなしだと起動しない。 (一部の高級マザーボードはCPUなしでも起動できるのがあるらしい) マザーボートのパワースイッチ(PWR_SW)はマイナスドライバーで短絡させることで電源ONに可能。 (PCケースの電源ケーブルが故障している可能性) ちなみに私の場合は、CPUソケットの横棒を上げずにCPUファンごとマザーボードに装着したため電源が入らなかった。 CPUグリスがなくなったので、CPUファンを取りたくなかった。。。 【関連記事】 自作PCのパーツ一覧(2023年3月) 自作PCのパーツ一覧(2022年12月)

BigQuery ML(Machine Learning)のチュートリアルをやってみる

Google Analytics 4(GA4)のデータを機械学習で活用したいと調査しているときの覚書。 1.機械学習とは? 機械学習とは、過去のデータから自動的にパターンやルールを学習することで何らかのタスクをこなす技術。 実世界の複雑に絡み合う事象から法則を見つけ、予測や課題解決につなげることができる。 Googleデジタルワークショップの教材が分かりやすい。 参考:  機械学習の基礎 - Google Digital Workshop (デジタルワークショップ) 2.GA4のデータをBigQueryへエクスポート GA4のデータは14ヵ月しか保存されない。 参考:  データの保持 - アナリティクス ヘルプ 過去のデータをBigQueryに簡単に保存する仕組みはないので、データ分析として利用する場合はBigQueryにエクスポートしておく必要がある。 (API経由でプログラムを組めば多分出来る) 前の記事を参考に:  Google Analytics4とBigQueryを接続して生データを確認する 3.BigQuery MLとは? BigQueryのデータを用いて簡単に機械学習(Machine Learning)モデルを作成し、実行できるサービス。 プログラミングの必要なくSQL言語だけで実行できる。 BigQuery ML とは  |  Google Cloud 4.BigQuery MLのチュートリアル まずは大人しく公式サイトのクイックスタートをやってみる。 クイックスタート: BigQuery ML で機械学習モデルを作成する  |  Google Cloud サンプルがGoogleアナリティクスのデータなのでちょうどよさそう。 注意事項など ロケーションタイプはマルチリージョン sample_modelを生成するのに3分 16秒掛かった。 分類子とか意味不明。 とりあえずチュートリアルを終わっても分かった気がしない。 ページ下部のリンクにあった機械学習集中講座をやってみることにした。 Machine Learning  |  Google Developers 【関連記事】 Google Analytics(GA4)はデータ保存、可視化するのはLooker Studioの役目。 Google Analytics4とBigQueryを接続して生データを確

NginxのKernel TLS(kTLS)

KernelでTLSの暗号化と複合化を行うことでNginxのパフォーマンスを向上させる記事を読んだときの覚書。 環境: CentOS Stream 9, nginx 1.22.1, OpenSSL 3.0.7 Kernel TLSとSSL_sendfile()によるNGINXのパフォーマンス向上 - NGINX 1.Kernel TLS(kTLS)とは? TLSをカーネルで実装して処理を高速化する仕組み。 Linuxカーネル4.17 + OpenSSL 3.0.0以上が必要。 RHEL9(CentOS Stream 9)から使える。 2.Kernel TLS(kTLS)が使えるか確認 カーネルのバージョンを確認。 # uname -a Linux vm-dev1.hoge.co.jp 5.14.0-285.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 7 17:32:48 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux 現在ロードされているカーネルモジュールの一覧。 参考:  第31章 カーネルモジュールの使用 Red Hat Enterprise Linux 6 | Red Hat Customer Portal # lsmod tlsカーネルモジュール情報の情報。 # modinfo tls nginxのビルドオプションを確認。 # nginx -V nginx version: nginx/1.22.1 built by gcc 11.3.1 20221121 (Red Hat 11.3.1-4) (GCC) built with OpenSSL 3.0.7 1 Nov 2022 TLS SNI support enabled configure arguments: (略) --with-openssl-opt=enable-ktls (略) appstreamリポジトリからインストールしたNginx。 OpenSSLが対応しているスイートの一覧。 # openssl ciphers -v OpenSSLの設定は「/etc/pki/tls/openssl.cnf」。 OpenSSLのバージョン確認。 # openssl version OpenSSL 3.0.7 1 Nov 2022 (L

FreeBSD13.1にImageMagick7をインストール

FreeBSDにImageMagickをインストールしてAVIF(AV1 Image File Format)への変換を試したときの覚書。 環境: FreeBSD 13.1, ImageMagick 7.1.0-50 FreeBSDのバージョン確認。 # uname -a FreeBSD vm-dev2 13.1-RELEASE-p6 FreeBSD 13.1-RELEASE-p6 GENERIC amd64 pkg経由でImageMagickインストールする。 まずは依存関係を知りたかったのでpkg経由でインストールしてみた。 # pkg search ImageMagick # pkg install ImageMagick7 New packages to be INSTALLED:         ImageMagick7: 7.1.0.50         Imath: 3.1.6         aom: 3.5.0         brotli: 1.0.9,1         cairo: 1.17.4_2,3         cups: 2.4.2         dav1d: 1.1.0         dejavu: 2.37_1         encodings: 1.0.5,1         fftw3: 3.3.10_2         font-bh-ttf: 1.0.3_4         font-misc-ethiopic: 1.0.4         font-misc-meltho: 1.0.3_4         fontconfig: 2.14.0,1         freetype2: 2.12.1_2         fribidi: 1.0.12         gdk-pixbuf2: 2.42.10         ghostscript9-agpl-base: 9.56.1_7         ghostscript9-agpl-x11: 9.56.1         giflib: 5.2.1         graphite2: 1.3.14         gsfonts: 8.11_8         harfbuzz: 7.0.1         highway: 1.0.2         j

FreeBSD13.1の仮想マシンをインストールして初期設定

FreeBSDを試したくなってインストールしてみたときの覚書。 環境: VMware Fusion 13.0.1 1.FreeBSD13.1をインストール 公式サイトから「FreeBSD-13.1-RELEASE-amd64-disc1.iso」をダウンロードして、VMware Fusionで仮想マシンを作成。 FreeBSD プロジェクト ネットワークをBridgeにして仮想マシン起動。 インストールする機能でportsを選択。 インストール後、IPアドレス確認。 # ifconfig sshからrootでログインできるようにsshdの設定変更 # less /etc/ssh/sshd_config PermitRootLogin yes PasswordAuthentication yes sshdを再起動。 # /etc/rc.d/sshd restart Windowsからログインする。 # ssh root@192.168.10.100 FreeBSDをアップデート。 # freebsd-update fetch # freebsd-update install パッケージマネージャをアップデート。 # pkg update # pkg upgrade 2.Bashをインストール デフォルトのcshが使いにくいので慣れているbashをインストールする。 # pkg search bash # pkg install bash bash-completion 画面の指示通りにする。 # vi .bashrc [[ $PS1 && -f /usr/local/share/bash-completion/bash_completion.sh ]] && \         source /usr/local/share/bash-completion/bash_completion.sh bashに切り替え。 # bash デフォルトをBashにする。 # chsh -s /usr/local/bin/bash 別コンソールでログインして確認。 3.gitをインストール よく使うgitはインストールしておく。 # pkg search git # pkg install git python39もインストールされた。バージョン確認

Google Workspaceを解約

Google WorkspaceからMicrosoft 365へ移行したときの覚書。 環境: Google Workspace Business Starter 1.事前準備 別記事にした。 参考: Google Workspaceのデータを個人アカウントへ移行 2.コアサービスをオフ Google Workspaceの管理画面で アプリ > Google Workspace > サービス のステータスの全部選択してオフにする。 これで運用してみて問題ないか確認する。 3.Google Workspace解約 Gmail > 設定 > この組織の管理 > お支払い > Google Workspace Business Starter 年契約だったので契約満了日は2024年1月。 更新設定の変更 > サブスクリプション を解約する 解約したら追記予定。 【関連記事】 Google Workspaceのデータを個人アカウントへ移行 Google WorkspaceからMicrosoft 365への移行を検討

自作PCのパーツ一覧(2023年3月)

3ヵ月前に刷新した仕事用PCの調子が悪くなってマザーボードとCPUを交換。 現在のPCパーツ構成 Intel Core i5 13500(Raptor Lake) BOX 14Core 2.5GHz LGA1700 /35,676円 ASUS TUF GAMING B660M-PLUS D4 /17,904円 MSI GeForce RTX 3060 VENTUS 2X 8G OC /52,442円 Team DDR4 3200Mhz PC4-25600 8GBx2枚/6,480円 Crucial DDR4 3200Mhz PC4-25600 8GBx2枚/5,780円 合計金額: 118,282円 PCケースと電源は変えてない。 【関連記事】 自作PCのパーツ一覧(2022年12月) Windows11をクリーンインストール(2022年12月)

NginxでSemrushBotをアクセス拒否

SemrushBotから短時間に大量のアクセスがあるので拒否する設定にしたときの覚書。 環境: CentOS Stream 8, Nginx 1.22.1 アクセスログ確認。 # less /var/log/nginx/access.log  185.191.171.12 - - [08/Mar/2023:04:29:33 +0900] "GET /dr.htm/page/6/page/7/page/4/page/13/page/9/page/2/page/9/page/3/ HTTP/1.1" 301 169 "-" "Mozilla/5.0 (compatible; SemrushBot/7~bl; +http://www.semrush.com/bot.html)" "-" nginxの設定ファイルでユーザーエージェントにマッチしたらコネクションを閉じる(return 444)。 参考:  NGINX to block bad bots. (add Twenga|TwengaBot if you want to exclude them too) # cd /etc/nginx/conf.d/global/ # less wordpress_restrictions.conf # # Block bots # if ($http_user_agent ~* (SemrushBot|MJ12bot) ) {     return 444; } テストしてnginxリロード # nginx -t # systemctl reload nginx 全サーバーで共有するのでコミットを忘れずに。 # git add --all # git commit -m 'Update block bot list' # git push origin master お行儀がいいbotは何もしない。 botの一覧と簡単な説明。 2023年1月更新!迷惑なbotをアクセス拒否・除外する設定方法まとめ(Nginx・Apache・.htaccess) 【関連記事】 nginxで国単位のIPアドレス制限 WordPressの「/?author=1」をブロックする

Minidumpフォルダのdmpファイルを読み込む

突然Windowsの電源が落ちたのでdmpファイルを解析してみたときの覚書。 環境: Windows 11 Pro 22H2, GeForce Game Ready ドライバー v531.18 イベントビューアーを開いてみると下記エラー このコンピューターはバグチェック後、再起動されました。バグチェック: 0x00000119 (0x0000000000000002, 0xffffffffc000000d, 0xfffff58965e7f860, 0xffff8006a39afcc0)。ダンプの保存先: C:\Windows\Minidump\030623-11046-01.dmp。レポート ID: f4b00ede-78f6-49ce-8a0b-85193a5f4c46。 この保存されたdmpファイルを開くためにはWinDbh Previewというソフトを使うらしい。 ミニ ダンプ ファイルを読み取る方法 | Dell 日本 書いてある通りにインストールして「!analyze -v」してみる。 VIDEO_SCHEDULER_INTERNAL_ERROR (119) The video scheduler has detected that fatal violation has occurred. This resulted in a condition that video scheduler can no longer progress. Any other values after parameter 1 must be individually examined according to the subtype. Arguments: Arg1: 0000000000000002, The driver failed upon the submission of a command. SYMBOL_NAME:  dxgmms2!VidSchiSendToExecutionQueue+19fb2 MODULE_NAME: dxgmms2 要は「モジュール名”dxgmms2”というWindowsのグラフィックドライバーがコマンドの送信時に失敗しました。」ということみたい。 nVidiaのGeForceドライバーは最新のv531.18。 頻繁に起こるわけではな

メモリ診断ツール「MemTest86」

Windowsが突然再起動するようになったのでメモリの原因かなと思って調査したときの覚書。 環境: Windows 11 Pro 22H2,  Windows標準の「Windows メモリ診断」より定評のあるフリーのメモリ診断ツールを使ってみる。 MemTest86 - Download now! 6時間ぐらい掛かり問題なくPASSした。 メモリの故障ではないらしい。 診断結果logはUSBメモリに保存しておく。 2023-02-27 10:24:36 - Attempting to retrieve the root directory of the data partition. 2023-02-27 10:24:36 - Found 6 handles that supported SimpleFileSystem 2023-02-27 10:24:36 - Checking handle 0 (C7028F98) 2023-02-27 10:24:36 - Handle is own partition 2023-02-27 10:24:36 - Checking handle 1 (C7019018) 2023-02-27 10:24:36 - HD node found: MBR type(2), Signature type(2), Part #(2), Start LBA(524288), Num Sectors(524288) 2023-02-27 10:24:36 - Self node: MBR type(2), Signature type(2), Part #(1), Start LBA(2048), Num Sectors(522240) 2023-02-27 10:24:36 - Checking handle 2 (C8D8E298) 2023-02-27 10:24:36 - Checking handle 3 (C8D8DD18) 2023-02-27 10:24:36 - Checking handle 4 (C8D8DA98) 2023-02-27 10:24:36 - Checking handle 5 (C71F4598) 2023-02-27 10:24:36 - Found 13 handles that suppor

MacのショートカットキーをWindowsっぽく設定

メインのWindows PCが故障して、新しい PCが届くまでにMac miniで作業している時の覚書。 環境: Mac mini(2018) Ventura 13.2.1 1.キーボードショートカット設定 MacはデフォルトでEmac風のキーバインドになっているのでキータイピングは快適。 ウィンドウの操作はWindowsに慣れているので下記のように変更。 System Settings > Keyboard > Keyboard Shortcuts... Mission Control > Mission Control: Alt + up Mission Control > Application Windows: Alt + down Mission Control > Mission Control > Move left a space: Alt + left Mission Control > Mission Control > Move right a space: Alt + right App Shortcuts > Google Chrome.app: Reload This Page: F5 App Shortcuts > Google Chrome.app: New Tab: Ctrl + T App Shortcuts > Google Chrome.app: Close Tab: Ctrl + W App Shortcuts > Finder.app: Rename: F2 App Shortcuts > Finder.app: Move to Trash: Ctrl + D Function Keys > User F1, F2, etc. ....: On 2.AltTabをインストール Alt + Tabでアプリケーションを切り替えたい。 Command + Tabは押しにくいから嫌。 オープンソースで公開されているのでGitHubからダウンロードする。 参考:  lwouis/alt-tab-macos: Windows alt-tab on macOS 3.その他 忘れそうなのを覚書 Finderで隠しファイルを表示する: Command + S

GeForce RTX 3060 VENTUS 2X 8G OCを急遽購入

Windowsがブルースクリーンになって再起動を繰り返すようになって、原因はQuadro P1000かな?と思って急遽ビデオカードを購入した時の覚書。 環境: Windows 11 Pro 購入したのはこちら。 MSI GeForce RTX 3060 VENTUS 2X 8G OC | Graphics Card | MSI Global 価格.com - MSI GeForce RTX 3060 VENTUS 2X 8G OC [PCIExp 8GB] 価格比較 Amazonで52,442円。 GeForce RTXは10bit colorに対応している。 Adobe IllustratorのGPUパフォーマンス機能を有効にするにはOpenGL 4.0以上をサポートしている必要がある。 参考:  Adobe Illustrator の必要システム構成 もっと落ち着いてどれを買うか吟味したかった。 【関連記事】 自作PCのパーツ一覧(2022年12月) NVIDIA Quadro P1000を購入。SW271+10bitカラー設定

SCEP証明書登録の初期化が失敗しました。

突然Windowsが落ちた後、それが繰り返されるようになったので調査したときの覚書。 環境: Windows 11 Pro 22H2, Ryzen 7 5700X, ASUS TUF GAMING B550-PLUS, NVIDIA Quadro P1000 イベントビューアーを見てみるとそれらしいエラー https://AMD-KeyId-1234.microsoftaik.azure.net/templates/Aik/scep を経由した WORKGROUP\MY-WIN$ のSCEP証明書登録の初期化が失敗しました。 GetCACaps GetCACaps: Not Found {"Message":"The authority \"amd-keyid-1234.microsoftaik.azure.net\" does not exist."} HTTP/1.1 404 Not Found Date: Sat, 25 Feb 2023 01:35:25 GMT Content-Length: 121 Content-Type: application/json; charset=utf-8 X-Content-Type-Options: nosniff Strict-Transport-Security: max-age=31536000;includeSubDomains x-ms-request-id: 91a4477d-1059-4295-92d5-abed7b44f569 やったこと マザーボードのBIOSをv2803からv2806へアップデート。 NVIDIA Quadro P1000ドライバーv527.27からv528.49へアップデート。 BIOSのSecurity Device Supportを無効に。 → ログイン時のPINが無効になり、再設定も出来なくなったので元に戻した。 Google Chromeを最新版に更新。 ディスククリーンアップを起動 > システムファイルのクリーンアップ でCドライブとDドライブ両方を実行。 BIOSでSVM Modeを有効化。 「ハイパーバイザーの起動に失敗しました。SVM が存在しないか、BIOS で有効になっていません。」とイベントビューアー

Google Workspaceのデータを個人アカウントへ移行

Google WorkspaceからMicrosoft 365へ移行するので、Google Workspaceのデータを個人Googleアカウントへコピーしているときの覚書。 環境: Google Workspace Business Starter メールは元々個人Gmailへ転送していたので何もする必要はない。 1.Googleドライブ Google Takeoutを使う。 Googleアカウントを管理 > データとプライバシー > (一番下にスクロール)アプリとサービス > ドライブ のダウンロード。 スプレッドシートはxlsx形式でダウンロードされる。 2.Googleカレンダー Google Takeoutを使う。 Googleアカウントを管理 > データとプライバシー > (一番下にスクロール)アプリとサービス > カレンダー のダウンロード。 ics形式でダウンロードできる。 Googleカレンダー 設定 > カレンダーを追加 > 新しいカレンダーを作成 作成後、左メニューのインポート/エクスポートを選択。 ダウンロードしたicsファイルとさっき作成したカレンダーを選択しインポート。 必要な数だけ繰り返す。 【関連記事】 Google WorkspaceからMicrosoft 365への移行を検討 【G Suite】ドメインエイリアスをプライマリドメインに。無償版から有償版に切り替え

GA4イベントパラメーターの100文字制限

Google AnalyticsをGA4に移行した後イベントパラメーターが100文字(100 bytes)までしか取得できていなくて調査したときの覚書。 環境: Google Analytics GA4, Google Tag Manager imgタグのsrc属性値をイベントパラメーターとして送信していたけど、WordPressだと階層が深くなって途中で切れていた。 GA4イベントの制限事項は公式ドキュメントに書いてあった。 [GA4] イベントの収集に適用される制限 - アナリティクス ヘルプ カスタムJavaScriptで特定の文字列を置換 イベントパラメーターはGoogle Tag Managerの自動イベント変数(要素の属性|src)で取得していた。 このsrc属性のURL「https://hoge.jp/wp-content/themes/」が固有値(約40文字)なので、これをReplaceできれば100文字に収まる。 ユーザー定義変数のカスタムJavaScriptでやってみる。 公式ドキュメントを見ながら。 User-defined variable types for web - Tag Manager Help クリックされたsrc属性値を取得するカスタムJavaScriptの例 function() {   var elem = {{Click Element}};   var src = elem.getAttribute('src');      if (src) {     src = src.replace(document.location.protocol + '//', '');     src = src.replace(document.location.host, '');     src = src.replace('/wp-content/themes/', '');   }   return src; } プレビューで値を確認して公開する。 【関連記事】 Google Analytics(GA4)はデータ保存、可視化するのはLooker Studioの役目。 Google Analytics 4 + Google Tag Ma

Nginxのfastcgi_buffer_sizeを設定

サーバーのエラーログを確認していたら下記エラーが出力されていたので調査したときの覚書。 環境: CentOS Stream 8, CPU:4コア, メモリ:4GB エラー確認 # less /var/log/nginx/error.log fastcgi_buffer_size 4096 is not enough for cache key, it should be increased to at least 8192 fastcgi_buffer_sizeはphp-fpmなどのFastCGIのレスポンスをキャッシュする。 レスポンスヘッダー部分は常にキャッシュしようとするが、それさえもキャッシュできない場合上記エラーとなる。 参考:  Module ngx_http_fastcgi_module fastcgi_buffer_sizeとfastcgi_buffersが設定してなかったので設定する。 下記のように設定変更した。 リバースプロキシとFastCGIで合計512MBメモリ消費する計算。 # less fastcgi_php.conf # Buffer size proxy_buffer_size 32k; proxy_buffers 8 32k; fastcgi_buffer_size 32k; fastcgi_buffers 8 32k; テストして再読み込み。 # nginx -t # systemctl reload nginx topコマンドの後、M(Shift + m)でメモリ使用順で並び替えてみて確認する。 VIRT: 仮想メモリサイズ RES: 物理メモリサイズ SHR: 共有メモリサイズ 定期的にエラーログを確認する。 【関連記事】 MariaDBのチューニング設定(2023年2月版) CentOS Stream 8 + Nginx + PHP + MariaDB + Postfixの環境を構築(2021年版) Nginxを設定してWordPressにリバースプロキシする

送信ドメイン認証DMARCとは?DMARC対応。

SPFとDKIMは対応済みでDMARCは導入しなくてもいいかなと思っていたけれど、ARC(Authenticated Received Chain)を導入するついでにやってしまおうと調査しているときの覚書。 環境: CentOS Stream 9, Postfix 3.5.9, OpenDMARC  1.DMARCとは? DMARCはDomain-based Message Authentication, Reporting and Conformanceの略。 メールヘッダーのFROMとSPF/DKIMから送信者ドメインを検証する仕組み。 DMARCをpassしていれば送信者ドメインが管理下にあることを証明できる。 SPFとDKIMだけでは、両方passする偽装メールは可能らしい。 参考:  DMARCの認証ってSPFやDKIMと何が違うんですか?を説明してみる。|藤田紀行(株式会社WOW WORLD CTO)|note また自社になりすました(可能性のある)メールのレポートを受け取ることができる。 ドメイン管理者がなりすまし状況を認識しセキュリティ意識を高めることに繋がる。 メール送信するだけならDNSのtxtレコードにdmarc用の記述するだけでOK. 参考サイト ドメイン認証技術「DMARC」について - Yahoo!メール DMARC を使用してなりすましと迷惑メールを防止する - Google Workspace 管理者 ヘルプ FAQ - DMARC Wiki メール転送やメーリングリストを運用している場合は、転送先でSPFとDKIMの検証に失敗する可能性があるので、ARC(Authenticated Received Chain)も対応が必要。 2.DMARCレコードをDNSに記述 SPFとDKIMを導入済みであれば、DMARCレコードをDNSに追加するだけで対応完了。 value domainなら下記のように_dmarcサブドメインにtxt行を指定する。 txt _dmarc v=DMARC1; p=none; rua=mailto:hoge@gmail.com 各意味は下記サイトを参考に。 Overview – dmarc.org DMARC を使用してメールを検証する、セットアップ手順 - Office 365 | Microsoft Lear

CentOS9にOpenARCをインストール

最近のメールサーバーはARC(Authenticated Received Chain)を付けるのがお作法らしいのでやってみたときの覚書。 環境: CentOS Steam 9, Postfix 3.5.9, OpenARC 1.0.0 OpenARCはEPELリポジトリにある。 OpenDKIMはインストール&設定済み。 参考サイト GitHub - trusteddomainproject/OpenARC: Open source ARC implementation Install OpenARC on CentOS 7 with epel-repo ← RootLinks Co., Ltd. dnf経由でインストール。 # dnf install openarc 設定ファイルを確認 # less /etc/openarc.conf OpenDKIMと同じ秘密鍵を使うのでコピーする。 (サービスの起動ユーザーが違うので同じ場所を参照してもエラーになる) # cp /etc/opendkim/keys/hoge.jp/indigo02.private /etc/openarc/ # chown openarc. /etc/openarc/indigo02.private 設定ファイル編集。 参考になるのがサンプルしかなさそう。 参考:  OpenARC/openarc.conf.sample at master · trusteddomainproject/OpenARC · GitHub # less /etc/openarc.conf ## See openarc.conf(5) or /usr/share/doc/openarc-1.0.0/openarc.conf.sample for more PidFile /run/openarc/openarc.pid Syslog  yes UserID  openarc:openarc Socket  inet:8893@localhost SignHeaders to,subject,message-id,date,from,mime-version,dkim-signature #PeerList /etc/openarc/PeerList MilterDebug 6 EnableCoredumps ye

ARC(Authenticated Received Chain)とは?

Microsoft 365を設定して久しぶりにメールヘッダーを見ていたら「ARC-*って何?」となって調査したときの覚書。 1.ARCとは? ARCは中継メールサーバー向けに設計された認証の仕組み。 Authenticated Received Chainの略。 Gmailは2017年5月、 Microsoft 365(Exchange)は2019年10月 にARC対応開始。 参考サイト Authenticated Received Chain - Wikipedia Microsoft “enabled” ARC in Office 365 – ARC Specification for Email ARC について | なりすまし対策ポータル ナリタイ 送信ドメイン認証まとめ(SPF、DKIM、DMARC、ARC)(+BIMI) - 朝から昼寝 DKIMとSPFだけだと、メーリングリストのように中継メールサーバーが再配信を行う場合、受け取ったユーザーは最初の送信者の経路を検証できない。 例えばメーリングリスト用に件名を変更してしまうとDKIM認証で失敗する。 他にはウイルス対策でメールをスキャンし、本文を変更するとDKIM認証で失敗する。 そのため中継ごとにARC-*で検証結果を記録していく仕組み。 2.最初の送信時にARC署名はいらない? 最初にARC署名する必要はない。 GmailやMicrosoft Exchangeは最初からARC署名している。 参考:  ARC認証の整理しておきたいポイント - 朝から昼寝 ARC署名が受信者の郵便ポストへ届くまでに追加した配送拠点のサインだと考えると、最初のメールサーバーでARC署名しておく方が分かりやすいと思う。 ただしARC対応するメリットはない。 ARCまでいったならDMARCもやっておいた方がいい。 【関連記事】 Microsoft 365 ExchangeにDKIMを設定 送信ドメイン認証のDMARCを設定 PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる PostfixにSPFとDKIMと暗号化の設定まとめ

Microsoft 365 ExchangeにDKIMを設定

Microsoft 365 Exchange経由でメールを送信するときにDKIM(送信ドメイン認証)を設定したときの覚書。 環境: Microsoft 365 Business Standard 公式ドキュメントを参考に。 カスタム ドメインで DKIM をメールに使用する方法 - Office 365 | Microsoft Learn Microsoft 365 Defender > ポリシーとルール > 脅威ポリシー > メールの認証の設定 > DKIM > ドメインを選択 > DKIMキーの作成 表示された値をDNSに設定する。 value domainでは次のようになる。 cname selector1._domainkey selector1-hoge-jp._domainkey.hoge.onmicrosoft.com. cname selector2._domainkey selector2-hoge-jp._domainkey.hoge.onmicrosoft.com. nslookupで確認した後、DKIM署名を有効にする。 エラーになった。 約2時間後に再実行したら有効にできた。 メール送信してヘッダーを確認する。 【関連記事】 Microsoft 365 Exchangeで別メールアドレスを受信/エイリアス機能 Microsoft Defenderとは?Windows Defenderとの違い。 CentOS Stream 9にOpenDKIMをインストールするときはcrbリポジトリを有効にする

Microsoft 365 Exchangeで別メールアドレスを受信/エイリアス機能

Microsoft 365に移行してメール設定しているときの覚書。 「info@hoge.jp」のメールも受信できるようにしたい。 Google Workspaceではメールエイリアス機能で簡単に追加できた。 参考:  予備のメールアドレス(メール エイリアス)を追加または削除する - Google Workspace 管理者 ヘルプ 環境: Microsoft 365 Business Standard 1.共有メールボックス MS Exchangeには共有メールボックスという機能がある。 参考:  共有メールボックスについて - Microsoft 365 admin | Microsoft Learn 下記サイトの説明が分かりやすかった。 【Exchange】共有メールボックスを作成して複数メンバーでメール共有! メリット/デメリット アカウントとは別に50GBのデータを保存可能。 そのメールアドレスを差出人(送信元)として返信可能。 Outlookで共有メールボックスを設定で追加しないと確認できない。気付かない。 メールボックス自体が分かれているのでメールを探しやすい。 タグ付け/フィルタ/検索の文化がない人はこちらの方が使いやすいと思う。 2.配布リスト メーリングリストみたいにメンバー全員に転送される。 参考:  Exchange Online で配布グループを作成して管理する | Microsoft Learn 作成方法 Microsoft 365 管理センター > チームとグループ > 配布リスト > グループの追加 「配布」を選択。 所有者には配送されない。メンバーのみに配送される。 最後にメールアドレスを入力する。組織外からの送信を許可。 メールは個人Gmailへ転送してGmailがいい感じに振り分けてくれるので、配布リストが求めていた機能。 配布リストのメールアドレスは複数指定できるので、info, nginx, rootなどサーバーの送信元になるメールアドレスも追加しておいた。 【関連記事】 Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定 Google WorkspaceからMicrosoft 365への移行を検討

Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定

Microsoft 365 ExchangeをGoogle Workspaceを使ってた頃並みに使いやすくしようと試行錯誤しているときの覚書。 環境: Microsoft 365 Business Standard 1.OutlookからGmailにメール転送 Google Workspaceでも個人Gmailに転送して便利だったので、ExchangeでもGmailに転送したい。 Gmailの何が便利か。 クラウドなのでブラウザがあればどこからでもメール確認できる。 自動で賢くカテゴリー分けしてくれる。 迷惑メールフィルタが賢い。 今まで設定したフィルタ(自動振り分け)機能の資産を活かせる。 保存容量を安く追加購入できる(空き容量を気にしなくていい)。 ちなみに20年間使ったGmailの使用量は9.54GB Outlookに届いたメールを転送する設定。 クラウド版Outlook > 右上の設定アイコン > Outlookのすべての設定を表示 > 転送を有効 にするをチェック。 Gmailアドレスを入力。 Gmailエイリアス機能の「+outlook」とかで設定しておく。 試してみると下記エラー Delivery has failed to these recipients or groups: Your message wasn't delivered because the recipient's email provider rejected it. Remote Server returned '550 5.7.520 Access denied, Your organization does not allow external forwarding. Please contact your administrator for further assistance. AS(7555)' コミュニティサイトで同様の情報があった。 参考:  外部メール アドレスへの自動転送がブロックされる - Microsoft コミュニティ 書いてある通り設定する(画面構成が変わっている)。 Microsoft365管理センター > セキュリティ >ポリシーとルール > 脅威ポリシー > 迷惑メール対策 > 迷惑メール対策の受信ポリシー(規定)

GmailからMicrosoft365のメールを送受信できるように設定(調査編)

Google WorkspaceからMicrosoft 365へ移行しているときの覚書。 メールは個人Gmailへ集約しているので、Gmail上でメール送受信できるように設定したい。 環境: Microsoft 365 Business Standard 結論を先に書くと、GmailからPOP3でMicrosoft 365へアクセスできないので、メール転送とSMTP AUTHで実現した。 参考: Gmail上でMicrosoft 365 Exchange(Outlook)のメール送受信設定 以下は調査しているときのメモ書き。 Microsoft 365では2段階認証を有効にしているため、GmailからPOPでMicrosoft 365でアクセスするには専用の一時的なパスワードを生成する必要がある。 参考:  2 段階認証用のアプリ パスワードを管理する - Microsoft サポート 1.ユーザーにアプリパスワードを許可する Microsoft 365 管理センター > ユーザー > アクティブなユーザー > 多要素認証で、サービス設定(画面上にあって分かりにくい)を選択。 「ブラウザーではないアプリケーションへのサインイン用にアプリケーション パスワードの作成を許可する」をチェック(既にチェックが付いていた)。 ユーザー一覧に戻って、ユーザーを選択。 quick stepsを有効にする。 「multi-factor authを有効にする」 2.アプリパスワードの発行 Microsoft365アカウントのセキュリティ情報 > サインイン方法の追加 「どの方法を使用しますか?」でアプリパスワードが選択肢にない。 アプリパスワードは先進認証では機能しないらしい。 参考:  Azure AD Multi-Factor Authentication のアプリ パスワードを構成する - Azure Active Directory - Microsoft Entra | Microsoft Learn 先進認証って何? 同じ現象で質問が上がってた 参考:  outlook(office365)へのメールをGmailに転送するとgoogle側のサーバーでrejectされる - Gmail コミュニティ 3.基本認証と先進認証 基本認証はユーザー名とパスワードを使った認証方式

Google WorkspaceからMicrosoft 365への移行を検討

Microsoft 365 Business Premiumを契約してIntuneを試したい。 そうなるとGoogle WorkspaceからMicrosoft 365に完全移行した方がいいのでは?と思って調査しているときの覚書。 現在の環境 Google Workspace: Business Starter(月額680円/1ユーザー) Microsoft 365: Business Standard(月額1,360円/1ユーザー) メール(ドメイン)はGoogle Workspaceを使っている 参考サイト Google Workspace(旧称 G Suite): お支払いプラン Microsoft 365 のすべてのプランを比較 | Microsoft Google Workspaceを解約する理由 Microsoft 365 Business Premium(月額2,390円/1ユーザー)にするならGoogle Workspace(月額680円/1ユーザー)を解約して節約したい。 個人としてはGoogleが好き。 会社としてはマシン管理、オフィスアプリ、オンライン打合せ、顧客企業へのセキュリティ対策提案などを考えるとMicrosoft 365になってしまう。 1.GmailとExchange メールは個人Gmailに転送していてMTA(メール転送エージェント)として使っているだけなので、切り替えても大丈夫そう。 参考:  エンジニアから見たMTAとしてのExchange | 日々徒然 Exchangeは宛先不明を特定のメールアドレスへ転送することができない。 Microsoft 365 Exchange(Outlook)のメール容量は50GB。 ちなみに私が20年間使ったGmailの使用量は現在9.54GB。 Microsoft 365は規定で先進認証(OAuth)のみ許可しているので、GmailからExchangeのメールを送受信するのに設定変更が大変だった。 2.Googleアカウントはどうなるか? Google Workspaceを解約してもGoogleアカウントは残るらしい。 参考:  導入前に知っておきたい!Google Workspaceの解約方法と解約時の料金について徹底解説|どんとこい!Google Workspace 後で確認 Googl

CentOS9 + PHP8.1の環境にMecab + php-mecabをビルドしてインストール

CentOS Stream 9のVPSに形態素解析の機能をインストールしているときの覚書。 環境: CentOS Stream 9, PHP 8.1.14 ビルドに必要なツールをインストールしておく。 # dnf install make gcc-c++ libticonv php-devel 1.形態素解析「Mecab」をインストール php-mecabをビルドするためにdnf経由ではなくソースコードからビルドする。 公式サイトからダウンロード。 参考:  MeCab: Yet Another Part-of-Speech and Morphological Analyzer # cd /opt/software/ # curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7cENtOXlicTFaRUE" -o mecab.tgz 解凍してビルド実行 # tar xzvf mecab.tgz # rm mecab.tgz # cd mecab-0.996/ # ./configure --with-charset=utf8 # make # make check # make install 確認 # which mecab /usr/local/bin/mecab 辞書をインストールする。 # cd /opt/software/ # curl -L "https://drive.google.com/uc?export=download&id=0B4y35FiV1wh7MWVlSDBCSXZMTXM" -o ipadic.tgz # tar xzvf ipadic.tgz # rm ipadic.tgz # cd mecab-ipadic-2.7.0-20070801/ # ./configure --with-charset=utf-8 # make # make install 確認 # mecab -D filename:       /usr/local/lib/mecab/dic/ipadic/sys.dic version:        102 charset:        utf-8 type:   0 s

短縮URLを独自ドメインで運用できる「Shlink」をインストール

Microsoft TeamsのURLが長いので短くできないものかと調べ、Shlinkをインストールしてみたときの覚書。 環境: CentOS Stream 9, nginx 1.22.1, PHP 8.1.8, shlink 3.5.1 1.Shlinkとは? オープンソースの自前ホストにインストールして運用できる短縮URLシステム。 独自ドメインの短縮URLが生成可能になる。 ウェブ管理ツールのweb clientと分離されている。 web clientがなくてもコマンドラインで短縮URLの生成が可能。 web client自体もオープンソースで配布されている。 Shlink公式サイト/GitHubリポジトリ Shlink — The URL shortener shlinkio/shlink: The definitive self-hosted URL shortener PHP 8.1以上が必要。 2.Shlinkをソースからビルド(失敗) あとで分かったけど アップデート機能があるのでgit cloneする必要はない。 参考:  Shlink — The URL shortener — Documentation まずはPHP Composerをインストール。 公式サイトを参考に。 参考:  Composer # php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" # php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

SSHクライアントをTeraTermからWindows Terminalへ

15年以上TeraTerm Menuを便利に使っていたけれど、代替SSHクライアントはないものかと調査したときの覚書。 環境: Windows 11 pro 22H2, Windows ターミナル 1.16.10262.0 1.Windows標準のOpenSSHクライアント Windows11は標準でOpenSSHクライアントを利用できる。 gcmコマンドでパスを確認 PS> gcm ssh CommandType     Name                                               Version    Source -----------     ----                                               -------    ------ Application     ssh.exe                                            8.6.0.1    C:\Windows\System32\OpenSSH\ssh.exe OpenSSHがない場合は、設定 > アプリ > オプション機能でOpenSSHクライアントを有効にする。 2.Windows Terminalとは? Windows Terminal(日本語名:ターミナル)はモダンなコマンドラインアプリ。 Windows Storeから無料でインストール可能。 参考:  Windows Terminal - Wikipedia 一言でいうとコマンドライン版Visual Code Studio。 タブ表示、ウィンドウ分割、キーバインドの設定などカスタマイズ性が高い。 (ウィンドウ分割しなくても別でWindows Terminalを立ち上げて並べてもいい) GitHubでソースコードが公開されている。 すごく使いやすい。Windows環境では、これ一択になると思う。 3.Windows TerminalにSSH接続のショートカットを作成 Windows Terminalの設定から直観的に操作できる。 「+新しいプロファイルを追加します」を選択して、最初はPowerShellのプロファイルをコピーする。 コマンドラインにsshコマンドを設定。 ssh -i ~/.ssh/private

CentOS Stream 9にOpenDKIMをインストールするときはcrbリポジトリを有効にする

CentOS Stream 9のPostfixをセットアップしているときの覚書。 環境: CentOS Stream 9 epelリポジトリはインストール済み。 Postfix + OpenDKIMをインストールしているときに下記エラー。 # dnf install opendkim Error:  Problem: conflicting requests   - nothing provides libmilter.so.1.0()(64bit) needed by opendkim-2.11.0-0.28.el9.x86_64   - nothing provides libmemcached.so.11()(64bit) needed by opendkim-2.11.0-0.28.el9.x86_64 依存関係になっているlibmilter.soが見つからない。 調べてみるとcrbリポジトリにあった。 # dnf install opendkim --enablerepo=crb crbリポジトリは有効にしておく # dnf config-manager --set-enabled crb 確認 # less /etc/yum.repos.d/centos.repo opendkim-genkeyコマンドはopendkim-toolsにあるのでインストール。 # dnf install opendkim-tools 設定は前の記事を参考に。 参考:  PostfixにDKIMを設定して送信メールサーバーの信頼度を上げる PostfixのDKIM設定も忘れずに。 再起動、確認 # systemctl start opendkim # systemctl enable opendkim # systemctl status opendkim # systemctl restart postfix # systemctl status postfix sendmailで動作確認 # sendmail hoge@gmail.com postfixの送信ログを確認 # less /var/log/maillog Gmailでもソースを表示してDKIMがpassになっているか確認。 【関連記事】 WebARENA IndigoのCentOS Stream 9を初期設定

WebARENA IndigoのCentOS Stream 9を初期設定

WebARENA Indigoのインスタンスを作成して初期設定したときの覚書。 基本はCentOS Stream 8の時と同じ 参考:  【WebARENA Indigo】CentOS Stream8の初期設定 環境: CentOS Stream 9 rootになってアップデート。 # sudo su - # dnf update ホスト名変更 # hostnamectl set-hostname indigo01.hoge.jp # hostnamectl status タイムゾーンを日本時間 # timedatectl status # timedatectl list-timezones | grep Tokyo # timedatectl set-timezone Asia/Tokyo # timedatectl status SELinuxを確認して無効 # getenforce # less /etc/selinux/config これで再起動 # reboot コンソール画面でファイヤーウォールの設定をする。 別のインスタンスと同じ設定を適用する。 gitインストール # sudo su - # dnf install git # git --version git version 2.39.1 Gitの設定 # git config --global user.name "Hoge" # git config --global user.email "hoge@company.co.jp" GitLabの秘密鍵を登録しておく(他のサーバーからコピペ)。 # vi .ssh/id_rsa.gitlab.com # vi .ssh/config  # chmod 600 .ssh/id_rsa.gitlab.com EPELリポジトリ追加 # dnf install epel-release # dnf update certbotをインストール。 python3もインストールされるのでpipをインストール。 # dnf install certbot  # dnf install python3-pip pythonモジュール更新一覧を表示してアップグレードする。 # python -m pip list -o

Windows11からVPSへのSSH(TeraTerm)が失敗する

WebARENA Indigoにインスタンスを作成して設定しているときの覚書。 環境: Windows 11 pro(AzureAD連携), TeraTerm 4.106 他のインスタンスと同様にTeraTerm Menuで接続しようとしても失敗する。 ファイヤーウォールやプライベートキーは他のインスタンスと同じなので大丈夫なはず。 参考: S SH接続でインスタンスにログインする(Indigo) – お客さまサポート PowerShellで試す。 PS> ssh -i .\private.key centos@1.2.3.4 Bad permissions. Try removing permissions for user: NT AUTHORITY\\Authenticated Users (S-1-5-11) on file D:/Projects/documents/SSH/private.key. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @         WARNING: UNPROTECTED PRIVATE KEY FILE!          @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for '.\\private.key' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key ".\\private.key": bad permissions private.keyを右クリックして プロパティ→セキュリティ→詳細設定→アクセス許可の変更→継承の無効化 Authenticated UsersとUsersを削除 してもダメだった。 このPCはAzureADと接続していて、名前の確認でAzureADを検索できない。 なので、他のユーザーがアクセスできないC:\Users\suganuma\.sshへコピーする。 PS>

Google Analytics(GA4)はデータ保存、可視化するのはLooker Studioの役目。

Google Analyticsで旧プロパティ(ユニバーサルアナリティクス)が2023年7月1日で停止するということで、移行しているときの覚書。 「サイトの速度」など旧プロパティで表示されていた項目がGA4ではなくなっている。 今まではGoogle Analyticsが全部いい感じに表示してくれたので使いやすかった。 GA4ではアプリのアクセス解析もできるように汎用的に設計されて、Google Marketing Platformの各ツールで役割分担するようになっている。 参考:  Google Marketing Platform - Wikipedia Google Analytics: 行動履歴のデータベース Google TagManager: トラッキングコードなどのタグ管理システム Google Search Console: 管理ウェブサイトのGoogle検索管理コンソール Looker Studio(旧名: Data Studio): レポートツール。Lookerの意味:見た目 PageSpeed Insights: ウェブサイトのパフォーマンス測定と診断 データ分析フローの 収集 → 処理 → 保存 → 分析 → 可視化 をイメージするとGoogleさんの気持ちがわかる。 参考:  Build 07:Looker Studio によるデータの可視化 - YouTube GA4の探索ページは文字通り一時的な調査用。 Looker Studioを使った方が長い文字列を置換する関数やIF文など用意されているので見やすくできる。 参考:  Function references - Looker Studio Help ホームページのアクセス数を見たいだけの人はWordPress+Site Kit by Googleプラグインで、難しいことはプラグインが全部やってくれる。 【関連記事】 Google Analytics 4 + Google Tag Managerでイベント設定 Google Analytics4(GA4)の特徴と今までとの違い 機械学習プロジェクトの進め方:CRISP-DM