まず大まかに述べると、pfSenseは基本的にはLayer2-4のパケットフィルターであり、そこに様々なソフトウェアが付随しています。PPPoEも喋れるのでルーターとしての使用も出来、NAT/NAPTもサポートします。
当然外向きのNetworkInterFaceと内向きのNIFが必要になるので、最低2つのLANポートが必要になります。そこに後管理ポートが1つあると更にいいと思います。
初期から入っているソフトとしてはOpenVPN、PPTPサーバ、IPSecによるVPNやDHCP、DNS、そしてPPPoEサーバそのものも持っているのでルータ等の設定のテストにも使えます。ブラウザからWake on LANのパケットも流せるようになっているので、PCの起動用GWなんかとしても使えますし、中身はOpenBSDなのでCronを使って色々なジョブをさせたり…など使い道は無限大です。
その中でも面白いのがCaptive portalで、認証されていないPCを繋ぐとWEBブラウザのページが強制的にログインページへリダイレクトされ、そこでログインをしないとPingすら通らないという機能で、よく無線LANのHotSpotでやってるあれです。
マクドナルドの無線LANを使うときなんかもこの方式なので、分かる人はあんな感じだと思ってください。(適当な言い方
ログインユーザーの管理は、pfSenseローカルで持つこともLDAPやRADIUS認証を組み合わせることも可能なので、やろうと思えば結構本格的なシステムが作れると思います。pfSenseそのものに無線LANを持たせればかなり上等なAPができあがりますね。
そして、pfSenseには専用追加パッケージも配布されていて、後から機能を追加することも可能です。
現在利用可能な追加パッケージ一覧
AutoConfigBackup
Avahi
Backup
Cron
DNS Blacklist
Dashboard
Dashboard Widget: HAVP
Dashboard Widget: Snort
DenyHosts
Fit123
FreeSWITCH
FreeSWITCH Dev
HAVP antivirus
IGMPproxy
LCDproc
NRPE v2
Notes
Open-VM-Tools
OpenBGPD
OpenOSPFD
OpenVPN Status
OpenVPN-Enhancements
PHPService
Proxy Server with mod_security
Pubkey
Shellcmd
States Summary
TFTP
Zabbix Agent
anyterm
arping
bandwidthd
blinkled
darkstat
diag_new_states
dns-server
freeradius
haproxy
haproxy-dev
imspector
iperf
jail_template
nmap
ntop
nut
onatproto
pfJailctl
pfflowd
phpSysInfo
rate
siproxd
snort
snort-dev
squid3
squid
squidGuard
stunnel
vHosts
vnstat
vnstat2
widentd
これらのパッケージをWEBブラウザから選択してさくっと追加できます。
同じBSD系FWならGB-1200を持っているのですが、こいつはURLフィルタリングが出来るんだよなーとか思っていたらpfSenseでもSquid/SquidGuardを追加することにより実現できてしまいました。GB-1200涙目
URLフィルタリングの種類には、最初から何種類かのカテゴリ分けがありそれを有効・無効にしたり、自分でURLを追加したり、BlackListを公開しているURLを追加したりすることが出来ますが、まあこの辺はFWアプライアンスの本職のそれにはかなわないかなと思います。
Squidはトランスペアレントプロクシとして動かせるので、こっそり裏でURLフィルタリング・ロギングをかけるといった使い方も出来ます。
試したところ、フィルタリングに引っかかったら別のURLなどにリダイレクトさせたり、ipでアクセスするのを防いだり(例 google.comに66.249.89.103と入力してアクセスする)など、公共機関でも使えるんじゃないかと思うくらいによくできていました。SSL-VPNを張ってその先でプロクシを使う、という事をしてしまうとさすがに防げませんでしたが。
そのほか、HAVPと組み合わせることによりアンチウィルスプロクシの効果も手に入るようです。
安定性の方は、1週間ほど使ってみましたが、特に今のところは問題は出ていません。
パフォーマンスも、RADIUS oneの構成(Pentium 4 2.6CGHz HT,DDR 400 512*2MB)でNAPT有効時でも外から中へ700Mbps後半程度の速度で通信できたので、中々良好だと思います。
ただ、フルスロットルで通信してしまうとCPUのロードアベレージが70%ほどに達してしまうので、それなりの所に設置する必要があると思います。まあSW処理なのでそりゃそうなのですが。
MTUが64Byteのショートパケットのテストもしてみましたが、複数台のマシンの合計で100kppsくらいは裁けるようです。対向3台、内側4台でテストしたので1台あたりは25kpps位でしょうか
色々いじった結論としては、そこそこなハードウェアの上であれば高度なACL等を組んでもOKで、少し古めなハードウェアの上であっても100Mなブロードバンドルータとして使うのなら問題ないと思います。
ツイート
コメントを書く
必要事項とコメントを入力して下さい。