このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
01_linux:01_net:61_centos_openvpnトンネル接続 [2014/03/07 08:32] – [1.起動時用] matsui | 01_linux:01_net:61_centos_openvpnトンネル接続 [2014/03/26 05:10] (現在) – [①設定ファイル修正] matsui | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== 61 CentOS OpenVPNトンネル接続 ====== | ||
+ | 事前に [[01_linux: | ||
+ | |||
+ | |||
+ | ===== ①設定ファイル修正 ===== | ||
+ | <code console> | ||
+ | # vi / | ||
+ | |||
+ | port 1194 | ||
+ | |||
+ | dev tun ← VPNインタフェースとしてTUNを指定(デフォルト) | ||
+ | |||
+ | server 10.8.0.0 255.255.255.0 ← VPNクライアント割当てアドレス範囲として10.8.0.0/ | ||
+ | |||
+ | push "route 192.168.1.0 255.255.255.0" | ||
+ | push " | ||
+ | push " | ||
+ | |||
+ | tls-auth ta.key 0 # This file is secret ← 行頭の; | ||
+ | |||
+ | user nobody ← 行頭の; | ||
+ | group nobody ← 行頭の; | ||
+ | |||
+ | client-to-client | ||
+ | |||
+ | log-append | ||
+ | |||
+ | crl-verify / | ||
+ | management localhost 7505 ← 最終行へ追加(管理インタフェースの有効化※後述) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== ②OpenVPN用スクリプト用意 ===== | ||
+ | |||
+ | |||
+ | ==== 1.起動時用 ==== | ||
+ | |||
+ | <code console> | ||
+ | # vi / | ||
+ | #!/bin/bash | ||
+ | |||
+ | # VPNインタフェースiptablesルール削除スクリプト実行※必須 | ||
+ | / | ||
+ | |||
+ | # 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/ | ||
+ | # ※192.168.1.0/ | ||
+ | iptables -I FORWARD -i tun+ -d 172.18.0.0/ | ||
+ | |||
+ | # VPNクライアントからLAN内特定マシンのみへのアクセスを許可する場合 | ||
+ | # (例としてVPNクライアントから192.168.1.3へのアクセスを許可する場合) | ||
+ | # ※192.168.1.3側のファイアウォール等でVPNクライアント(10.8.0.0/ | ||
+ | #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/ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== 2.停止時用 ==== | ||
+ | <code console> | ||
+ | # cat / | ||
+ | #!/bin/bash | ||
+ | |||
+ | # VPNインタフェース(tun+)用iptablesルール削除関数 | ||
+ | delete() { | ||
+ | rule_number=`iptables -L $target --line-numbers -n -v|grep tun.|awk ' | ||
+ | for num in $rule_number | ||
+ | do | ||
+ | iptables -D $target $num | ||
+ | done | ||
+ | } | ||
+ | |||
+ | # VPNインタフェース(tun+)用iptables受信ルール削除 | ||
+ | target=' | ||
+ | delete | ||
+ | |||
+ | # VPNインタフェース(tun+)用iptables転送ルール削除 | ||
+ | target=' | ||
+ | delete | ||
+ | |||
+ | # VPNインタフェース(tun+)用iptables送信ルール削除 | ||
+ | target=' | ||
+ | </ |