Raspberry Pi 2上でOPENWRTカオスカーマーを実行しています。OPENVPNクライアントを正常に構成し、クライアントはVPNトンネルを介してトラフィックをルーティングします。しかし、pi LANインターフェースを再起動すると、WANインターフェースに短時間接続し、VPNトンネルの外にトラフィックをルーティングします。これはごく短時間しか発生しません。(VPNクライアントが必要な時間しかし、これを停止する必要があります。ほとんどすべてのトラフィックをVPNクライアント経由で常にルーティングする必要があり、VPNに接続されていないユーザーがインターネットにアクセスできない場合は、この設定でTINYPROXYというプロキシクライアントを構成しました。問題が発生する可能性がありますが、これを停止する方法がわかりません。
これらは私の設定です
/ etc/config/network
config interface 'loopback'
option ifname 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.0.0.0'
config interface 'lan'
option ifname 'eth0'
option proto 'static'
option netmask '255.255.255.0'
option ipaddr '192.168.2.1'
option dns '8.8.8.8 8.8.4.4'
config interface 'wan'
option ifname 'eth1'
option proto 'dhcp'
option peerdns '0'
option dns '8.8.8.8 8.8.4.4'
config globals 'globals'
option ula_prefix 'fd14:b495:5965::/48'
config interface 'vpn0'
option ifname 'tun0'
option proto 'none'
option auto '1'
option delegate '0'
/ etc/config /ファイアウォール
config defaults
option syn_flood '1'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
config zone
option name 'lan'
option input 'ACCEPT'
option output 'ACCEPT'
option forward 'ACCEPT'
option network 'lan'
config zone
option name 'wan'
option output 'ACCEPT'
option masq '1'
option mtu_fix '1'
option input 'ACCEPT'
option forward 'ACCEPT'
option network 'wan wan6 vpn0'
config rule
option name 'Allow-DHCP-Renew'
option src 'wan'
option proto 'udp'
option dest_port '68'
option target 'ACCEPT'
option family 'ipv4'
config rule
option name 'Allow-Ping'
option src 'wan'
option proto 'icmp'
option icmp_type 'echo-request'
option family 'ipv4'
option target 'ACCEPT'
config rule
option name 'Allow-IGMP'
option src 'wan'
option proto 'igmp'
option family 'ipv4'
option target 'ACCEPT'
config include
option path '/etc/firewall.user'
config redirect
# option target 'DNAT'
# option dest 'vpn'
option name 'Transparent Proxy Redirect'
option src 'lan'
option proto 'tcp'
option dest_port '8888'
option src_dport '80'
option src_dip '!192.168.2.1'
option dest_ip '192.168.2.1'
config zone
option name 'vpn'
option masq '1'
option input 'ACCEPT'
option forward 'ACCEPT'
option output 'ACCEPT'
option network 'vpn0'
config forwarding
option src 'vpn'
option dest 'lan'
/ etc/config/tinyproxy
config tinyproxy
option enabled '1'
option User 'nobody'
option Group 'nogroup'
option Port '8888'
option Timeout '600'
option DefaultErrorFile '/usr/share/tinyproxy/default.html'
option StatFile '/usr/share/tinyproxy/stats.html'
option LogFile '/var/log/tinyproxy.log'
option LogLevel 'Info'
option MaxClients '100'
option MinSpareServers '5'
option MaxSpareServers '20'
option StartServers '10'
option MaxRequestsPerChild '0'
option ViaProxyName 'tinyproxy'
list Allow '127.0.0.1'
list Allow '192.168.2.1/24'
list ConnectPort '443'
list ConnectPort '563'
list ConnectPort '80'
option Filter '/www/textui/tinyproxy/blocked.txt'
これを正確に達成したい
ユーザー-> LAN-> TINYPROXY-> VPN-> WAN
私のTINYPROXYは完全に正常に動作しています。他のすべての構成は正常に機能しています。この問題は、PIの再起動時に短時間しか発生しません
誰かがこれで私を助けることができますか?
これは(私にとって!)難しい質問です。部分的な解決策と、完全な解決策をテストするためのアイデアを提供できます。
[〜#〜] if [〜#〜]これは通常のLinuxであり、たとえばDebianのように、ファイルに挿入できます/etc/network/interfaces
、外部インターフェースのスタンザ(wan
と呼びましょう)の次の行:
pre-up iptables -A OUTPUT -s 192.168.0.0/24 -o wan -j DROP
ここで、LANは192.168.0.0/24であると想定しました。 pre-up
を使用しているという事実により、wan
インターフェースが起動したときにファイアウォールルールが有効であることが確実になります。ルールと一緒に:
iptables -t nat -A POSTROUTING -o wan -j MASQUERADE
openVPNがサーバーへの接続を確立するのを待つために一部がドロップされたとしても、LANからのパケットはtun0
を通過するだけであると確信できます。
しかし、OpenWRTのWebページで、上記のpre-up
条件の代わりを見つけることができませんでした。したがって、上記の2つのルールを使用してファイアウォールを設定すると、LANからのパケットがルーターをOpenVPNの外部に出さないことが確実になりますしかしネットワークの前にiptablesファイアウォールが起動するかどうかわからない。
このOpenWRT Wikiページ では、さまざまなサービスの実行順序が説明されています。
rcSは、オプション「start」を使用して、/ etc/rc.d/S ## xxxxxxにある実際の起動スクリプトへのシンボリックリンクを実行します。
...。
S40networkはネットワークサブシステムを開始します(/ sbin/netifdを実行し、インターフェースとWi-Fiを起動します
S45firewallは、/ etc/config/firewallからファイアウォールルールを作成して実装します
2つのサービスが次々に開始され、パケットが通過する時間がほとんどないことがわかります。これは、OpenVPNが起動するのを待つよりも確かに優れています。 Thisは私の部分的な解決策です:LANパケットが通過できる時間を短縮したため、部分的ですが、not今回は.=0
2つのサービスを逆にして、つまり名前を変更してみてください。
S40firewall
S45network
これが機能するかどうかを確認します。 iptables/netfilter
が何をするのか、保護しようとするインターフェースが存在しない場合はわかりません。私のDebianではこれは問題なく動作しましたが、これを試すためのOpenWRTがないため、これがあなたにも機能することを確信できません。これは完全な解決策に対する私の提案です。乾杯。
問題は、パケットがlan
から送信されているのではなく、プロキシを実行しているルーターから送信されていることです。ファイアウォールには、VPNを介して発信トラフィックを強制するルールはありませんルーター上。
私はこれを試していませんが...
wan
インターフェースでoption output REJECT
を設定し、特定のルールを追加して、ルーターが必要とするサーバーとポート(dhcp、OpenVPN)へのwan
インターフェースでの発信トラフィックを許可します。 VPNが登場します。これらのルールでは、option output ALLOW
とoption dest wan
がありますが、src
は設定しないでください。
または、ゾーンでの発信トラフィックを引き続き許可し、WANへのHTTPトラフィックをブロックするルールを作成します。繰り返しますが、src
を設定しないでください。