pfsenseでPPPoEサーバをつくる

pfsenseはFreeBSDベースのルータアプライアンスです。LinuxベースのVyattaが最近は有名ですね。

Vyattaに無い機能としてPPPoE AC(PPPoEサーバ)があります。pfsense以外だと、SEIL シリーズとかDD-WRTとかアライドテレシスのVPNルータあたりが同じようにPPPoE ACを持っています。

おもむろにNICが2つあるマシンにインストールします。初期設定でVLAN設定ができるので、タグを理解できるスイッチをもっている人はそれでもOK。僕は仮想環境でやっているのでISOからVMを起動して、画面に従ってインストール、再起動。適当にNICの対応を設定します。

初期状態ではLAN側からしか管理画面に到達できないので注意。物理マシンなら設定用端末をつなぐなり、仮想環境ならうまいことやってください。デフォルトのログイン情報はadmin/pfsense。DHCPが動いているので、指定されたGWにhttpsで接続すればログイン画面が表示されます。

今回は擬似的にインターネット接続を提供するPPPoEサーバを構築するのでこのpfsenseはNATしません。また、LAN側は検証環境なのでWAN側から設定画面に到達できるようにします。

FirewallのWANインタフェースのタブを開いて新しいルールを追加。WANインタフェースに対してpass any to anyで全通しにします。それからNATの設定画面のOutboundタブでManual Outbound NATに変更してSAVE、自動生成されたルールは消せないので各ルールの設定画面からDo not NATを設定しておきます。これでNATしないただのルータになりました。

次にLAN側のDHCPを無効にします。今回はLAN側のEthernet直接接続は考慮しません。

次、PPPoEの設定。ServicesからPPPoE Serverを選択して設定を追加。EnableにしてLANインタフェースを選択、subnetは適当に(今回は24)、User数も適当に(例えば5とか)、サーバアドレスに192.168.250.254、リモートサブネットに192.168.250.0を指定します。サーバアドレスはリモートサブネットから外しておくのが一般的みたいですが、じゃあどのアドレスにしようかっていうのがよくわからないので、今回は同じサブネットにします。接続ユーザがサブネットに満たないので実害はありません。最後にユーザを作成します。適当なIDとパスワード、固定アドレスを振りたければIPアドレスを指定します。んで、Save。

これでクライアントはPPPoEで接続できるようになります。PPPoEで接続するとGWがpfsenseを向くのであとはpfsenseのルーティングを適切に設定してください。上でNAT設定を外しましたが、Automatic outbound NATに設定しておけば、NATで外に出ていけます。今回の検証はPPPoEサーバは擬似インターネット接続のためなので、ここでNATせずフラットに他のプライベートネットワークと通信できるようにしました。

それからPPPoE接続に対して独立のfirewallルールが作成されるのでfirewallのPPPoE Serverタブを適切に設定してください。基本的にはpass any to anyにしておいて、たとえば25/tcpをブロックしてみるとか。

pfsenseはロードバランサ(配下のサーバの負荷分散)ができるので、Vyattaで作ったWAN冗長化と組み合わせると貧者のBIGIPがつくれそうですね。管理性が悪いか。。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください