o2tの日記

京都でIT技術者として働くo2tの日記。phpやpythonネタが多いです。

GoogleドライブをLinux(ubuntu14.04)でもマウントしたい

Googleドライブは便利ですが、ローカルにデータを残しておきたくない場合など、同期型である点がちょっとやっかいな場合があります。
そこで、WindowsではWebDriveなど非同期型のGoogleドライブ対応アプリケーションが幾つかリリースされています。ならばLinux(ubuntu14.04)でも同様なことが出来ないかどうか、色々調べてみました。


検証環境:vmware fusion上で仮想化されたubuntu14.04 LTS

<検証内容>

google-drive-ocamlfuse
 https://github.com/astrada/google-drive-ocamlfuse
 FUSEという仕組みを利用したシステムで、比較的頻繁に更新されている模様。
 インストールは公式サイトを参考に以下の手順で実施。

1.aptのリポジトリにPPAを追加し、apt-getでインストール

$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt-get update $ sudo apt-get install google-drive-ocamlfuse

 

2.googleドライブをマウントするマウントポイントを追加

$ mkdir ~googledrive

3.初回起動時の認証設定を行う。以下のコマンドを実施するとFirefoxが起動しgoogleのアプリケーションの接続許可ページへと遷移。

$ google-drive-ocamlfuse

4.googleドライブのマウント

$ google-drive-ocamlfuse ~/googledrive

動作所感:
CLIGUIでのファイル参照・移動・削除等特に問題なく動作していた。
ただし、ファイルの作成や編集を~/googledriveで実施すると、少し引っかかる感じで動作が重くなる場合がある。これはおそらくvi等でtmpファイルが作成されるのだがそれらも同時にgoogleドライブに作成・保存されるためだと思われる。その点は注意が必要。

インストール後の利用について:
再起動後は4のマウントコマンドのみ実施でマウントされる。
起動スクリプトでの自動マウントも可能。マウント時は認証されない。

認証:
初回利用時に発行するコマンド「google-drive-ocamlfuse」ではwebブラウザ経由でgoogleドライブ側に本アプリケーションが利用してもよいかどうかのアクセス認証が発生する。これらは利用者が各々実施する必要がある。

ログイン情報には~/.gdfuse/default/stateに保存されている「access token」と「auth_request」を用いる模様。テストはできていないが、他端末でログインした際も上記設定ファイルを参照することで認証されると思われる。

<その他>

■grive
https://github.com/Grive/grive
公式アプリと同様の同期型だったので基本動作の確認のみで検証終了した。

google-docs-fs
検索で一番良く引っかかるOSS。ただし、ubuntu 11.10のみ対応となっておりまたインストールしたとしてもパスワード認証時にエラーとなってしまったため動作検証途中で検証を終了した。

SSL暗号化通信をロギングする方法

管理しているネットワークに設置しているプロキシ(squid)サーバのログを解析した結果、およそ4割がSSL通信になっていました。今後http/2やspdyが普及すると、それらは更に増加するでしょう。

 

そこで、SSL暗号化通信をロギングする方法を検討したので、備忘録として記録しておきます。 

方法1:mitmproxyを使う場合

正式名称は「a man-in-the-middle proxy」で、man-in-the-middle attack(中間者攻撃)などに使われる用語をもじっているみたいです。紹介されているサイトは、iOSアプリ開発で、SSL通信の監視目的(iPhoneMac環境)を想定した説明が多いですが、pythonで書かれているため、ubuntu等にも比較的カンタンに導入できます。

インストール方法

pip(Python Package Index)でインストールするので、予めpip環境を用意して下さい。

$ sudo apt-get install python-pip

あとはpipでインストールするだけです。

$ sudo pip install mitmproxy

 

公式サイト mitmproxy - home

 

方法2:iFilterを使う場合

長くなってきたので、次回解説します。

 

mysqlにsquidログを格納する

squidのログを解析するために、mysqlにimportした時のメモです。

 

ログ解析用のテーブルを作成

格納用のcolumnは以下を参考にして作成しました。

Squidのログファイル

--
-- テーブルの構造 `access_log`
--

CREATE TABLE IF NOT EXISTS `access_log` (
`time` decimal(65,3) NOT NULL,
`duration` int(11) NOT NULL,
`client_address` text NOT NULL,
`result_codes` text NOT NULL,
`byte` int(11) NOT NULL,
`request_method` text NOT NULL,
`URL` text NOT NULL,
`rfc931` int(11) NOT NULL,
`hierarchy_code` text NOT NULL,
`type` varchar(32) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

ログファイルをimportし易い形に変換する

今回扱ったログファイルは、apache準拠ではなく標準フォーマットだったため、少し加工しました。通常、ログはタブ区切りなどですが、squidはそうではない模様。そこで、スペースをタブに変換するため、sedを使って加工しました。

cat access.log | sed -e 's/  */        /g' > exchange_access.log 

 ※/*と/gの間はタブを入力しています。ターミナルでCTRL+vを入力したのち、タブキーを入力すると打てるはず。

注意

ターミナルの文字コードが日本語(UTF-8)になっている場合、「sed: RE error: illegal byte sequence」というエラーが出る場合があります。その場合はLANG設定を「C」に変更して上記コマンドを実行して下さい。

phpmyadminを使ってmysqlにimportする

phpmyadminのインポートタブでインポートをします。

この時、【フォーマット】は「CSV」を選択し、「カラムの区切り記号」には「\t」を記入。この時「円マーク」だとうまくいきませんでした。バックスラッシュじゃなと駄目な感じです。

仕事で調査中の事項 #20140703

ネットワークプロトコルやプロキシ関係がメイン

 

HTTP/2 SPDYプロトコル

Yahoo! JAPAN における HTTP/2 への取り組み - Yahoo! JAPAN Tech Blog

変わるWebプロトコルの常識(SPDY, HTTP2.0編) | HTML5Experts.jp

Web表示の高速化を実現するSPDYとHTTP/2.0の標準化 | 最新の技術・取り組み | IIJ

[iPhone] iOS版Chromeにデータ圧縮プロキシ(SPDY Proxy)の限定プレビュー版がやってきた!

SPDYパケットをキャプチャする - あすのかぜ

ネットワーク管理者、携帯通信会社、ISP 向けの Chrome データ圧縮プロキシ - Chrome ヘルプ

HTTP2を試してみる | GREE Engineers' Blog

プロキシサーバ

http2.0 - HTTP/2 & SPDY プロキシー nghttpx を使う - Qiita

squid で特定のサイトをアクセス拒否する

仕事で調査中の事項 #20140630

ログ集約基盤

プライベートクラウドでログを統合管理するための情報収集。
できれば無償で対応したい。

柔軟なログ収集を可能にする「fluentd」入門 - さくらのナレッジ

fluentdで始めるログ管理【基本編】 | eXcale Developer's Blog

tenshiでサーバ上のログファイルを効率良く監視 - Masatomo Nakano Blog

nxlogを使ったsyslogメッセージの複製転送 - uzy_exeのノート

 

有償のものだとこれ、とか。

ニュース - SCSK、傾向や相関も分析するログ解析ソフト「Splunk」を販売開始:ITpro