お金をかけずにサーバーの勉強をしよう

pfSenseインストール

2025年3月19日

メニューへ戻る

ソフトウェアルーター・ファイアウォールの pfSenseを仮想マシンとして立ち上げます。

サーバーエンジニアの業務範囲からは若干外れてきますが、ルーターやファイアウォールの仕組みを理解しておくのは大事なことです。

ここでは Intel CPUの PCをルーター・ファイアウォールにすることができるソフトを扱ってみます。

pfSense

Ciscoに代表されるハードウェアのルーター・ファイアウォールのユーザーインターフェイスが最近はどうなっているのが知りませんけれども、pfSenseはコマンドよりも WEBブラウザでの設定を主にしているようです。

ネットワークエンジニアであれば Ciscoのネットワーク機器用の OSを使って、コマンドライン(黒い画面)での設定を経験したいところですが、サーバーエンジニアとしてそこまではしないがルーターが何をしているかは味わっておきたい、そんなニーズであれば丁度良い教材になるんではないかと思います。

でも pfSenseは本気の業務にも使えるブツという触れ込みなので、突き詰めればネットワークエンジニアの領域には入っていきますがね。


pfSenseは FreeBSDをカスタマイズした OSとして提供されています。

ですので、VMware Workstation Proでは FreeBSD用の仮想マシンを作って OSインストールするという手順で構築していきます。


1.ダウンロード

何はともあれ、まずはインストールイメージをダウンロードしましょう。
Community Editionというのが無償で使えますからこれを入手します。

以前のバージョンではいきなりダウンロードできたのですが、2025年3月19日現在は pfSenseのサイトでユーザー登録をしないとダウンロードできなくなっていました。

ユーザー登録は以下から。
メールアドレスが必要です。
CREATE ACCOUNT

ダウンロードはこちらから。
Download

DOWNLOADを押します。
pfSense ダウンロード 1

ここでダウンロードするのは以前と変わって pfSense本体ではなく「Netgate Installer」というものになっています。

Netgate Installerでマシンを起動して、メニューに従ってインストール対象に pfSense(のバージョンなど)を選択すると pfSense本体をインターネットからダウンロードする形になったようです。

VMware Workstation Proの仮想マシンにインストールしたいので、ISOイメージファイルが欲しいです。
[Installation Image] に [AMD64 ISO IPMI/Virtual Machines] を選択し、ADD TO CARTを押します。
pfSense ダウンロード 2
(PCに直接インストールする人は [Memstick USB] が良いでしょう)

画面右上のCARTを押します。
pfSense ダウンロード 3

CHECK OUTを押します。
pfSense ダウンロード 4

さっき作ったアカウントで SIGN IN します。
pfSense ダウンロード 5

[By proceeding〜] にチェックを入れComplete orderを押します。
pfSense ダウンロード 6

次の画面で住所や電話番号の入力を促されますので、それに従います。
(個人情報なので画面なし)

完了するとアカウントとして登録したメアドにメールが届きます。
(個人情報なので画面なし)

そこに書いてあるダウンロードサイトの URLに行くとやっと Netgate Installerが手に入るのでした。

[netgate-installer-amd64.iso.gz] という名前のファイルだったのですが、これは gzip圧縮されているファイルです。

Linuxであれば gunzipコマンドで解凍、Windowsなら 7-zipで解凍できるはずです。

解凍後は 2025年3月19日時点では [netgate-installer-v1.0-RC-amd64-20240919-1435.iso] という ISOイメージファイルになりました。


2.環境設計

これから VMware Workstation Proで pfSense用の仮想マシンを作って行きますが、コイツはルーターですので少なくともネットワークインターフェイスが 2つ以上必要です。

これはネットワークが 2つ以上あるということですから、検証するにも何かしらのネットワーク設計をしなければなりません。

そしてpfsense(ルーター)を通して通信する端末もないと意味がない。

あまり良い例ではないですが家庭内LANに繋げる形にしました。

私の環境ではネットワークは論理的にはこういう絵になります。
(実際にはネットワークも仮想化されていて、物理的に光ルーター以外は全て真ん中の Windows10で動いています。Lubuntu2404は私が普段遣いしている仮想OSです。)
ネットワーク構成

