Protocolフィールドが139なIPパケットについての情報へのリンク(TCPやUDPではなく、またPortが139なのではない)。/etc/protocolsに載ってない機械だらけだけどIANA登録済み
- IANA Protocol Numbers
- RFC7401 Host Identity Protocol Version 2 (HIPv2)
- OpenHIP
Protocolフィールドが139なIPパケットについての情報へのリンク(TCPやUDPではなく、またPortが139なのではない)。/etc/protocolsに載ってない機械だらけだけどIANA登録済み
登録/更新料金の猛烈な値上げがレジストリによって行われるという笑撃の事態に出会ったのが1年ほど前、影響は比較的小さかったとはいえ先がやばそうなので3文字 .tc を1つその時に手放しました。
しばらくしてdd24.net(Key-Systems.com)のRSSでなんだかなアナウンスが出ていると思ってましたが、なんとこの事態は今まで続いていたということを最近のアナウンスで知りました。ググってみたところ、ちょっと見ない間にもうわけわからんことになっているようです。まがりなりにもTLDなのに恐るべし…
ググって出てくるページがまとまってました。whoisも両レジストリ(?)のデータベースで内容が違ったりしているようです。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
> host whois.adamsnames.com whois.adamsnames.com has address 109.234.109.174 (netname:KEY-SYSTEMS-GMBH) > whois -h 109.234.109.174 adamsnames.tc ; The data in the WHOIS database of AdamsNames Limited is provided by ; AdamsNames Limited for information purposes, and to assist persons in ... domain name: ADAMSNAMES.TC registrar: AdamsNames Limited url: http://www.adamsnames.com status: ok created date: 1998-08-28 00:00:00 updated date: 2012-08-27 13:17:17 expiration date: 2013-08-28 00:00:00 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
> host whois.meridiantld.net whois.meridiantld.net has address 77.79.76.2 (netname:NET-MTV-GRID, country:TR) > whois -h 77.79.76.2 adamsnames.tc Domain Name: adamsnames.tc WHOIS Server: whois.meridiantld.net Updated Date: 2013-03-08T16:24:46.023Z Creation Date: 1998-08-27T21:00:00.000Z Registry Expiry Date: 2013-08-28T21:00:00.000Z Sponsoring Registrar: Meridian Internal Sponsoring Registrar IANA ID: -- Domain Status: ok Registrant Name: Meridian TLD Corporation Registrant Organization: Meridian TLD Corporation Registrant Street: Mill Mall Tower Registrant Street: Wickhams Cay, 1 Registrant City: Road Town Registrant State/Province: Tortola Registrant Postal Code: VG1110 Registrant Country: VG Registrant Phone: +445603689891 Registrant Phone Ext: Registrant Email: [email protected] |
グルーレコードは大丈夫なのかとかも含めて違いを探すだけで小一時間は遊べそうですが、はちゃめちゃすぎて時間の無駄っぽいですね…そして先ほどのフォーラムに出ていたIANAのページの抜粋です。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Delegation Record for .TC Sponsoring Organisation Melrex TC Richmond House PO Box 127 Leeward Highway Providenciales Turks And Caicos Islands Registry Information URL for registration services: http://meridiantld.net WHOIS Server: whois.meridiantld.net Record last updated 2013-05-03. Registration date 1997-01-27. |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Delegation Record for .VG Sponsoring Organisation Pinebrook Developments Ltd Craigmuir Chambers P.O. Box 71 Road Town Tortola Virgin Islands, British Administrative Contact Technical Contact Registrar AdamsNames Ltd c/o 3 Adams Road Cambridge CB3 9AD United Kingdom Email: [email protected] Voice: +442033972738 URL for registration services: http://www.adamsnames.tc/ WHOIS Server: whois.adamsnames.tc Record last updated 2013-02-05. Registration date 1997-02-20. |
レジストリ(誰?)の指示だとして該当ドメインのDNSのリソースレコードの変更まで禁止されて悶絶の方々も見つかります。そこにその方自身がMeridial TLDとコンタクトを取った返事として載せられていることには、「AdamsNamesを動かしていたチームはMeridial TLDを動かしているチームだ。AdamsNamesにはもうレジストリを運用するインフラも知識もない」となっています。
レジストリのバックエンド担当のdd24と同じグループのKSregistryの2013/3/11ニュースのUpdate(4/12)では「(Key-Systemsの)RRPproxyは.tcと.gdと.vgの変更、登録、トランスファーを有効にしない」となっています。これはリソースレコードの変更には特に抵触しないですね。
AdamsNamesは違法に横取りされた(されるような退職者メールアドレスの管理をしているのが一番まずいと思いますが)、Meridian TLDが勝手にAdamsNamesを名乗ってICANNのミーティングに出席したと言っています。この記事によればAdamsNamesの言い分ではKey-Systems(KSregistry)を共犯としていたようです。
先ほどのニュースには、もうひとつ5/6にKSregistryが.gdのレジストリになったと書かれています。これは.gdのSponsoring Organisationが国立のNTRCだったからできたのでしょう。
ハチャメチャながらも少し流れがわかったところで先ほどの最近のアナウンスに戻ります。”The current operator of the ccTLDs is Meridian TLD Corp.” だそうです。っておーい、どういう流れでそうなったのか、IANAだかICANNだかの見解の説明をKSRegistryなりKey-SystemsなりKeyDriveの誰かがしてくれないと、これから公式ハイジャックとかできるようになるの?とか思っちゃいます。オペレータってなんだろう。
実際にこれらのドメインを使っていた人にとって、長期間にわたる不便は本当に困ったもんだと思いますが、わけのわからないccTLDと認識されてしまった痛手も長引きそうです…DNSSEC使ったところでレジストリが簡単にハイジャックされたとなれば意味がなくなっちゃいます。インターネットが脆弱なことを示す事件がまた増えましたが、事実関係が早くちゃんと明らかにされるとよいです。
PostScriptプリンタが壊れ、つなぎに急遽エプソンのPX-435Aという、有線LAN無し、新しく入れ替えたインクを普通の文字だけの文書でも秒速で使い果たすという大食漢なプリンタを、アクセスポイントとの相性なのか無線LAN接続がいまいち安定しないので、長いことご無沙汰なUSB接続で使用するというお遊びをしてみます。
まずCUPS(print/cups-base)
|
1 |
# cd /usr/ports/print/cups-base && make config |
lprで使えれば十分なのでZeroconfは無視します。
libusbを使う場合はulptなど他のドライバがロードされていない状態の素のugenであることが重要とpkg-messageに書かれていて、しかしこのプリンタはUSB接続した瞬間にulptどころかSDカードリーダでumassまでロードされて後で何かとめんどそうなので、逆にulptを使用してlibusbを使用しない方向に。
|
1 |
LIBUSB_DESC=USB support via libusb instead of ulpt |
とかいうknobにしておいてくれれば良いのかも。いろいろな環境ではそう簡単な話じゃないのだとは思うけど。というわけでlibpaperとGhostscriptとD-Busを選択し、一方libusbの選択はされていない状態でインストールしてみます。
|
1 2 3 4 5 6 |
# printf '\ndevfs_system_ruleset="system"\n' >>/etc/rc.conf # printf "\n[system=10]\nadd path 'ulpt0' mode 0660 group cups\n" >>/etc/devfs.rules # service devd restart # portmaster print/cups # printf '\ncupsd_enble="YES"\n' >> /etc/rc.conf # service cupsd start |
http://127.0.0.1:631/にアクセス。ちゃんとlocalhostだけでlistenしていて、デフォルト設定でいきなり普通に動作している模様。うれしい。
続いてCUPS用ドライバ。GutenprintにPX-401Aはあるものの、まだPX-435Aは載っていませんでした(2013/7/5)。他のモデルやGenericなESC/P系でいけるのだろうと思うも試行錯誤がありそう。OpenPrntingのwebサイトによるとrpmやらdebやらがあるようなので、それにしてみることに。FreeBSDのlinuxulatorはFedra 10(なんと)の対応のパッケージが多いようなので、emulators/linux_base-f10をインストール。
|
1 2 3 |
# portmaster emulators/linux_base-f10 ===>>> This port is marked IGNORE ===>>> linuxulator is not (kld)loaded |
なるほど。
|
1 2 3 |
# printf '\nlinux_enable="YES"\n' >> /etc/rc.conf # service abi start # portmaster emulators/linux_base-f10 |
epson-inkjet-printer-201203j-1.0.0-1lsb3.2.i486.rpmをダウンロードして、’package epson-inkjet-printer-201203j is not relocatable’だそうなのでrpm2cpioですごく変な場所に書きこまれてしまうものがないことを確認してからインストールしてみます(今思えばそのまま/compat/linux下にcpioで展開して、/optにsymlinkすればよかったです…)。
|
1 2 3 4 |
# portmaster archivers/rpm # rehash # rpm2cpio epson-inkjet-printer-201203j-1.0.0-1lsb3.2.i486.rpm | cpio -it # rpm -i --nodeps --noscripts --ignorearch --ignoreos epson-inkjet-printer-201203j-1.0.0-1lsb3.2.i486.rpm |
のようです。
|
1 2 3 |
# ldd /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter | fgrep 'not found' ELF interpreter /lib/ld-lsb.so.3 not found /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter: signal 6 |
lsbなんじゃそりゃ、とほこりをかぶったUbuntu機で確認。なるほど、いろんなディストロ向けのパッケージングをしやすくするためのものですか。えいっ、
|
1 |
# ln -s ld-linux.so.2 /compat/linux/lib/ld-lsb.so.3 |
あとはたんたんと繰り返し。
|
1 2 3 4 5 6 7 8 9 10 |
# ldd /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter | fgrep 'not found' libcupsimage.so.2 => not found libcups.so.2 => not found libjpeg.so.62 => not found # portmaster print/linux-f10-cups-libs graphics/linux-f10-jpeg # ldd /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter | fgrep 'not found' libtiff.so.3 => not found libpng12.so.0 => not found # portmaster graphics/linux-f10-tiff graphics/linux-f10-png # ldd /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter | fgrep 'not found' |
ふつうのユーザでフィルタを実行してみる
|
1 2 |
> /opt/epson-inkjet-printer-201203j/cups/lib/filter/epson_inkjet_printer_filter Insufficient options. |
ダイナミックリンクは解決してちゃんと動作してエラーを出力。結果的にLSB 3.2なるものがFedra 10との相性抜群なおかげもあってportsで全部済み、ありがたいことこのうえないです。stringsで覗いてコマンドは呼び出していなさそうなので、これでOKなはず。
http://127.0.0.1:631/で、Find New Printersでは無線LANの接続だけが見つかるので、Add Priterを押し、Local Printers ‘USB Printer #1’ で追加。Or Provide a PPD File:に先ほどの /opt/epson-inkjet-printer-201203j/ppds/Epson/Epson-PX-435A_Series-epson-driver.ppd.gz を指定してAdd Printer。デフォルト設定をしてからPrint Test Pageであっさり印字されました。linuxulator を動かす分の手間だけで、本当にいい世の中になったものです。
続いて他の*BSD機でも使えるようにとman cups-lpdするとinetd経由で呼ぶのが吉とのこと。inetdで起動しているものは何もなかったので、/etc/inetd.confが変なもの起動しないことを確認、/etc/hosts.allow(TCP wrapperの作者は今はPostfixで有名なWietse Venemaさんですね)を適切に指定してからinetdを起動するようにします。そしてCUPSが自動生成したprintcapを見ておきます。
|
1 2 3 4 5 6 |
# printf '\nprinter stream tcp nowait cups /usr/local/libexec/cups/daemon/cups-lpd cups-lpd -o document-format=application/octet-stream\n' >>/etc/inetd.conf # printf '\ninetd_enble="YES"\n' >>/etc/rc.conf # service inetd start # cat /usr/local/etc/printcap ... PX-435A|PX-435A on homepac:rm=foo.bar.example.com:rp=PX-435A: |
他の*BSD機にはCUPS不要でlpdが動いていなければ動かすだけ、例えば、
|
1 2 |
# printf '\nlpd_enable="YES"\n' >> /etc/rc.conf # service lpd start |
そして先ほどのサーバ側のprintcapを素の/usr/bin/lprが見てくれる/etc/printcapに追記します。
|
1 |
# printf '\nlp|PX-435A|PX-435A on homepac:rm=foo.bar.example.com:rp=PX-435A:sh:\n' >> /etc/printcap |
他に使えるプリンタがないので lp にして引き数無しで使えるデフォルトにし、バナーは不要なので sh を追加します。webブラウザから印刷でlprしてみたところさくっと印刷してくれました。めでたしめでたし。
おまけ。せっかくCUPSいじったので、横でネットワークにつながっ
ているCITIZEN CT-S300のドライバ追加してみます。 ctzpos-cups-1.1.0-0.src.rpm というsource rpmがあるので、こちらはそのままいけそうです。
|
1 2 3 4 5 6 7 8 9 |
# rpm2cpio ctzpos-cups-1.1.0-0.src.rpm | cpio -iv # tar xjvf ctzpos-cups-1.1.0.tar.bz2 # cd ctzpos-cups-1.1.0 # /bin/sh # for f in *.c; do b=$(basename $f .c); cc -O -I/usr/local/include -L/usr/local/lib -lcups -lcupsimage -o $b $f; chown root:cups $b; chmod ug=rx,o= $b; mv -iv $b /usr/local/libexec/cups/filter/; done # exit # gzip -9k *.ppd # chown root:cups *.ppd.gz # mv -iv *.ppd.gz /usr/local/share/cups/model/ |
これで
がFreeBSDのCUPSでも使えるはず。うちのCT-S300は’Find New Printers’で見つかり、自動的に socket://xxxxxxxx になりました。ポートが明示されていない場合のデフォルトポートは9100の模様です。そのまま追加完了して、デフォルト設定を74mm x 2000mmにしたら、えらい長いテストページの左端だけが出てきました…
[dns-operations] Advisory — D-root is changing its IPv4 address on the 3rd of January.
普通にISPのリカーシブサーバを使っている場合は関係ないですが、フルサービスリゾルバを運用しているなどでhintファイルを使っていたり、pdnsdのroot_server = discover にDを使っている場合などはもう更新しておくとよさそうです。
電波時計で 2012-12-12 12:12:12 を見ようと思っていたら、過ぎてました。
あまりのショックにというわけではないですがVG230i
Server: mcas/3.0 (VG230i 2.0.0.0; B2BUA; NTTEAST/NTTWEST)
を4台ほどNTTより取り寄せ、某所で予定より早く使う必要が出たので試しにいじってみました。取り寄せる前にオンラインで取扱説明書を見ました。「テレホタイム」という言葉が存在していた10年以上前になんかよくわからんけど P-MP で申し込むんだぁ!と申込書にチェックを付けた懐かしい記憶がよみがえり、今や自分が P-MP or P-P の設定をする側の立場になれるのかと優越感には浸れるものの、知りたいSIP/2.0側の情報は「本商品は、接続後、ひかり電話ルータが自動設定サーバから取得したひかり電話の設定情報を自動的に取得します」ということしかわかりません。無いよりましそうなので気づいたことを順不同で羅列しておきます。「ひかり電話」、「自動設定サーバ」ですぐに何のことかわかる人には(にも)不要な情報だと思われます。
ファームウェアのバージョンや組み合わせるNGN/フレッツ網やひかり電話ルータによって違う動作をするか、あるいはまったく動作しないかもしれません。あと下の拠点bのRV-230SEでは動作しましたが、そもそもBフレッツはVG230iの対応する動作環境とはなっていないようです。下記のDHCPに対応できていないひかり電話ルータがあるとかいう話でしょうか、それともQoS絡みでしょうか。あしからず。
面白そうな項目など
というわけで PPPoEパススルー している人はひかり電話ルータのDHCPサーバを使っていない人が多いでしょうから、ひかり電話ルータのDHCPサーバを動作させてVG230iに「設定情報を自動的に取得」させてあげる必要あり(PPPoEパススルーのままで動作してました)。”ngn type lanX ntt”したRTX1200やNVR500のDHCPサーバはもしかしたらVG230i用に使えるのかもしれない(*1)(確認してません)。
既にひかり電話ルータに自力でSIP接続している場合は以下のように内線設定が自動的に書き換えられてしまうので、VG230iを接続する前に受け入れ態勢を整え、ひかり電話ルータの設定を保存しておかないと半べそになります。
ISDN側にもいろいろつなげました。手近にあったTAを1台とNVR500を2台の計3台、NVR部分はなつかしのBMJ-8相当の分岐を使ってLANケーブルでバス接続、できあがった全7個のアナログ回線には計14個のRJ11 RJ45アダプタを利用しLANケーブルで家庭用電話機やモデムと接続、NVRはLANに接続、さらにTAのRS-232CのDB9ピンにもRJ45アダプタを利用した挙句にRS-232CのついているPCが離れていたので RS-232C LANコンバータ を2台使用。普段からなんでもLANケーブルで済ませるという横着のおかげでアナログ電話周りなのにLANケーブルだらけの変態試験環境になってしまいました。LANケーブルをLAN用に使っている部分はNVRのsyslog出力用と、RS-232C over IPの部分だけですね… 一部で人気の某機のようにひかり電話ルータが出力するモデムダイアルインやナンバーディスプレイ信号で誤動作することもなく(SIP機とアナログ線機で対決させては非常にかわいそうだけど)、NVRの吐くsyslogをsyslog-ngに喰わせて簡単なシェルスクリプトで自分好みのCTIになったところで満足して解体。倉庫からホコリをかぶったホームテレホンを引っ張り出してくる元気は無かったのでここで終了。発信者番号が1つに固定なのが悲しいので、全部の発信者番号で内線登録してでもなんとかするといった改善をしてくれればもう8,400円はお買い得と思われます。というか1IPアドレス1内線(ユーザ網インタフェース仕様 – セッション制御 – 端末登録 – 端末登録の制限)というひかり電話側のしょぼい制限を昔のように無くしてもらえないものだろうか…
FAXは1つのFAXモデムを、受信2回線、送信1回線で使うために TELFAX MINI P&Pというかゆいところに手が届く製品を多く作っている会社の切り替え機を使ってしましたが、ついでにここもシンプルに整理しよう。
落書きのようなものなので随時追加、修正します。読みづらくてすいません。間違いなどはコメントで教えてくださいませ。
(*1) 2017/6/8追記: 実験されたmobu様よりIPアドレスも割り振られないとのご連絡をいただきました。確かにこの状態ではSIPサーバがどこにもいないのでSIP <-> ISDNゲートウェイであるVG230iが動作する由もないのでした。
tick.usno.navy.mil と tock.usno.navy.mil のntpサーバが2000年を指していた模様。正確な時間に依存しているセキュリティモデルは壊滅してしまいますね。ちょっと前にも leap second でハングする Linuxカーネルとかあったような気がします。
あと全然関係ないですが、bitsquattingの話、面白いですね。typosquattingと違って注意してタイピングしていても防げないので。いつだったかソフトエラーを目の当たりにしてしまいましたし。
FreeBSD.org intrusion announced November 17th 2012 だそうです。
あたりが重要項目でしょうか。
パスワードつきzipのunzipで表題のようなエラーが出るときがあります。
|
1 2 3 4 5 6 7 |
> zip -e hoge.zip hoge.txt > unzip -v hoge.zip Archive: hoge.zip Length Method Size Ratio Date Time CRC-32 Name -------- ------ ------- ----- ---- ---- ------ ---- 0 Stored 0 0% 06-13-12 21:09 00000000 hoge.txt unzip: ZIP decompression failed (-3) |
which unzip するとわかりますが、今時の FreeBSD は /usr/bin/ に unzip がいて、これは archivers/unzip の ports から /usr/local/bin/ にインストールされる Info-ZIP の unzip とは別物です。というわけで
|
1 2 3 4 5 6 7 |
> /usr/local/bin/unzip -v hoge.zip Archive: hoge.zip Length Method Size Cmpr Date Time CRC-32 Name -------- ------ ------- ---- ---------- ----- -------- ---- 40960 Defl:N 8288 80% 06-13-2012 21:09 342c5fc6 hoge.txt -------- ------- --- ------- 40960 8288 80% 1 file |
/usr/local/bin/ を指定してめでたしめでたし。
2012/5/29 18:00現在、gigazine で bingる と、顔を見るだけで判断できてしまう… ギガジン、恐ろしい…のようなSERPになっているのは私だけでしょうか。

