新しいパソコンはもちろん!!

Surface Pro 3で決まりですね。


かなり迷いましたけど、やりたいことを実現するにはこれが一番パフォーマンスがよいとの判断。



  • タッチディスプレイ

  • Corei3以上のプロセッサ

  • 64bit版Windows


ノートパソコンがメインになるのは就職後の1年間、東芝Libretto100以来です。
当時はモバイルを重視した選択ですが、今回はモバイルというより、タッチディスプレイ目的。


家族で利用するにあたり、タッチディスプレイを重視しました。
もちろん、デスクトップも検討したのですが、スペックを適度に落としたとしても、予算的には10万前後は必要で、ディスプレイがちょっと微妙な感じ。
店頭で触ってみたりしたのですが、思ったほどレスポンスがよくなく、ペンタブ対応となると予算オーバー。
なかなか良い構成にたどり着けませんでした。


そんな感じで、やっぱりSurfaceかな~とね。


ただ、問題はストレージ容量。
これだけは完全に妥協しました。
今まで使ってたHDDは1TB。すでに半分は写真やら動画やらで埋まっているため、すべてを動かすことは無理。
とりあえず、USB-SATA変換があるのでデータは外付けですね。
あと、スーパーマルチドライブ。
これらはすべて外付けになります。そして、今後の課題ですね。買ってないし・・・


で、どのモデルにしたかというと、Corei3 64GB。
一番安い奴です。


ほんとは法人向けのOfficeなしがよかったのですがね。
Office Professiional Plusのライセンスを持ってるし、publisherを印刷用ソフトとして使っているので、Home and Business Premiumは要らないというか・・・機能足らず。


これを機にPublisherを卒業するのもアリですが、私だけの問題でもないし~~



アライドテレシス AT-TQシリーズの認証ログの統計を取る

なんでアライドテレシスなのか?は聞かないでくれ。
たまたまAT-TQシリーズのログとSplunkがあったからだ。


IEEE802.1x認証を行っていると、認証ログはRadiusかアクセスポイントのどちらかを見ることになる。私はネットワーク屋としてのプライド?があるので、APのログを使うことにした。


jan 1 07:07:10 info: hostapd: wlan1: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: authenticated - identity 'username' EAP type: 25 (PEAP)
jan 1 07:07:11 Warning: hostapd: wlan1: STA xx:xx:xx:xx:xx:xx IEEE 802.1X: authentication failed - identity 'username' EAP type: 25 (PEAP)

IEEE802.1x認証のログは上の2種類だ。成功したか、失敗したかだよね。
通常は成功のログしかないはずなので、抽出したいのは失敗したログ。
ただログを調べるだけだと芸がないので、かっこよく表示したい。


そう、表にするのだ。
















ユーザー名authenticatedauthentication failed
username102
username2120

そう、こんな感じだ。


Splunkにはログを解析してフィールドとして抽出してくれる機能が備わっているので、「field=data, field2=data2,」みたいなログだと準備はいらないけど、アライドのログのように自動フィールド抽出が出来なかった場合は、ちょっとした設定が必要になるので、これを超端折って説明するよ。


これを実現するためには、ログからユーザー名ごとのauthenticatedとauthentication failedを抽出しカウントしなければならない。手作業なら絶対にやりたくない作業だね。


まずはフィールド抽出の定義をするよ。


フィールド抽出で2つの正規表現を使う。
ユーザー名の抽出は「identity 'username'」を検索することになる。
正規表現でいうと「identity \'(?<identity>.*)\'」これでidentityというフィールドが定義できた。
次に、authenticatedとauthentication failedを抽出するわけだけど、前後の文字列をうまく使うと簡単だ。
ログを見るとIEEE 802.1X: ~~~ - identityとなっているのでこんな感じですね。
「IEEE 802.1X:(?<auth>.*)- identity」これでauthフィールドが用意できた。


とりあえず、「identity=* 」で検索すると、上の2種類のログだけが抽出されるはずだ。
さらに、「identity=* | counttable identity auth」と検索すると目的の表が表示される。


完成。
すごく簡単だよね。


ちなみに、「identity=* auth=*failed | counttable identity auth」にすれば、認証失敗したユーザー名と回数の表が表示される。


