実践Linux
CentOS5/6.5        CentOS5/6.5 目次へ  TOP(HOME)へ

OpenVPNサーバー(CentOS6.5の場合)   2015年10月更新

外部から、通常のLAN接続のようにサーバーにアクセスできれば便利だ。
これを可能にするのがVPN技術である。





ルーティング方式とブリッジ方式
ルーティング方式(TUN)はopenVPNサーバーとクライアントが既存のネットワークとは異なるネットワークを構成する。上の図でいえば、VPNクライアントが10.8.0.*(仮想)とかになる。一方、ブリッジ方式(TAP)はクライアントがopenVPNサーバーのネットワークに追加される形でネットワークを構成する。
以下、http://www.openvpn.jp/document/how-to/による
一般的には「ルーティング」が適している場合が多く、設定も容易です。 また、クライアントごとのアクセス制御もこちらのほうが高機能です。しかし「ブリッジ」でないと利用できない機能もあります。下記のような機能が必要な場合は「ブリッジ」を使用する必要があります。
・非IPプロトコル(IPXなど)をVPN上で使用する必要がある場合
・ブロードキャストパケットをVPN上で使用する必要がある場合(ネットワークゲームなど)
・SambaやWINSを使用せずに、VPN経由でWindowsファイル共有のブラウズをしたい場合

必要なもの
・OpenSSL
・LZO圧縮(リアルタイムでデータを圧縮・展開)
・pam
以上は、インストール済み。
確認
# yum list installed | grep openssl
# yum list installed | grep lzo
# yum list installed | grep pam
(自分でパッケージをビルドする場合にはさらに次の依存関係があります。openssl-devel、lzo-devel、pam-devel)

・TUN/TAPデバイス   これもインストール済み。
TUN/TAPデバイスがカーネルモジュールとしてインストールされていれば(/dev/net/tun)、わざわざカーネルを作り直す必要はない。
# modprobe tun として、エラーが出なければカーネルモジュールが入っているので、それを使えばよい。
# modprobe tun 自身の実行は、openvpnの起動スクリプトで自動的になされるようになっているので、通常はあえて実行する必要はない。
tap/tunの違いは、tun=レイヤ3トンネル、tap=レイヤ2トンネル。大雑把に言うと、tunならTCP/IPレベルなのでTCP/IPカプセルだが、tapなら仮想ethernetトンネルなのでNetwareやNetBEUIなども流すことができる。ちなみに相互互換しないので、クライアントとサーバ間でtap/tunのどちらかに統一すること。

OpenVPN(openvpn-2.3.8-1 2015.9現在)のインストール
OpenVPNは、通常のyumではインストールできないので、外部レポジトリの追加(EPEL)が必要となる。
ただし、AWStats入手のときすでにEPELはインストールしたので、ここではEPELの導入は省略。(AWStats参照)
EPELからOpenVPNをインストール
# yum --enablerepo=epel list | grep openvpn  調査
# yum --enablerepo=epel -y install openvpn  インストール
さらにeasy-rsaをインストールしておく(証明書作成用)
# yum --enablerepo=epel list | grep easy-rsa  調査
# yum --enablerepo=epel -y install easy-rsa  インストール

/etc/rc.d/init.d/openvpn  内容を確認すると、modprobe tunや/etc/openvpnなどが書き込まれている。
/etc/openvpnディレクトリに、/usr/share/doc/openvpn-2.3.8/sample/sample-config-filesディレクトリにあるserver.confを適当な名称(ここではそのままserver.conf)でコピーする。

