[Windows] データ通信量を確認する

COVID-19で子供らの学校がリモート授業になって、かつ、子供らが自宅にいる時間が長くなったせいもあり、ついに先月、CATVインターネット接続の月間トラフィック許容量1,280GBを越えてしまう事態が発生。でも家族全員がそんなにトラフィックを使っているわけじゃあるまいし、まあ犯人捜しをするわけじゃないけど、誰がどれぐらいトラフィックを使っているのかは知っておきたい。

まずは、デバイス毎のトラフィックを集計する機能がWi-Fiルーターに備わっていないか調べるも、我が家が使っているような廉価な製品にはそんなものがあるはずも無し。

更に調べてみると、Windowsには過去30日間のトラフィックを積算する機能があるらしい。

[Windows10] データ通信量を確認する | ぱそまき
https://pasomaki.com/windows-data-traffic-check/

できれば1日単位でトラフィックを調べたいと思って調べると、以下のソフトが見つかった。多機能な割にUIはすっきりしていて使いやすそうなツールだ。30日間の試用期間があるようなので、とりあえず自分のPCと、我が家のネットのヘビーユーザーである息子のPCにこのツールを入れておく。

NetWorx : bandwidth monitor, connection speed test, data usage log
https://www.softperfect.com/products/networx/

NetMaster : Internet connection monitoring and control
https://www.softperfect.com/products/netmaster/

[ModSecurity] 特定のルールだけを適用するには

Mod Securityをオンにしてみたいのだけど、一度に全部適用すると偽判定される可能性があるので、特定のルールだけ適用してMod Securityをしばらくテスト運用してみる。

