pfSenseでブロードバンドルータを置き換える

FreeBSDの派生であるpfSenseをインストールしたので、自宅のしょぼいルータが提供している機能を置き換えていきます。


まずローカルのマシンにIPアドレスを割り振るためDHCHを使います。
[Services]>[DHCP Server] の画面で[Enable DHCP〜]をチェックするだけです。
普段繋いでいるマシンは固定IPにしたかったので、同じ画面の下部からMACアドレスとの対応を指定して対応します。
ただし固定するIPアドレスは、DHCPサーバが振り出すアドレス範囲と被らないようにする必要があります。


DNSは後回しにして、ポートフォワードを設定します。
[Firewall]>[NAT]から追加するだけですね。WANからのSource port rangeに対してDestination port rangeを内側に向けて設定します。
pfSenseでsshdを動かしている場合でも、WANから22番ポートへのアクセスなら好きに割り振ってもLANから繋げますので問題無いはずです。
(ところでpfSenseはsshd_configとか手で書き換えられないので注意。再起動時に勝手に復元されます。phpsshd_configが上書きされている…。どうしてこうなった)


最後に、外からアクセスするためにDNSを設定します。
今まで適当にアイ・オーデータのドメイン(ルータ買うと使えるヤツ)を使っていたわけですが、
これはpfSenseによる更新(DNS UPDATE)が使えない、謎プロトコル
しかし現在の環境をまるまる置き換えるのが取りあえずの目標なのでなんとかしたい!

なんとかしました。

[WAN] <--> [pfSense] <--> [ハブ] <--> [ルータ]
                          [    ] <--> [PC]

こんな風に繋いで、tcpdump

// こんな感じ
$ tcpdump -i re1 -s 1600 -X port 80

で、ログをヒューリスティックgrepしてみたところ、どうやら単なるベーシック認証でhttpに繋いでGETで渡しているだけらしい。

$ curl --user <id>:<password> \
http://mail.iobb.net/cgi-bin/ddns/members/update_dns.cgi?host=example.iobb.net&myip=xxx.xxx.xxx.xxx

DNSの更新まで出来るとかcurlが便利すぎて困るw (にはルータのシリアル番号を入れます)
更新に成功すると

<html>
good
</html>

こんなふざけたレスポンスが帰ってきます。goodなんだからいいんでしょうね。ヤッター!


これでネットワークを一通りpfSenseの管理下に移行出来ました。
あとは有り余るCPUパワーを使って無駄に統計取ったりしていきたい。*1

*1:ホントどうしようか…