この表の数字をクリックすると、ログを抽出することができる。


もしかしたら、利用者が「つながらないなぁ~」とあれこれ試してる間に原因を調べて、対処法を教えてあげるなんてことも出来るかもね。


こんな便利な機能が無料で使えるって素晴らしいよね。
アラートを上げたいとか、ログのサイズが1日500MBを超える場合は有償になるけど無償の範囲でも十分役に立つ。
一度触ると離れられないSplunk地獄?天国?が待ってるわけだけど、windows版もあるのでお勧めですよ~



毎回悩む

Lotus Domino/NotesからMicrosoft SharePointにコンテンツ移行する際に毎回悩むのが、
ディスカッション掲示板の応答文書の扱い。


Notesの場合、ビューに親アイテムに紐づくアイテムとして表示されるので、
例えば、カテゴリーっぽい使い方、補足文書、関連文書など応答文書をかなり独立した目的で作成することができるので、SharePoint のディスカッションに移行してしまうと、本来の目的からかけ離れてしまう。


かといって、カスタムリストに移行すると、親文書との連携ができない。
親文書をカテゴリとして空文書で応答文書だけだとカテゴリに置き換えてやればいいのですが・・・


答えとしてはケースバイケースなんで、正しい対応方法というのもないけれど、
どちらがあってるのかなぁ~と悩んでしまいます。


さて、今回はどちらにしようか・・・



POODLE

POODLE SSL3.0の脆弱性への対応ということで、SSL v3プロトコルの無効化が急速に広まっていますね。SSLに不安を感じ、TLSへの移行を待ち望んていたセキュリティー技術者にとっては悪いニュースと良いニュースが同時に来た感じなんでしょうか?


わたしもネットワーク技術者としては新しい規格に移行することはありがたいです。


しかも、皆さんが自ら移行したいと積極的に行動してくれるのですから、ほんと、感謝したいくらいです。脆弱性見つけてくれてありがとう!!って感じですね。


でも、古いWebサーバーやSSLを利用した装置を利用していた管理者にとっては最悪のニュースです。
先週まで更改に向けて社内調整をしても「予算がない!!」って却下されていたのに、今週になった途端「なんでさっさと更改しなかったんだ!!」と怒られる立場ですよ。評価も下がる一方ですね。


世の中にはこのプロトコルやばいよね。次世代にさっさと移行しないと・・・ってのは多いと思います。認証を平文で行っていたり、パスワードは知らなくても、パスワードのハッシュ値で簡単に認証できてしまう認証システムとか・・・インターネット上で使われているプロトコルの大半はやばいですよ。数十年前に決まったプロトコルですよ。HTTP,SMTP,POP3,IMAP4,FTP,Telnet・・・


とりあえず、今年中にはTLSに未対応な端末は淘汰されますね。
でもSSLって言葉は無くなりそうな気がしません。TLSってまだ、浸透していない気がするんですよね。だからこれからもTLSのことをSSLって呼び続けると思います。


最後に、FTPって最悪ですよ。
認証も平文だし、データも暗号化していない。
さっさとFTPSに移行すればいいと思うよ。



POODLE


データ保全

職業柄HDDのハードウェア故障でデータを喪失してしまう方の対応をすることがあります。
数百台のパソコンやサーバーで数年に1回有るか無いかの発生率なので、データ喪失する可能性はほぼゼロといってもよいですが、運の悪い方はいるみたいで、3年のメーカー保証期間内でもHDD故障に出会う人がいます。


HDDが故障したとしてもデータ復旧サービスを使えば数十万払えばいいのです。


とは言えない懐事情もあるので、私が考えるデータ保全についてまとめてみました。
(個人的な意見なので一般的でない場合があります。)


まずデータ保全は冗長化とバックアップの2種類に分けることができます。


冗長化はHDDが故障しても使い続けることができる様にするため。
 よくRAID-1とか5とか6構成とか表現するのがこれです。
バックアップは故意にデーターを削除しても取り戻せるようにする仕組みですね。
 ゴミ箱機能とかバックアップテープとかDVD-Rに保存とか・・・


この2種類は全く別物ですが、データを守る目的において混同している方がよくおられます。


