NUROのが遅い

会社でNURO Bizが導入され、品質がそこそこ良かったため、自宅(戸建て)でもNURO光を導入してみた。が、個人向けは安価な分、品質も劣るかバラツキがある印象を受けた。契約から開通まで2か月以上かかり、初期契約解除が使えないのは悪質だと思う。もっとも、品質が低下したのは契約から3か月経った今なので初期契約解除も3か月無料解約特典プランも使い物にならない。
調子のいい時に速度測定を行ったときの結果は以下の通り。上りが400Mbps程度しか出ないが、限界の様だ。NUROの調子が悪いときはフレッツのPPPoEの方がRTT、速度共に良いことがある。スピードテストでは差が出ないが、Webサイトの閲覧では差が出ることもある。タスクマネージャー読みでスループットが出ていない様だ。フレッツに戻すと速くなるので多分NUROのバックボーンが細い。

NUROは下り941Mbps、上り419Mbpsほどだった。

フレッツ回線(PPPoE)の場合、 下り247Mbps、上り594Mbpsだった。今は解約してしまったが、excite.BBのIPoEの場合だと下りの速度はもっと出ていた。

NUROを引いて得られたメリットは以下の通り

  • RTT低下(IPoEは10ms程度あった)
  • 会社へVPN(IPSec NAT-T)接続したときの安定性向上(IPoEは何故か1Mbpsしか速度が出ず、PPPoEにしたとしても頻繁に切断された)
  • IPoEと異なり、サーバー公開できる

会社のNURO Bizは上り下りともに800Mbpsくらい出ることがあって快適だったが、個人向けNUROではフレッツより上りが遅いという結果になった。また、顧客とTeams会議を行った際に相手の音声が途切れ途切れで何言っているかわからない人がいたが、後で話を聞いたらその人も戸建てでNUROだった。地域によっては品質が低く、特に上り速度に大きな制限がある場合がある様だ。

Windows Updateしたらログイン後デスクトップが表示されない

追記: 今だと最新の累積更新プログラムを適用すると解決する様だ

Linuxネタが多かったが働き始めるようになってからなかなか趣味で触っている暇が無くて書けていない。仕事で遭遇した日本語情報が無い共有できそうなネタが出てきたので書いてみる。自分の書いた記事を改めて読み返すと…。仕事の関係者が読んだら個人が特定できそうだな。

Windows Updateが当たったらログイン後にExplorerが瞬時に落ちては再起動が繰り返すようになってしまった。デスクトップは一瞬だけ表示されては真っ暗になりを繰り返す状況で全く使い物にならない。

とりあえずは最新のパッチのKB5006667を消したら解決した。が、すぐに自動適用されて元通りになってしまうし、適用しないとセキュリティ的にもよろしくない。

上記のサイトにKB5006667を消すよりはマシな回避策があった。

Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Feeds\
上記のパスにある次の ShellFeedsTaskbarViewMode キーを2に書き換える。
そうすると、ニュースと関心事項が無効化されてExplorerが瞬時に落ちる現象が起こらなくなる。

早速実行したが、自分の遭遇した問題が起こっている環境ではregeditがドメインユーザーで封じられていた。仕方がないのでwhoami /allコマンドでユーザーのSIDを取得。ローカル管理者にアクセスすることはできるので、runas /user:PC名\ローカル管理者 cmdでとりあえずローカル管理者のコマンドプロンプトを起動。regedit起動したらローカル管理者の管理者権限に昇格したレジストリエディタが起動する。ドメインユーザーのHKEY_CURRENT_USER\はHKEY_USERS\先ほど調べたSID\と同じなので、HKUからドメインユーザーのHKCUにアクセスして書き換えを行った。

無事に瞬時のExplorer強制終了と再起動は起こらなくなった。

そのPCのメインユーザーは問題なく使えるが、別ユーザーが使った際にExplorerが瞬時に起こる現象が再発するので、これはなんとかしたい…

Forticlientで接続したらChromeでERR_EMPTY_RESPONSEになる

タイトル通りの現象が起こっていた。
結論から言うと、MTUやMSSの設定が不適切のためだった。


FortiClientでFortigateにVPN接続を行ったところ、最初は問題無いのだがしばらくすると、HTTPSでアクセスしていたページを読み込まなくなり、真っ白になるか、ERR_EMPTY_RESPONSEのエラーが出る。ググったらESETが原因の疑いがあるとのことなので切ってみたが、変わらずだった。

更に調べたところ、FortigateのKnowledge Baseに情報があった。
FortiGateのWeb設定画面でもしばらくすると正しく表示されない現象が起きていたので、これの原因を潰していけばもしかしたらと思った。
https://kb.fortinet.com/kb/documentLink.do?externalID=FD34688

これによれば原因としてはいくつかあるらしい。

