openvpnを使ってVPSと自宅のpfsenseにつないでみる(その1)の続きです。
その2ではopenvpnのクライアントになるpfsense側の設定をしていきます。
前提条件
前提条件としてサーバー側の設定が以下のものと仮定して説明します。
サーバーIP:10.0.0.9
openvpn(サーバー側)のポート:1194/udp
サーバー側から取ってくるべきである物
- ta.key
- ca.crt
- client1.crt
- client1.key
1.pfsenseにopenvpnの証明書を登録する
1.1.System/Certificate Managerに移動

1.2.CAを追加する
Addをクリックする

Descriptive name に わかりやすい名前をつけます。例えば、[サーバー名_CA]のような感じです。
Certificate data に ca.crtの内容をすべて入れます。
Serial for next certificate はよくわからなかったので「1」と入れました。
1.3.クライアント証明書を登録する
Certificate ManagerにあるCertificateに移動します。

Descriptive name に適当な名前をつけます。
Certificate data にclient1.crtの内容を入れます。
Private key data にclient1.keyの内容を入れます。
2.pfsenseでopenvpnの設定を開く

VPN->OpenVPNを開きます。
2.1.openvpnでclientを追加する

AddでClientを追加します。
2.2.設定をしていく

Server host or address:10.0.0.9 < -サーバーIP
Description: < - openvpnのClient名の設定(わかりやすい名前で良い)

今回は証明書認証のみとなるので、ここには何も入力しないように注意して下さい。

automatically generate a TLS Key.のチェックボックスを外します。
チェックボックスを外すとTLS Keyを入力する欄が出てくるのでta.keyの内容をいれます。
Peer Certificate Authority には1.2で登録したCA証明書を選択します。
Client Certificate には1.3で登録したクライアント証明書を選択します。
Encryption Algorithm にサーバー側で設定したAES-256-CBCを選択します。
NCP Algorithms にも同じようにサーバー側で設定したAES-256-CBCを選択します。

IPv4 Remote network(s) には空欄でも問題ないです。(もし、IPアドレスが取得できない場合は、サーバー側で設定した割当をされているIPアドレスを入力して下さい。)
Compression にはLZO Compressionを選択する
Type-of-Service にはチェックを入れて下さい。
まとめ
ここでのコツはLZOの設定をしっかりしておくことです。筆者もクライアント側で圧縮系の設定を忘れたせいで、クライアント側にpingが飛ばないなどの問題が起きたので注意してください。(もちろん、サーバー側でLZOの設定をしていない場合はそのままで問題ないです。)