Linux

CentoOS7でOpenVPN2.4とEASY-RSA3を動作させたときのまとめ

f:id:ishimotohiroaki:20180615170239p:plain

OpenVPNは便利なので使うシーンが多いですよね
でもCentOSのバージョンアップによるコマンドの変更や、easy-rsaのバージョンアップによる違いなどとまどうことも多いはず

わたしもかなり苦労しました

わたしと同じ目にあって時間をロスしないお役にたてればと思いこの記事を作成しました

SELinuxは無効にしましょう

エラーが発生してしまうと解決方法は難しいのでSELinuxは無効がオススメです

詳細はこちらの記事がオススメ:SELinuxの無効化

ネットワークの設定

CentOS7はiptablesではなくfirewalldとなっています。わたしは以下の設定でうまくいきました

※2019/6/13にセットアップしたところこちらの方法でないとうまくいきませんでした

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
firewall-cmd --permanent --add-service openvpn
firewall-cmd --premanent --query-masquerade

 

以前の設定もまだ残しておきます

echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
firewall-cmd --permanent --add-service openvpn
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
firewall-cmd --permanent --zone=public --add-interface=tun+

まずは–permanentをつけずに設定しましょう。これならfirewall-cmd –reloadを実行することによりなかったことにできます

最後の行のzoneは環境に合わせて設定してください

tcpでopenvpnを起動する場合

vi /usr/lib/firewalld/services/openvpn.xml
<port protocol="tcp" port="1194"/>

logとlog-appendの違い

logはOpenVPN起動時にログファイルの内容が消去される

ずっと保管したいならlog-appendを使いましょう

log-appendは追記型となります

同時使用はやめましょう。同時使用してもCentOS7に導入しているOpenVPN2.4.6ではコンフィグエラーにはならずに起動します

logローテーション設定

デフォルトではログローテションされません。log設定なら大きくならないので大丈夫ですが、log-append設定をした場合はlogローテーションを設定するようにしましょう

vi /etc/logrotate.d/openvpn (OpenVPNログローテーション設定ファイル新規作成)
/var/log/openvpn.log {
missingok
notifempty
sharedscripts
postrotate
systemctl restart openvpn 2>&1 > /dev/null || true
endscript
}

わたしは毎月1年分を保管するようにしています

vi /etc/logrotate.d/openvpn (OpenVPNログローテーション設定ファイル新規作成)
/var/log/openvpn.log {
missingok
    monthly
    rotate 12
notifempty
sharedscripts
postrotate
systemctl restart openvpn 2>&1 > /dev/null || true
endscript
}

証明書廃止リストの有効期限延長

証明書廃止リストの有効期限がデフォルトでは180日となっていてとても短いです
運用も煩雑になるので他の証明書と同じ3650日に変更します

cd /usr/share/easy-rsa/3
cp /usr/share/doc/easy-rsa-3.0.3/vars.example vars

vi vars
#set_var EASYRSA_CRL_DAYS 180 (コメントアウト)
set_var EASYRSA_CRLDAYS 3650

この後でcrl.pemファイルを作成する
./easyrsa gen-crl

こちらのコマンドで確認できる
openssl crl -in /usr/share/easy-rsa/3/pki/crl.pem -text | grep ‘Next Update’