インターフェースでHTTP/HTTPSアクセスを許可しているかについては、最初はアクセスできているので関係ない。
trusted hostは設定していないので今回は該当しない。
HTTPSのポート設定も変えていないし、サーバ証明書も関係なかった。VIPも違った

3) MTU along the pathが今回の原因だった。

VPN接続を待ち受けているインターフェースのMTUを

set mtu-override enable
set mtu 1454

とフレッツに合わせてデフォルトの1500から縮小した。
その後は問題無く使えるようになった。

ポリシーでMSSを下げても同じようにうまく動くらしいが、自分の環境ではダメだった。

自宅の回線がフレッツで、FortiClientがうまいこと認識してくれなかったため、会社のインターネット回線のMTU 1500で送られてきてロスでも起きたようだ。

IPSecだとMTUが大きすぎても勝手に分割とかしてくれないんだろうか。よくわからぬ。

同じ問題に遭遇している人がいたようだ。
https://www.linkedin.com/pulse/fortigate-mtu-tcp-mss-troubleshooting-guy-greenshtein

WSUSが0x8024002eエラーでWindows Updateができない

WSUS配下にPCを入れたのは良いがWindows Updateが行われなくて丸1日がつぶれてしまった。

結論から言うと、DisableDualScanキーをレジストリに追加すると直った。

0x8024002E WU_E_WU_DISABLED 非管理サーバーへのアクセスは許可されていません。

エラーリファレンスによれば上記のような説明だったが、いまいち意味がよくわからなかった。

エラーが出ているPCで次のコマンドを実行すると、下記のような結果が出てくる。(PowerShellで実行する)

(New-Object -ComObject “Microsoft.Update.ServiceManager”).Services |select Name, IsManaged,IsDefaultAUService

Name                      IsManaged IsDefaultAUService
----                      --------- ------------------
DCat Flighting Prod           False              False
Windows Store (DCat Prod)     False              False
Windows Server Update Service      True              False
Windows Update                False               True

何かがおかしい。別の正常にアップデートが行えるPCではWindows Server Update Service True Trueだった。

上記のURLを参考にして HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate に DisableDualScan=dword:00000001というキーを追加すると問題なくアップデートできるようになった。このキーを追加して前述のコマンドを実行すると Windows Server Update Service True True になるようだ。ちなみに、グループポリシーでも同じレジストリを追加することが可能らしいが、検証は行っていない。「Windows Update に対するスキャンを発生させる更新遅延ポリシーを許可しない」というグループポリシーが同じレジストリキーに該当する様だ。

Ubuntu 20.04でAsteriskからmsmtpでメールを送信できない

echo test | sudo -u asterisk strace sendmail hogehoge@hogehoge.com

上記のようなコマンドを実行したら、次のような結果になった。

newfstatat(AT_FDCWD, “/var/lib/asterisk/.msmtprc”, {st_mode=S_IFREG|0600, st_size=170, …}, 0) = 0
geteuid() = 112
openat(AT_FDCWD, “/var/lib/asterisk/.msmtprc”, O_RDONLY) = -1 EACCES (Permission denied)

しかし、パーミッションは600で何も問題がない。

SELinuxは入っていないっぽいし、何故だと思いつつ、調べてみたら、UbuntuにはAppArmorというものが入っているらしい。

/etc/apparmor.d/usr.bin.msmtpを開いてみたら、owner @{HOME}/.msmtp*, rという行があった。これを参考にして owner /owner/var/lib/asterisk/.msmtp*, r を追加した。

追加されたら、sudo apparmor_parser -r /etc/apparmor.d/usr.bin.msmtpを実行して反映させる。

これで、Asteriskだけ別のアカウントを使ってメールが送信できるようになった。

AsteriskでFAX送信

https://www.northwind.mydns.jp/samples/blog/?p=1732

上記サイトに従ってFAX送信を試みた。

次のようなエラーが/var/log/asterisk/messagesに流れてきて送信できなかった。

[Apr 22 20:46:58] ERROR[508][C-00000006] res_fax.c: access failure.  Verify '/tmp/foo2.tif' exists and check permissions.

これは原因がよくわかっていないが、/var/spool/asterisk/tmp/にtiffファイルを置くことで解決した。

進んだのは良いが、今度は次のような警告が出て、結局FAXが送れなかった。

[Apr 22 21:06:02] WARNING[639][C-0000000b]: res_fax_spandsp.c:438 spandsp_log: WARNING T.30 Cannot open source TIFF file '/var/spool/asterisk/tmp/foo.tif'

これは、こちらのサイトに書かれている情報に従って
convert -compress fax -monochrome -units pixelsperinch -resample 204x98 filea.pdf filea4.tif を実行して変換したら進んだ。

stretchからbusterにしたらWordPressが壊れた?

Google Analytics的な所から500でblogが見ることができないエラーの警告が出ていたので対応した。

お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。

上記のようなエラーメッセージが表示されていた。

