E-MOBILE + iptables

さっそくE-MOBILEUbuntuで使っているのですが、よくよく考えると使っている端末にはグローバルIPアドレスが割り振られているんですよね。ということでパケットフィルタリングくらいはしておこうという話。

  • ppp0にグローバルIPアドレスが振られている
  • 他にもeth0とかvmnet1とかのインターフェースがある
  • ppp0の通信以外はフィルタリングしたくない

最初はFirestarterを使ってたんですが、vmnet1とかeth0とかの通信もフィルタリングしちゃう*1ので使うのやめました。他によさそうなGUIツールも無いようなので自分でスクリプト書くことに。

#!/bin/sh
IPTABLES='/sbin/iptables'

# Initialize
$IPTABLES -F

# Default rule
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD DROP

# ppp0 rule
$IPTABLES -A INPUT -p udp -i ppp0 --dport 1024:65535 -s 0.0.0.0/0 --sport 53 -j ACCEPT
$IPTABLES -A INPUT -p tcp -i ppp0 --dport 1024:65535 -s 0.0.0.0/0 --sport 53 -j ACCEPT
$IPTABLES -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A INPUT -i ppp0 -j DROP

こんな感じで。DNSサーバのアドレスを/etc/resolv.confから引っ張ってきてスクリプト内で指定してやればいいんだろうけどめんどくさいのでこのまま。これを/etc/ppp/ip-up.d/の中に実行権限を付けて置いておくとppp接続時に実行してもらえるようです。スクリプト名は数字+スクリプト*2という感じで置くみたいです。

ppp切断時にiptablesのルールをクリアしたいので下のスクリプトを用意しました。

#!/bin/sh
IPTABLES='/sbin/iptables'

# Initialize
$IPTABLES -F

$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

これを/etc/ppp/ip-down.d/の中に置いてやるとppp切断時に実行されます。

これをやってからppp接続後に他のPCからping打ってみたらちゃんとパケットを弾いてたのでうまく機能しているようです。たまにSSHサーバ等を起動させることがあるので、E-MOBILE経由での不正侵入防止に役立つかな。

*1:設定のやりかたがよくわからなかった

*2:1iptablesとか1firewallとか

E-Mobile

向こう数年間で何度か引越しをする予定があるので今ある光回線を早めに解約してE-MOBILEを契約することに。近所の電気屋ではD01NEが4,980円だったので大阪梅田のヨドバシカメラまで行って契約してきました。1円で。

早速スピードテストすると3.02Mbpsでてました。無線通信でここまで速度がでる時代になったんですね。

忘れずやること

時間が欲しい

時間があるはずなのになぜかもうこんな時間に。とりあえずRubyで動いてるtDiaryのコードを読んでみる。クラス設計の参考になりそう。このあと寝る前に少しでもコードを書ければ。

他にやること

  • サーバリストア
  • 保守ドキュメント作成
  • Rubyテンプレートエンジンの選定

なんだかんだで結構時間かかりそうだ。

アウトプットすること

自分の中にある何かをアウトプットすることに時間がかかりすぎだと思う。言葉にして伝えるにしても文書にして伝えるにしても。推敲が下手なのだろうか?

誰かに意思を伝えるのは難しい。そんなことを考えつつ、遅い夕食の準備をしよう。

集中力が足りません

ドキュメント読んでても眠くなり、ドキュメント書いてても眠くなり、ロジックを考えてても眠くなる。なんかどんどん集中力が持続しなくなっているような気も。なんでだろ?

  1. 疲れてる
  2. 前日の睡眠不足
  3. 気のせい
  4. 経年劣化

とりあえず、4.だけは嫌だな・・・。集中力を復活させるいい方法はないだろうか。