前回Windows 10をOpenVPNサーバーにしましたが、実はこのマシンはゲーミングPCなので消費電力が…そこでECS LIVA Zを導入。
CentOSを入れてOpenVPNサーバーにしてみます。
ルーターの設定などは前回の記事を参照。
この記事に書いてあること
- Minimalでインストールしてある CentOS 7.6.1810 をOpenVPNサーバーにする
- インストールから設定完了まで
- サーバーモードはTun(ルーティング方式)とTap(ブリッジ方式)の両方を同時使用可能にするが、ここではTapについて書いてあります
- 認証は証明書認証
準備
ファイアウォール設定
( 12341/udp と 12342/udp の場合)
firewall-cmd –permanent –add-port=12341/udp
firewall-cmd –permanent –add-port=12342/udp
firewall-cmd –permanent –add-masquerade
firewall-cmd –reload
で、
firewall-cmd –list-all
で確認する。
IPフォワード設定
vi /etc/sysctl.d/10-ipv4_forward.conf
で、
net.ipv4.ip_forward = 1
と追加してから、
sysctl –system
SELinux設定
semanage port -a -t openvpn_port_t -p udp 12341
semanage port -a -t openvpn_port_t -p udp 12342
インストール
epelリポジトリ追加
yum install epel-release
明示的に指定したときのみepelリポジトリを使用するように設定なら
vi /etc/yum.repos.d/epel.repo
[epel] の enabled を 0 に変更する。
OpenVPN, easy-rsa, bridge-utilsのインストール
yum –enablerepo=epel install openvpn easy-rsa bridge-utils
認証局設定、DHパラメータ作成、証明書と鍵作成
念のためコピー
mkdir /etc/openvpn/easy-rsa
cp /usr/share/easy-rsa/3.0.3/* /etc/openvpn/easy-rsa/ -R
作業ディレクトリへ移動
cd /etc/openvpn/easy-rsa
初期化
./easyrsa init-pki
認証局
./easyrsa build-ca
DHパラメータ
./easyrsa gen-dh
サーバー証明書と鍵
./easyrsa build-server-full server nopass
クライアント証明書と鍵
./easyrsa build-client-full clientname nopass
TLS-Auth用共通鍵作成
cd /etc/openvpn
openvpn –genkey –secret ta.key
OpenVPN、サーバー設定
サンプルファイルをコピーして、中身を書く。
cp /usr/share/doc/openvpn*/sample/sample-config-files/server.conf /etc/openvpn/server_bridge.conf
書き方は前回の記事を参照。
違うところは…
- dev tap0 とする(重要)
- dev-node はコメントアウト
- user nobody のコメントアウトを外す
- group nobody のコメントアウトを外す
ブリッジの設定
ブリッジ br0 を追加
nmcli connection add type bridge con-name br0 ifname br0 stp no
IPアドレス固定
nmcli connection modify br0 ipv4.method manual ipv4.addresses “192.168.9.9/24” ipv4.gateway “192.168.9.1” ipv4.dns 192.168.9.1
enp1s0(環境により異なるぽい) を br0 に追加。
nmcli connection add type bridge-slave ifname enp1s0 master br0
enp1s0を削除してリブート。
nmcli connection delete enp1s0; reboot
OpenVPN 起動と自動起動設定
起動する。
設定ファイルが server_bridge.conf の場合。
systemctl start openvpn@server_bridge
ブリッジに tap0 を組み込むサービスを作る。
vi /etc/systemd/system/openvpn-bridge.service
中身は↓こんな感じ(OpenVPNの設定ファイルが server_bridge.conf で dev tap0 になってて、ブリッジが br0)
[Unit]
Description=OpenVPN bridge service
Requires=openvpn@server_bridge.service
After=openvpn@server_bridge.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c ‘/sbin/brctl addbr br0 || /bin/true’
ExecStartPost=/bin/sh -c ‘/sbin/brctl addif br0 tap0 || /bin/true’
ExecStartPost=/sbin/ip link set tap0 up
ExecReload=/bin/true
ExecStop=/sbin/brctl delif br0 tap0
[Install]
WantedBy=multi-user.target
で、
systemctl start openvpn-bridge
自動起動させるには
systemctl enable openvpn@server_bridge
systemctl enable openvpn-bridge
OpenVPN tunも設定する
上記までの作業が終わっていれば、あとは設定ファイルを別に作って動かすだけです。