Raspbian ルーター/ファイアウォール

Raspbian ルーター/ファイアウォール

スーパーユーザーの皆さん、こんにちは。

これが私のLANのトポロジです。WAN-モデム-ルーター-ファイアウォール-Pi ルーターファイアウォール-LAN マシン。

私は LAN 内のテスト マシン bob を使用します。

ボブからインターネット サイトにアクセスできず、「宛先ホストに到達できません」というメッセージが表示されます。

私のルートは次のとおりです:

bob のルート (匿名):

デフォルト経由pi-ルーター-iface-内部LAN-eth0dev eth0 ソースボブ・イップメトリック 202

内部LAN/24 dev eth0 proto dhcp スコープ リンク srcボブ・イップメトリック 202

lan-beyond-pi-router (モデム + pi-iface-eth1)/24 経由pi-ルーター-内部-lan-iface-eth0開発 eth0

pi ルーター上のルート:

デフォルト経由pi-ルーター-インナー-iface-eth0dev eth0 ソースpi-ルーター-インナー-iface-eth0メトリック 202

デフォルト経由pi-ルーター-外側-iface-eth1開発 eth1 ソースpi-ルーター-外側-iface-eth1メトリック 203

内部LAN/24 dev eth0 proto dhcp スコープ リンク srcpi-ルーター-インナー-iface-eth0メトリック 202

lan-beyond-pi-ルーター/24 dev eth1 proto dhcp スコープ リンク srcpi-ルーター-外側-iface-eth1メトリック 203

私はフィルターと NAT に ufw を使用しています。これは私自身のアイデアであり、完全に確信しているわけではありません。モデムで via ルートを設定できないため、Pi ルーターの「外部」(eth1) インターフェイス (モデム側のインターフェイス) で NAT を有効にしました。これが私の ufw 構成です。

'#

'# ルール.before

'#

'# ufwコマンドラインでルールを追加する前に実行する必要があるルール。カスタム

'# ルールは次のいずれかのチェーンに追加する必要があります:

'# 入力前のufw

'# 出力前のufw

'# 転送前にufw

'#

'# nat テーブルルール

*ナット

:ポストルーティング受け入れ - [0:0]

'# eth0 から eth1 経由でトラフィックを転送します

-A ポストルーティング -s 10.0.0.0/24 -o eth1 -j マスカレード

'#個人的な追加、よくわからない

-A ポストルーティング -s 192.168.0.0/24 -o eth0 -j マスカレード

'# 'COMMIT' 行を削除しないでください。削除しないと、これらの NAT テーブル ルールは処理されません。

専念

'# これらの必須行を削除しないでください。削除するとエラーが発生します

*フィルター

:ufw-before-input - [0:0]

:ufw出力前 - [0:0]

:ufw-before-forward - [0:0]

:ufw-ローカルではない - [0:0]

'# 必須行の終了

'# ループバックですべて許可

-A 入力前にufw -i lo -j 受け入れる

-A ufw-before-output -o lo -j ACCEPT

'# すでに接続しているパケットを素早く処理する

-A ufw-before-input -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT

-A ufw-before-output -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT

-A ufw-before-forward -m conntrack --ctstate RELATED、ESTABLISHED -j ACCEPT

'# 無効なパケットをドロップします (ログレベル中以上でログに記録します)

-A ufw-before-input -m conntrack --ctstate 無効 -j ufw-logging-deny

-A ufw-before-input -m conntrack --ctstate INVALID -j DROP

'# INPUT の icmp コードが OK

-A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-input -p icmp --icmp-type 時間超過 -j ACCEPT

-A ufw-before-input -p icmp --icmp-type パラメータの問題 -j ACCEPT

-A ufw-before-input -p icmp --icmp-type エコー要求 -j ACCEPT

'# ok icmp code for FORWARD -A ufw-before-forward -p icmp --icmp-type destination-unreachable -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type 時間超過 -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type パラメータの問題 -j ACCEPT

-A ufw-before-forward -p icmp --icmp-type エコー要求 -j ACCEPT

'# DHCPクライアントが動作できるようにする

-A ufw-before-input -p udp --sport 67 --dport 68 -j ACCEPT

'#

'# ufw がローカルではない

'#

-A 入力前の ufw -j ローカルでない ufw

'# ローカルの場合は戻る

-A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN

'# マルチキャストの場合はRETURN

-A ufw-not-local -m addrtype --dst-type マルチキャスト -j リターン

'# BROADCASTの場合はRETURN

-A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN

'# その他の非ローカルパケットはすべてドロップされます

-A ufw-not-local -m 制限 --limit 3/min --limit-burst 10 -j ufw-logging-deny

-A ufw-not-local -j DROP

'# サービス検出にMULTICAST mDNSを許可する(上記のMULTICAST行が

'# はコメントアウトされていません) -A ufw-before-input -p udp -d 224.0.0.251 --dport 5353 -j ACCEPT

'# サービス検出に MULTICAST UPnP を許可する (上記の MULTICAST 行が

'# はコメント解除されています)

-A ufw-before-input -p udp -d 239.255.255.250 --dport 1900 -j ACCEPT

専念


現在、ボブからモデムに ping を送信できますが、インターネットに正しくアクセスできません。インターネット DNS は動作します。

WAN サーバーに接続しようとすると、「宛先ホストに到達できません」というメッセージが表示されます。設定のどこかに問題があるか、何かが欠けていると思います。

モデムで何か設定する必要があるかもしれませんが、今は設定していません。しかし、テストを行ったときに、両方の iface を同じスイッチに接続して Pi ルーターをスイッチに接続したところ、ある時点でネットにアクセスでき、すべてが機能しました。これらのテストの後、Pi をモデムの隣の最終的な場所に接続しました。これで、マシン ボブから WAN に到達するまでのルートは、スイッチ、2 つの CPL、Pi ルーター、モデムを経由します。

ご意見をありがとうございました:-)

/cr!?ptal

答え1

pi-router に新しいルートを追加しましたが、動作しました。

sudo ip ルートデフォルトを追加モデムルータIP/24 開発 eth1。

そして:

sudo su

ufw を無効にする && ufw を有効にする

さらに、このカスタム ルートを永続化するために、 /etc/dhcpcd.exit-hook に追加しました。

ミッション成功しました:-)

関連情報