「HDDをRAID-5構成にしているからデータは消えません!!」とかね
RAID-5とは3台以上のHDDを組み合わせて、1台にデータの一部を喪失しても復旧できる演算結果を保存し、そのほかのHDDに分割してデータを保存しますので、1台故障しても一部データと演算結果または分散保存したデータを元に完全なデータを読み出せるので安心ですね。RAID-1は2台のHDDに同じデータを書き込むことで片方が壊れても大丈夫って構成です。


確かに、構成するHDDの1台が故障してもデータを失うことはありません。でもね、削除は出来るんですよ。誤操作や故意、ソフトウェアの不具合によって削除したり、間違ったデータを上書きしたりすると、データを失う原因はHDD故障だけではないのです。


人為的なものからパソコン本体の故障、災害など様々な原因があります。


それらに対応するのがバックアップ。
ただ、バックアップは面倒です。


いつ必要になるかわからないデータを別の場所に保存する作業です。
しかも、どのくらい前のデータに戻ってもよいのか?
上書き対策は何世代前までのデータに戻したいことがあるのか?
データが必要になった時によって様々なので、完璧なバックアップって存在しない。


バックアップデータだってテープとかHDDとかDVDとかUSBメモリ、クラウドなどの記憶媒体に保存するので、それが壊れることもある。保管は金庫の中?別の場所?地球やばくね?


そんなことを考え出すと、完璧なバックアップって、無限の複製数、保存間隔はリアルタイム、無限の世代数。はっきり言って無理です。


だから保全したいデータの価値を天秤にかける。


取り合えず1台のHDDを2つのパーティションに分けてバックアップしてるから大丈夫!!なんて考えない方がいい。


とりあえず、物理的に別な記憶媒体にコピーを保存しておく。
たったそれだけで、万が一の時、完全喪失だけは防げます。



8dot3nameが無効!!

いい加減ね、8.3形式のファイル名じゃないと動かないソフトなんてゴミ箱にポイ!!ですよね。


と言いつつ、動かないと仕事にならないらしいので対応しましたよ。


これね、System Center 2012 Configuration Manager SP1のOS展開機能を使った時の問題なんですけど、Windows8用のADKから仕様が変わって8.3形式のファイル名が無効になってるんですよね。
だから、「Program Files」のショートネーム 「PROGRA^1」が保存されない。


8dot3name Short File Name settings not enabled via ADK Partition Disk step in SCCM OSD 2012 SP1


って事らしいので、このサイトに解決方法が書いてあったので、試してみたんですけどね。


始めはその他サイトでも提示されてたパーティションを作成した後に Formatで有効にしたんですけど、これ上手くいかないのです。たぶんwimを展開するときに無効化した状態で動作するっぽいです。


ということは、ブートイメージに含まれていないFSUTIL.EXEを入れないと・・・ってめんどくさいじゃん!!


もしかしたらOSイメージを展開したファイルを実行できないかなぁ~ できたら俺天才!!


って試してみたら、出来ましたよ!!


でもね、ここでハマるんですよ。タスクシーケンスに上のサイトのコマンドを入れるだけなんですけど、エラーになるんです。デバッグ用のコンソールでは動くので動かないはずはない。もしかして、何かの制限でダメなのか!!ってcmd.exe /cで試してみたりしたんですけど、うまくいかない。で、ログを読むんですけどね。SCCMのログってテキスト形式なんだけどnotepadで読めるような代物ではない!!という愚痴を言いながら該当コマンドあたりを見ると、return code 2とか正常終了した 0 じゃないんですよ。でも、そのコマンドを手打ちするとエラーもなく動くんですけどね。


ってことに半日気が付かず、タスクシーケンスはコマンドの戻り値が0を期待しているので、2とか返ってくりゃエラーになりますよね。


まぁ、無事問題は解決できたので、お行儀の悪いプログラムはきっと動くに違いない。



それにしても、今どき8.3形式なんて非推奨だし、いい加減治せよ~~~



ネットワークセキュリティーは戦わずして勝つ!!

最近ネットワークのお仕事やってないなぁ~なんて思ってしまって、愚痴っちゃおうかなぁ~なんて思いました。


