【NetWork】pfSense 続・Software編 


またあれからしばらくpfSenseを使ってみたのですが、かなりいい線を行っていると思います。正直元々入っていたRADIUS oneよりも利用価値があると思います。

個々のパッケージを調べればもちろんHowToがありますが、pfSenseに組み込んだ状態としてのパッケージ紹介ページがあるようでなかったので、パッケージの内のいくつかを紹介してみようと思います。
ちなみに順不同です。

AnyTerm




AnyTermはAjaxベースのターミナルで、HTTPからログインすることによりTeraterm等をインスコしなくてもターミナルが使用できるという優れもの。
pfSenseの場合、ログインすると専用のシェルが立ち上がりますがメニューから選択(8番)すればtcshが立ち上がります。ここから更にSSHでローカルネット内のマシンに接続という使い方が中々便利でした。

ただし、そのままではHTTPでの接続なので通信が暗号化されず、簡単にキャプチャされてしまいます。
そこで、次に紹介するStunnelと組み合わせて使ってHTTPS通信上で使うことが推奨されています。


STunnel




リッスンポートに来たアクセスをSSL越しにしてリダイレクトするプラグインで、たとえば8888番ポートに来たアクセスを192.168.1.2:80等にリダイレクトする、といった使い方が出来ます。これを使うとJavaアプレット版VNCなんかも暗号化して使うことが出来ました。
上のAnyTermと組み合わせるほかにも色々使えるプラグインだと思います。



ntop






pfSenseとはまた別に動くネットワークアナライザで、今有効なセッション・一番誰が帯域を使っているのか・どのプロトコルが一番使われているのか(HTTP,Messenger,HTTPS,P2P他)などをグラフでわかりやすくまとめてくれるプラグインです。ネットワークアドミン以外からすると驚異ですよこれは。


IMSpector





MSN/Yahoo/IRCなどのメッセンジャのログをキャプチャしてしまうと言う恐ろしいソフト。そのほか、ファイルの転送の阻止なども出来ます。
Fortigateにこの機能がついていましたがまさかpfSenseにまであるとは驚きです。まあ、平文通信なのでこれがなくてもWireshark等で簡単にのぞけてしまうのですが。

一つ言えることは、会社でメッセなんてするな、という事です。


HAVP




HTTP-Anti-Virus-Proxyの略で、Squidと併用したりトランスペアレントとして動かしたりすることによりAntiVirusの効果が手に入ります。

ただ、SW処理なので、どうしてもこれを有効にしてしまうとサイズの大きいファイルを落とすときに速度がかなり落ちてしまいます。
具体的にはローカルの違うサブネットにある100Mのファイルを落とすのに10MB/secで落とせた(途中のルータが100M)のが1MB/sec位まで落ちてしまい、なおかつCPUのロードアベレージが常に高いという状況でした。サイズの大きいファイルを無視するようにすれば一応は回避できますが。

HAVPそのものはZIPファイルの中まで見てくれるような作りになっているので悪くはないと思うのですが、FortiASICのような専用設計機には敵いません。

外部向けの転送速度だとこうでした

AVなし
■速度.jp スピードテスト 高機能版 回線速度測定結果
http://zx.sokudo.jp/ v3.0.0
測定時刻 2010/03/10 05:21:08
回線種類/線路長/OS:-/-/Windows 7/-
サービス/ISP:-/-
サーバ1[N] 82.1Mbps
サーバ2[S] 70.2Mbps
下り受信速度: 82Mbps(82.1Mbps,10.2MByte/s)
上り送信速度: 68Mbps(68.4Mbps,8.5MByte/s)
※上のステップ1で回線種類やサービス名を選択して測定すると、ここに「速い」か「遅い」かといった診断コメントが表示されます。
80Mbps以上出ており、超高速です。心よりお祝い申し上げます。


AV有効

■速度.jp スピードテスト 高機能版 回線速度測定結果
http://zx.sokudo.jp/ v3.0.0
測定時刻 2010/03/10 05:26:24
回線種類/線路長/OS:-/-/Windows 7/-
サービス/ISP:-/-
サーバ1[N] 31.3Mbps
サーバ2[S] 17.4Mbps
下り受信速度: 31Mbps(31.3Mbps,3.91MByte/s)
上り送信速度: 54Mbps(54.3Mbps,6.7MByte/s)
※上のステップ1で回線種類やサービス名を選択して測定すると、ここに「速い」か「遅い」かといった診断コメントが表示されます。


むぅ…。


Snort




pfSenseをIDSに出来ます。不正なパケットを見つけたら破棄・ログが出来ます。
IDS/UTMの一番厄介なのはサブスクリプションの購読ですが、SnotはGPLに基づいているので誰でも利用できます。
最初はOinkmaster codeというところに何を入れていいのか分からなかったのですが、ユーザー登録してからサインアップしてhttp://www.snort.org/account/oinkcodeにアクセスすることによりアクチベーションコードが作成できました。

ここで罠だったのがFirefoxではコードがGenerate出来ないという点です。仕方ないのでクソッタレIEを使いましょう。
IDSとしては政府も使ってるらしい位の性能はあるみたいです。
まだ入れたばかりでテストしてないので、今度色々パケットを作って試してみようとおもいます。