原発や軍事用に使われている中国製シリコンチップにサイバー攻撃可能な未知のバックドアが発見される – GIGAZINE の元ネタとなっているケンブリッジ大のページLatest news on my Hardware Security Research – Sergei Skorobogatov(HTTPS Everywhereを入れている人はcam.ac.ukをはずしておかないとエラーになります 2012/5/29) や、もっと昔のだよーと書かれている Copy Protection in Modern Microcontrollers でのくらっとくる色で警告など、いずれにせよ、古いdraftなabstractをRedditに晒されたからという理由で急いでいろいろ付け加えられているようです。その後RedditはFalse news story: No Chinese backdoor in military chip「ホームルータの20%(最近もWAN側にあるのがあった!)、工業制御用の50%のコンピュータでバックドアあるし~(数字の根拠は???)、中国が源なの?そもそも軍事用チップじゃないじゃん」という趣旨のblogで盛り上がったようです。このbloggerが付け加えているように、だからといってバックドアが有るチップを軍事用に使っちゃ良いことにはならないですね。
元文の一番下に並んでいる良く見るような型番もあるリストはごく一部で、多くのマイクロコントローラ、スマートカード、セキュアメモリチップ、FPGAは脆弱だそうです(PSoCはその頃手に入らなかったのだろうか、それともこの手法ではみつからないということなのだろうか、単に載せなかっただけなのか、時系列やターゲットが整理されていないので良くわからない)….どういう展開を見せるのか、連休明けの Microsemi Corporation 界隈で何かを狙っているなんてことはないですよね。
追記: その後も
とか、この分野は実験環境を作るハードルが高めなので面白ネタの宝庫ですね。
関係ないですがきゃりーぱみゅぱみゅと耐タンパ性って微妙に似てる?
HTTPサーバのログにはステータスコード416を返していることが結構あったりするようです。Rangeヘッダは先ごろApache Killerで有名な問題がありましたが、特にDoSしようとしているわけでもなく普通のリクエスト。共通項は
くらいしか見当たりません。ただし新しめのChromeでは416の直後に再度GETして正常取得しているので、何らかの対症療法が施されているように見えます。https://code.google.com/p/chromium/issues/detail?id=68298によれば13で修正されているようですがregressionでしょうか、はたまた別件でしょうか。Range, If-*ヘッダをログ、ChromeからのRangeはunsetして様子を見ることにします。
新しい機械をセットアップするといろいろ起きて楽しいです。WindowsでもGNU Emacsでちゃちゃちゃっと便利に済ませたいときがよくあるのでNTEmacs 23.3をぶち込んだところ、Vulnerability Scanが便利なKasperskyさんが表題の警告を表示。variant部分が3文字です。Trojan.Win32.Siscos.ipvは最近追加された亜種、詳細説明無し。Trojan.Win32.SiscosのNumber of resultsは6453だそうで。データを盗むということのようですがdetached署名でも確認してあり VirusTotalで2/43、しかも片方はsuspiciousなので誤検知ということで良さそうです。(最近出たemacs-23.4-bin-i386.zipの方は署名に使われているkey ID 0x597F9E69(0x587DE7C6597F9E69)な公開鍵がGNUの公開鍵一覧にもメジャーなキーサーバにも存在していないのでFSFに鍵無いと連絡だけしてとりあえず放置してありますが、こちらのcmdproxy.exeはどうだったんでしょうね)
シェルを呼び出してまでWindowsでEmacsを使うこともないのでさくっとquarantineしてくれちゃって良いのですが、一応困る人がいるかもしれないのでunbel32以来久々のfalse detectionの報告をしたところ、「ごめん、誤検知。次で直すね。ありがとー!(超訳)」とのお返事。
http://technet.microsoft.com/en-us/library/cc738483(v=WS.10).aspx によれば a buffer overflow or DEP exception だそうな。ってことは例外は全部 ?EX なのか、例外は最大で26個までなのか、はたまた36個までなのか、特別例外とかいう「イベント」があったらまずくないのか、などなどBOFとでも書いておいてくれればいだくはずもない素朴な疑問はおいておいて、バイナリが正しい配布のものであることを確認して、複数のアンチウィルスでも確認、さらに可能であればそれがDEPに対応できていないことを確認した後にわざわざその実行ファイルでのDEPを無効にし、実行完了後に戻すことにします。
今回はWindows用JREインストーラ実行開始直後
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Java(TM) Platform SE binary は動作を停止しました ... 問題の署名: 問題イベント名: BEX アプリケーション名: jre-6u31-windows-i586.exe アプリケーションのバージョン: 6.0.310.5 アプリケーションのタイムスタンプ: 4f2ce2fa 障害モジュールの名前: StackHash_6718 障害モジュールのバージョン: 0.0.0.0 障害モジュールのタイムスタンプ: 00000000 例外オフセット: 046898a0 例外コード: c0000005 例外データ: 00000008 OS バージョン: 6.1.7601.2.1.0.256.48 ロケール ID: 1041 追加情報 1: 6718 追加情報 2: 6718520661a5809bd4bc4af70234b126 追加情報 3: 2b9a 追加情報 4: 2b9a6b667e74ecf8b9265e65579805bf |
JREインストーラのハッシュはどこにも見当たらないのでインストーラ本体のデジタル署名を隅々まで確認。もっともらしそう。「オンラインで解決策を確認してプログラムを終了します」をクリックすると無言のまま終了。何も無いことを確認してくれたんですね。
このインストーラに対してDEPくらい対応してよという声も複数見つかるので、では半べそですがインストーラのDEPを無効にします。 EMET があれば簡単です。’Configure System’ボタンを押し、DEP を ‘Always On’ から ‘Application Opt Out’ に格下げ。’Configure Apps’ボタンを押して jre-6uxx-windows-xxx.exe を追加、DEPのチェックをはずし、OSごとリブート。インストーラを実行してインストール完了後に’Configure Apps’で追加したものを削除して、DEPを’Always On’に戻して完了。
今年の8月よりCNETの老舗ダウンロードサイト Download.com が広告対象のソフト(ツールバー)の独自インストーラでオリジナルのインストーラをラップするという暴挙に出ているというFyodorさんの怒りの記事です…ちょっと前は広告対象をインストールしないと目的のソフトがインストールできないようになっていた(VLC)とか、お子様用のソフト(Kea Coloring Book)もとか、上塗りで何かとまずいですね…
追記: SourceForgeもやらかしました。
複数経路で入手したハッシュ値での確認の必要性を再認識させられます。
ありがちな作業なのでそのものずばりなツールはごまんとありそうですが、極力先人の知恵を組み合わせて手抜きしながらIPv6対応のものを自力生成してみます。net-mgmt/p5-Net-IPが超便利です。最近はaggregateされたものは置いてないようなので aggregate-cidr-addresses を使います。NANOG MLのメールのとおりにIPv6の場合はprefix()をprint()に変更します。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#!/usr/bin/perl # -*- mode: cperl; coding: iso-8859-1; tab-width: 8 -*- use Net::IP; use strict; my $cc = 0 > $#ARGV ? 'JP' : $ARGV[0]; foreach (<stdin>) { chomp; if ($_ =~ /\|$cc\|ipv([46])\|([^\|]+)\|(\d+)\|/) { if (4 == $1) { my $ip = new Net::IP ("$2 + " . ("$3" - 1)) || die ('argument for Net::IP'); foreach ($ip->find_prefixes ()) { print "$_\n"; } } else { print "$2/$3\n"; } } } close (AGR); # end of file |
上を hoge.pl とでもして保存。先ほどの aggregate-cidr-addresses もその名前のままダウンロードして、最後の
|
1 2 3 |
foreach (@addrs) { print $_->prefix(), "\n"; } |
の部分を
|
1 2 3 4 5 |
foreach (@addrs) { if ($_) { print 6 eq $_->version ? $_->print() : $_->prefix(), "\n"; } } |
に置き換えます。日本のサイダーであればfetchなりwgetなりを使って
|
1 2 |
fetch 'ftp://ftp.apnic.net/pub/stats/apnic/delegated-apnic-latest' perl hoge.pl JP <delegated-apnic-latest | perl aggregate-cidr-addresses >jp |
お気楽日本のサイダー jp のできあがり。全部のRIR statsは以下のとおり。
|
1 2 3 4 5 |
ftp://ftp.apnic.net/pub/stats/apnic/ ftp://ftp.lacnic.net/pub/stats/lacnic/ ftp://ftp.ripe.net/pub/stats/ripencc/ ftp://ftp.arin.net/pub/stats/arin/ ftp://ftp.afrinic.net/stats/afrinic/ |
頻繁にRIRにftpしないように良い子はちゃんとftpしたファイルを保存します。あとRIR dbはただの登録情報なので、実際に設置されている国と異なったりanycastだったりする場合も多いので、もう少し精度良く場所を知りたい場合はGeoIPなどの他、looking glass, traceroute, whoisなどを使って推察していくことになります。
devel/php5-pcre (port directory error)の記事を書いてから早1年半以上たったところで思わぬ事態に遭遇。archiver/php5-zipのmake中に
/usr/local/include/pcre.h はあるので、よく見ると -I/usr/local/include が無いです。configure がおかしかったことになるので config.m4 と config.log を見ると、 PHP_PCRE_DIR に /usr/local が指定されるところまでは正常、その後
|
1 2 3 4 |
#include <main/php_config.h> #if defined(HAVE_PCRE) && !defined(COMPILE_DL_PCRE) yes #endif |
をプリプロセッサに渡して出来上がりに yes があるかという条件判定で PHP_PCRE_REGEX=no になってしまっています。php/main/php_config.h は php/ext/php_config.h を読み込み、さらに php/ext/pcre/config.h を読んでいます。そこには #define COMPILE_DL_PCRE 1 の行が。というわけで1年半前のports/UPDATING の指示は微妙に作業が足りていないようです。/usr/local/php/ext/php_config.h に、必要の無い行がある場合は削除します(pcre spl以外は実際に存在していたか特に確認していません)。
|
1 2 3 |
# cd /usr/local/include/php/ext # cp -p php_config.h php_config.h.prev # fgrep -v -e ext/pcre/ -e ext/spl/ -e ext/dbase/ -e ext/ncurses/ -e ext/ming/ -e ext/mhash/ php_config.h.prev > php_config.h |
間違いの無いようにファイルも
|
1 2 3 |
# /bin/sh # for p in pcre spl dbase ncurses ming mhash; do [ -f "$p/config.h" ] && mv -v "$p/config.h" "$p/config.h.prev"; done # exit |
とでもしてリネームしておきます。最後に
|
1 |
# portupgrade -fr lang/php5 |
あたりをしておけば安心です。ふぅ。/usr/ports/UPDATINGとしては1.5)を追加して
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
20100409: AFFECTS: users of lang/php5 AUTHOR: [email protected] As of PHP 5.3, a few extensions were removed from or included into the core PHP5 package. Follow the steps below to update your installation. 1) Delete the following packages (if installed): - php5-dbase - php5-ncurses - php5-pcre - php5-spl - php5-ming - php5-mhash Keep package names in the output of this commend, # pkg_info -R php5-dbase php5-ncurses php5-pcre php5-spl php5-ming php5-mhash Delete them, # pkg_deinstall -f php5-dbase php5-ncurses php5-pcre php5-spl php5-ming php5-mhash 1.5) Remove unused files (if installed): # cd PREFIX/include/php/ext # cp -p php_config.h php_config.h.prev # fgrep -v -e ext/pcre/ -e ext/spl/ -e ext/dbase/ -e ext/ncurses/ -e ext/ming/ -e ext/mhash/ php_config.h.prev > php_config.h # for p in pcre spl dbase ncurses ming mhash; do [ -f "$p/config.h" ] && mv -v "$p/config.h" "$p/config.h.prev"; done 2) Rebuild lang/php5 and all ports that depend on it. # portupgrade -fr lang/php5 # portupgrade -f [packaged names checked on step 1)] |
とでもなりましょうか。