OpenVPN ServerFreeBSD12のインストールと構成
開始するには、FreeBSD12パッケージリポジトリを更新する必要があります。
pkg update
OpenVPNおよびEasy-RSAパッケージをインストールする
pkg install openvpn easy-rsa
サーバー構成ファイル、CA、サーバーキー、および証明書ファイルを格納するディレクトリを作成します。
mkdir -p /usr/local/etc/openvpn/easy-rsa
mkdir /usr/local/etc/openvpn/server
サンプルのOpenVPNおよびEasy-RSAサンプル構成ファイルを上記で作成したそれぞれの構成ディレクトリにコピーします。
cp /usr/local/share/examples/openvpn/sample-config-files/server.conf /usr/local/etc/openvpn/server/
cp -r /usr/local/share/easy-rsa/* /usr/local/etc/openvpn/easy-rsa/
EasyRSAを使用してローカルCA、キー、および証明書ファイルを生成する
証明書変数は、/usr/local/etc/openvpn/easy-rsa/vars
で設定されます。 ファイル。証明書の生成を容易にするために、このファイルを編集し、コメントを外して、次のように証明書の値を調整します。
vim /usr/local/etc/openvpn/easy-rsa/vars
set_var EASYRSA_REQ_COUNTRY "KE" set_var EASYRSA_REQ_PROVINCE "Nairobi" set_var EASYRSA_REQ_CITY "Nairobi" set_var EASYRSA_REQ_ORG "Kifarunix" set_var EASYRSA_REQ_EMAIL "[email protected]" set_var EASYRSA_REQ_OU "Infrastructure" set_var EASYRSA_KEY_SIZE 2048 set_var EASYRSA_CA_EXPIRE 3650 set_var EASYRSA_CERT_EXPIRE 3650
Easy-RSAには、easyrsa.real
という証明書生成スクリプトが付属しています。 。証明書ファイルを生成するには、/usr/local/etc/openvpn/easy-rsa/
に移動します ディレクトリを作成し、次のように進めます。
PKIを初期化する
cd /usr/local/etc/openvpn/easy-rsa
sh ./easyrsa.real init-pki Note: using Easy-RSA configuration from: ./vars init-pki complete; you may now create a CA or requests. Your newly created PKI dir is: /usr/local/etc/openvpn/easy-rsa/pki
以下のコマンドを実行して、CA証明書を作成します。プロンプトが表示されたら、CNと暗号化パスワードを設定します。
sh ./easyrsa.real build-ca
サーバーとクライアントのキーと証明書ファイルを生成します。
sh ./easyrsa.real build-server-full server nopass
sh ./easyrsa.real build-client-full client nopass
接続しているクライアントとのTLSハンドシェイク中に使用できるDiffie-Hellmanキーファイルを生成します。
sh ./easyrsa.real gen-dh
以前に署名された証明書を無効にする必要がある場合は、失効証明書を生成します。
sh ./easyrsa.real gen-crl
TLS/SSL事前共有認証キーを生成します
openvpn --genkey --secret /usr/local/etc/openvpn/easy-rsa/pki/ta.key
/usr/local/etc/openvpn/easy-rsa/pki/
からすべてのサーバーキーと証明書をコピーします 上で作成した構成ディレクトリに移動します。
cp -r /usr/local/etc/openvpn/easy-rsa/pki/{ca.crt,dh.pem,ta.key,issued,private} /usr/local/etc/openvpn/server/
OpenVPNサーバーの構成
コメントなしで以下のようにサーバー構成ファイルを編集します;
vim /usr/local/etc/openvpn/server/server.conf
port 1194 proto udp dev tun ca /usr/local/etc/openvpn/server/ca.crt cert /usr/local/etc/openvpn/server/issued/server.crt key /usr/local/etc/openvpn/server/private/server.key dh /usr/local/etc/openvpn/server/dh.pem topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 tls-auth ta.key 0 # This file is secret cipher AES-256-CBC comp-lzo user nobody group nobody persist-key persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3 explicit-exit-notify 1 auth sha512 remote-cert-tls client
ログディレクトリを作成します;
mkdir /var/log/openvpn/
ルーティングの構成
以下のコマンドを実行して、IPv4NATルーティングを構成します。これにより、ipfw
が有効になります natd
に必要なファイアウォール
cat << EOF >> /etc/rc.conf firewall_enable="YES" firewall_type="open" gateway_enable="YES" natd_enable="YES" natd_interface="em1" natd_flags="-dynamic -m" EOF
サーバーを再起動して、上記で行った変更を有効にします。
reboot
OpenVPNを起動して起動時に開始するように設定します。
sysrc openvpn_enable=YES sysrc openvpn_configfile="/usr/local/etc/openvpn/server/server.conf"
service openvpn start
OpenVPNがUDPポート1194で実行され、リッスンしていることを確認します。
sockstat -4 -l | grep 1194 nobody openvpn 2824 6 udp46 *:1194 *:*
インターフェイスが作成されたことを確認します。
ifconfig ... tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500 options=80000<LINKSTATE> inet6 fe80::a00:27ff:fe06:ec18%tun0 prefixlen 64 tentative scopeid 0x4 inet 10.8.0.1 --> 10.8.0.2 netmask 0xffffff00 groups: tun nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> Opened by PID 2824
クライアントの構成
CA、TLS / SSL認証キーファイル、クライアントキーおよび証明書ファイルをクライアントにコピーします。
/usr/local/etc/openvpn/server/ca.crt /usr/local/etc/openvpn/server/issued/client.crt /usr/local/etc/openvpn/server/private/client.key /usr/local/etc/openvpn/server/ta.key
クライアント構成ファイルを作成します
cat << EOF > client.ovpn client tls-client pull dev tun proto udp remote 192.168.43.12 1194 resolv-retry infinite nobind dhcp-option DNS 208.67.222.222 user nobody group nogroup persist-key persist-tun key-direction 1 tls-auth ta.key 1 comp-lzo verb 3 ca ca.crt cert client.crt key client.key auth SHA512 remote-cert-tls server EOF
LinuxシステムからVPNサーバーに接続するには、以下のコマンドを実行します;
sudo openvpn client.ovpn
壮大!! OpenVPNサーバーFreeBSD12をインストールして設定するのに必要なのはこれだけです。お読みいただきありがとうございます。