一般的にインターネットと社内ネットワークや家庭内ネットワークの境界にはファイアウォールを設置するとセキュリティー面で安心という仮説があります。


ファイアウォールもUTMという部類で、攻撃検知やウイルス対策、URLフィルタリングなどの検疫技術を使って通信の内部も監視しよう!Palo Altoをはじめとする現代の(次世代)ファイアウォールではHTTP/HTTPS通信の中身を監視し、アプリケーションを認識して適切な通信規制を行うことで、よりセキュアな通信を可能とする製品が広がってきています。


でも、この辺の製品を使ったら安心だなんて思わない方がよいと思います。
攻撃者は利用可能な方法を活用して攻撃してくるわけで、どの企業においても、ほぼ例外なく許可するHTTP通信をつかって攻撃します。だから次世代ファイアウォールではHTTP通信に特化した制御を行おうとしているのです。


とはいえ、攻撃者はHTTP通信のなかでも許可された通信を使って攻撃をしようと頑張っていますので、最終的には信頼できる相手以外との通信は拒絶する必要があります。でも、インターネット上ではなりすましという技もありますので、本当に信頼できる相手なのかの確認をする必要があって、そのレベルまで行くと、信頼できる企業同士を専用線(または信頼できる閉域網)で接続する以外、方法がなかったりします。


ではそんな専用線通信しかしない企業に対し、攻撃者はどうするかといえば、社員になりすます。なりすますのが無理なら社員として堂々と潜入するのです。


このレベルで攻撃された場合、ネットワーク技術者として対抗する手段はありません。だって、相手は正社員であり、正規にアクセス権を保有する人間なので、不正アクセスではなく、業務上必要なアクセスということになります。


では、正規にアクセスすることができる社員に対し、いかに防御するか?というと、社員の行動を監視し、記録を取って、悪事を働いた際に犯人捜しをしやすい環境を作るということになります。


そりゃクリック操作などのアクションごとに画面を保存し、キー入力も記録、Webカメラ内蔵なら定期的に操作者の写真を保存。GPS付なら座標情報も、電話や会話もすべて録音。ありとあらゆる情報を取得し、保管するわけです。
プライバシーなんてありませんよ、業務すべてを監視する必要があるわけです。すかしっぺの回数や行った時間もすべて監視します。だって、すかしっぺでモールス信号やって情報漏えいを行う輩だっていないとは言い切れないでしょ?排泄物だって保管対象ですよ。カプセルに仕込んだ記憶媒体を排泄物に混入させ、下水処理場で待つ仲間に渡すことだって不可能ではない。


で、ありとあらゆる方法で社員を監視したとしても、監視システムを操作できる情報システム室の社員は故意に監視対象外にしたりすることができるので、彼らを監視する監視者が必要で、その監視者も必要、って無限に監視体制が必要です。



「絶対に安全」なんて絶対に不可能です。



じゃぁ、どうすればいいのよ!!と思うのですが、
簡単な方法は、盗む価値のある情報を保有しない。


これが一番ですね。すべての情報を公開し、価値をなくしてしまう。
公開されていれば、攻撃する必要がないし、防御する必要もない。
知りたければ公開されている情報を参照すればいいのです。


秘密がなければいいのです。



もしくは・・・・



秘密を保有していることを悟られない。


いかに攻撃対象にならないようにするか?
これこそ最大の防御ですね。




攻撃者の目的がセキュリティー対策費の増加だった場合、対策を行った時点で負けなんですよね。


攻撃者は目的を達成しているのですから。



Project Sienaで遊ぶ 第5回

お久しぶりです。Project Sienaで遊ぶ第5回目です。

今回は、先日バージョンアップでVisualsにHTML Labelが追加されたことで、まともなBlogビューアーに進化することが出来ましたので、その報告です。

手順的には第1回の続きになります。「Custom Gallery」に「Label」を追加し「Title」などブログの要素をお好みに合わせて追加していきます。






そして、ここで新機能「HTML Label」を追加し、HTML TEXTにBodyを指定します。HTML Labelは名前通り、HTMLを扱えますので、画像やリンクも表示されます。






では、プレビューを見てみましょう。
画像もリンクも表示されるようになりました。

