現在のネットワークを中心にパブリックネットワークを配信します。

現在のネットワークを中心にパブリックネットワークを配信します。

この議論のために、私は2つのネットワークカードを持つ最新のAlways-On Linuxボックスを持っています。

  • ワイヤレスネットワーク0
  • イーサネット0

私が望む構成のおおよその図は次のとおりです。

                               (----------------------------)
                               |    linux/main computer     |
                               |                            |
     ----------- /  ~ ~ ~ ~ ~ \ -------              -------|        
     | internet |-- ~ wifi ~ --| wifi0 |------------| eth0  |======)
     ----------- \  ~ ~ ~ ~ ~ / -------              -------|      |
                               |                            |      |
                               (----------------------------)      |
     \   subnet   /                                                |
      \  wifi    /                                                 |
      ------------                                                 |
      | dd-wrt   |=================================================)
      | router   |====\ subnet
      |          |====\ subnet
      ------------

イーサネット0私が信頼し、すべての一般的なトラフィックに優先する必要があるネットワークインターフェイスカードである事前設定されたファイアウォールゲートウェイを持つルータに接続します。

問題は、私が信頼するファイアウォールゲートウェイがもはやゲートウェイではないことです。インターネットに接続されていません。

代わりに、私のインターネットアクセスは以下から提供されます。ワイヤレスネットワーク0。壁が欲しいワイヤレスネットワーク0、すべてのトラフィックを信頼できるゲートウェイに転送するイーサネット0、私のルーター/ゲートウェイで主に管理されている私のローカルサブネットを維持することができます。

だから基本的に設定方法を探しています。ワイヤレスネットワーク0すべての着信トラフィックを受け入れ、すぐに通過します。イーサネット0私のルーターに。ローカルサブネットにバインドされていないすべての発信トラフィックが直接通過することを望みます。ワイヤレスネットワーク0しかし、すべてのサブネットトラフィックは私のローカルルーターで処理されます。みんな発信トラフィック - 私のルーターまたはインターネットに接続されているコンピュータでナット同じ住所から来るようですね。

iptablesこれは可能でなければならず、現在パッケージに含まれているツールおよび/またはツールのみを使用してこれを実行したいと思います。iproute2私はnetworkdnic init / setupを好み、これを達成するためには、接続されたLinuxボックスで1つまたは2つの仮想NICを起動する必要があることを知っていますが、詳細はわかりません。

誰でもこの問題を解決するのに役立ちますか?私はパケットフィルタに似たものにはあまり慣れていません。

ps この質問のタイトルはほとんど気に入らない。誰でももっと簡潔で説明的な質問を考えてくれてありがとう。

違いがある場合は、次のようにすることもできます。

-----        \   router   /
box  \        \ ________ /
---- |        /          \
eth0 [========] wan port |
---- |        |          |
eth1 [========] lan port [=======\subnet
____ /        \ ________ /

…しかもワイヤレスネットワーク0インターネットの起源。だからリツイートすればいいと思いました。(またはブリッジ?)間のすべてのトラフィックワイヤレスネットワーク0そしてイーサネット0ほとんどの意図と目的に応じて、毎日のトラフィックをルーティングするときは、これら2つを完全に無視してください。イーサネット1。私は私の目標を達成するのに十分なことを本当に理解していないか、他に何もしませんiptablesnftables助けてください。

答え1

説明する構成がないため、必ずしも答えが保証されるわけではありません。

必要

  1. ホストされたサブネットまたはLinux /ホストコンピュータ(「LMC」)からのすべてのインターネットアウトバウンドトラフィックは、SNATまたはMASQUERADEを使用してwlan0を介してインターネットに転送されます。
  2. SNATまたはMASQUERADE(上記)で生成された接続追跡を使用して、インターネットアウトバウンドトラフィックの一部としてすべてのインターネットインバウンドトラフィックを直接転送します。
  3. LMCのすべてのサブネットアウトバウンドトラフィックは直接移動されます。
  4. 未知のすべてのインターネットインバウンドトラフィックは、「信頼できるファイアウォール」DD-WRT(192.168.1.253にあると仮定)にルーティングされます。

私たちはこれができると信じていますiptables

# Shortcuts
filter() { iptables -t filter "$@"; }
nat() { iptables -t nat "$@"; }

# Set the policy for INPUT and FORWARDING to DROP, OUTPUT to ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# Empty all chains (erase all rules)
iptables -Z

# Enable forwarding
echo 1> net.ipv4.ip_forward

# SNAT outbound traffic on wlan0 (we will use MASQUERADE)
nat -A POSTROUTING -o wlan0 -j MASQUERADE

# Accept return traffic for our own outbound connections
filter -A INPUT -i wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Forward all unknown inbound traffic to DD-WRT box, eg 192.168.1.253
nat -A PREROUTING -i wlan0 -j DNAT --to-destination 192.168.1.253

「LMC」がDD-WRTに到達する方法を知り、DD-WRTのデフォルトパスが「LMC」になるようにルーティングテーブルを設定します。実際、ネットワーク内のすべてのエントリには、デフォルトパスとして「LMC」が必要です。 「LMC」自体には、ISP アップストリームがデフォルトのパスである必要があります。

特定の情報が必要な場合は、いくつかの(例)IPアドレスとゲートウェイを提供してください。

警告の一言:あなたの質問に記載されているようにこれが可能かどうかはわかりません。 DD-WRTを介してすべてのトラフィック(「LMC」からのアウトバウンドトラフィックを含む)をNAT /ルーティングする必要があるかもしれません。

関連情報