自分でCA(認証局)を作り、OpenVPNサーバーとクライアント用の証明書とカギを作る。
@ マスタCA証明書と秘密鍵の生成
/usr/share/easy-rsa/2.0ディレクトリを/etc/openvpn/にeasy-rsa名でコピー(ここに生成用のスクリプトがある)。
/etc/openvpn/easy-rsa/配下の各スクリプトが実行可であることを確認しておく。(そうでなければ、実行可にしておく。# chmod +x /etc/openvpn/easy-rsa/*)
/etc/openvpn/easy-rsa/varsの編集
 export KEY_COUNTRY=JP   国名
 export KEY_PROVINCE=Saitama   都道府県名
 export KEY_CITY=Saitamashi   市区町村名
 export KEY_ORG="my-dom.xxx"   組織名
 export KEY_EMAIL="root@my-dom.xxx"   サーバー管理者メールアドレス
 export KEY_OU=""   所属部署

/etc/openvpn/easy-rsa で
# . ./vars(または# source vars)   証明書/鍵作成用環境変数設定ファイル内容をシステムに反映
★注意 いったん端末を閉じてからまた作業を再開するときは、「# . ./vars」を実行して証明書/鍵作成用環境変数設定ファイルを読み込み直す必要がある。

# ./clean-all   証明書/鍵作成先ディレクトリ初期化(インストール後最初の1回のみ)
/keysディレクトリができる。

# ./build-ca   CA証明書・秘密鍵作成
もう一度国名とか聞いてくるが、[]の内容でOKならENTERを押していく。
# cp keys/ca.crt /etc/openvpn/   CA証明書をOpenVPN設定ファイル格納ディレクトリにコピー
CA秘密鍵(ca.key)は、サーバー証明書・秘密鍵とクライアント証明書・秘密鍵を作成するときにここで使用するのみなのでコピーしなくてよい。

Aサーバ証明書と秘密鍵を生成する
easy-rsa]# ./build-key-server server
前のステップと同様,ほとんどのパラメータはデフォルト値のまま。
A challenge passwordとAn optional company nameはenterキーでよい。
最後に肯定的な回答を必要とする質問が二つある。
  "Sign the certificate? [y/n]"と "1 out of 1 certificate requests certified, commit? [y/n]"。
easy-rsa]# cp keys/server.key /etc/openvpn/   サーバー秘密鍵を/etc/openvpn/にコピー
easy-rsa]# cp keys/server.crt /etc/openvpn/   サーバー証明書を/etc/openvpn/にコピー

BDH (Diffie Hellman) パラメータを生成する
OpenVPNサーバにはDiffie Hellmanパラメータを生成しなければならない。
easy-rsa]# ./build-dh
easy-rsa]# cp keys/dh2048.pem /etc/openvpn/

C証明書廃止リスト作成
将来的にクライアント証明書を廃止できるようにするため、証明書廃止リストを作成しておく。
このリストはいったんクライアント証明書を作成してから廃止を行わないと作成できないので、いったんダミーのクライアント証明書を作成・廃止する。

easy-rsa]# ./build-key dmy   ダミーのクライアント証明書作成
これまでと同様。ほとんどのパラメータはデフォルト値のまま。
A challenge passwordとAn optional company nameはenterキーでよい。
最後に肯定的な回答を必要とする質問が二つある。
  "Sign the certificate? [y/n]"と "1 out of 1 certificate requests certified, commit? [y/n]"。

クライアント証明書廃止時にエラーメッセージが出力されてしまうことの対処(ここでは、対処せず。)
/etc/openvpn/easy-rsa/openssl.confの編集
 #[ pkcs11_section ] 以下を行頭に#を追加して以下をコメントアウト
 #engine_id = pkcs11
 #dynamic_path = /usr/lib/engines/engine_pkcs11.so
 #MODULE_PATH = $ENV::PKCS11_MODULE_PATH
 #PIN = $ENV::PKCS11_PIN
 #init = 0

easy-rsa]# ./revoke-full dmy   ダミーのクライアント証明書廃止
easy-rsa]# cp keys/crl.pem /etc/openvpn/   証明書廃止リストを/etc/openvpn/にコピー

Dクライアントの証明書と鍵を作る
easy-rsa]# ./build-key vpnclient1
easy-rsa]# ./build-key vpnclient2
これまでと同様。ほとんどのパラメータはデフォルト値のまま。
A challenge passwordとAn optional company nameはenterキーでよい。
最後に肯定的な回答を必要とする質問が二つある。
  "Sign the certificate? [y/n]"と "1 out of 1 certificate requests certified, commit? [y/n]"。
