2018年11月30日金曜日

続。squid越しにadobe Creative Cloud Desktopが使えない(spliceのご使用は計画的に)

とりあえず端的に書くと、adobe creative cloudデスクトップアプリケーションをインストールする際に、見に行くサーバが特定できていない。
恐らくは全てspliceしたはず(エンドポイントのurlは全てnobumpに加えた)で、それでもぐるぐる回ってインストールが進行しなかったりする。

挙動だけを見ていると、どこかに接続しようとしてタイムアウトした際に、次のステップに進んでいるような印象。
 悩みに悩んで、ブラウザでもアドビに接続が若干困難だったことから、取り敢えずブラウザで見えるadobe.comをみることにした。
...結論から書くと、doubleclickやらlinkedinやらの追跡ビーコンが読み込みを阻害していたのだけだった。
ただ、これはこれで無駄ではなかった。
何故かtwitterの表示がおかしいことに気づき、squidを参照したところ、twimg.comのみを「splice」していたのである。
そしてその際のtwitter.comの証明書は、僕のオレオレ証明書ではなくdigicert.com。そう、どうやら証明書はバッティングする。そして、バッティングしたら読み込みに障害が出るらしい。
これに気付けば後は簡単、逆にadobe関係のウェブサイトを「splice」リストから除外すればいいだけ。

ブラウザの挙動恐るべし。
ただ、逆を言えば、adobe ccが要求してくるurl(というかドメイン)を全てspliceできていれば、こんな問題は起きないわけである。
wiresharkと超睨めっこしたのに、なかったんだよなあ。。。

2018年11月22日木曜日

squid越しにadobe Creative Cloud Desktopが使えない(user-agentをみてる)。あとプロプリエタリへの恨み言。

いや本当に勘弁して欲しい。
squidでプロキシしている環境からadobe creative cloudのインストールをしようとしたら、さっぱりインストールできない。
p201エラーとかいいやがりまして、インターネットにはつながっているのに、繋がっていないことになる。
本腰を入れて調査したところ、どうも環境変数を読む臭くて、
squidでrequest_header_access User-Agent deny all
を指定すると、見事にはぶられることが分かった。
ということは、user-agent偽装もリスクになるわけで、選択的にadobeだけ、みたいな事もできないわけではない(はず。試していないけど、ssl_bumpのステップか、多段プロキシかでできると思う)が、
調べるのが面倒だし、くそみたいな仕様のソフトウェアで管理させようとするadobeに憤りしかない。
 だったらスタンドアロンインストーラをどうどうと公開しろと言いたい。

あと、関連で、apple iosもメール添付ファイルバグを直そうともしない。
先方は、iphoneやipadで、メールに添付して送信してるつもりなのに、僕の手元には添付されていないようにみえた状態で送られてくる。
これ。
https://forums.mozillazine.jp/viewtopic.php?f=3&t=16494

WADAさんの返信をまま引用
「添付ファイルが消えている」のではなくて、
そもそも、メールのデータ構造には「添付ファイル」なるものは存在せず、
Thunderbirdは、それに関しては規則通りに表示しないが、
iPhoneのメーラーやWebメールだと、正しくないメールのデータ構造であっても、multipart/alternativeの下の一部のパートを、あたかも「添付ファイル」であるかのごとく見せている、
ということだと思います。

ちゃんとしたメーラーではなく、multipart/mixed、multipart/related、multipart/alternative、などの違いなんて知らない・気にもかけないお粗末なプログラマーによって書かれたメールアプリケーションやWebアプリケーションが、multipart/xxxのデータ構造の中の不適切な場所に「添付ファイル」として送りたいデータを置いた、というのが、多くの場合の原因です。
こういった問題が多く報告されて、
multipart/relatedの下でHTMLが参照していない、使われないパートに関しては、
そのデータをファイルに保存できるようにするために、正規の「添付ファイル」と同様に、Thunderbirdも表示しています。
しかし、multipart/alternativeに関しては、
multipart/alternativeの下の各パートの定義は、全く同じ内容物の異なる表現(HTMLとtext、というような)、ですから、
Thunderbirdの仕様は、multipart/alternativeの下のパートの一つだけを選択して表示する、
であって、これは変更されていません。
Thunderbirdにおいてmultipart/alternativeの下のパートで表示に使えるものはtext/htmlとtext/plainなどだけだから、multipart/alternativeの下のパートでtext/xxxではないものは、「添付ファイル」として表示して欲しい、という要望は、すでに出ています。

