OpenVPNクライアントに静的IPアドレスを割り当てる
OpenVPNには、定義されたIPプールからクライアントに特定のIPアドレスを割り当てる機能があります。これを実現するために、3種類のクライアントIPアドレス選択アルゴリズムを使用します。これらには、使用される順序で含まれます。
--client-connect script
。これには、クライアントが接続したときにサーバー上に静的IPアドレスを含むファイルを生成する指定されたスクリプトの実行が含まれます。この方法は通常、最初の選択肢です 考慮されます。-
--client-config-dir
。これには、クライアント証明書の共通名(CN)に従ってクライアントの静的IPアドレスを含むファイルの使用が含まれます(2番目の選択肢 )。 -
--ifconfig-pool
動的IPの割り当て用(最後の選択 。
詳細については、 man openvpn
を参照してください。 。
このガイドでは、2番目のオプションを使用します。このオプションでは、クライアントの共通名とマップされたIPアドレスを含む特定のファイルを読み取るようにOpenVPNサーバーを構成します。これにより、接続しているクライアントには、クライアント証明書で定義されている共通名に基づいて静的IPアドレスが割り当てられます。
以前のガイドでは、CentOS8システムでのOpenVPNサーバーのインストールと構成について説明しました。
静的IPアドレスを保存するファイルを作成する
client-config-dir
の使用 オプションでは、接続しているクライアントに割り当てられる静的IPアドレスが、OpenVPNサーバーで読み取ることができるファイルに保存されている必要があります。
したがって、OpenVPNサーバー構成ファイル/etc/openvpn/server/server.conf
、静的IP割り当てファイルへのパスをclient-config-dir
パラメータ。
vim /etc/openvpn/server/server.conf
... # EXAMPLE: Suppose you want to give # Thelonious a fixed VPN IP address of 10.9.0.1. # First uncomment out these lines: client-config-dir /etc/openvpn/ccd ...
このデモでは、静的/固定IPアドレス割り当てファイルを保存するパスを /etc/openvpn/ccd
に設定します。 。さて、私はデフォルトの/ etc / openvpn / server / ccdパスを使用しようとしましたが、以下のエラーが発生しました;
Could not access file 'ccd/koromicha': Permission denied (errno=13) Could not access file 'ccd/DEFAULT': Permission denied (errno=13)
そのため、回避策として、上記のように別のパスを使用することを選択しました。
OpenVPNクライアントへの静的IPアドレスの割り当て
静的IPアドレスを割り当てるすべてのOpenVPNクライアントについて、その特定のクライアント証明書から共通名を抽出する必要があります。
このデモでは、2つのOpenVPNクライアント koromichaを作成しています。 およびjohndoe 。クライアント証明書から共通名を抽出するには、 openssl
を使用します 以下に示すようなコマンド。 必ずクライアント証明書を交換してください 。
openssl x509 -subject -noout -in /etc/openvpn/client/koromicha/koromicha.crt
subject=CN = koromicha
openssl x509 -subject -noout -in /etc/openvpn/client/johndoe/johndoe.crt
subject=CN = johndoe
クライアントの共通名を取得したら、ifconfig-push
オプション。たとえば、koromicha
一般名としてIPアドレス、10.8.0.50
およびクライアントがjohndoe
CNとして10.8.0.60
、これが割り当ての実行方法です。
echo "ifconfig-push 10.8.0.50 255.255.255.0" > /etc/openvpn/ccd/koromicha
echo "ifconfig-push 10.8.0.60 255.255.255.0" > /etc/openvpn/ccd/johndoe
静的IPアドレスの割り当て方法は、OpenVPNサーバーを構成したトポロジによって異なることに注意してください。この場合、トポロジをサブネットに設定します;
# Network topology ... topology subnet
OpenVPNアドレッシングの概念の詳細をご覧ください。
OpenVPNサーバーを再起動します;
systemctl restart [email protected]
必ずログを確認してください;
tail -f /var/log/openvpn/openvpn.log
OpenVPNクライアントでの静的IPアドレスの割り当てを確認する
クライアントにそれぞれのクライアントOpenVPN構成ファイルがすでにあると仮定して、接続を開始し、IPアドレスの割り当てを確認します。
sudo openvpn johndoe.ovpn
割り当てられたIPアドレスを確認します;
ip add show tun0
8: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.60/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::ea62:fbae:5b45:2d78/64 scope link stable-privacy valid_lft forever preferred_lft forever
他のクライアントの場合;
ip add show tun0
12: tun0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100 link/none inet 10.8.0.50/24 brd 10.8.0.255 scope global tun0 valid_lft forever preferred_lft forever inet6 fe80::c928:c76d:fbd4:6c6a/64 scope link stable-privacy valid_lft forever preferred_lft forever
2つのクライアント間の接続を確認します;
ping 10.8.0.60 -c 3
PING 10.8.0.60 (10.8.0.60) 56(84) bytes of data. 64 bytes from 10.8.0.60: icmp_seq=1 ttl=64 time=4.67 ms 64 bytes from 10.8.0.60: icmp_seq=2 ttl=64 time=3.86 ms 64 bytes from 10.8.0.60: icmp_seq=3 ttl=64 time=4.05 ms --- 10.8.0.60 ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2003ms rtt min/avg/max/mdev = 3.864/4.196/4.670/0.351 ms
それだ。 OpenVPNクライアントに静的IPアドレスを割り当てる方法に関するガイドは終了しました。
関連チュートリアル
CentOS 8 /Ubuntu18.04のネットワークマネージャーを使用してOpenVPNに接続します
CentOS 8 /Ubuntu18.04にOpenVPNクライアントをインストールして構成する
Ubuntu 18.04 /CentOS8でstrongSwanVPNクライアントを構成する