SPFによるspam対策をしようとして挫折した話

SPF対策を思いついた経緯

SPFと言っても豚肉じゃ無いです。木材でもありません。Sender Policy Frameworkの略でSPAMメール対策の一種のほう。

近頃、とあるサイトの流出事故によってメインのメールアドレスにもSpamが来るようになりました。それらの中身を見たところ、差出人のアドレスを堂々と詐称。これならSPFではじけそうじゃない?と思ったのがきっかけ。

bsfilterで十分にフィルタリングは出来ているんですが、エラーメール返して「てめぇのSPAMなんぞ受け取らねぇぞ」とやりたいのです。

SendmailのSPF対応

ググってみたところ、思った以上に情報が少ない…。とりあえず参考になったのが以下の情報。

ちょっと古いですが、ちゃんとFreeBSDの情報。今ではspfmilterに関してはports化されてるので、pkg/portsからインストール可能です。

しかしこれ、設定ファイルも何も無い…。そもそもspfmilterの情報が非常に少ないと思ったら、ほぼほぼFreeBSD専用っぽい扱い。Linux界隈ではsmf-spfなるものが主に使用されているっぽいんですが、FreeBSDのportsには無し。

本当に設定必要ないのか?と思案…。

SPFの問題点

「転送メールやメーリングリストどうすんだ?」と今更ながらに気付く。特に、うちではfetchmail使っていくつかのアカウントのメールを集約してたりします。

調べてみるたところ、SRS(Sender Rewriting Scheme)という対策案はあるが、送信側で対策が必要なの上、MTAの改変も大変だそうで殆ど普及してない…と。

そのほかに有効な対策もないっぽい…詰んでるやん。

結局使えないSPF

転送メールを問題無く扱う為の手段が、現実的に機能してない為、結局受信側のチェックでは殆ど使用されていない…というのが現状っぽいです。

そのわりには「DNSにSPFを設定しましょう」的な記事が多いんですが、まぁ無駄と言うことですね。

今時はDKIMやDMARCなどの、メール自体に署名を付ける方向みたいです。ただ、まだSPFほど普及はしてないからもうちょっと時間がかかるかな…。

いまどきのSamba/freebsd/zfsacl事情(2021版)

ぶっちゃけ詳しいことはこっち↓を見てください、って感じで。

FreeBSD ZFS で Samba
https://www.nslabs.jp/freebsd-zfs-samba.rhtml

FreeBSD13でこの通り設定すれば、ようやく使えそうです。また、macOS Catalina(10.15.7)からのアクセス(excelでの上書き保存)も大丈夫っぽい?

相変わらずmacOSからは開いた共有のACLがさっぱり見えないんですが、試しに同じ設定を施した11.4の環境で試してみると、さっぱりダメダメ。12は知らない。

どうも、aclmode=passthroughを設定してもdiscardっぽい振る舞いをするみたい?

macOSからのアクセスでダメダメになるのは、このせいなんかな?unix extensionsはもちろんNoにしてます。

USB2.0ハブと充電専用USBケーブルは捨てよう

USB電流チェッカー

興味本位でこういうの買ってみたんですよ。USBに流れている電流が分かるというやつ。そして分かったこと諸々。

今時のUSB充電は問答無用に900mA使う

USBの給電能力って、本当は100mAまでしか保証されていません。

USB2.0では一定の条件下で500mA、USB3.0では同じ条件下で900mAまで。あとUSB BC1.2(DCP)という規格に対応した給電専用のUSBポートだと1,500mAまで使えます。

でも、バスパワーハブのポートとか、スマホやタブレットのUSBポートなんかだと100mAだったりします。

充電側の機器が給電側に供給能力があるかどうかを、ちゃんと確認してから充電を始める「べき」なんだけど、行儀の悪い機器はいきなり充電を始めてしまう。

で、手持ちの機器のうちいくつかは、充電時に900mA弱くらい使う様で、それをUSB2.0ハブ(バスパワーで500mA供給可)に刺したら電圧下がってすんごい不安定。

物によってはUSB2.0ハブでも、1,000mA位まで供給能力あったりするけれど、手持ちの凄い古い(10年以上前?)USB2.0ハブはそうでは無かったようで。

そんなわけで、900mAまで供給できるUSB3.0に入れ替えて、USB2.0ハブ捨て捨て。

充電専用USBケーブルは充電できない

いわゆる「充電専用USBケーブル」というのは、USBケーブルの配線のうち電源線を残してデータ線をなくしてコストダウンされてます。

行儀の悪い機器は別にそれでもかまわないんですが、一方で「行儀の良いUSB機器」は供給側の能力をちゃんと確認してから充電を始めるわけで、そのときにデータ線を利用するんですよね。

データ線が無いとどうなるかというと、供給側の能力確認が出来ないから「充電しない」という動作になる。

すると「充電専用」のくせに充電できない。

あと混ぜるな危険というか、データ通信出来るケーブルと思って使ったケーブルが実は「充電専用」だったりして、しばらく気づかなくて四苦八苦したりとか…。

そんなわけで、こいつらも紛らわしいので捨て捨て。

いつの間にかFreeBSDのportsからdatabases/db6が消えていた

全てはOracleのせい。BerkeleyDBを買収した後、今年の6月くらいにはver.6は登録しないとダウロードできなくなった模様。結果としてportsから更新できず。

databases/db5を使えと。

いやまぁ仕方ないのは分かるんだけど、ports/UPDATEのログにも一切記述が無くてさっぱり分からねぇよ…。

portsのsubversionログ追っかけてやっと分かったんだけど。

BerkeleyDBに依存してるオープンソースソフトウェア、そのうち軒並み死亡するかBerkeleyDB外しが進むのか…。

結局、Oracleの買収っていつもオープンソース(競合)潰しだよなぁ。