ユーザ用ツール

サイト用ツール


01_linux:01_net:61_centos_openvpnトンネル接続

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
01_linux:01_net:61_centos_openvpnトンネル接続 [2014/03/07 08:46] matsui01_linux:01_net:61_centos_openvpnトンネル接続 [2014/03/26 05:10] (現在) – [①設定ファイル修正] matsui
行 1: 行 1:
 +====== 61 CentOS OpenVPNトンネル接続 ======
  
 +事前に [[01_linux:01_net:60_centos_openvpn|]] の事前準備が完了している前提です。
 +
 +
 +===== ①設定ファイル修正 =====
 +<code console>
 +# vi /etc/openvpn/server.conf
 +
 +port 1194
 +
 +dev tun ← VPNインタフェースとしてTUNを指定(デフォルト)
 +
 +server 10.8.0.0 255.255.255.0 ← VPNクライアント割当てアドレス範囲として10.8.0.0/24を指定(デフォルト)
 +
 +push "route 192.168.1.0 255.255.255.0" ← 追加(LAN(例:192.168.1.0/24)へのルートをVPNサーバー経由にする)
 +push "dhcp-option DNS 8.8.8.8"
 +push "dhcp-option DNS 8.8.4.4"
 +
 +tls-auth ta.key 0 # This file is secret ← 行頭の;を削除してコメント解除(TLS認証有効化)
 +
 +user nobody ← 行頭の;を削除してコメント解除(OpenVPN実行権限を下げる)
 +group nobody ← 行頭の;を削除してコメント解除(OpenVPN実行権限を下げる)
 +
 +client-to-client
 +
 +log-append  /var/log/openvpn.log ← 行頭の;を削除してコメント解除(ログを/var/log/openvpn.logに記録する)
 +
 +crl-verify /etc/openvpn/crl.pem
 +management localhost 7505 ← 最終行へ追加(管理インタフェースの有効化※後述)
 +</code>
 +
 +
 +===== ②OpenVPN用スクリプト用意 =====
 +
 +
 +==== 1.起動時用 ====
 +
 +<code console>
 +# vi /etc/openvpn/openvpn-startup 
 +#!/bin/bash
 +
 +# VPNインタフェースiptablesルール削除スクリプト実行※必須
 +/etc/openvpn/openvpn-shutdown
 +
 +# VPNサーバーからの送信を許可※必須
 +#iptables -I OUTPUT -o tun+ -j ACCEPT
 +#iptables -I FORWARD -o tun+ -j ACCEPT
 +
 +# VPNクライアントからVPNサーバーへのアクセスを許可する場合
 +#iptables -I INPUT -i tun+ -j ACCEPT
 +
 +# VPNクライアントからLANへのアクセスを許可する場合
 +# (例としてVPNクライアントから192.168.1.0/24へのアクセスを許可する場合)
 +# ※192.168.1.0/24側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること
 +iptables -I FORWARD -i tun+ -d 172.18.0.0/24 -j ACCEPT
 +
 +# VPNクライアントからLAN内特定マシンのみへのアクセスを許可する場合
 +# (例としてVPNクライアントから192.168.1.3へのアクセスを許可する場合)
 +# ※192.168.1.3側のファイアウォール等でVPNクライアント(10.8.0.0/24)からのアクセスを許可すること
 +#iptables -I FORWARD -i tun+ -d 192.168.1.3 -j ACCEPT
 +
 +# VMなどでFORWADが許可されてない場合、ソースNATを利用すると問題無し
 +iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.1.0/24 -o eth1 -j SNAT --to-source 192.168.1.3
 +</code>
 +
 +
 +==== 2.停止時用 ====
 +<code console>
 +# cat /etc/openvpn/openvpn-shutdown 
 +#!/bin/bash
 +
 +# VPNインタフェース(tun+)用iptablesルール削除関数
 +delete() {
 +    rule_number=`iptables -L $target --line-numbers -n -v|grep tun.|awk '{print $1}'|sort -r`
 +    for num in $rule_number
 +    do
 +        iptables -D $target $num
 +    done
 +}
 +
 +# VPNインタフェース(tun+)用iptables受信ルール削除
 +target='INPUT'
 +delete
 +
 +# VPNインタフェース(tun+)用iptables転送ルール削除
 +target='FORWARD'
 +delete
 +
 +# VPNインタフェース(tun+)用iptables送信ルール削除
 +target='O
 +</code>