見た目的には完成っぽいですね~





そのほかにも、機能が追加されており、今までできなかった表現も簡単に実現できるようになったようです。特にSNS連携はアピールポイントになるんでしょうね~


筆の選択に悩む

Lotus Notesなら簡単なスクリプトで実現できることを、SharePointで実現しようとすると、いろいろ難しいですね。


ってのは、言い訳みたいなところもあるけれど、こだわりというか・・・自分でブレーキをかけているのは分かるんですけどね~


ノーツって一つの掲示板を作るために、デザイナーツールを使う必要があって、このツールが最上級の機能を提供しているため、利用者の能力によって様々な掲示板というかアプリケーションを作ることができる。これはとってもいいことで、ちょっとこの項目を右に寄せたいよな~なんて思ったら簡単に実現できるし、この項目は○○のデータを引用して加工して代入することもできる。だからいつの間にか多機能な掲示板に発展(暴走)してしまう。


それに比べ、SharePointはWeb設定、SharePoint Designer、Visual Studioの3つから選ぶことになる。Web設定だけで実現できることは限られているので、必要な項目を追加、変更することは出来ても、プログラミングみたいなことはできないから、暴走してしまうことはあまりない。


基本機能で満足できない時にDesignerを使うことになるんだけど、Designerでカスタムフォームを作っても、Web上で列を追加したり変更したりすることができるので、フォームに存在しない列が出来たりすることがある。


だから、フォームのカスタマイズはあまりしない様にしたいなぁ~という意識が生まれてくる。


ノーツで当たり前のようにやってたフォームの編集や@関数だと書くの大変だから、Lotus Scriptで書いちゃえ!!みたいなことが、やったらダメ!!みたいな感じになって、自分の首を絞める。


ノーツだったらもっと早く、簡単にリリース出来ているよなぁ~と比べてしまい自己嫌悪。


「選べる」ことはいいこと反面、「選択が必要」なので、いろいろ考えてしまってなかなか前に進めない。



優柔不断な人間にとって、選択するって大変なんだよ~



とりあえず、SharePoint はDesignerで設定したリストはWebで設定できない様にロックをかけてくれるとありがたいなぁ~と思うのでした。




古い楽天市場系APIがやばい

私の管理するSharePointで使っている図書一覧で画像を表示するためのスクリプトに影響があるみたいです。
「api.rakuten.co.jp」で提供しているAPIの廃止について


今使っているAPIはまさに対象となっているバージョン。きっと忘れたころに動かなくなって気が付くんだろうなぁ~
気が付くほど利用頻度があればいいのですが・・・


ってことで、対応作業を行いました。
ただね、JSONP形式の応答内容がガラッと変わっておりまして、新しいアドレスに変更しただけだとまったく動かない。
エラー処理関係も違うので、ほとんどの場所を書き換えることに・・・


使っているAPIの管理ってのも必要ですよね~。




Project Sienaで遊ぶ 第4回

これで終わり。という話でしたが、よく考えたら、なんでこうなってるか?って説明がなかったですね。

どこが?というと、Custom Galleryの中にText Galleryがあるってとこ。

Microsoft のサンプルでもこの表現はありません。
これは、Movable TypeのREST (Data API)のレスポンス仕様が原因です。

Data APIでEntriesのListを要求すると2行の応答があります。

totalResultsとitems。
totalResultsは記事の総数、そしてitemsは記事の配列です。


だから、一つ目のCustom Galleryはitemsの行を選択するため。
そのなかの記事を表示するためのText Galleryという2重になったんです。

私としても、entriesのitemsの中身を一つ目のGalleryで選択したかったのですが、うまくいかなくて・・・こういう形になりました。


さて、次の展開は10件以上の取得とカテゴリーごとの表示を検討しているのですが、クエリーパラメータを動的に指定してREST要求を出せないとダメっぽいです。これがね、わからなくて、うまくいかないんですよねぇ~


Project Sienaで遊ぶ 第3回

とっても駆け足で適当な説明ですけど、ついてきてますか?
今日までの内容はProject Sienaを知った当日の話。記事は翌日に書きました。

