オープンソースファイヤーウォールpfSenseを紹介しています。無料で強力なファイヤーウォールを自分の手で作り上げてみませんか?


はじめに

 省エネ・コンパクトだけど強力なファイヤーウォールを使いたい・作りたい。そんな欲張りな要望を満たしてくれるのがAlix+pfSenseの組み合わせです。RGB出力がついておらず、使えるのはシリアルポートだけというまさに漢(おとこ)仕様のハードウェア!
 シリアルポートだけ、と聞くとなんだかしり込みしてしまうかもしれません。しかし、多少の機材は必要ですがやってみるとそんなに難しくはありません。またルータやスイッチ・ファイヤーウォールなど、シリアルポートしか付いていない機器はたくさんあります。シリアルポートに慣れておくと、必ずいいことがあります(というか、悪いことが起こったときに助かることがあるかも?)
 ここでひるんでは男がすたる!ということで、ぜひシリアルポートを使った初期設定にチャレンジしてみてください。

Alixとは

 Alixはx86ベースの組み込み用ボードです。NICが2ポートあるいは3ポート搭載されているボードで、推奨動作環境の一つとしても本家で紹介されています。
 国内ではヤマモトツールワークスで入手可能です。おすすめはAlix2D13(AMD Geode LX800 500MHz,256MB,3LAN)という機種で、エンクロージャ(ケース)とあわせても2万円弱で入手可能です。
 pfSenseはもちろんのこと、VoyageLinuxといったLinuxも動作します。VoyageLinux+Asteriskで省エネ・コンパクトなIP-PBXなんてのも作れたりして、結構遊べるハードウェアです。あ、僕は決してヤマモトツールワークスの回し者ではないのであしからず。
 比較的安価なファイヤーウォールとしてはYAMAHAのSRT100(税込81,900円)などがあります。しかし、Alix+pfSenseであれば2万円(+プライスレスの苦労)程度でVPN機能を持ったファイヤーウォールが手に入ります。もちろんサポートの有無や日本語マニュアル・日本語GUI・機能の違いなど単純比較はできませんが、ネットワークの勉強をしたい、とにかくコストを抑えなきゃいけない、俺はサポートなんかなくてもやっていける、と言う方々にはおすすめです。

用意するもの

  • Alix(今回は2D13を利用)、Alix用ケース、 ACアダプタ
  • 9ピンシリアルクロスケーブル
  • USB シリアル変換ケーブル
シリアルポートがないPCで作業する場合のみ必要です。 pfsenseのダウンロードサイトからpfSense-1.2.3-RELEASE-XX-nanobsd.img.gzをダウンロードします。XXは手持ちのCFのサイズに合わせてください。ダウンロードが完了したらgzファイルを解凍しておきます。Windowsでgzを解凍するときはWinZIPやWinRARなどが使えます。MD5ハッシュを確認しておくとダウンロードしたファイルが壊れていないか確認できます。

CFへの書込み

  • PCにカードリーダーとCFをセットしておきます。
  • DDforWinを立ち上げ、展開しておいたimgファイルをCFに書き込みます。
以上。簡単です。

CFをAlixに組み込む


梱包を解いたところです。CFは手持ちのものを挿してみました。


ケースに組み込んだところです。ケースの添付品はゴム足と基盤固定用のねじだけです。ケースの内側にはフィルムっぽいものが貼ってあり、絶縁対策は一応されていました。CFの取替えは基盤をケースからはずさなければならないため結構不便です。そのため、pfSenseの起動が確認できるまではケースに組み込まないほうが無難です。電源(ACアダプタ)は秋月通商で買った12V1.5Aのものですが、12V1AセンタープラスのACアダプタで形状が合えば使えると思います。

pfSenseの起動確認とケースへの組み込み

  1. 書き込んだCFをAlixに挿しておきます。ケースに組み込むのは後回しにして、ダンボールの上など、絶縁できる場所の上においておいてください。
  2. シリアルクロスケーブルでAlixとPCを接続しておきます。
  3. TeraTermなどのターミナルを立ち上げておきます。シリアルポートの設定は 38400 8N1です。
  4. Alixの電源を入れ、起動画面がターミナルに表示されることを確認します。
  5. メモリチェック中にSを押すと TinyBIOSの設定画面が出てきます。シリアルの速度を9600に変更しておいてください。pfsenseが起動した後には9600になるので、作業前に9600に変更しておくと作業がしやすくなります。
  6. ターミナルのシリアル設定を9600に変更し、再度Alixを立ち上げます。きちんとCFにイメージが書き込まれていれば、FreeBSDの起動画面の後pfsenseの初期設定画面が表示されます。
  7. 起動確認ができたら一旦電源を切り、ケースに組み込みます。