php-mysqlをインストールしたが解決されず。結局、apt autoremove php7.0で古いPHPを消してapt install php7.3で最新のPHPを入れることで解決した。どうもphp7.3用のphp-mysqlモジュールが入っているのにphp7.0で動いていたので読み込まれなかったようだ。

GCPでstretchをbusterに上げたらSSH鍵が転送されなくなった

久しぶりに投稿する。何とかフルタイムの仕事が見つかって、忙しい日々を送っている。

さて、Debian busterが出て結構経っているので、上げた。そして、久しぶりにCloud Consoleから入ろうとした。

プロジェクト メタデータへの鍵転送に異常に長い時間がかかっています。インスタンス メタデータに転送する方が所要時間は短くなる可能性がありますが、鍵が転送されるのはこの VM のみになります。この仮想マシンから他の仮想マシンに SSH 接続する場合は、鍵を適切に転送する必要があります。

上記のようなエラーが出ていくら待っても入れなかった。シリアルコンソールを利用するという手段もあるが、なんとかして鍵を適切に転送するようにしたい。

結局、ゲスト環境パッケージのインストールを行ったら直った。google-compute-engine-osloginとgoogle-compute-engineが入っていなかったようだ。

logrotateができない

Arch Linuxで次のようなエラーが出てうまくいかなかった

error: failed to rename /usr/local/var/log/mirakurun.stderr.log to /usr/local/var/log/mirakurun.stderr.log-20190517: Read-only file system

しかし、普通にsudo logrotate /etc/logrotate.d/mirakurunとか実行するとうまくいく。ちなみに /etc/logrotate.d/mirakurun は次のような感じ

/usr/local/var/log/mirakurun.std*.log
{
  su root root
  weekly
  compress
  rotate 52
  missingok
  notifempty
  compresscmd /usr/bin/xz
  uncompresscmd /usr/bin/unxz
  compressext .xz
  dateext
  postrotate
    pm2 reloadLogs
  endscript
}

何気なくlogrotate.serviceを眺めてみたら原因っぽいことが分かった

$ cat /usr/lib/systemd/system/logrotate.service
[Unit]
Description=Rotate log files
Documentation=man:logrotate(8) man:logrotate.conf(5)
RequiresMountsFor=/var/log
ConditionACPower=true

[Service]
Type=oneshot
ExecStart=/usr/sbin/logrotate /etc/logrotate.conf

# performance options
Nice=19
IOSchedulingClass=best-effort
IOSchedulingPriority=7

# hardening options
#  details: https://www.freedesktop.org/software/systemd/man/systemd.exec.html
#  no ProtectHome for userdir logs
#  no PrivateNetwork for mail deliviery
#  no ProtectKernelTunables for working SELinux with systemd older than 235
MemoryDenyWriteExecute=true
PrivateDevices=true
PrivateTmp=true
ProtectControlGroups=true
ProtectKernelModules=true
ProtectSystem=full
RestrictRealtime=true

ProtectSystemが怪しい。説明を見てみると、次のようなことが書いてあった。

If true, mounts the /usr and /boot directories read-only for processes invoked by this unit.

https://www.freedesktop.org/software/systemd/man/systemd.exec.htm

どうやら/usrがread-onlyになるようだ。ReadWritePaths=/usr/local/var/logでも指定すればいいのだろうか。後ほど試すことにする。

追記:試したがpm2 reloadLogsがコアダンプを起こして終了していた。MemoryDenyWriteExecuteが怪しい気がするが、あきらめる。

ローカルアカウントからMicrosoftアカウントに切り替え

https://answers.microsoft.com/ja-jp/windows/forum/windows_8-security/%e3%83%ad%e3%83%bc%e3%82%ab%e3%83%ab%e3%82%a2/c12dcd31-a550-46ec-afd4-d9771558c7b9?messageId=5f1641f2-ed27-493e-be4b-3fd19b606a6e

https://answers.microsoft.com/ja-jp/windows/forum/all/microsoft%E3%82%A2%E3%82%AB%E3%82%A6%E3%83%B3/3d531e7f-42a8-47ce-ad3c-d71d52b96bc4

https://answers.microsoft.com/en-us/windows/forum/windows_10-security/another-user-on-this-device-uses-this-microsoft/3920bd03-bc04-40e3-b51e-9ceabe7a5842?page=2

切り替えようとしたが、すぐにはできなかった。日本語での情報に乏しいので英語で検索したら、それっぽいのが見つかった。regeditで
HKEY_USERS\S-1-5-18\Software\Microsoft\IdentityCRL\StoredIdentities\にあるメールアドレスを消すと良いらしい。しかし、これをやっても駄目だった。netplwizを開いて、詳細の詳細を出して、ユーザーの一覧を表示させたところ、Microsoftアカウントでセットアップするとデフォルトで設定されるユーザー名のユーザーが存在していたので消した。そしたら、切り替えができるようになった