………………………………………
パスワード付きにしたい場合は
easy-rsa]# ./build-key-pass client1 等
Enter PEM pass phrase: ←パスフレーズを入力
Verifying - Enter PEM pass phrase: ←もう一度パスフレーズを入力

DOpenVPNのセキュリティを強化する(tls-auth)
tls-auth HMAC署名はSSL/TLSによって提供されるセキュリティに加えてさらに高度なセキュリティを提供。
tls-authを使用する場合は、標準のRSA証明書と鍵に加えて、共有静的鍵を生成しておく必要があります。
TLS認証鍵を/etc/openvpn/に作成
# openvpn --genkey --secret /etc/openvpn/ta.key
この鍵ファイルをサーバーとすべてのクライアントにコピーしておく必要があります(安全な方法でコピーするように注意してください)。

ファイアウォール設定(OpenVPNサーバーを公開する)
●各ルーター/ゲートウェイでUDPの1194番ポートへのアクセスをサーバーに転送するようにする(NAPT設定)。
外部からOpenVPNサーバーのUDP1194番ポート(OpenVPN)への転送を許可
iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j DNAT --to $SERVER
iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 1194 -j ACCEPT
eth0:WAN側ネットワークデバイス $SERVER:サーバーアドレス
ブロードバンドルータの場合は、「ルータ設定/NAPT設定」などでudp 1194の穴を開ける(個別またはDMZとかになる)。
●OpenVPNサーバー側では、UDPの1194番ポートへのアクセスを許可するようにする。
iptables -A INPUT -p udp --dport 1194 -j ACCEPT


【ルーティング方式】

OpenVPN設定
/etc/openvpn/server.conf  (OpenVPN設定ファイルの編集)
port 1194
proto udp
dev tun   VPNインタフェースとしてTUNを指定(デフォルト)
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
server 10.8.0.0 255.255.255.0   VPNクライアントアドレスとして10.8.0.0/24を指定(デフォルト)
ifconfig-pool-persist ipp.txt
push "route 10.8.0.0 255.255.255.0"
;client-config-dir ccd   固定アドレスを割り付けるとき(後述)
keepalive 10 120
tls-auth ta.key 0   コメント解除(TLS認証有効化)
comp-lzo
user nobody   コメント解除(OpenVPN実行権限を下げる)
group nobody   コメント解除(OpenVPN実行権限を下げる)
persist-key   これと次の項目は、VPNが落ちた場合の再接続設定
persist-tun
status openvpn-status.log
;log-append openvpn.log   解除すると、ログは/etc/openvpn/openvpn.logに保存される
log-append /var/log/openvpn.log   保存先を/var/log/openvpn.logに変更する
verb 3
#######以下は追加#######
management localhost 7505   TCPポート7505で管理インタフェースクライアントの要求をリスニングするようになる(ポート番号は任意の使われていないものでよい)
crl-verify crl.pem   証明書廃止リストの有効化

ルーティング設定
・ルーティング方式でクライアント間同士の通信をする場合に必要となる。
・ルーティング方式でクライアントとVPNサーバーとの1対1接続だけでよい場合やブリッジ方式の場合は不要。
ルータ(内部にVPNクライアントがいるゲートウェイ)に10.8.0.LANゲートウェイとしてVPNサーバーを追加してやる=宛先がVPN(例:10.8.0.0/24)のアクセスはVPNサーバーを経由するようにルートを追加する。
# route add -net 10.8.0.0 netmask 255.255.255.0 gw VPNサーバーアドレス
# route ← ルート追加確認

ファイアウォール自動設定スクリプトの作成
/usr/share/doc/openvpn-2.3.8/sample/sample-config-files/firewall.sh、openvpn-startup.sh、openvpn-shutdown.shがそのサンプルとなるが、使いにくいので以下のスクリプトを自分で作成する。
これらは/etc/ec.d/init.d/openvpnで自動的に実行されるようになっている。