その他


Iperf -言わずとしてたネットワークの環境テストツール
Packetcapture -名前のまま。IPhostを指定してダンプします。ダンプしたファイルをWEBUIからダウンロードすることも出来ます。
Note -CGIなメモが作れるのですが、タグ分けなどが出来ないので今ひとつ使い道が。。。Tracみたいなものがあればなあと思う次第。



まだ何種類か入れてないパッケージがあるくらいに追加パッケージは充実しています。

また、MultiCoreな環境にも対応しているので、これ用のマシンを作ってもいいと思います。最初はm0n0wallベースと聞いたのでマルチコアでも1つしか使えないのではと思っていたのですが、調べたら対応しているみたいです。

普通のマシンでやってもいいのですが、なんというか普通のATX筐体ではネットワークアプライアンスとして萌えないので、やるなら1U鯖が欲しいとか思ってしまいます。やめてそんな目で見ないで


これ用に強力な1U鯖が欲しいと思ってしまう今日この頃です。Forti,Fireboxありますが。

[ 2 コメント ] ( 7097 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 2.9 / 1295 )  |  
【NetWork】pfSense Software編 
前回、RADIUS専用アプライアンスから何故かFWにさせられてしまったRADIUS oneですが、いじってみると中々pfSenseが面白いです。

まず大まかに述べると、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なブロードバンドルータとして使うのなら問題ないと思います。

[ コメントを書く ] ( 18573 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 2.9 / 1257 )  |  
【HW】Infoblox RADIUSone その2 さらばInfoblox 
前回に引き続き、RADIUS oneの話になるのですが出てきた問題がいくつかありました。

まず、RADIUSサーバの設定がよく分からないです。これに関しては完全に自分の知識不足なのでどうにかしようと思うのですが、しかしその設定用のJavaアプレットがどうしようもないのでやる気が失せます。

設定Javaアプレットのふぁっく残念な点

・設定画面を開きっぱなしでしばらく放置しているとセッションが有効期限切れになってまたログインを強要される
 →ログインし直してもアプレットがふってこない
  →強制再読込も無駄
   →再度設定するにはブラウザを完全に(タブを閉じるとかではなく)終了させないとならない
    →IEが設定専用ブラウザになった

・バックグラウンドからフォアグラウンドへ変わった際に画面が描写されなくなる事がある
 →再度設定するにはログインし直してね
  →ログインし直してもアプレットがry
・ウィンドウサイズを変更すると変更用のボタンが反応しなくなることがある
 →再度設定するにはログインし直してね
  →ログインし直してもry

・DirectX系のアプリを立ち上げると画面が描写されなくなる
 →再度設定するにはry


…こいつはどうしようもないという結論が出ました。Java氏ね


そこで、マザーにGibEを2つ持ちなおかつFEも1つ持っているので、前から気になっていたBSDベースのファイアウォールOS(というよりはファームウェアに近い)m0n0wallでも入れてみようかなと思ったのですが、マシンスペック的にはPentium4であるにしてもそこそこな性能は持っているので、それの上位番(まあ若干コンセプトは違いますが)であるpfsenseを入れてみることにしました。一応いまのRADIUS one OSはイメージとしてバックアップしました。

まずOSのインストールは、マザーにSATAコネクタを4つ持っているのでそこらに転がっていたドライブを繋いで起動しました。

どうでもいい動画;RS232から見るBIOS


Get the Flash Player to see this player.
必死に文字を書いてる感じが伝わってきて面白い。ちなみに動画では分からないですがキーを押してから1-2秒経たないとレスポンスが帰ってきませんw
ボーレートを上げても大して変わらないです。



が、BIOSから先はどうもシリアルには吐き出されないようなので、その辺に転がっていたPCIのRadeon 9200を接続してみることにしました。どうでもいいですがPCIのグラボは一本は持っておくべきだと思いますw

そのままでは入らないのでねじを外してマザーを引き抜いてみると…



PS/2インターフェースがw

http://www.infoblox.co.jp/products/1000.cfm
標準の1Uサーバハードウェアをベースにした競合製品とは異なり、Infoblox-1000アプライアンスには、余計なハードウェアインタフェース(外部ディスクドライブ、キーボードポート、マウスポートなど)がありません。このため、最も安全で信頼できるプラットホームを持ち、基本的なノンストップネットワークID サービスを提供できる、市販品では唯一の真のネットワークIDアプライアンスとなっています。


…あれ?
確かに間違ってはいませんが正しくはこうですね
標準の1Uサーバハードウェアをベースにした競合製品とは異なり、Infoblox-1000アプライアンスには、余計なハードウェアインタフェース(外部ディスクドライブ、キーボードポート、マウスポートなど)がありません。※ただし内部を除く
このため、最も安全で信頼できるプラットホームを持ち、

※ただし分解される場合を除く
基本的なノンストップネットワークID サービスを提供できる、市販品では唯一の真のネットワークIDアプライアンスとなっています。