シリアルポートからの初期設定

起動画面とメニューの確認

シリアルコンソールをつないでCFから起動すると、以下のように起動画面が表示され、初期メニューが出てきます。
PC Engines ALIX.2 v0.99h
640 KB Base Memory
261120 KB Extended Memory

01F0 Master 848A SILICON POWER
Phys C/H/S 7818/16/63 Log C/H/S 977/128/63

1   FreeBSD
2   FreeBSD

Boot:   1
/boot.config: -h
Consoles: serial port
BIOS drive C: is disk0
BIOS 640kB/261120kB available memory

FreeBSD/i386 bootstrap loader, Revision 1.1
(sullrich@FreeBSD_7.2_pfSense_1.2.3_snaps.pfsense.org, Tue Oct  6 01:54:43 UTC 2009)
Loading /boot/defaults/loader.conf
/boot/kernel/kernel text=0x715120 data=0x13a5ac+0x512c0 |
-
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...
Copyright (c) 1992-2009 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 7.2-RELEASE-p4 #0: Tue Oct  6 02:14:41 UTC 2009
    sullrich@FreeBSD_7.2_pfSense_1.2.3_snaps.pfsense.org:/usr/obj.pfSense/usr/pfSensesrc/src/sys/pfSense_wrap.7.i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Geode(TM) Integrated Processor by AMD PCS (498.05-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x5a2  Stepping = 2
  Features=0x88a93d<FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CLFLUSH,MMX>
  AMD Features=0xc0400000<MMX+,3DNow!+,3DNow!>
real memory  = 268435456 (256 MB)
avail memory = 248639488 (237 MB)
pnpbios: Bad PnP BIOS data checksum
wlan: mac acl policy registered
K6-family MTRR support enabled (2 registers)
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413)
ACPI Error (tbxfroot-0308): A valid RSDP was not found [20070320]
ACPI: Table initialisation failed: AE_NOT_FOUND
ACPI: Try disabling either ACPI or apic support.
cryptosoft0: <software crypto> on motherboard
pcib0: <Host to PCI bridge> pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
Geode LX: PC Engines ALIX.2 v0.99h tinyBIOS V1.4a (C)1997-2007
pci0: <encrypt/decrypt, entertainment crypto> at device 1.2 (no driver attached)
vr0: <VIA VT6105M Rhine III 10/100BaseTX> port 0x1000-0x10ff mem 0xe0000000-0xe00000ff irq 10 at device 9.0 on pci0
vr0: Quirks: 0x2
vr0: Revision: 0x96
miibus0: <MII bus> on vr0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr0: Ethernet address: 00:0d:b9:19:1e:48
vr0: [ITHREAD]
vr1: <VIA VT6105M Rhine III 10/100BaseTX> port 0x1400-0x14ff mem 0xe0040000-0xe00400ff irq 11 at device 10.0 on pci0
vr1: Quirks: 0x2
vr1: Revision: 0x96
miibus1: <MII bus> on vr1
ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus1
ukphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr1: Ethernet address: 00:0d:b9:19:1e:49
vr1: [ITHREAD]
vr2: <VIA VT6105M Rhine III 10/100BaseTX> port 0x1800-0x18ff mem 0xe0080000-0xe00800ff irq 15 at device 11.0 on pci0
vr2: Quirks: 0x2
vr2: Revision: 0x96
miibus2: <MII bus> on vr2
ukphy2: <Generic IEEE 802.3u media interface> PHY 1 on miibus2
ukphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
vr2: Ethernet address: 00:0d:b9:19:1e:4a
vr2: [ITHREAD]
isab0: <PCI-ISA bridge> port 0x6000-0x6007,0x6100-0x61ff,0x6200-0x623f,0x9d00-0x9d7f,0x9c00-0x9c3f at device 15.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <AMD CS5536 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xff00-0xff0f at device 15.2 on pci0
ata0: <ATA channel 0> on atapci0
ata0: [ITHREAD]
ata1: <ATA channel 1> on atapci0
ata1: [ITHREAD]
ohci0: <OHCI (generic) USB controller> mem 0xefffe000-0xefffefff irq 12 at device 15.4 on pci0
ohci0: [GIANT-LOCKED]
ohci0: [ITHREAD]
usb0: OHCI version 1.0, legacy support
usb0: <OHCI (generic) USB controller> on ohci0
usb0: USB revision 1.0
uhub0: <AMD OHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
uhub0: 4 ports with 4 removable, self powered
ehci0: <AMD CS5536 (Geode) USB 2.0 controller> mem 0xefffd000-0xefffdfff irq 12 at device 15.5 on pci0
ehci0: [GIANT-LOCKED]
ehci0: [ITHREAD]
usb1: EHCI version 1.0
usb1: companion controller, 4 ports each: usb0
usb1: <AMD CS5536 (Geode) USB 2.0 controller> on ehci0
usb1: USB revision 2.0
uhub1: <AMD EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb1
uhub1: 4 ports with 4 removable, self powered
cpu0 on motherboard
orm0: <ISA Option ROM> at iomem 0xe0000-0xea7ff pnpid ORM0000 on isa0
ppc0: parallel port not found.
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 16550A, console
sio0: [FILTER]
sio1 at port 0x2f8-0x2ff irq 3 on isa0
sio1: type 16550A
sio1: [FILTER]
Timecounter "TSC" frequency 498053298 Hz quality 800
Timecounters tick every 10.000 msec
IPsec: Initialized Security Association Processing.
ad0: 3847MB <SILICON POWER Ver2.20> at ata0-master PIO4
WARNING: Expected rawoffset 0, found 63
WARNING: Expected rawoffset 0, found 922383
Trying to mount root from ufs:/dev/ufs/pfsense0
Setting up embedded specific environment... done.

     ___
 ___/ f \