/etc/openvpn/openvpn-startup
#!/bin/bash

/etc/openvpn/openvpn-shutdown
iptables -I OUTPUT -o tun+ -j ACCEPT  +はワイルドカード、eth+だとすべてのethインターフェイス。
iptables -I FORWARD -o tun+ -j ACCEPT  上とこの2行はVPNサーバーからの送信を許可。
iptables -I INPUT -i tun+ -j ACCEPT  VPNクライアントからVPNサーバーへのアクセスを許可
iptables -I FORWARD -i tun+ -d 192.168.7.0/24 -j ACCEPT  VPNクライアントからサーバー側LAN内へのアクセスを許可

/etc/openvpn/openvpn-shutdown
#!/bin/bash

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
}
target='INPUT'
delete
target='FORWARD'
delete
target='OUTPUT'
delete

実行権限を与えておく。
# chmod +x /etc/openvpn/openvpn-startup
# chmod +x /etc/openvpn/openvpn-shutdown

OpenVPNログのローテート設定(/etc/logrotate.d/httpd等を参照)
/etc/logrotate.d/openvpn   OpenVPNログローテート設定ファイル新規作成
/var/log/openvpn.log {
  missingok
  notifempty
  sharedscripts
  postrotate
    /etc/rc.d/init.d/openvpn restart 2>&1 > /dev/null || true
  endscript
}

SELinux
openVPNを起動して、/var/log/openvpn.logを見てみる。
7505のポート(管理インタフェース)でエラーが出ている場合は、SELinuxの問題。このエラーがあると、起動は成功しているように見えても、クライアントからは接続できない。
# semanage port -l | grep openvpn   調査
1194 TCP,UDPしか通っていない場合は、7505 TCPも設定しておく。
# semanage port -a -t openvpn_port_t -p tcp 7505


●VPNクライアントに固定IPアドレスを割当てる場合
外部から内部LANへVPN接続する場合等では、VPNクライアントごとにアクセス先マシンを制限したい場合がある。その場合は、VPNクライアントに固定IPアドレスを割当て、IPアドレスごとにファイアウォールでアクセス先マシンを制限するようにする。
例として、クライアント名vpnclient1に固定IPアドレス10.8.0.5を割当て、10.8.0.5からは192.168.7.3へのみアクセスを許可するようにする。
(1)OpenVPN設定
/etc/openvpn/server.conf ← OpenVPN設定ファイル編集
  client-config-dir ccd ← 行頭の;を削除してコメント解除(クライアント毎設定格納ディレクトリの有効化)
# mkdir /etc/openvpn/ccd ← クライアント毎設定格納ディレクトリ作成

(2)vpnclient1固定IPアドレス割当て
/etc/openvpn/ccd/vpnclient1 ← vpnclient1設定ファイル新規作成
  ifconfig-push 10.8.0.5 10.8.0.6 ← 固定IPアドレス10.8.0.5を割当てる※

※10.8.0.5と10.8.0.6の5と6の部分は以下の各組み合わせから指定すること(例えば、10.8.0.9と10.8.0.10と指定すると10.8.0.9が割当てられる)。
ただし、10.8.0.1と10.8.0.2の組合せはVPNサーバーのアドレスなので指定しないこと。
[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118]
[121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158]
[161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198]
[201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238]
[241,242] [245,246] [249,250] [253,254]

(3)vpnclient1用ファイアウォール設定
# iptables -I FORWARD -i tun+ -s 10.8.0.5 -d 192.168.7.3 -j ACCEPT
               ← 10.8.0.5から192.168.7.3へのアクセスを許可
/etc/openvpn/openvpn-startup
  iptables -I FORWARD -i tun+ -s 10.8.0.5 -d 192.168.7.3 -j ACCEPT
               ← 上記ファイアウォール設定をOpenVPN起動時実行スクリプトへ追加
