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’