web-dev-qa-db-ja.com

Shorewallを使用したセカンダリLANへのルーティング

私はShorewall(4.4.26.1)をセットアップしていて、午後の大部分の間、2つのLANセグメント間のルーティングを理解しようとしています。助けを求める時が来ました。

 ((INTERNET))
      |
      |
 [shorewall]
   |     |
   |     |
(LAN1) (LAN2)

3つのNICがあります:WAN(インターネット)、LAN1、LAN2。WAN-to-LANはNATを介してインバウンドで動作し、DNAT(masqで設定)を介してアウトバウンドで動作します。LAN2は動作しないはずです(および現在はインターネットにアクセスできませんが、LAN1からアクセスできるはずです。現在、ファイアウォールからLAN2にアクセスできますが、LAN1のサーバーからはアクセスできません(これが問題です)。必要なルールは次のとおりです。配置しますが、ルーティングが機能していないようです(ファイアウォールルールを無効にすると、LAN1のサーバーからのSSH接続ですぐに「接続が拒否されました」。ルールが有効になっていると、SSHがハングし、tracerouteがLAN1は172.0.0.0アドレス空間にあり、LAN2は10.0.0.0アドレス空間にあります。

私は現在持っています:

$LAN2_IF                 10.0.0.0/24

..masqで、しかしそれは機能していません($ LAN2_IFはLAN2インターフェースであるeth2に解決されます)。

私の質問は次のとおりです:別々のNICに接続されている2つの異なるアドレスのLANセグメント間でトラフィックを転送するための最も単純なShorewall構成は何ですか?ドキュメントまたは他の参照へのポインターが役立ちます、最低限の構成例はさらに良くなります。ルーティングに関するShorewallのドキュメントを調べてきましたが、一致する説明がまだ見つかりません(たとえば、LANインターフェイスは分離したままにする必要があるため、ブリッジする必要はありません。LAN2はnotはインターネットまたはLAN1)にアクセスできません。

アドバイスありがとうございます!

2
Ville

ルーティングに問題があるようですが、Shorewallとは関係ありません。 Shorewallを無効にして、最初にルーティングを正しく行います。

ゲートウェイには、各LANセグメントにIPアドレスがあり、そのインターフェイスにLAN範囲のルートが必要です。例えば:

$ ip -one addr
2: eth0    inet 172.16.0.1/24
3: eth1    inet 10.0.0.1/24
$ ip route
172.16.0.0/24 dev eth0
10.0.0.0/24 dev eth1

LAN1とLAN2のクライアントは、ゲートウェイのそれぞれのIPをデフォルトゲートウェイとして設定する必要があります(LAN1のクライアントの場合は172.16.0.1、LAN2のクライアントの場合は10.0.0.1)。両方のLANのクライアントがゲートウェイの両方 IPにpingできることを確認します。次に、異なるLAN内のクライアント間でpingを実行してみてください。

ルーティングが機能したら、Shorewallをセットアップできます。 2つのLANを異なるゾーンに配置したい(例:lan1 eth0を含み、lan2 eth1)を含む。次に、適切なポリシーを構成します。

fw      all     ACCEPT
lan1    all     ACCEPT
lan2    fw      ACCEPT
lan2    lan1    ACCEPT
all     all     REJECT

LAN1とLAN2の間にマスカレードがあってはなりません。

4
mgorven

これはVilleの問題ではなかったと思いますが、3つのインターフェイスのサンプル構成(Shorewallディストリビューションに含まれています)は、おそらくあなたの質問に対する標準的な答えです。ゾーン名としてlanとdmzを設定しますが、任意の名前(この場合はlanとlan2)に設定できます。

1
Paul Gear