デフォルトでは、ルールは以下ディレクトリに格納されている。

  • modsecurity.d/*.conf
    – modsecurity_crs_10_config.conf
  • modsecurity.d/activated_rules/*.conf
    – modsecurity_crs_20_protocol_violations.conf
    – modsecurity_crs_21_protocol_anomalies.conf
    – modsecurity_crs_23_request_limits.conf
    – modsecurity_crs_30_http_policy.conf
    – modsecurity_crs_35_bad_robots.conf
    – modsecurity_crs_40_generic_attacks.conf
    – modsecurity_crs_41_sql_injection_attacks.conf
    – modsecurity_crs_41_xss_attacks.conf
    – modsecurity_crs_42_tight_security.conf
    – modsecurity_crs_45_trojans.conf
    – modsecurity_crs_47_common_exceptions.conf
    – modsecurity_crs_48_local_exceptions.conf.example
    – modsecurity_crs_49_inbound_blocking.conf
    – modsecurity_crs_50_outbound.conf
    – modsecurity_crs_59_outbound_blocking.conf
    – modsecurity_crs_60_correlation.conf
  • modsecurity.d/local_rules/*.conf
    – modsecurity_localrules.conf

この中から、分かりやすいところでSQLインジェクションだけ適用してテスト運用する。

ログをクリアしておく。

Apacheを再起動して設定を適用。

サイトが正しく表示されることを確認したら、テスト運用開始。

[ModSecurity] インストール手順

Mod SecurityはオープンソースのWAF (Web Application Fireworks)。WordPressサイトへの攻撃対策として試しにインストールしてみる。

Mod Securityのインストール

Mod Securityのプログラムと攻撃パターンのルールを定義したCore Rule Set (CRS)の両方をインストールする。

検知のみとする設定

いきなりオンにすると、予想しない誤検知によってサイトが遮断される危険性があるので、まずは検知のみモードでテスト運用する。検知のみモードでは検知内容がログファイルに出力されるだけでサイトは遮断されない。

ModSecurityを有効にする

ログを監視

/var/log/httpd/modsec_audit.log

参考サイト

オープンソースのWAF「Mod Security」のメリットとその導入方法について | セキュリティ対策 | CyberSecurityTIMES
https://www.shadan-kun.com/blog/measure/2939/

Apache×Mod SecurityでカンタンWAF構築 – Qiita
https://qiita.com/m0nch1/items/ac7255399366fb113a82

Apache HTTP Server向けのWebアプリケーションファイアウォール(WAF)「ModSecurity」を使ってみよう | さくらのナレッジ
https://knowledge.sakura.ad.jp/10648/

オープンソースWAF「ModSecurity」で学ぶサーバーの防御 | パーソルテクノロジースタッフ株式会社
https://persol-tech-s.co.jp/corporate/security/article.html?id=2

[C#] .NET Core/Framework 違い

新しくアプリを開発する際に.NETのどのエディションを使うべきか。それを判断するためには .NET Core/Framework の違いをきちんと理解しておきたい。

というわけで、そのあたりを解説している参考サイトを覚え書きリンク。

.NET Standard – .NET Core と .NET Standard の分かりやすい解説 | Microsoft Docs
https://docs.microsoft.com/ja-jp/archive/msdn-magazine/2017/september/net-standard-demystifying-net-core-and-net-standard

サーバー アプリ用 .NET Core と .NET Framework の選択 | Microsoft Docs
https://docs.microsoft.com/ja-jp/dotnet/standard/choosing-core-framework-server

.NET Framework / .NET Standard / .NET Core とは何か? | HIROs.NET Blog
https://blog.hiros-dot.net/?p=9086

.NET XXXの違いについて、ざっくりまとめてみた。 – Qiita
https://qiita.com/TowaOnohara/items/e202a2fcfa87d8a42ded

[OpenCV] OpenCvSharpでIplImageをBitmapへ変換する

ファイルを介して変換するのも一方法。

だけど、いちいちファイルを作るのは無駄だ。調べたら、BitmapConverterという変換処理を集めたクラスがあったのでそれを使う。

参考サイト

BitmapConverter Class
https://shimat.github.io/opencvsharp_docs/html/cba415e7-fa73-8ff3-772b-3c9e583143b1.htm

OpenCvSharpでのIplImageとBitmapの相互変換 – そこに部品があるから
http://nc30mtd.oops.jp/blog/2015/01/opencvsharpiplimagebitmap.html

[Laravel] Routeキャッシュをクリアする

新しいrouteを定義したのに、アクセスしたら404になるときには、routeのキャッシュを疑おう。

[MySQL] バイナリデータのダンプ方法

blobなどバイナリデータを持つテーブルをダンプすると、バイナリデータは文字化けしてしまう。当たり前だけど。

対策としては、バイナリデータを持つテーブルをダンプするときは –hex-blob を指定する。バイナリデータが16進文字列に変換されてダンプされる。こうして作成したダンプをインポートするときは普通通りで良し。

参考サイト

mysqldump で default-character-set とか hex-blob とか – ngyukiの日記
https://ngyuki.hatenablog.com/entry/2018/06/21/220624

[MySQL] ログの日時のタイムゾーンを設定する

MySQLを5.6から5.7にアップグレードしたら、ログに記録される日時のタイムゾーンが日本時間からUTCに変わった。おそらく規定値が変わったのだろう。MySQLのドキュメントを調べたら、ログのタイムゾーンを設定するシステム変数が見つかった。システムのタイムゾーンを使うように設定しておく。

/etc/my.cnf

参考サイト

MySQL :: MySQL 5.7 Reference Manual :: 5.1.7 Server System Variables
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html

MySQLのバージョンをあげたら、ログ出力される時間がおかしくなった – Qiita
https://qiita.com/tachitechi/items/768b6f63112a8ddf34c9

[MySQL] ログに「Access denied for user ‘UNKNOWN_MYSQL_USER’@’localhost’」と記録される理由

MySQLを5.6から5.7にアップグレードしたら、MySQLを起動する度にログに以下が記録される。

/var/log/mysqld.log

2020-07-21T17:17:56.704754Z 2 [Note] Access denied for user ‘UNKNOWN_MYSQL_USER’@’localhost’ (using password: NO)

ネットを検索すると以下の記事がヒット。

Access denied for user ‘UNKNOWN_MYSQL_USER’@’localhost’ (using password: NO)
https://blog.trippyboy.com/2011/mysql/access-denied-for-user-unknown_mysql_userlocalhost-using-password-no/

記事には「MySQLが起動する時に自身が起動済みかどうかを確認するためにMySQLサーバーに接続を試すため」とある。起動スクリプトを眺めてみると、確かにそのような目的でログインを試みているようだ。

しかし、調べてみるとMySQL5.6でも同様の処理を実行している。どうしてMySQL5.6だとログに出てこないのか?5.7になってログレベルの規定値が変わってログに現れるようになっただけ?まあ大勢に影響無さそうなので、調査は打ち切る。

参考サイト

MySQL 5.7.17 startup log showing [Note] Access denied for user ‘UNKNOWN_MYSQL_USER’ – Stack Overflow
https://stackoverflow.com/questions/42329432/mysql-5-7-17-startup-log-showing-note-access-denied-for-user-unknown-mysql-us

日々の覚書: 何も考えずに真っ新なCentOS 6.6にMySQL 5.7をyumで叩き込むメモ
https://yoku0825.blogspot.com/2015/06/centos-66mysql-57yum.html