2014年12月15日月曜日

GitBucketをWindowsでサービス化する

https://gist.github.com/backpaper0/9092197 参照。色々な方法があるけれど、winswが一番扱いやすいと思った。

2014年9月23日火曜日

OpenLDAPで access to * に迂闊に by self write をつけてはいけない

先日書いた件の詳細です。このダメダメ設定がどのくらい蔓延しているかというと、Qiitaの記事2本中2本ともにダメな設定になっているくらい蔓延しています。それと、今年か去年出た書籍もダメ設定が紹介されていました。

 何がいけないのか

 access to * によって、uidNumber, gidNumber, homeDirectoryあたりのアクセス権を by self write によってユーザに与えてしまっていることです。ログインしたユーザが、自分自身でldapmodifyコマンドや LDAP で通信するプログラムを使ってこれらの属性を書き換えることができるからです。

何がおこるのか

ldap.conf の設定にもよりますが、ローカルユーザが root のパスワードなどを知らなくても root に昇格できます。

どうしてこんなことになるのか

ローカルユーザがLDAPプロトコルを叩けることを忘れているからでしょう。それと OpenLDAP管理者ガイドのACLの節にby self writeの設定例が載っているのも一因でしょうか。LDAPサーバをディレクトリサーバとして使う分には access to * by self write していても問題ないのですが、認証サーバとして使うにはちゃんと ACL を考えないといけないということが抜け落ちているからでしょう。

pam_min_uidとか設定しているし大丈夫だよね・・・

直接 root になることはできません。しかし、sudoers の設定によっては、gidNumber を変えることで sudo  できるグループに自分で勝手に変更できてしまうかもしれません。そもそも他人のuidに変更できる時点で認証システムとしては失格です。

どう設定すれば良いのか

例えば、Debianの設定例のように loginShell, gecos に限定して by self write を付けるのが一つ目の方法です。二つ目の方法としては、uidNumber, gidNumber, homeDirectory などの勝手に変更されては困る属性を先に read-only に設定した上で by self write を付けることです。どちらかといえば前者の方がおススメですかね。

ダメダメ設定で実際に確認してみたい


2014年9月13日土曜日

ipython notebookをWebに上げる

ipythonのnotebookは便利だが,共有する方法が分からなかった。
とりあえず見つけたのは,nbviewerというもので,gistやgithubに上げると表示してくれるらしい。
試しにmatplotlibの派生プロダクトのprettyplotlib, matplotthemeの比較を上げてみる。http://nbviewer.ipython.org/gist/kounoike/c3e585ad21c0184b4708
ふむぅ。

検索してて出てきたAzureでipythonって記事のスクリーンショットがChromeでそこはかとなく笑いを誘ってくれる。

OpenLDAPのダメダメ設定のダメっぷりを示す

余り知られていないようですが、OpenLDAPの設定で迂闊なことをやっていると、ダメダメなこと(ローカルユーザにroot取られる)が起こることを示します。
Vagrant+Berkshelf+Chefを使った再現環境をgithubに公開しました。

が、明日からのPyCon2014に備えて寝ます。詳細は後日ここに書き足します。

追記
新しいエントリに書き足した。

2014年9月11日木曜日

Fluentd on Windows

こんな本 を買って、著者による講演会にも行ってきてログ解析熱が高まっている。

でも、色々な事情で、Windowsで動かしたい。 Windowsで。

調べてみるとFluentdがネックで、講演会の発表でもあったLogStashであれば、Windowsで動くらしい。
で、Windowsでのサービスとしてのインストール方法を調べてみると、こんなページが見つかった。これで、Elasticsearch、LogStash、Kibana3がWindowsでも動くというわけだ。
一方、FluentdはWindowsでも動かすだけなら動くらしい(Qiita Windowsでfluentdを動かす
ん? LogStashのサービス化にNSSMっていう外部ツール使っているんだったら、それFluentdでも使えばサービス化できるんじゃないの? Qiitaの記事にあるCTRL+Cで終了できない問題は解決しているっぽいし。
後で試してみるかー

2014年9月1日月曜日

統計 - 閲覧者

イスラエルから1000オーバーのアクセスが8/31にあったらしい。なにそれこわい

Pythonコーディング規約

Pythonのコーディング規約PEP8に準拠するというQiitaの記事で知った。
チェックツールがあるのが良いですね。チェックツール無しのコーディング規約って遵守の判断にコストがかかりすぎると思う。

Python(x,y)ならpep8, pyflakes, pytest, pytest-pep8が導入済みなので手軽に使えるのも便利。

pytest (2.5.2)
pytest-bench (0.2.5)
pytest-cache (1.0)
pytest-cov (1.6)
pytest-flakes (0.2)
pytest-pep8 (1.0.6)
pytest-xdist (1.10)

と色々入っているがそれぞれ何をするものなのだろう? pytest-flakesは上の記事からなんとなく分かるけど・・・