鱒身(Masu_mi)のブログ

知った事をメモする場所。

Wireshark: ZeroMQを解析する

今回はZeroMQを支えるZMTPプロトコルをWiresharkでみてみる。 前回のように仮想マシン2台を立ててTCP上で PUSH/PULL する。

Read more...

Wireshark: DB-LSP-DISCが飛んでいる

Wiresharkを使ってパケットを覗いていたらDB-LSP-DISC なるプロトコルがブロードキャストされていた。

../../../_images/wireshark-db-lsp-disc.png

調べたらDropboxLAN内同期を取るプロトコルだった。 LAN内同期が不要だったので切断しておいた。本当は家のWifi接続の時だけ有効にするとかが可能だと嬉しい。

../../../_images/dropbox-setting-lansync.png

ちなみにローカルネットワークへのブロードキャスト(255.255.255.255:17500)を利用してJSONを送っていた。 ペイロードの雰囲気は下(一部を書き換えている)。

User Datagram Protocol, Src Port: 17500, Dst Port: 17500
    Source Port: 17500
    Destination Port: 17500
    Length: 149
    Checksum: 0x278a [unverified]
    [Checksum Status: Unverified]
    [Stream index: 3]
Dropbox LAN sync Discovery Protocol
    JavaScript Object Notation
        Object
            Member Key: host_int
                Number value: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
                Key: host_int
            Member Key: version
                Array
                    Number value: 2
                    Number value: 0
                Key: version
            Member Key: displayname
                String value:
                Key: displayname
            Member Key: port
                Number value: 17500
                Key: port
            Member Key: namespaces
                Array
                    Number value: xxxxxxxx
                    Number value: yyyyyyyy
                Key: namespaces

Dropboxの仕様や実装を調べている人はいるAPIも公開されているので何かしたくなった時にでも思い出してみる。

ZeroMQ: EPGMの利用失敗

PGMやEPGM上でZeroMQを利用するためにVagrantをなんやかんや頑張っていた。 しかし(E)PGMの利用は以下の様に失敗した。EPGMでの実行内容をメモしているがPGMも同様に失敗した。 仕方ないけど、これまでに調べた事と実施した対応や検証をメモする。

Read more...

Vagrant: 仮想マシンのコピーとネットワーク

ZeroMQで遊んでいたらPub/Subに限りトランスポートプロトコルにPGM(RFC3208)を選択できる事を知った。 PGMUDPと同じトランスポートレイヤのプロトコルで動作するマルチキャストを提供する実験的なプロトコルで、実装にはOpenPGM がある。Blackduckをみると2011年頃には開発が止まっている。 EPGMはPGMUDP埋め込んだプロトコル

PGMの利用にはマルチキャストをサポートするデバイスを使って通信する必要がある。 だがループバックデバイスはマルチキャストをサポートしていない。

ifconfig で確認している図。マルチキャストはサポートされていなかった。

ifconfig によればloデバイスはMULTICASTをサポートしない

しかし他の仮想デバイス(enp0s9, ...)はサポートしていた。 そこで現在のVMをコピーして内部ネットワーク内に2台起動している状態を作る事にした。 今の設定の時点で“public_network”を使っているため単純に2台起動するだけで仮想マシン間で通信可能になるが、別の機会に活かすためプライベートネットワークの設定も調べた。

Read more...

Elasticsearch メモ

Elasticsearchを利用するにあたり勉強したり復習した事のメモ。

HTTP, TCPで検索・分析を実施できる分散検索クラスタ:

Elasticsearchは、様々なユースケースを解決する、分散型RESTful検索/分析エンジンです。予期した結果や、そうでないものまで検索できるようにデータを格納するElastic Stackの中核です。

ElasticsearchはHTTPで操作できるLuceneクラスタみたいなもの。検索としては、構造・非構造型データ・地理情報・メトリックなどを扱える。 検索以外にもAggregation, Suggestionも提供されている。

今回は後で調べやすくなるように基本的な資料のリンクをまとめて概念を整理する。その後で他のエコシステムとの繋がりや周辺ツールについて紹介する。 最後に運用上の注意事項や実際の利用の参考資料を載せる。

Read more...

Embulkを使ったメモ

Embulkを使った。バルクデータ転送用だけあって目的通りに使うと便利そう。 プラグインが多いのとプラグインを一般な人には書きやすそうなのが良い。でもJava, Ruby経験が浅いので、まだ慣れないけど作ることは出来た。

Embulkはバルクデータローダ:

Embulk is a open-source bulk data loader that helps data transfer between various databases, storages, file formats, and cloud services.
Embulkイメージ

Read more...

メトリクス可視化をやってみた(Diamond + InfluxDB + Grafana)

Diamond + InfluxDB + Grafanaでメトリックス集計した。無理やり入れた感が否めない。

今日の方針

  • 収集にはDiamondを使う
  • Diamondはvirtualenvのpython27環境にpipでインストールする
  • NginxのメトリックスもDiamondで収集する
  • InfluxDBGraphite_インタフェースを利用する
  • 可視化はGrafanaを利用する
  • Grafanaのユーザー管理はGithub OAuthを利用する

Read more...

CowrieをCentOS6で動かしてみた

SSHのHoneypotであるCowrieをCentOS 6で動かしてログを確認するところまでやってみた。

ハニーポットは実際にサイバー攻撃を受けたり悪性サイトにアクセスして攻撃情報を収集する。

元々は前者を指す言葉だけど、最近は巡回型とかクライアント型とか呼ばれるタイプもあるみたい。とりあえず従来のハニーポットを試した。

Read more...