As I Please

MTのいんすとーるの練習と、その他びぼうろく・・・

milter-manager on FreeBSD-14.2で、clamav-milter を認識しない。

FreeBSD-14.0では何も問題が無かった milter関係の設定で、milter-manager --show-config を行うと、インストールしたはずの clamav-milter だけを見つけてくれない。同時にインストールした、spamass,enma,opendkim は見つけてくれるのに。

chagpt に相談したらダメだったけど、claudeだと clamav-milter の設定ファイルの変更に気づかせてくれた。
起動スクリプトが、/usr/local/etc/rc.d/clamav-milter だったのが、/usr/local/etc/rc.d/clamav_milter に変更になっていた。
/usr/ports/UPDATING にも、

20240912:
  AFFECTS: security/clamav, security/clamav-lts
  AUTHOR: netchildFreeBSD.org
  The start scripts of clamav have been renamed to clamav_clamd,
  clamav_freshclam and clamav_milter for improved compatibility with
  other parts of the system. The automatic start at boot (rc.conf
  variable settings) is not affected, but if you have some other
  automatism you may want to change
    ".../etc/rc.d/clamav-clamd" to ".../etc/rc.d/clamav_clamd"
    ".../etc/rc.d/clamav-freshclam" to ".../etc/rc.d/clamav_freshclam"
    ".../etc/rc.d/clamav-milter" to ".../etc/rc.d/clamav_milter"
  or
    "service clamav-clamd ..." to "service clamav_clamd ..."
    "service clamav-freshclam" to "service clamav_freshclam ..."
    "service clamav-milter ..." to "service clamav_milter ..."
とあって、この名前変更について、milter-manager のほうが追従していない、ということだった。
milter-manager も最近はそんなにアップデートされていないから、これはしょうがない。

とりあえず、milter-namager に ln -s して、milter-manager 側の自動認識スクリプトが見つけられるようにすることで解消できた。

NFS mount on QNAP (from FreeBSD)

QNAP(5.2) で NFSサーバを起動して、FreeBSD (Unix)側からマウントするときに、ユーザーマッピングをどうするか?の問題。
といっても、変にマッピングするのではなくて、client側のuid/gid でそのままアクセスに行ってくれればいい。NFSで guest利用のようなことは特に考えていないので。

となると、
https://www.qnap.com/ja-jp/how-to/faq/article/how-to-access-files-on-nas-via-nfs-from-unixlinux-clients
にある、'Example2: SQUASH_NO_USER)' で良いようだ。

セキュリティ的には Example1: SQUASH_ROOT_USER にしておきたい(client側のroot(uid=0)が nfsサーバ側のuidと同権限にするのは・・・)が、何かちゃんとNFSマウントしたトップディレクトリにアクセスできない。

unixbench での比較(mac mini late 2012 vs mac mini M4 2024)

この blogは、mac mini late 2012(Intel Core7i 16G, 1TB ) に vmware fusion 上の FreeBSD で動かしているが、さすがにいつ壊れてもおかしくないと思うので、昨年でた mac mini m4 (24G ,SSD 512G )を購入して、そちらに引っ越そうかと思う。

性能としてどれくらい違うだろうかと思うので、簡単に unixbench でベンチマークを取ってみた。

Mac Mini Late 2012: Intel Core7i
VMware Fusion 12.0
FreeBSD 14.0-Release(amd64) memory 4G

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)
   System: mina2_2024: FreeBSD
   OS: FreeBSD -- 14.0-RELEASE-p6 -- FreeBSD 14.0-RELEASE-p6 #0: Tue Mar 26 20:26:20 UTC 2024     root@amd64-builder.daemonology.net:/usr/obj/usr/src/amd64.amd64/sys/GENERIC
   Machine: amd64 (GENERIC)
   Language: C.UTF-8 (charmap="UTF-8")
   CPU 0: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (0.0 bogomips)
          amd64
   CPU 1: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (0.0 bogomips)
          amd64
   CPU 2: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (0.0 bogomips)
          amd64
   CPU 3: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (0.0 bogomips)
          amd64
   11:42AM  up 58 days, 16:13, 2 users, load averages: 0.59, 0.48, 0.44;