これで、vpnclient1の証明書を使用してVPN接続したクライアントには固定IPアドレス10.8.0.5が割当てられ、LAN内の192.168.7.3へのみアクセスができるようになる。
なお、クライアント設定ファイルが存在しない場合はVPNサーバーが空きIPアドレスを割当てるので、固定/非固定混在が可能。


windowsクライアント (Windows10の場合)
https://www.openvpn.jp/download/より「vpnux Client」をダウンロードする。
Ver. 1.3.0.0 (2015.07.13)

クライアント設定
あらかじめ、サーバーで作成したCA証明書(/etc/openvpn/ca.crt)、クライアント証明書(/etc/openvpn/easy-rsa/keys/client1.crt)、クライアント秘密鍵(/etc/openvpn/easy-rsa/keys/client1.key)、TLS認証鍵(/etc/openvpn/ta.key)をUSBメモリなどにコピーしておく。

C:\Program Files (x86)\vpnux Client\vpnuxClient.exeを起動。
「プロファイル → 追加」で設定をする。

プロファイル名 適当に「vpnclient1」
VPNサーバー 192.168.7.1
ポート 1194
デバイス TUN (ルーティング方式のとき。ブリッジ方式のときはTAPにする。)
プロトコル UDP
拡張設定 LZO圧縮を有効にする
認証 CA証明書 ca.crtを読み込む。
証明書認証(PKI)を使用
証明書 vpnclient1.crtを読み込む。
秘密鍵 vpnclient1.keyを読み込む。
いちばん上の「詳細設定」
YLS-Auth HMAC署名を使用 ta.keyを読み込む。

接続確認
ping 10.8.0.1
\\10.8.0.1 でsambaに接続してみる。(ただし、smb.confの設定が必要。次項参照。)

サーバーとクライアントのアドレス
10.8.0.1と10.8.0.2の組合せはVPNサーバーのアドレスとなる。
クライアントは、 [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] ・・・・の組合せになる。
VPNが正常に稼働しているなら,サーバからは 10.8.0.2 に,クライアントからは 10.8.0.1 にpingが通るはず。

切断するには
右下の山矢印より「隠されているインジケータを表示」させ、[vpnux Connector]アイコンをダブルクリックします(または、右クリック → 表示)。


■VPNクライアントからのアクセス許可
VPNクライアントがVPN通信を行う場合はVPN用の仮想アドレス(10.8.0.0/24)で通信を行うので、VPNクライアントからアクセスしたいマシン側のファイアウォールや各アプリケーションのアクセス制限等で、VPNクライアントアドレス(10.8.0.0/24)からのアクセスを許可するように設定しておく。
(1)VPNクライアントからSambaへアクセスしたい場合
/etc/samba/smb.conf ← Samba設定ファイル編集
  hosts allow = 192.168.0. 127. 10.8.0. ← アクセス許可アドレスにVPNを追加

(2)TCP Wrapperによるアクセス制限対象外とする場合
/etc/hosts.allow
  ALL: 10.8.0. ← 10.8.0.*からのアクセスを許可

■VPNクライアントの削除
なんらかの理由(VPN通信要件がなくなった、または、証明書のパスフレーズを忘れた等※)で特定のVPNクライアントからのVPN接続を廃止したい場合は、該当VPNクライアントが使用しているクライアント証明書を廃止すればよい。
※廃止したクライアント名で証明書を再作成することができるので、パスフレーズを忘れてしまった場合も、いったん証明書を廃止後に同じクライアント名でクライアント証明書を再作成すればよい。

クライアント証明書廃止
 クライアント証明書を廃止して、該当クライアント証明書を使用したVPN接続をできないようにする。
 # cd /etc/openvpn/easy-rsa/ ← 証明書/鍵作成用ディレクトリへ移動
 # source vars ← 証明書/鍵作成用環境変数設定ファイル内容をシステムに反映
 # ./revoke-full vpnclient1 ← vpnclient1のクライアント証明書廃止



【ブリッジ方式】