これで [192.168.2.0/24] のネットワークにある [Windows Server 2025] からインターネットに接続したいなと。

pfSenseの中にある [em0]・[em1] がネットワークインターフェイスの名前です。

[em0] は VMware Workstation Proの [ブリッジ] で使われる [VMnet0] に、[em1] は VMware Workstation Proの仮想ネットワーク [VMnet2] に繋ぐようにします。


3.pfSense用仮想マシン作成

仮想マシンを作ります。
VMware Workstation Proを起動します。

[新規仮想マシンの作成] をクリックします。
pfSense 仮想マシン作成 1

[標準] を選択し、次へを押します。
pfSense 仮想マシン作成 2

[後で OS をインストール] を選択し、次へを押します。
pfSense 仮想マシン作成 3

[ゲスト OS] に [その他] を、pfSenseは FreeBSDベースなので [バージョン] に [FreeBSD 14 64 ビット] を選択し、次へを押します。
pfSense 仮想マシン作成 4

[仮想マシン名] は VMware Workstation Proのメニュー上で表示される名前ですので、任意の名前を付けます。
[場所] はこの仮想マシンを構成するファイルを格納するフォルダを指定します。
他のものと被らないよう独立したフォルダにしてください。
次へを押します。
pfSense 仮想マシン作成 5

