ゴルフサーバ少しテスト
なんとなく前から作ってみたかったゴルフサーバをさっくりと作りかけてみました。
とりあえずしばらく動かして大丈夫かってのと、素人が適当にやってセキュリティとか大丈夫なんかね、ってのが興味のあるところです。記録もなんにも残りませんが、もし良ければテストしてやってください。勝手に問題増やすとかも適当にどうぞ。
特に、
- ネットにつなげた
- root になれた
- 3秒以上プロセスを動かせた
- サバが落ちた
- 秘密のファイルが見れた
とかはとてもイヤンな事態なので、もしできそうならご報告いただけるとすごいうれしいです。
構成とかメモ。
テストサーバは Xen 内の Ubuntu edgy 。たぶん母艦とだけやりとりできるネットワーク設定になってるはず。
特に chroot もせずに golf ってユーザアカウントで root 所持のファイルを実行してるからたぶん消したりとかできないと思うんだけど。 mono はなんか動かなくすることはできる気がした。いずれにせよファイル残しておかれると困るので chroot は面倒だけどどうせ必要だなぁ…とは思います。
テストサーバは Ruby スクリプトで、拡張子にあわせて適当に実行して結果を返してる。 Open4 を使ってます。
コンパイルと実行がそれぞれ 3秒でタイムアウトするはず。 GHC は Hello, world ですらたまにタイムアウトするということを学んだ。
とりあえず30種類くらい言語環境入れておいた。バージョンとかは以下に。
http://shinh.org:81/versions.txt
Webサーバは Rails …はむずかしくて一瞬で挫折したので lighttpd + ruby + fcgi 。なんか fcgi だけど .rb が更新された時にリロードするようにとかしたつもり。 Web 系のはもう飽きたなぁというところ。 DB が PStore なのは色々アレな気がするので SQLite あたりに変えるかなぁとか思うとさらにやる気が。また認証とか作るのもめんどいなーとかいう。
今後の予定としてはちょっと放置しつつ色々考えて、うまいことできそうで、やる気が出たら UI とかちゃんと作る、って感じで。
まぁ Xen は面白かった。テストサーバも面白かったし lighttpd も面白かった。言語インストール祭りも面白かった。つまり面白いところは全部終わってるのでやる気とか続かなさげ。
追記: GHC とか mono とかがメモリ無いと動けんと甘えたことを言っているので ulimit -v を 50MB にしておいた。