OpenVPN設定
ブリッジ方式を利用する場合,serverとdev tunの代わりに,server-bridgeとdev tapを使う。
UDPではなくTCPポートをリスニングするようにしたい場合、proto udpの代わりにproto tcpを使う(UDPとTCPの両方をリスニングするようにするには,二つ別々のOpenVPNインスタンスを実行しなくてはならない)。
クライアントがお互いにみれるようにしたいなら、client-to-clientのコメントを外す。デフォールトではクライアントがサーバだけをみることができる。

/etc/openvpn/server.conf
port 1194
proto udp
dev tap0   VPNインタフェースとしてtapを指定
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh2048.pem
;server 10.8.0.0 255.255.255.0   無効にする
ifconfig-pool-persist ipp.txt
server-bridge 192.168.7.1 255.255.255.0 192.168.7.220 192.168.7.250   有効にする(サーバーのアドレスとクライアントに割り振るアドレス範囲)
push "route 192.168.7.0 255.255.255.0"   クライアントにサーバー側ネットワークへの経路を伝える
client-to-client   クライアント同士の通信を可能にする
keepalive 10 120   VPN接続間の生存確認のための設定
tls-auth ta.key 0   TLS認証有効化
comp-lzo   LZO圧縮を有効化
user nobody   OpenVPN実行権限を下げる
group nobody   OpenVPN実行権限を下げる
persist-key   これと次の項目は、VPNが落ちた場合の再接続設定
persist-tun
status openvpn-status.log
log-append /var/log/openvpn.log   ログを/var/log/openvpn.logに記録する
verb 3
management localhost 7505   TCPポート7505で管理インタフェースクライアントの要求をリスニングするようになる(ポート番号は任意の使われていないものでよい).
crl-verify crl.pem   証明書廃止リストの有効化

bridge-utilsのインストール
ブリッジ機能を使用するには、bridge-utilsとsysfsutilsパッケージがインストールされている必要がある。
調査
  # yum list installed | grep bridge
  # yum list installed | grep sysfsutils
CentOS6.5では、bridge-utilsはインストール済み。sysfsutilsはインストールされていない。
# yum list | grep sysfsutils  調査
# yum install sysfsutils   インストール

ブリッジ有効化スクリプトの編集(tap0とeth1をブリッジ)
ブリッジを起動させた際、どのネットワークデバイスを使用するか等の挙動に関する設定。
bridge-startとbridge-stopスクリプトを/usr/share/doc/openvpn-2.3.8/sample/sample-criptフォルダからコピー。デフォルトではtap0とeth0をブリッジで使用するように設定されているので、以下の箇所を環境に合わせて設定する。
/etc/openvpn/bridge-start
 (〜省略〜)
 eth="eth1"
 eth_ip="192.168.7.1"   ←br0に設定するIPアドレス(上のserver-bridge設定と一致するように)
 eth_netmask="255.255.255.0"   ←br0に設定するネットワークアドレス
 eth_broadcast="192.168.7.255"   ←br0に設定するブロードキャストアドレス
 (〜省略〜)

ルータ、ゲートウェイ、VPNサーバー等の基本設定はtunの場合と同様。


ファイアウォール自動設定スクリプトの変更(tunの場合を参照)
/etc/openvpn/openvpn-startup
#!/bin/bash

/etc/openvpn/openvpn-shutdown

iptables -I OUTPUT -o br0 -j ACCEPT
iptables -I FORWARD -o br0 -j ACCEPT
iptables -I INPUT -i br0 -j ACCEPT
iptables -I FORWARD -i br0 -d 192.168.7.0/24 -j ACCEPT
iptables -A FORWARD -i br0 -o eth0 -s 192.168.7.0/24 -j ACCEPT  LAN内部から外への通路
そのほかVPNサーバーにeth1がらみのiptablesが設定されている場合は、ここにbr0として追加しておく。

/etc/openvpn/openvpn-shutdown (上でtap0の記述はないので、この場合delete1は必要ないが)
#!/bin/bash