------------------------------------------------------------------------
Benchmark Run: Tue Jan 07 2025 11:42:53 - 12:10:58
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables       34585196.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     5890.6 MWIPS (9.2 s, 7 samples)
Execl Throughput                               2271.5 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        311803.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           88674.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        856946.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1200476.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 135150.2 lps   (10.0 s, 7 samples)
Process Creation                               4470.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5857.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1771.9 lpm   (60.0 s, 2 samples)
System Call Overhead                         687022.4 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   34585196.7   2963.6
Double-Precision Whetstone                       55.0       5890.6   1071.0
Execl Throughput                                 43.0       2271.5    528.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     311803.4    787.4
File Copy 256 bufsize 500 maxblocks            1655.0      88674.0    535.8
File Copy 4096 bufsize 8000 maxblocks          5800.0     856946.9   1477.5
Pipe Throughput                               12440.0    1200476.5    965.0
Pipe-based Context Switching                   4000.0     135150.2    337.9
Process Creation                                126.0       4470.0    354.8
Shell Scripts (1 concurrent)                     42.4       5857.9   1381.6
Shell Scripts (8 concurrent)                      6.0       1771.9   2953.2
System Call Overhead                          15000.0     687022.4    458.0
                                                                   ========
System Benchmarks Index Score                                         883.4
------------------------------------------------------------------------
Benchmark Run: Tue Jan 07 2025 12:10:58 - 12:39:17
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables      107954176.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    21186.5 MWIPS (9.6 s, 7 samples)
Execl Throughput                               7154.9 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         24149.4 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           12583.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks         76633.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                             3861072.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 514338.7 lps   (10.0 s, 7 samples)
Process Creation                              21121.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  13723.6 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   1706.3 lpm   (60.1 s, 2 samples)
System Call Overhead                        2308270.3 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  107954176.8   9250.6
Double-Precision Whetstone                       55.0      21186.5   3852.1
Execl Throughput                                 43.0       7154.9   1663.9
File Copy 1024 bufsize 2000 maxblocks          3960.0      24149.4     61.0
File Copy 256 bufsize 500 maxblocks            1655.0      12583.4     76.0
File Copy 4096 bufsize 8000 maxblocks          5800.0      76633.5    132.1
Pipe Throughput                               12440.0    3861072.1   3103.8
Pipe-based Context Switching                   4000.0     514338.7   1285.8
Process Creation                                126.0      21121.8   1676.3
Shell Scripts (1 concurrent)                     42.4      13723.6   3236.7
Shell Scripts (8 concurrent)                      6.0       1706.3   2843.9
System Call Overhead                          15000.0    2308270.3   1538.8
                                                                   ========
System Benchmarks Index Score                                        1108.5

mac mini M4 24G SSD 512G(MVMe)
VMWare Fusion Pro 13.6.2
FreeBSD 14.2 (aarch64) Memory 4G

   BYTE UNIX Benchmarks (Version 5.1.3)
   System: mina2_2025: FreeBSD
   OS: FreeBSD -- 14.2-RELEASE -- FreeBSD 14.2-RELEASE releng/14.2-n269506-c8918d6c7412 GENERIC
   Machine: arm64 (GENERIC)
   Language: C.UTF-8 (charmap="UTF-8")
   CPU 0: Apple Unknown CPU r0p0 (midr: 610f0000) (0.0 bogomips)
          arm64
   CPU 1: Apple Unknown CPU r0p0 (midr: 610f0000) (0.0 bogomips)
          arm64
   CPU 2: Apple Unknown CPU r0p0 (midr: 610f0000) (0.0 bogomips)
          arm64
   CPU 3: Apple Unknown CPU r0p0 (midr: 610f0000) (0.0 bogomips)
          arm64
   12:39PM  up  3:56, 1 user, load averages: 0.11, 0.16, 1.10;
