手当たり次第に書くんだ

飽きっぽいのは本能

CentOS 6 OpenVPN サーバー構築 – 証明書とルーティングを含めた古い手順

CentOS 6 で OpenVPN サーバーを構築する時の基本を確認します。この記事は、現在の新規構築で CentOS 6 を使うためのものではなく、古い OpenVPN サーバー構成を読み解くための資料です。証明書、トンネル、ルーティング、iptables を分けて確認します。

OpenVPN サーバーで確認する範囲

  • OpenVPN パッケージとサービス
  • CA / サーバー証明書 / DH パラメータ
  • server.conf のトンネル設定
  • クライアントへ配布する経路
  • iptables と IP forwarding
  • ログと接続状態

OpenVPN は起動しただけでは十分ではありません。クライアントが接続できるか、VPN 内のアドレスが配布されるか、目的ネットワークへ経路が通るかを分けて確認します。

パッケージとサービス確認

yum install openvpn
chkconfig openvpn on
service openvpn start
service openvpn status
openvpn --version

CentOS 6 の OpenVPN は、EPEL など追加リポジトリから導入されていることがあります。パッケージの出どころも確認しておくと、移行時に再現しやすくなります。

証明書ファイルの配置

ls -l /etc/openvpn
ls -l /etc/openvpn/keys
openssl x509 -in /etc/openvpn/keys/server.crt -noout -subject -issuer -dates

サーバー証明書、秘密鍵、CA 証明書、DH パラメータ、CRL の場所を確認します。秘密鍵と CA 秘密鍵の扱いは分けるべきです。

server.conf の基本例

port 1194
proto udp
dev tun

ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh2048.pem
crl-verify keys/crl.pem

server 10.8.0.0 255.255.255.0
push "route 192.168.1.0 255.255.255.0"
keepalive 10 120
persist-key
persist-tun
status /var/log/openvpn-status.log
log-append /var/log/openvpn.log
verb 3

push route はクライアントへ配布する経路です。VPN サーバー自身がその宛先へ到達できること、戻り経路があること、iptables で許可されていることを合わせて確認します。

ルーティングと転送設定

sysctl net.ipv4.ip_forward
echo 1 > /proc/sys/net/ipv4/ip_forward
grep ip_forward /etc/sysctl.conf
iptables -L -n
iptables -t nat -L -n

VPN でよくある問題は、接続はできるが内部ネットワークへ到達できない状態です。これは OpenVPN の認証問題ではなく、経路、転送、NAT、戻り経路の問題であることが多いです。

接続確認

tail -f /var/log/openvpn.log
cat /var/log/openvpn-status.log
ip addr show tun0
ip route show

接続確認では、クライアント証明書の CN、割り当て IP、ルート、ログを合わせて見ます。

まとめ

CentOS 6 の OpenVPN サーバーは、証明書、トンネル、経路、iptables、ログを分けて確認する必要があります。古い環境の移行では、設定ファイルだけでなく、クライアント証明書、失効リスト、配布経路、戻り経路をまとめて棚卸しします。

関連する記事

参考書籍

参考書籍
参考書籍
ストーリーで覚える Linux CLI 入門

CentOS 6 のような古い Linux サーバー記事を読み直す時にも、コマンドライン操作の考え方を確認しやすい参考書籍です。

Amazon で見る
このリンクは Amazon アソシエイトリンクです。
CentOS 6 OpenVPN サーバー構築 – 証明書とルーティングを含めた古い手順

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る