あまりにも多くのお粗末なプログラマーが存在してそういったメールを多く作り出すので、正常に表示されないデータをファイルに保存できるようにするための手段を提供してほしい、という要望があって、それで作られた機能が「show_all_body_parts」です。
設定エディタ(Config Editor、知らなけれ自分でグーグル検索してください)
mailnews.display.show_all_body_parts_menu : false ⇒ true
に変えると、
View/Message Body As(表示/メッセージ、かな)に、HTMLやテキストに加え、「All Body Parts」が出てきます。
これを選択すると、全てのmultipart/xxxをmultipart/mixedとして解釈して表示するので、
multipart/alternativeの下の不正な場所に置かれたパートや、multipart/relatedの下の不正な場所に置かれたパートなどが、
multipart/mixedの下におかれた、正規の「添付ファイル」として表示されます。

まずは、この機能で確認してみましょう。
後は、メッセージのソースを見て、どのような構造になっているかを調べればいい。
multipart/mixed,related,alternativeなどに関しては、自分でグーグル検索してください。

appleも本当にクズ。これのせいで何度も添付させてしまったことがあり申し訳ない気分になる。
なんていうか、プロプリエタリの悪い所がこんなところなんだろうなあ。
別に囲い込まれてもいいけど、変更できるようにしておいてほしい。

追記
関連で最終解決。全部のドメインをspliceしようとしていたら、spliceが逆にまずかったでござるの巻。
 https://roserogue.blogspot.com/2018/11/squid-adobe-cc-dont-splice.html

2018年11月13日火曜日

壊れたThunderbirdのメールボックス(mbox)を復旧する

残念なことに、度々Thunderbirdのメールボックスは破損する。
ウイルススキャンのタイミングだったり、再起動中だったりなのだけれども、何にしろ「4GBを超ているinbox」を使用していると壊しがちなので、
何にしろzipの壁である4gbを超えないようにせねばならない。

で、不注意で壊してしまった場合は、だらだらと続く(文字化けした)テキストファイルをみながら、どこまでが1メールなのかを追わなければならなかったりとか、地獄がスタートする(そしてあきらめる)のだが、
最近いいやり方があることを知った。

http://www.multiburst.net/sometime-php/2007/10/mboxthunderbirdbecky/

------------------
このコマンドを用いて下記のようにコマンドを打てば、メール毎にファイル分割してくれる。

csplit -f "x" -b "%04d"  (mbox形式のファイル名) '/^From .*/' '{*}'

オプションについての詳細は上記参考サイトを参照して頂きたい。

が、上記の場合、一つのファイルで一つのメールということになってしまい。すさまじいファイル数になる。いちいちこれを全部Beckyでインポートするのも面倒なので、100通ずつ今度は結合してみた。

cat x1* > mbox1
cat x2* > mbox2
cat x3* > mbox3
cat x4* > mbox4



といった感じ。

このファイルをBeckyでインポートすることでインポートを完了することができた。
-----------------

僕の場合は何故か引用符「>」が頭についてしまったので、
csplit -f "x" -b "%06d" mboxfilename '/^>From .*/' '{*}'
とする。
で、「>From」だと都合が悪いので、sedで
find x0* |xargs sed -i "s/>Fr/Fr/g"
として、引用府をとった。
エラーが出ているメールの部分は、ファイルサイズがおかしくなっていたりするから、バラの時に並べ替えて、内容を変更。
部分で結合していって、エラーが出たらそれを分析でもいい(が、thunderbirdといったりきたりをしないといけない)。
あとは本記事と同じように結合して修了。
cat x00* > inboxx00
cat x01* > inboxx01
cat x02* > inboxx02
.........

thundebirdのMailディレクトリに入れてやれば完了。
これのおかげで、全てのメールをロストするという最悪の事態を初めてまぬがれた。
コメントで感謝を示したかったが、コメントを付けられなさそうだったのでここで。
4gbを超えるとろくなことはない。