ホームルータをOpenBSDに置き換えたときのメモ

おうちのホームルータを小型・省電力・GbE(x3)のamd64マシンにOpenBSDインストールして置き換えたときのメモ.

civ6-science-victory

置き換えの理由

楽しそうだから.前々からホームルータをLinux/BSD系のマシンに置き換えたいとは思っていた.後付けでもう少しまともな理由を考え出すと次の3点だろう.

  • 市販のホームルータなどはファームウェアアップデートなどが遅れるというセキュリティ上のリスクがある
    • Linux/BSD系であれば利用者が多い分,セキュリティパッチの速度は上のような気がする
  • アクセスログなどのネットワーク利用に関する詳細な情報が得られる
  • SSHやVPN,DynamicDNSの機能が使用できる.

ハードウェアについて

apu2c4 (PC Engines ) というボードを利用した.スペックは次.

  • CPU: AMD Embedded G series GX-412TC, 1 GHz quad Jaguar core with 64 bit
  • DRAM: 4 GB DDR3-1333 DRAM
  • Storage: Boot from SD card (internal sdhci controller), external USB or m-SATA SSD
  • Connectivity: 3 Gigabit Ethernet channels (i210AT)
  • Board size: 15.24cm x 15.24 cm

ホームルータとしては十分なスペック.特に CPU は AES-NI をサポートしていて IPsec なんかが高速に処理できるようだ(未確認).

購入方法

Shop (PC Engines) から USD prices を選択して購入品選択ページへ遷移する.必要なものを選択し終えてたら cart のタブで住所を入力する.必要な情報を入力して送信する.

PC Engine から支払い金額と方法に関するメールが送られてくるので代金を支払う.私は paypal で支払いました.

入金が確認されると発送される.私の場合,最安の配送方法を選択し,Post NL というオランダの郵便会社を経由して日本郵便の配達で届けられた.入金確認から10日くらいだったと思う.受取時に関税手数料で1000円支払った.

購入品

以下がホームルータとして必要なもの.価格は2016年12月中旬のもの.

Item Link Price
APU.2C4 system board apu2c4 $114.0
Enclosure case1d2blku $10.0
AC adapter 12V 2A ac12vus2 $4.40
SSD M-Sata 16GB msata16e $15.50
Cable DB9F-DB9F db9cab1 $1.30
USB to DB9F serial usbcom1a $8.0

これに$20弱の送料が加わり合計で約 $170. 非常に良心的な価格である.この価格帯でamd64の4コア,メモリ4GBは他にないのでは?

私の場合はこれに無線LANカード等を追加したが,無線の利用はお勧めしない(理由は後述).実際に現在は無線LANカードは使用しておらず,元々のホームルータを無線アクセスポイントとして利用している.

(これとは別にOSインストールイメージを書き込むUSBメモリが必要だが大部分の人は既にもっているはず.)

無線について

次の理由から無線アクセスポイントとして利用することは断念した.

  • OpenBSDが無線LANの802.11nのアクセスポイントモードをサポートしていない.
  • 無線LANカードは 2.4GHz/5GHz 両方対応しているが,同時に使用できるのはどちらか片方のみ.
  • スマートフォンなどの無線LAN接続が安定しなかった(定期的に接続が断する).

ソフトウェアについて

ネットワーク系でセキュリティが気になるといえばOpenBSDでしょう.ということでOpenBSDを選択.またドキュメントが充実している点も良い.

pfSense も候補にあがったが,内部で何が動いているのかが分かりにくいこととドキュメントが貧弱(OpenBSDと比べて)なので却下となった.

インストール

次のページがとても参考になる.

上記のページ通りのインストールで問題ない.イメージをUSBに書き込む際にはWin32 Disk Imagerを利用した.

OSインストール前にするであろう,ヒートシンクの設置が地味に面倒である.

ネットワーク設定

マニュアルコマンド man が優秀なので,とりあず man を使うと良い.あと次のリンクも参考になる.

PPPoE の設定 /etc/hostname.pppoe0 は次のようにした.

inet 0.0.0.0 255.255.255.255 NONE mtu 1454 \
        pppoedev em0 authproto chap \
        authname username authkey secret up
dest 0.0.0.1
!/sbin/route add default -ifp pppoe0 0.0.0.1

その他

パッチを自分であてる(コンパイルする)のは面倒なので https://stable.mtier.org/ で提供されている openup というコマンドラインを使用する.このコマンドはバイナリパッチを自動的に適用してくれる.非常に簡単.

su
cd /root/
ftp https://stable.mtier.org/openup
chmod u+x openup
mkdir /root/bin
mv openup /root/bin/
/root/bin/openup

crontab に以下を追加して,毎日実行する.

0 0 * * * /root/bin/openup -c

1,2週間連続動作させているが,今のところ問題ない.

次回はIPv6設定についてのメモ.