まあ普通分解される前提ではないのでいいですが。
しかしここまで書いておきながら前面USBにキーボードを刺すとBIOSいじれてしまうのはどうかと思いますが。

細かい揚げ足取りはさておき、グラボを刺すと当然のごとくPOSTが出力され起動できました。まず内側・外側向きのNIFの設定、IPの設定、デフォルトパスワードなどを設定したらHDDへ書き込みます。今回はデフォルトの150GBのHDDに書き込みましたがCFあたりに書き込むのが故障率的な意味でベストだと思います。

一度立ち上がってしまえば後は普通のWEB UIから色々設定していくのでグラボは必要なくなります。

そして完成。特に問題なくWEB UIにログインできました。
筐体が元々ネットワークアプライアンスなのでFWとしてラックに入れても分かる人じゃないとわからないかとw

今回はとりあえずインスコまでですが、次回時間があったらソフトウェアの面を実験して記録したいと思います。

[ 4 コメント ] ( 19069 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 2.9 / 1274 )  |  
蟹が仕事した 
前回の蟹チームでは対応したスイッチがなかったので動作については確認できませんでしたが、その後CentreCom 9424Tが来てから「このスイッチLACPには対応してないみたいだし、とりあえずTrunkでロードバランシングしておこう」とロードバランサを選んでいました。

しかし何故か多数セッション張ってもIF2の受信がNEETしていて「RX 0byte」と表示されていて、動きとしては「送信はIF1とIF2の(相対的に)2G,受信はIF1の1G」という動きをしていたみたいでした。

しかし、【動作保証外】ではあるものの、実は9424TはLACPに対応しているという事実が発覚しました。スイッチの設定してるときにTab連打したらLacpという項目があってたまたま見つけたのですが。
【動作保証外】になるのでコマンドリファレンスにも細かい設定は乗っていないのですが

# create lacp aggregator=name port=num

とすることによりLACPのアグリゲータを作ることが出来るようです。

そしてギ蟹のユーティリティーで設定。



すると、無事にRX・TXも負荷分散されるようになり、Samba越しに5-70MB/secの転送速度が出るようになりました。それ以前だと実は2-40MB/secしか出ていなかったので、最大2倍の速度向上がありました。

まあ、あくまでも【動作保証外】なんですがね。

[ 1 コメント ] ( 769 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 2.9 / 1294 )  |  
【ネットワーク】GR2k その2 MCについて 
某所で大量にCompact flashが手に入ったので、GR2kで使えるかどうか試してみました。まぁGR2kで使うのが主な目的で手に入れたのですが。



手に入ったのはADTECというところの128MBのCFです。とりあえずGRの予備スロットに挿してShow mcをしてみました。

Slot0 : primary Slot , mc-enabled
HN-F9531-MC64 [BMC64] , GR2000 format , 001c0001
39,921kB used (user Area: 39,287kB , dump Area: 634kB)
17,039kB free (user Area: 11,571kB , dump Area: 5,468kB)
56,960kB total(user Area: 50,858kB , dump Area: 6,102kB)
Slot1 : secondary Slot , mc-enabled
unknown , no GR2000 format , 00070000
0kB used (user Area: 0kB , dump Area: 0kB)
0kB free (user Area: 0kB , dump Area: 0kB)
0kB total(user Area: 0kB , dump Area: 0kB)


一応認識はされているようなので、
cd /mc1
format mc
とやってみました。

しばらくアクセスランプがちかちかしたあと、再びプロンプトになったのでShow mcを実行してみました。

Slot0 : primary Slot , mc-enabled
HN-F9531-MC64 [BMC64] , GR2000 format , 001c0001
39,921kB used (user Area: 39,287kB , dump Area: 634kB)
17,039kB free (user Area: 11,571kB , dump Area: 5,468kB)
56,960kB total(user Area: 50,858kB , dump Area: 6,102kB)
Slot1 : secondary Slot , mc-enabled
unknown , GR2000 format , 00070000
1kB used (user Area: 1kB , dump Area: 0kB)
114,400kB free (user Area: 108,298kB , dump Area: 6,102kB)
114,401kB total(user Area: 108,299kB , dump Area: 6,102kB)



おお、無事にフォーマットできたようです。カードそのものは問題ないようなのでcopy mcでOSのバックアップをとろうとしたところ、

GR2B+> copy mc
Copy OK?(Primary MC -> Secondary MC) (y/n): y
mc: illegal parameter or Compact Flash size is unmatched.

と、「サイズが合わないんですけど」と言われてしまいました。

しかし、日立の運用コマンドリファレンスによると、ファイルサイズが違う場合はcopy mcのあとに file-unitと引数をつけてくれ、とのことでした。

GR2B+> copy mc file-unit
Copy OK?(Primary MC -> Secondary MC) (y/n): y
executing...........


とりあえずCopyはできたようです。さて、問題は立ち上がるのか、ということ。

結論は…………動きました。特に問題ないようです。
今度はMC充ですね。

[ コメントを書く ] ( 984 回表示 )   |  このエントリーのURL  |  $star_image$star_image$star_image$star_image$star_image ( 3 / 1207 )  |  

<<最初へ <戻る | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 進む> 最後へ>>