/ p \___/ Sense
\___/   \
    \___/

Welcome to pfSense 1.2.3-RC3...

Mounting filesystems... done.
Creating symlinks......done.
Launching the init system... done.
Initializing.................. done.
Starting device manager (devd)...done.
Loading configuration......done.
Updating configuration...done.
Cleaning backup cache...done.
glxsb0: <AMD Geode LX Security Block (AES-128-CBC, RNG)> mem 0xefff4000-0xefff7fff irq 9 at device 1.2 on pci0
Setting up extended sysctls...done.
Syncing user passwords...done.
Starting Secure Shell Services...done.
Setting timezone...done.
Starting syslog...done.
Setting up microcode and tx/rx offloading...done.
Configuring LAN interface...done.
Configuring WAN interface...done.
Configuring OPT interfaces...done.
Configuring CARP interfaces...done.
Starting OpenNTP time client...done.
Configuring firewall......done.
Starting webConfigurator...done.
Starting DHCP service...done.
Starting DNS forwarder...done.
Starting FTP helpers...done.
Final filter pass......done.
Generating RRD graphs...done.
Starting DHCP service...done.
Starting CRON... done.
Executing rc.d items...
 Starting /usr/local/etc/rc.d/*.sh...done.
appending output to nohup.out
Bootup complete

FreeBSD/i386 (pfSense.local) (console)


*** Welcome to pfSense 1.2.3-RC3-nanobsd on pfSense ***

  LAN                      ->   vr0     ->      192.168.1.1
  WAN                      ->   vr1     ->      NONE(DHCP)

 pfSense console setup
***************************
 0)  Logout (SSH only)
 1)  Assign Interfaces
 2)  Set LAN IP address
 3)  Reset webConfigurator password
 4)  Reset to factory defaults
 5)  Reboot system
 6)  Halt system
 7)  Ping host
 8)  Shell
 9)  PFtop
10)  Filter Logs
11)  Restart webConfigurator
12)  pfSense Developer Shell
13)  Upgrade from console
14)  Enable Secure Shell (sshd)

Enter an option:

LAN側IPアドレスの設定

 インターフェース名はvr0(USBポートに近いLANポート)〜vr3(シリアルに近いLANポート)の3つです。まずはLAN(vr0)のアドレスを変更するため2の「Set LAN IP address」を選びます。

Enter an option: <strong>2</strong>

Enter the new LAN IP address: 192.168.***.*** ←LAN側のIPアドレスを入力

Subnet masks are entered as bit counts (as in CIDR notation) in pfSense.
e.g. 255.255.255.0 = 24
     255.255.0.0   = 16
     255.0.0.0     = 8

Enter the new LAN subnet bit count:24 ←サブネットマスクのビット数を入力

Do you want to enable the DHCP server on LAN [y|n]? n ←DHCPサーバにする場合はY、不要ならNを入力

The LAN IP address has been set to 192.168.***.***/24.
You can now access the webGUI by opening the following URL
in your web browser:

