
イーサネット経由でWi-Fiインターネットを共有しようとしています。 Fedora 32を実行している2台のマシンAとBはイーサネットスイッチを介して接続され、AはWi-Fi経由でインターネットに接続されます。存在するfirewalld.conf
:
FirewallBackend=nftables
使用:nft
natテーブルと偽装ルールを追加しました。
# nft list table nat -a
table ip nat { # handle 7
chain postrouting { # handle 2
type nat hook postrouting priority srcnat; policy accept;
ip saddr 10.0.0.0/24 counter packets 18 bytes 1255 masquerade # handle 13
}
}
マシンBにはIPがあり、10.0.0.4
LAN内のどこからでもアクセスできます。 pingは可能です8.8.8.8
が、telnet 8.8.8.8 80
ホストへのパスはありません。 Bの結果は基本的に他のインターネットリクエストでも同じです。
# journalctl -x -e
...
FINAL_REJECT: IN=wan0 OUT= MAC=ff:ff:ff:ff:ff:ff:xx:xx:xx:xx:xx:xx:xx:xx SRC=10.188.xx.xxx DST=255.255.255.255 LEN=328 TOS=0x00 PREC=0x00 TTL=128 ID=28534 PROTO=UDP SPT=68 DPT=67 LEN=308
...
wan0
Bの要求があるようですが、何らかの理由で応答が返されないように、ファイアウォールによってブロックされています。
firewalld
どのルールが適用されるのかを確認するためにデバッグするにはどうすればよいですか?ログステートメントにトラフィック拒否決定の根拠が記載されていない理由は本当に理解していません。ファイアウォール内で発生するロジックの詳細を学ぶ方法はありますか?
答え1
インターネット接続を共有する簡単な方法は次のとおりです。
dnf install firewall-config
- ルートシェルでアプリケーションを開きます(それ以外の場合はパスワードの入力を求めます)。
- インターフェイスをゾーン
lan0
に移動trusted
- デフォルト領域
FedoraWorkstation
でアドレス変換を有効にする - 変更を永久に適用する(オプションメニュー)
- ファイアウォールの再起動(オプションメニュー)
正しい修正が表示されますnft list ruleset
。したがって、どのように機能するかはまだよくわかりません。しかし、それは動作し、アプリはCLIが実際に必要とされないほど直感的で完璧です。