本当はSharePointのお知らせリストでやりたかったのですが、リッチテキストの表示が上手くできなくて代替のコンテンツで試してみたんですね。(成功体験をするという目的で!)
情報システムや総務からのお知らせなど周知文を集めて表示すればユーザーがわざわざサイトにアクセスしなくても見れるかなぁ~と思ってるんです。こっちは時間のある時に頑張ってみようと思います。

では昨日の続きです。

日付表示を修正しましょう。
日付のアイテムを選択して右下の「Express View」を押すとメニューが出ますので、DataのText=を「DataValue(ThisItem!createDate)」に修正します。





次に、Buttomを選択して、下の「OnSelect」を押して「Launch(permalink)」と入力します。




これで完成です。
右クリックを押し、右上の「Preview」を押してみましょう。
ブログ記事が表示され、ボタンを押すとブラウザが起動し、そのブログ記事が開きましたか?





とりあえず、今日でたぶん終了です。これより先は私にとっても未開の領域。更なる展開があれば第4回があるかもしれませんね。あるといいのですが・・・


Project Sienaで遊ぶ 第2回

前回の作業でアプリとブログが結びつきました。
今回は、ブログ記事を表示するまで進みたいと思います。

前回追加した「Custom Gallery」に表示されている「Add a visual」をクリックし、「Galleries」から「Text Gallery」を選択しましょう。



次に左下の「Data」を選び「items」で表示されたメニューから「items」を選びます。上の入力欄には「ThisItem!items」となり、サンプル表示されていた記事が消えます。



ビックリマークが3つ出てきたので一番上のマークをクリックして、左下メニューから「Title」を選ぶとブログ記事のタイトルが表示されます。続けて、2番目は「createDate」、三番目は「excerpt」を選ぶとほぼ完成っぽくなりますね。

ここまで来たら、ちょっとサイズを調整して、「Button」を追加してみてください。
ここでのポイントは、下の図のように2つ目の記事の場所にボタンとかが表示されていること。もし追加したButton一つしか表示されていない場合はText Galleryに紐づくButtonではありませんので、作り直しましょう。



中途半端ですが、今日はここまでにしておきましょう。
次回は日付表示を年月日に変更する方法と、Buttonを押したらブラウザが開き、記事が読めるようになるところまで進みます。





Project Sienaで遊ぶ 第1回

昨日、Project Sienaという存在を知り、ちょっと面白いなぁ~ということで、ちょっとしたアプリを作ってみたいと思います。

まず、何を作ろうかな?ということで身近なとこで、自分のブログを読むアプリにしてみます。(やり易さ第一で・・・)

環境についてですが、Windows8とMovable Type 6があること。それだけです。
これはMovable TypeがREST APIに対応しているので参照先のデータとして扱いやすいってことですね。
オンラインデータとの連携ってかっこいいし。RSS Feedだといい感じにできなかったです。

さて、はじめはソフトを入手する必要がありますね。
ストアを開いて「Project Siena」を検索して・・・って出てきませんでした。
そういうもんなんですかね?ってことでこっちのサイトから入手してください。

では、Project Sienaを起動し、右上の「Add a Visual」から「Galleries」の「Custom Gallery」を選択します。





次に左下の「ITEMS」のメニューから「Add Data Source」を選択します。「REST」をクリックし、URLに「http://サーバー名/cgiのバス/mt-data-api.cgi/v1/sites/BlogID/entries」と入力し、「Import data」ボタンを押します。



しばらくすると、ブログのデータが取得できます。



次に左上の矢印を押し、「Add Data Source」を選んだ画面まで戻ると、「entries」が追加されていますので、それを選択します。

これでひと段落終了です。
実際のコンテンツは今回追加したGalleryの中に表示されるので、画面いっぱいに広げておくと今後の作業がしやすいでしょう。

注意:画像はあえて修正していませんので、取り扱いには注意してくださいね。


Microsoft Entra Connect Cloud同期のお勧め属性マッピング

ハイブリッドID構成の設定で必須設定じゃないかな~というやつを備忘録的に投稿しておきます。個人的な推奨値なので実際に設定する際は十分な理解と検証を心掛けてください。そのまま利用して不具合が発生しても責任はとれません。 Microsoft Entra Connect によって同期さ...