http://192.168.***.***/

Press ENTER to continue.

WebGUIのユーザ名・パスワードを初期化する

 次にWebUIのユーザ名・パスワードを初期化します。インストール直後の状態であればわざわざ改めて初期化する必要はありませんが、今回はデフォルトのユーザ名・パスワードを確認するために初期化を行ってみました。
Enter an option: 3

The webGUI password will be reset to the default (which is 'pfsense').

Do you want to proceed [y|n]? y ←初期化する

The password for the webGUI has been reset and
the default username has been set to "admin".

Remember to set the password to something else than
the default as soon as you have logged into the webGUI.

Press ENTER to continue.
 このメニューではパスワードをデフォルトに戻すことができますがパスワードの変更はできません。パスワードの変更はWebUIで行います。運用開始後に変更したパスワードがわからなくなった場合、シリアルポートのCLIからパスワードを初期化することができます。

シリアルケーブルは本当に必要?

 実はシリアルコンソールでの設定をまったく行わずに、DHCPクライアントとして設定したパソコンをLANインターフェース側に接続するとWebGUIにアクセスできてしまいます。CFへの書き込みが成功して無事に立ち上がっていれば、LANインターフェースのIPは192.168.1.1として起動し、DHCPサーバも有効になっているのでパソコンもIPアドレスを取得できるのです。
 しかし、無事に立ち上がった場合は問題ないのですが、かならずしもすべての作業がうまくいくとは限りません。CFが腐っていたり、書き込んだイメージが壊れているなど、うまく立ち上がらないこともあります。その場合、シリアルコンソールなしでは手がかりすらつかむ方法がありません。そのため、このページではあえてシリアルコンソールを使う方法を説明しました。
 

Setup Wizardの実行

 ここまでの作業でWeb管理ツールに入ることができました。LAN側にパソコンを接続し(もちろんIPアドレスをきちんと設定しておいてくださいね)、CLIで設定したIPアドレスをブラウザから開くとユーザ名・パスワードの入力画面が出てきます。ユーザ名にadmin・パスワードはさきほど確認したpfsenseを入力してください。セットアップウィザードの画面が表示されます。まずはNEXTをクリック。


ホスト名や時刻設定・タイムゾーンなどを入力しながら進んでいきます(画面キャプ失敗・・・)。すると、WANの設定画面が出てきます。フレッツ回線等でPPPoEを利用する場合はPPPoEを、CATVなどの回線でDHCPを利用する場合にはDHCPを選択します。フレッツ回線の場合はMTUを設定した方がよいでしょう。光プレミアムの場合は1438・それ以外では1454の設定がよいようです。 PPPoEの場合にはISPから指定されたユーザ名・パスワードを設定し「PPPoE Dial On Demand」をチェックしておきます。「PPPoE Service Name」は必要ありません。




次はLAN側IPアドレスの設定です。これはシリアルコンソールから設定したので改めて設定する必要はありません。


Web管理画面のパスワードを設定します。勝手に第三者に設定を覗かれたり変更される恐れがあるので、必ず初期パスワードは変更してください。


これでSetupWizardが完了しました。Reloadを押すと新しい設定を読み込みます。


LANインターフェースのIPアドレスを変更していなければ、メニューが表示されます。SetupWizardでLANのIPアドレスを変更した場合、設定用パソコンのIPアドレスを変更しないとWebGUIに接続できなくなってしまうので注意してください。


Alixへのインストールはこれで完了です。

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

×

この広告は60日間更新がないwikiに表示されております。

メンバーのみ編集できます