Fluxboxを使ってみた

Gnomeが重いのでFluxboxにしました.色々カスタマイズしたので,やってみたことを書いておきます.

・Why Fluxbox?
1 : 軽い
Gnome使うより,全体的に動作が軽くなります.Firefoxも軽くなります.
2 : 強力なカスタマイズ機能
細かいとこまで設定できます.
さらに,設定は~/.fluxbox以下に入っているので,USBメモリに突っ込んで展開するだけで出先でも見慣れたUIを使うことができます.

・soraochiの環境
Ubuntu 10.04

・使うための準備


sudo apt-get install fluxbox eterm fbsetbg

etermとfbsetbgは壁紙を設定するのに必要です.fluxconftというGUI設定ツールもあるんですが,使い勝手が悪いので僕は使ってないです.

・まずやっておくと便利なこと
~/.fluxbox/startupを開いて,exec fluxboxの前に


xset mouse 2.0 2.0 &
numlockx &

と書いておく.xset mouseはマウスの速度ですので適宜値を変更してください.numlockxは,NumLockをオンにするコマンドです.
つまり,~/.fluxbox/startupはfluxboxを起動する前にシェルで実行するコマンド群です

・Theme
このへんに色々あります.再起動やログオフなど面倒な作業なく変えられるので便利です

・外観
メニューバーが大抵文字化けするので,拾ってきたThemeのmenu.cfgの一番下に

toolbar.font: 好きなフォント名-12
menu.title.font: 好きなフォント名-12
menu.frame.font: 好きなフォント名-12
window.font: 好きなフォント名-12
menuFont: 好きなフォント名-12
titleFont: 好きなフォント名-12

と書いておくといいです.ついでに

toolbar.height: 20

も入れておくと見やすいです.

・右クリックのメニュー
デフォルトだととてつもなく使いづらいので,カスタマイズ必須です.

まず
cat ~/.fluxbox/menu

[begin] (fluxbox)
[include] (~/.fluxbox/mymenu)
[end]

とします.

~/.fluxbox/mymenuの上の方によく使うアプリケーションを書いておきましょう

For example:

[exec] (bash) { x-terminal-emulator -T "Bash" -e /bin/bash --login}
[exec] (Firefox) {/usr/bin/firefox}
[exec] (gedit) {/usr/bin/gedit}
[exec] (GNOME system monitor) {/usr/bin/gnome-system-monitor} <>
[exec] (X Chat) {/usr/bin/xchat}
[exec] (Pidgin) {/usr/bin/pidgin}
[exec] (Nautilus) {/usr/bin/nautilus --no-desktop --browser }
[wallpapermenu] (~/.fluxbox/wallpapers/) {fbsetbg -a}

[wallpapermenu]の項目を入れておくと,~/.fluxbox/wallpapers/以下の画像ファイルがメニューに現れ,クリックすると壁紙にできるようになります.

・ショートカット
ショートカットキーを追加する方法です.

~/.fluxbox/wallpapers/keysの下の方に

Mod4 E : Exec nautilus --no-desktop --browser
Control Shift Escape : Exec gnome-system-monitor
Mod4 X : Exec gnome-terminal

で,Win + Eでnautilis,Control + Shift + Escapeでgnome-system-monitor,Win + Xでbashが立ち上がるようにできます.

・総評
常用するつもりは全くなく,お遊びのつもりではじめたのですが,使っているうちにGnomeに戻す気がなくなりました.
おすすめ.

出先にいながら自宅にいるようにインターネットをする方法

(6/14 11:00 間違いに気付いたので大幅に直しました)

自宅のSSHd + SOCKS serverを介してインターネットにアクセスすれば,公開鍵暗号を破られない限り,自分の管理していないFirewallやProxyに通信を閲覧されることがなくなります.
また,SSHが通っていれば簡単に使えるので手軽です.

ローカル:出先(会社,研究室)のLinux
リモート:自宅のLinux

と呼ぶことにします.

まず,ローカルからリモートへSSHでトンネルを掘りましょう

ssh -D 1080 -p 22 user@jitakuhogehoge.com

ポート番号は適宜読み変えてください.

ローカルのFirefoxを以下のように設定します

SSL Proxyの項目は設定しないでください.SSLセッションは元々暗号化されているので,SOCKS通すと上手く通信できなくなります.

tcpdumpでパケットを見てみると,SOCKSを通さない場合は通信内容が丸見えです.
以下は,http://team2ch.orgを表示したときのものです.


sudo tcpdump -t -n -X -s 1000 port 80 > no_socks
cat no_socks

※一部抜粋

0x0000: 4500 028b 38bf 4000 4006 ed40 8299 0db0 E...8.@.@..@....
0x0010: 77f5 0a2f aa73 0050 6623 713b 7bc8 0a43 w../.s.Pf#q;{..C
0x0020: 8018 00b6 5868 0000 0101 080a 000d 74e6 ....Xh........t.
0x0030: 3e43 d1c0 4745 5420 2f69 6e64 6578 2e63 >C..GET./index.c
0x0040: 6769 2048 5454 502f 312e 310d 0a48 6f73 gi.HTTP/1.1..Hos
0x0050: 743a 2074 6561 6d32 6368 2e6f 7267 0d0a t:.team2ch.org..
0x0060: 5573 6572 2d41 6765 6e74 3a20 4d6f 7a69 User-Agent:.Mozi
0x0070: 6c6c 612f 352e 3020 2858 3131 3b20 553b lla/5.0.(X11;.U;

SOCKSを通せば


sudo tcpdump -t -n -X -s 1000 port 22 > socks_haita
cat socks_haita

※一部抜粋


0x0000: 4500 0104 c652 4000 3706 6a34 77f5 0a2f E....R@.7.j4w../
0x0010: 8299 0db0 a2e4 856a 628f d7eb f933 c721 .......jb....3.!
0x0020: 8018 0266 48c7 0000 0101 080a 0a5f 9a0d ...fH........_..
0x0030: 000e 0bc9 3049 7fb9 b473 7a4e 47d9 d50e ....0I...szNG...
0x0040: e8a4 15b4 ee8c 0d60 9506 c829 170e 2d26 .......`...)..-&
0x0050: 4fa2 d2e5 fc49 14c3 9f27 5b83 9a27 f5bf O....I...'[..'..
0x0060: 0368 db97 a2d1 187d f180 2f42 f631 c525 .h.....}../B.1.%
0x0070: 6fea 9341 019a 4f6a 1d7f bb0e 52ea 82fa o..A..Oj....R...

実際にパケットを見ても,通信内容について推測することは(公開鍵暗号を破らない限り)できません.
もし仮にパケット内容を暗号化している共通鍵が解読されたとしても,共通鍵は使い捨てなので,盗聴されたパケットは氷山の一角にすぎません.

ssh -Xはローカルネットワーク内であれば有効ですが,WAN越しだと描画速度の面から実用的ではありません.
この方法でSOCKSを使えば,ローカルから直接接続するのとあまり変わりない描画速度/回線速度で,Firewallを誤魔化しながら通信をすることができます.
もっとも,回線速度に関してはリモートの回線速度にも大きく依存すると考えられます.また,FirewallでSOCKSによる通信をしゃ断されたら使えないというデメリットもあります.