絖綛 N@i.jp  昨日:00027470
 今日:00000516
 総計:00553837
keywords
管理者専用
  Post   Add link   Control Panel 































新しいトピック
最新:04/16 19:55


新しいコメント
最新:07/28 16:47






管理人へMAIL

プライバシーポリシー

Raspberry Pi B+をOpenVPNクライアントにしてLAN to LANにしてみた(3)

続きです。実は、ワタシにとってこれが最大の難関でした。


5. クライアントマシンでIPフォワードとTUN/TAPフォワードを有効化する

 次のステップは「クライアントマシンでIPフォワードとTUN/TAPフォワードを有効化する」です。これはOpenVPN日本語情報サイトの「ドキュメント」ー「How To」ー「クライアント側、またはサーバー側サブネットへのクライアントPCの追加によるVPNの拡張」には、ほんの1行、

まず、このクライアントPCでIPフォワードTUN/TAPフォワードを有効にしてください。

と記述されているだけ。行うことは、

の2つだけだと言うことは分かりますが、具体的な方法が良く分かりませんでした。(分かる人には、これだけでも分かるんでしょうけどねぇ。)いずれもFAQページへリンクが張られていますが、かろうじてリンク先らしき物が分かるのは「IPフォワードを有効にする」の方だけ。これは、おそらくHow do I enable IP forwarding?でしょう。この記事を元にRaspberry PiのDebian Linuxでの方法を探りました。

1) IPフォワードを有効にする
 OpenVPNのFAQに記載されているのと同じ方法でRaspberry PiでもIPフォワードを有効にすることができます。しかし、ここに記述されている方法は一時的なもので、再起動すると元に戻ってしまうそうです。再起動後もIPフォワードを有効にするには "/etc/sysctl.conf" を編集します。(以下の赤字の部分です。)

#
# /etc/sysctl.conf - Configuration file for setting system variables
# See /etc/sysctl.d/ for additonal system variables
# See sysctl.conf (5) for information.
#
〜略〜
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

 上記のように編集した後、Raspberry Piを再起動してIPフォワードが有効になっているか確認します。

# cat /proc/sys/net/ipv4/ip_forward
1

となっていればOK。

1) TUN/TAPフォワードを有効にする
 こちらの方が良く分からず、随分と試行錯誤しました。どうやら iptables(Firewall)の設定をしなければならないようです。今回OpenVPNはルーターモードで使っていますので、tunデバイスへのフォワード設定が必要になります。
 iptable(Firewall)の設定をしておらず、全パケットの入出力、フォワード(転送)に何ら制限をかけていない状態であれば特に何も設定しなくても多分大丈夫なのだと思われます。しかし、ウチのRaspberry Pi B+は24時間運転を想定して、iptables(Firewall)を有効にすべく iptables-persistent をインストールしてあります。そのため、iptablesの設定を "/etc/iptables/rules.v4" に記述する必要があるのでした。しかし、どのような記述をすれば良いのやら・・・
 あちこちググッたり試行錯誤した結果、現時点でのOpenVPNに関する "/etc/iptables/rules.v4" の記述は以下のようにしています。

#
# Inputチェーン
# -------
# OpenVPN
# -------
-A INPUT -i eth0 -m state --state NEW -p udp --dport 1194 -j ACCEPT
-A INPUT -i tun+ -j ACCEPT

#
# FORWARDチェーン
#
# -------
# OpenVPN
# -------
-A FORWARD -i tun+ -j ACCEPT
-A FORWARD -o tun+ -j ACCEPT
-A FORWARD -i tun+ -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun+ -m state --state RELATED,ESTABLISHED -j ACCEPT

#
# OUTPUTチェーン
#
# -------
# OpenVPN
# -------
-A OUTPUT -o tun+ -j ACCEPT

 先ず、INPUT, OUTPUTチェーンで tunデバイスとの入出力を受け付けるようにしています。そしてFORWARDチェーンで、tunデバイスからの入力とtunデバイスへの出力のフォワードを受け付けるようにしています。
 とは言うものの、あちこち検索して内容をパクッてきたものですから、実は良くわかってませ〜ん(^^;)。とにかく、現在はこの設定で問題なく動いていると言うだけで、もしかしたら冗長だったり、セキュリティ上良くない設定になっているかもしれません。
 上記のように "/etc/iptables/rules.v4" に書き加えたら、設定を iptablesへ反映させて、iptablesの設定内容を確認します。

# service iptables-persistent restart
# iptables --list
Chain INPUT (policy DROP)
target     prot opt source               destination
〜略〜
ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:openvpn
ACCEPT     all  --  anywhere             anywhere
〜略〜
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
REJECT     all  --  anywhere             anywhere             reject-with icmp-port-unreachable

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere

 良く分からんが、出来ているんじゃないかな?iptables(Firewall)の事も勉強せんとイカンなぁ・・・


< 過去の記事 [ 1月の 全てのカテゴリ リスト ] 新しい記事 >

2015 calendar
1月
123
45678910
11121314151617
18192021222324
25262728293031


掲示板
最新:08/15 17:19


GsBlog was developed by GUSTAV, Copyright(C) 2003, Web Application Factory All Rights Reserved.