[ディスクの最大サイズ はデフォルトの 20GBにしておきました。
こんなに使わないと思いますけど、実際には使った分しか割り当てられないので無駄はありません。
[仮想ディスクを単一ファイルとして格納] を選択し、次へを押します。
pfSense 仮想マシン作成 6

ハードウェアをカスタマイズを押します。
pfSense 仮想マシン作成 8

メモリ設定です。
そんなに使わないようですので 512MBにしておきました。
pfSense 仮想マシン作成 9

プロセッサ(CPUの数)は 1個にしました。
pfSense 仮想マシン作成 9

仮想DVDドライブに入れるメディアの設定です。
[ISO イメージ ファイルを使用する] を選択し、ダウンロードして解凍した後の
[netgate-installer-v1.0-RC-amd64-20240919-1435.iso]ファイルを指定します。
pfSense 仮想マシン作成 10

ネットワークインターフェイスの 1つ目(これが [em0] になります)の設定です。
[ブリッジ] を選択します。
pfSense 仮想マシン作成 11

[USBコントローラー]・[サウンドカード]は必要ないので削除しました。

ディスプレイの設定です。
[3Dグラフィクスのアクセラレーション] はいりませんので特にいじっていません。
追加を押します。
pfSense 仮想マシン作成 12

[ネットワークアダプタ] を選択し、完了を押します。
pfSense 仮想マシン作成 13

[ネットワークアダプタ 2] が追加されています。
これが [em1] になります。
[カスタム] を選択し、[VMnet2] を選択して、閉じるを押します。
pfSense 仮想マシン作成 14

※[カスタム]ってどういうものかというと、私のイメージでは仮想のハブです。
VMware Workstation Proの中にハブが 20個あって(うち 3つはデフォルトで使われている)好きに使える、という絵を頭の中で想像します。
ネットワークアダプタとこれを紐付けるのは 仮想マシンとハブを LANケーブルで繋ぐ感じですね。
そのイメージでやってきてこれまで特にに問題がないので、概ね合っているのだと思います。

完了を押します。
pfSense 仮想マシン作成 15

仮想マシンの作成はこれで完了です。
pfSense 仮想マシン作成 16


4.pfSenseインストール

[仮想マシンの再生] をクリックします。
仮想DVDドライブに入れた ISOイメージファイルから起動してきます。
pfSense インストール 1

※以降に出てくる画面はいわゆる「コンソール」のイメージで、昔の画面は皆これでやってたのです。文字しか出てこずマウスは使えません。
pfSenseに限らずどれも基本的に以下の操作体型になります。
Tab : 選択肢移動
   : 選択肢選択
Enter : 選択肢決定

著作権に関するドキュメントを丹念に読んで、同意できるなら、[Accept] でEnterキーを押します。
pfSense インストール 2

[Install] を選択し、[OK] でEnterキーを押します。
pfSense インストール 3

Enterキーを押します。
pfSense インストール 4

ここで pfSenseの用語について。

ネットワークインターフェイスの役割として以下があります。

WAN(必須)インターネットなど危ないネットワークをつなぐ
デフォルトゲートウェイを設定できる
LAN(必須)守らねばならない内部ネットワークをつなぐ
OPT(3つ目のネットワークインターフェイスから使われる)
上記以外のネットワーク
他のLANや他のルーターとか

※本来はここからの手順で設定した IPアドレスが有効になるのだと思いますが、私の環境の問題か Netgate Installerの問題か不明ながら、インストールされた pfSenseでは IPアドレスの設定がデフォルトの状態になってしまいます。
とりあえずインストールのためと割り切って、本当の設定はインストール後に行うことにしました。

WANインターフェイスの選択をします。
仮想マシンに割り当てた [ネットワークアダプタ] ([em0]インターフェイス) を使うよう設計していました。
[em0] を選択し、[OK] でEnterキーを押します。
pfSense インストール 5

[em0] は DHCP設定(デフォルト)のまま一旦逃げます。
[Continue] を選択し、[OK] でEnterキーを押します。
pfSense インストール 6

LANインターフェイスの選択をします。,
仮想マシンに割り当てた [ネットワークアダプタ 2] ([em1] インターフェイス) を使うよう設計していました。
[em1] を選択し、[OK] でEnterキーを押します。
pfSense インストール 7

[em1] もデフォルトのまま逃げます。
[Continue] を選択し、[OK] でEnterキーを押します。
pfSense インストール 8

[Continue] を選択し、Enterキーを押します。
pfSense インストール 9

ここでインストール先ディスクのパーティションとファイルシステムを選択できるのですが、当お勉強では特に変える必要もありません。
[Continue] を選択し、[OK] でEnterキーを押します。
pfSense インストール 10

一応 ZFSを選んだことになっているのでディスクの冗長性を選べる画面なんですが、仮想マシンに割り当てたディスクは 1つしかないので [Stripe] 以外に選択肢はありません。
[OK] でEnterキーを押します。
pfSense インストール 11

インストール先ディスクの選択です。
当仮想マシンでは [da0] 以外の選択肢なく、[OK] でEnterキーを押します。
([X]が選択したってことを意味します。ディスクが複数あるなら [ ] って行も出てきます。)
pfSense インストール 12

対象のディスク内容を消してよいかの確認です。
[Yes]を選択し、Enterキーを押します。
pfSense インストール 13

インストールするバージョンの選択です。
ストアで買い物した時に選んだバージョン以外に古いのが選べるようになっていました。
お目当ての [2.7.2] を選択し、Enterキーを押します。
pfSense インストール 14

インストールが始まりますので、待ちます。
この過程で何やらダウンロードしているようでした。
pfSense インストール 15

完了しました。
[OK] でEnterキーを押します。
pfSense インストール 16

[Reboot] を選択し、Enterキーを押します。
pfSense インストール 17

リブート後はこんな画面になりました。
pfSense インストール 18

ここからこの画面を使って [em1]・[em0] の順で IPアドレスの設定をしていきます。

Enter an option: 2 ← [Set Interface(s) IP address]を選択

Available interfaces:

1 - WAN (em0 - dhcp, dhcp6)
2 - LAN (em1 - static)

Enter the number of the interface you wish to configure: 2 ← [em1]を選択

Configure IPv4 address LAN interface via DHCP? (y/n) n ← 固定IPなのでDHCPは使わない

Enter the new LAN IPv4 address.  Press <ENTER> for none:
> 192.168.2.1/24

For a WAN, enter the new LAN IPv4 upstream gateway address.
For a LAN, press <ENTER> for none:
> [Enter]キー

Configure IPv6 address LAN interface via DHCP6? (y/n) n ← IPv6は使う気がないので

Enter the new LAN IPv6 address.  Press <ENTER> for none:
> [Enter]キー

Do you want to enable the DHCP server on LAN? (y/n) n ← LAN側にはDHCPサーバー機能を提供しない
Disabling IPv4 DHCPD...
Disabling IPv6 DHCPD...

Do you want to revert to HTTP as the webConfigurator protocol? (y/n) y ← WEB設定画面ではhttpsだけでなくhttpも受け付ける(セキュリティ上はよろしくない)

Please wait while the changes are saved to LAN...
 Reloading filter...
 Reloading routing configuration...
 DHCPD...
 Restarting webConfigurator...

The IPv4 LAN address has been set to 192.168.2.1/24
You can now access the webConfigurator by opening the following URL in your web
browser:
             http://192.168.2.1/

Press <ENTER> to continue.[Enter]キー

LAN側の [em1] の設定ができました。
pfSense インストール 19

続けて、WAN側の [em0] の設定をします。

Enter an option: 2 ← [Set Interface(s) IP address]を選択

Available interfaces:

1 - WAN (em0 - dhcp, dhcp6)
2 - LAN (em1 - static)

Enter the number of the interface you wish to configure: 1 ← [em0]を選択

Configure IPv4 address WAN interface via DHCP? (y/n) n ← 固定IPなのでDHCPは使わない

Enter the new WAN IPv4 address.  Press <ENTER> for none:
> 192.168.1.109/24

For a WAN, enter the new LAN IPv4 upstream gateway address.
For a LAN, press <ENTER> for none:
> 192.168.1.1 ← 光ルータのIPアドレス

Should this gateway be set as the default gateway? (y/n) y ← このゲートウェイをpfSenseのデフォルトゲートウェイにする

Configure IPv6 address WAN interface via DHCP6? (y/n) n ← IPv6は使う気がないので

Enter the new LAN IPv6 address.  Press <ENTER> for none:
> [Enter]キー

Do you want to enable the DHCP server on WAN? (y/n) n ← WAN側にはDHCPサーバー機能を提供しない

Please wait while the changes are saved to WAN...
 Reloading filter...
 Reloading routing configuration...

The IPv4 WAN address has been set to 192.168.1.109/24

Press <ENTER> to continue.[Enter]キー

[em0] の設定ができました。 pfSense インストール 20

これでやっと設計通りの設定にできました。

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


5.LAN側端末用意

これから緑色のマシンを用意します。 構成図 2

Windows Server 2025である必要は無くて、Webブラウザが使える OSなら何でも良かったんですが、「Windows Server 2025 インストール」で作ったのがありましたので利用することにしました。

でもって上の図の赤い矢印なんですが、pfSenseの WebGUIへのアクセスはデフォルトでは LAN側からしか許されていないことを意味します。

基本的な設定は pfSenseの仮想マシンのコンソールに出てきたテキストベースの UIでもできるんですけど、折角ですから WebGUIも使ってこそと思いますし。

ルーターのテストをするにも、この位置に端末がないとどうにもなりませんしね。

Windows Server 2025は出来ているとして、大事なのは [192.168.2.0/24]ってネットワークに繋がっていることです。

VMWare Workstation Proの 仮想OSとして、pfSenseの仮想マシン作成過程でネットワークアダプタを追加した際に [ネットワーク接続]設定で [カスタム] を選びましたが、あれの応用になります。

VMware Workstation Proのコンソールで、Windows Server 2025のマシンを選択して右クリックすると出てくるメニューから [設定] を選択します。
Windows 2025 1

[ネットワークアダプタ] を選択し、[ネットワーク接続] は [カスタム] にして [VMnet2] を選択します。
Windows 2025 2

Windows Server 2025を起動したら IPアドレスとゲートウェイなどは設計の通りに変更します。
Windows 2025 3

これで端末としての設定はOKでしょう。


6.webConfiguratorでの初期化

Windows Server 2025の Edgeで pfSenseの LAN側アドレスである [http://192.168.2.1] にアクセスしてみましょう。

こちらが webConfiguratorのログイン画面になります。
[admin/pfsense] と入力して、SIGN INを押します。
webConfigurator初期設定 1

お知らせが何回か出るので Nextを押して進めていきます。
(Learn moreで深くお勉強するのも良いでしょう。)
webConfigurator初期設定 2

[Hostname]・[Domain]・[Primary DNS Server][Secondary DNS Server]を設定します。
[Hostname] は設定した覚えはありませんが、自動で入っていました。
[Domain] は適当です。
[Primary DNS Server] はインストール後の設定で入れたはずなのに無くなっていたので入れました。
Nextを押します。
webConfigurator初期設定 3

日本に合わせて [Time server hostname]・[Timezone]を設定し、Nextを押します。
webConfigurator初期設定 4

WAN側のネットワークインターフェイスの設定画面です。
インストール後の設定で設定し終わっていたはずなんですが、[Upstream Gateway] は消えていたのでコレだけ入れました。
Nextを押します。
webConfigurator初期設定 5

LAN側のネットワークインターフェイスの設定画面です。
Nextを押します。
こちらはえらく設定項目が少ないです。
webConfigurator初期設定 6

[admin]ユーザーのパスワードを変更しなければいけません。
2箇所に新パスワードを入力し、Nextを押します。
webConfigurator初期設定 7

初期設定はこれで終了で、それを有効化するんでしょう。
Reloadを押します。
webConfigurator初期設定 8

Finishを押します。
[User Survey]に協力するもの良いですね。
webConfigurator初期設定 9

改めて著作権とライセンス関係のドキュメントです。
個々のユーザーの初回ログイン時に表示されるのかも。
同意できるなら、Acceptを押します。
webConfigurator初期設定 10

Closeを押します。
ここからも [User Survey] に行けます。
コミュニティメンバーのおかげで、こうして利用ができると思うと有り難いですね。
webConfigurator初期設定 11

この後日本語設定にしようとしたんですが、メニューに言語設定はあるものの、残念ながら日本語はありませんでした。
中国語と韓国語はあったので、日本人は翻訳に参加してないんだな…ってちょっとしんみり。

これにて初期設定は完了です。


7.pfSense(ルーター)を経由してのインターネットアクセス

初期設定だけでおもむろに [192.168.2.0/24]ネットワークからインターネットに行けるはずなので、Windows Server 2025の Edgeで弊ホームページにアクセスしてみました。
お金をかけずにサーバーの勉強をしよう
pfSenseを通って、インターネットにアクセスできました。\(^o^)/

ここで「あれっ?」と思うんですね。

Windows Server 2025からインターネットへのパケット()は別に良いけど、帰りのパケットが光ルーターに届いた時()、光ルーターはどうやって [192.168.2.0/24] にパケットを戻しているのか?
どうして戻りパケットが戻ろうか
光ルーターには pfSense [192.168.1.109] への静的ルート設定なんてしてないんだから、戻りパケットが届くはず無いのに…。

これは pfSenseってデフォルトで NATか NAPTが動いているのではないかと。
NATの様子

というわけで、pfSenseの設定を見てみます。
画面右上の - [Firewall] - [NAT] と選択します。
NATを外す 01

「あぁ、これだな」ですね。
デフォルトで LAN → WAN の経路で NATが有効になっていました。
コイツを無効にします。
[Disable Outbount NAT rule generation. (NO Outbound NAT rules)] を選択し、Saveを押します。
NATを外す 02

Apply Changesを押します。
NATを外す 03

この状態で改めて弊ホームページにアクセスするとコレになりました。
NATを外す 04

光ルーターに [192.168.2.0/24]ネットワークへの静的ルートを設定してやります。
NATを外す 05

しますとちゃんとアクセスできるようになりました。
お金をかけずにサーバーの勉強をしよう

想定通りの動きになりましたね。


==========
とりあえずインストールもできて、正常動作しているように見えますが、この実験だけだとイマイチ面白くないですね。
ルーティングもさることながら、ファイアウォールの機能を設定してみたいです。

ルーターがどういう事をしている機械かってことを自身で腹落ちさせるには実際にこうしてやってみるのが良いと思います。


私はネットワークエンジニアではないので、突っ込んだところまでの知識がありませんが、仮にもこうして環境を作れたのは pfSenseが良くできているからなんでしょう。

Ciscoのルーターを買う程大きなネットワークではないけど、ルーターが欲しいという現場には有償版の pfSense+がありますので、検討してみても良いのでは?って思いましたね。

この後「pfSenseで DMZ 1」のシリーズに続きます。
果たしてまともなルーター/ファイアウォール設定できる日はくるのか?


これはハードウェアルーター製品のように見えますけど、pfSense+が入ったミニPCなんでしょう。
PCに pfSenseを入れて置いておくより場所を取らないし、小さなオフィスなんかでは使い勝手が良さそうです。
(OPTの IFもありますね)