Benchmark Run: Tue Jan 07 2025 12:39:40 - 13:07:36
4 CPUs in system; running 1 parallel copy of tests
Dhrystone 2 using register variables      127206639.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    12312.0 MWIPS (8.9 s, 7 samples)
Execl Throughput                               5609.3 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        548326.2 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          175043.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1223810.8 KBps  (30.0 s, 2 samples)
Pipe Throughput                             4712182.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 532173.3 lps   (10.0 s, 7 samples)
Process Creation                              16213.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  20450.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   5957.0 lpm   (60.0 s, 2 samples)
System Call Overhead                        2394584.2 lps   (10.1 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  127206639.9  10900.3
Double-Precision Whetstone                       55.0      12312.0   2238.6
Execl Throughput                                 43.0       5609.3   1304.5
File Copy 1024 bufsize 2000 maxblocks          3960.0     548326.2   1384.7
File Copy 256 bufsize 500 maxblocks            1655.0     175043.5   1057.7
File Copy 4096 bufsize 8000 maxblocks          5800.0    1223810.8   2110.0
Pipe Throughput                               12440.0    4712182.1   3787.9
Pipe-based Context Switching                   4000.0     532173.3   1330.4
Process Creation                                126.0      16213.6   1286.8
Shell Scripts (1 concurrent)                     42.4      20450.1   4823.1
Shell Scripts (8 concurrent)                      6.0       5957.0   9928.4
System Call Overhead                          15000.0    2394584.2   1596.4
                                                                   ========
System Benchmarks Index Score                                        2458.5
------------------------------------------------------------------------
Benchmark Run: Tue Jan 07 2025 13:07:36 - 13:35:36
4 CPUs in system; running 4 parallel copies of tests
Dhrystone 2 using register variables      482258262.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                    43340.0 MWIPS (9.0 s, 7 samples)
Execl Throughput                              13548.3 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         85818.7 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           21307.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        311114.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                            16790620.7 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                4949744.0 lps   (10.0 s, 7 samples)
Process Creation                              77847.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                  46849.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                   6125.1 lpm   (60.0 s, 2 samples)
System Call Overhead                        8532850.5 lps   (10.0 s, 7 samples)
System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0  482258262.4  41324.6
Double-Precision Whetstone                       55.0      43340.0   7880.0
Execl Throughput                                 43.0      13548.3   3150.8
File Copy 1024 bufsize 2000 maxblocks          3960.0      85818.7    216.7
File Copy 256 bufsize 500 maxblocks            1655.0      21307.4    128.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     311114.5    536.4
Pipe Throughput                               12440.0   16790620.7  13497.3
Pipe-based Context Switching                   4000.0    4949744.0  12374.4
Process Creation                                126.0      77847.8   6178.4
Shell Scripts (1 concurrent)                     42.4      46849.8  11049.5
Shell Scripts (8 concurrent)                      6.0       6125.1  10208.5
System Call Overhead                          15000.0    8532850.5   5688.6
                                                                   ========
System Benchmarks Index Score                                        3836.5
3倍くらい速くなった???

vmware ubuntsu でのディスク増設 その2

やはり mac mini に作った ubuntu でディスク領域が足らなくなったのでメモ。
前はhttps://jinkouki.net/asiplease/2022/11/ubuntu-2204-on-vmware.htmlで、すでにある sda のサイズを広げるという手法だったが、今回は別ディスクを作成して、それを mount する形に。
これだと、不要になったら切り離せるし、イメージだけ持って行って別マシンにマウントすることも可能(?)かと。

といっても、このサイトを参考にしただけ。
https://www2.yukawa.kyoto-u.ac.jp/~koudai.sugimoto/dokuwiki/doku.php?id=ubuntu:%E3%82%B9%E3%83%88%E3%83%AC%E3%83%BC%E3%82%B8%E3%81%AE%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88

  • vmware fusion 側で、まずは通常通り SCSI のディスク (今回は 70G) を作成
  • マシンを再起動したら、/dev/sdb で見えることを確認
  • mkfs.ext4 /dev/sdb で、 ext4 でまるごとディスクを1パーティションとして作成。 /dev/sdb1 が出来る。
  • lbkid /dev/sdb1 で、uuid を調べる。
  • /etc/fstabに記述
    /dev/disk/by-uuid/$uuid /exthdd ext4 defaults 0 1

ぐらい?

screen5 in FreeBSD-9

screen5が出たということなので、これを FreeBSD-9 にまたインストールしてみた。そのメモ

  • screen-5 は git clone で持ってきた。https://savannah.gnu.org/git/?group=screen
  • autoconfのバージョンが低いということで、2.72 をインストール。これも git で持ってくる。https://www.gnu.org/software/autoconf/
  • automake もバージョンを最新に。これは tgzファイルを持ってきてコンパイル。https://www.gnu.org/software/automake/
  • 次は libtool 2.5.2.9 のインストール。これも gitで。https://www.gnu.org/software/libtool/
  • ccは gcc7.5.0 が入っているがこれよりも clang-5.0.2 のほうが良さそうだったのでこちらで。
    bash で、'export CC=clang gmake'
  • configureなどで warning は沢山でるが、まぁ無視していて問題ない。
  • screen のコンパイルで、'RC_LAST'が無いと言われるが、これは 手動で comm.sh を動かして作成される comm.h には含まれる。これで切り抜ける。
  • また、compile時に '-std=c17'が無いと言われるが、Makefileをかきかえて、CFLAGSの当該のところを、'-std=c11' に変更

これで、screen-5 がちゃんとインストールされた。ちょっと動かしてみたところ特に問題無く動いているっぽい。

RTX1200で dhcpで macアドレス指定で固定IPが振れなかった件

いくつかの機器については、dhcpで固定アドレスを指定しておきたく、いままでは、

dhcp server rfc2131 compliant except remain-silent
dhcp scope bind 1 ip-address ethernet mac-address

と指定していたが、機器を再起動しても振られなくて、前に使っていたIPが割り当てられたりしていた。

ルータを再起動するとちゃんと振られるようだけど、毎回ルーターの再起動はちょっと困るので調べて見たら、よくある話のようで、

https://www.rocomotion.net/rtx1300-dhcp-setting/ を参照して、

dhcp server rfc2131 compliant except remain-silent use-clientid
dhcp scope bind 1 ip-address mac-address

と、'except use-clientid' を追加、また、ip-mac の対応について、'ethernet' を外してみたら、

ちゃんとリリース時に固定したいIPが割り当てられた。

hostname の変更:mina2.sama.to から jinkouki.net へ

  • 投稿日:
  • by
  • Category:

特に何か問題があったわけではない(んなことない)けど、ドメイン名を 'mina2.sama.to' から 'jinkouki.net' に変更しようと思います。
MTの設定はあまりいじらず、document root も同じところを保持したままで。
https://mina2.sama.to/asiplease/https://jinkouki.net/asiplease/に。

'jinkouki' は、「塵劫記」から。ちりあくたのよしなしごとを記するのに。
dust.netとか garbage.net とかも考えたのですが。。。いつかそちらに変更するかも。

proxyのフロントに stunnel

ということで、proxy の サーバとしてssl client認証で resumptionが使えるものとして stunnelを利用してみることに。
設定は

[squidproxy]
accept = 8888
connect = 3128
cert = /root/cert/cert.pem
key = /root/cert/privkey.pem
;client = yes
verifyChain = yes
verifyPeer = yes
verify = 2
CAfile = /root/cert/cacert.pem
としてOKに。
clientは、stunnelが、上位proxyに対して sslcinetとして接続する場合に使うもののようで、
今回のように clientからの接続を受けつけるときは不要。
これをつけたら、clientからの接続に対して証明書を返さず接続を受けつけないことになった。CAfileには、クライアントから接続してくる(オレオレ)証明書のCA証明書を指定。
これでこのCAで署名したクライアントからのみの接続を受けつけることに。

これで、windows10 だと、Edge,Chromeからの接続については、一度認証のために証明書の選択を聞かれるが、1回選択したらその後は聞かれないようになって問題なく使えるようになった。
ただ、この stunnelのクライアント認証、今度は Firefoxだと接続してくれなくなってしまった。Edge,Chormeは エンジンが chronium系ということでうまくったのか?

proxyの x509証明書認証 のフロントにsocat

proxyサーバへの接続にちょっと強い認証を行いたくていろいろ調べてる。
squidでも、cacert,capath,verifyなどあるみたいだが、うまくいかない。
古いバージョンだと、何かそのdirectiveもあったようだが。。。

claudeあたりに聞いてみると、squidそのものを推奨せず、
stunnel + squid,nginx とか、haproxy,nginx,apache のproxy機能をすすめてきたりしているが、、、。

とりあえず、 軽そうな socat で受けて、後ろの squidに流せばいいかと思って、テスト。

#flags="-d0 OPENSSL-LISTEN:8888,reuseaddr,fork,cafile=(client認証のためのオレオレ証明書のCAのpem),cert=(サーバーとして振る舞うため、その証明書のcert),key=(サーバー証明書の秘密鍵) TCP4:127
.0.0.1:3128"
として、localhost で待っている squid(port 3128) にリレーする設定とした。
proxyのセッションは複数張られるので、forkしてどんどん受けつけるようにした。

ところが、この、ブラウザからproxyとして接続してくるときに、クライアント証明書(PCにはインストール済み)で認証しているのだが、windows11 では接続時に自動的には渡してくれず、Edge,Chromeだと新たなセッションを張る度に認証ダイアログが出る始末。Firefoxはどうも自動的に渡しているようで、こちらは出なかった。

TLSのネゴシエーションのreusumption問題?らしく、過去のTLS接続時のデータをキャッシュして使うのが王道らしいが、socat はそこまでのことはやってくれないらしい。fork するだけならその通りだな。。。
TSLネゴシエーションのデータを、親プロセスで管理して、子供のセッションの認証時に共有してくれるタイプじゃないとつらそう。

結論としてはsocatをweb browser のプロキシーのフロントに置くのはおすすめしない、ですかね。
次は軽そうな stunnelにトライしてみる。