delete1() {
  rule_number=`iptables -L $target --line-numbers -n -v | grep tap0 | awk '{print $1}' | sort -r`
  for num in $rule_number
  do
    iptables -D $target $num
  done
}
delete2() {
  rule_number=`iptables -L $target --line-numbers -n -v | grep br0 | awk '{print $1}' | sort -r`
  for num in $rule_number
  do
    iptables -D $target $num
  done
}
target='INPUT'
delete1
delete2
target='FORWARD'
delete1
delete2
target='OUTPUT'
delete1
delete2

# chmod +x /etc/openvpn/openvpn-startup
# chmod +x /etc/openvpn/openvpn-shutdown

起動
ブリッジ・モードでOpenVPNサーバを起動させるには以下の順番で各サービスを起動させる必要がある。
ネットワーク機能 → ブリッジ機能 → OpenVPNサーバ
また、ネットワーク機能を再起動する場合など、一旦ネットワーク機能停止させる際は逆方向の順番で停止させる。
OpenVPNサーバ → ブリッジ機能 → ネットワーク機能

openvpn起動時にブリッジ・スクリプトを自動実行するようにする。
/etc/openvpn/openvpn-startupの変更
 /etc/openvpn/openvpn-shutdownの下に続けて
 /etc/openvpn/bridge-startを加える。

/etc/openvpn/openvpn-shutdownの変更
 最後に/etc/openvpn/bridge-stopを加える。

起動したとき、br0がありませんとのメッセージがでるが、これはopenvpn-startupで最初に実行される停止作業(openvpn-shutdown=念のための初期化)によるもので無視してかまわない。

Windowsクライアント(vpnux Client)
プロファイルの編集
 デバイスをTAPにする。
 あとは、ルーティング方式のときと同じ。

TOP(HOME)へ

目 次

特別企画
Raspberry Piで遊ぶ

HOME(全体のシステム構成&目次)

CentOS7
CentOS7のインストール〜ネットワークの設定ほか
CentOS7の新機能(systemdとfirewalld)
ダイレクトルールを使ったfirewallの強化
DNS(BIND)サーバー
Webサーバー
  Webでファイルの受け渡し
  アクセス解析ツールAwstats
  Wordpressでブログ構築
FTPサーバー
FTPS(FTP over SSL/TLS)
Mail(Dovecot&Postfix)サーバー
Sambaサーバー
MariaDB(MySQL)サーバー
DHCPサーバー
SSHサーバー
VNCサーバー
ドメインの追加

CentOS5〜6
ネットワーク&ファイアウォール(iptables)
DNS(BIND)サーバー
DHCPサーバー
メールサーバー(基本)
メールサーバー/実際の運用
Webサーバー
  WebDAVによるファイル共有
  Webでファイルのやり取り
  アクセス解析ツールawstats
  namazuで全文検索
  WordPressブログサイト構築
  EC-CUBEショッピングサイト構築
FTPサーバー
ファイルサーバー・Samba
データベースpostgreSQL
  ExcelからpostgreSQLを操作
データベースMySQL
SSHサーバー
VNC
SSL/TLSを利用した暗号化通信
openVPN
ストリーミングサーバー
    C++ RTMP Server
    Helix server Basic
ドメインの追加
Xen・仮想化
特定ディレクトリに容量制限

SELinux
SELinux基本設定
新しいタイプとポリシー・モジュールを作成してみる
マクロを利用したteファイルの記述
新しいドメインを導入してみる

coLinux
Fedora11で試す

Cプログラミング目次
X11プログラム
サイエンス・プログラム

計測・プログラム
秋月電子のデーターロガーpico ADC-16
「今すぐ使えるパソコン計測USBマイコン基板」に付属のTRZ1102
センサーの使用例

Glade2/GTK+を使ってみる
テキスト・ビューで簡易エディター
ドローイングエリアで自動描画
放物線運動(pango、cairoも試してみる)
これらを、GTK+のみで書き出す

フォントについて
ネットワーク・プログラミング
postgreSQL接続
CGI
ファイル操作

●その他
印刷機関連開発 刷版絵柄面積率測定
数独をExcelで解く