OpenVPN サーバーの設定と起動

ここで取り扱うOpenVPNの構成はL2とL3の両方を自動起動するという物です。
構成は下の図の通りで、遠方の家族の端末や、出先からのアクセスを10.12.59.0/24のセグメントに収容し、タブレットや友人の端末を10.8.0.0/24のセグメントに収容します。

openvpn-network

ネットワーク設定

SELinuxを有効にした状態でこれを実現するために、ネットワークのブリッジをsystemdに委ねます。

これに伴い、/etc/sysconfig/nwtwork-scripts内のファイルの追加編集をします。

まず、tapデバイスに関する起動と停止のスクリプトの追加です。
openvpnコマンドを使用することから、サフィックスをovpnとします。

 ブリッジネットワークを構成して予めtap0を作成するように、ifcfg-eth0、ifcfg-br0、ifcfg-tap0の起動スクリプトを用意します。

 上記の設定でのifconfigの結果は以下の通り、これで起動時にブリッジネットワークが確立されます。

 OpenVPN設定

/etc/openvpn内にserver.confserver-bridge.confを作成します。SELinuxの権限の問題もあり、up/down時に実行するスクリプトは設定しません。openvpnのセキュリティコンテキストにiptables等の権限を与えるよりもsysytemdに委ねたほうが良いと考えます。

記述されている証明書や鍵ファイルは前回作成した通り、client-config-dirで設定されているディレクトリが存在しないとエラーになるので予め作成しておくこと。

あとはsystemdからの自動起動を有効にします。各confのファイル名.serviceでサービスを設置できるので、さらにOpenVPNのネットワークを追加することも出来ます。

iptables設定

Fedora 19へのアップグレードでsystem-config-firewallがFirewallDによって無効化されました。
時期RedHat Linuxのベース候補であるFedora 18の時にFirewallDが導入されたものの、Fedora 18へのアップグレードでは強制はされませんでしたが、今回置き換えが行われたという事は移行を促していると思う事にします。関連の読み物としては、こことかここを参照。

設定はfirewall-configというGUIが用意されていて、簡単な設定であればコマンドラインを使う必要は無し。openvpnのサービスが最初から定義されてあったのでbridge用のポートを付け足すだけで設定終了。

iptablesの設定はOpenvpn – FedoraProject:Setting up an OpenVPN serverに書かれている通りの方法がありますが、運用中のサーバーではsystem-config-firewallを使用しているため、フィルター用のファイルを作成して設定します。

 system-config-firewall

カーネルチューニング

/etc/sysctl.confnet.ipv4.ip_forward = 1を追加、パケットフォワードを有効にする。sysctl -pのコマンドで有効化。

起動と保守

systemctl [start/stop] openvpn@[server/server-bridge].serviceで各サービスの起動と停止。
managementのオプションが有効なのでtelnetで状態の確認とクライアントのチェックが出来ます。

 

 

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください