iptables - 設定による転送ルールの許可

iptables - 設定による転送ルールの許可

私は依存ポータル(たとえば、別のポータルを構築しています。;))今、コア機能であるiptablesルールを処理しようとしています。これに基づいて、ipsetnameという有効なMacアドレスのリストがありますallow-mac。これは現在の構成です(質問自体を除く)。

echo 1 >/proc/sys/net/ipv4/ip_forward

ipset create allow-mac hash:mac counters
ipset add allow-mac XX:XX:XX:XX:XX:XX

IPT="/usr/sbin/iptables"

WAN="eth0"
LAN="eth1"

$IPT -P FORWARD DROP
$IPT -t nat -A POSTROUTING -o $WAN -j MASQUERADE
$IPT -I FORWARD -i $LAN -m set --match-set allow-mac src -j ACCEPT

これはうまくいきますが、うまくいきません!したがって、FORWARD基本チェーンを次に変更してルールを逆に変更すると、ACCEPT次のようになります。

$IPT -P FORWARD ACCEPT
$IPT -I FORWARD -i $LAN -m set ! --match-set allow-mac src -j DROP

目的の結果が得られ、リストに既知のMACアドレスを持つクライアントのみを渡すことができます。

私の質問は最初の設定ではなぜ機能しませんか? 2番目の欠落している機能はモジュールがcounters追加されましたが、クライアントの「アップロード」トラフィックが計算された場合、ダウンロードトラフィックもどのように計算できますか(別のカウンタで)。

ベストアンサー1

最初のルールセットは、指定された発信トラフィックのみを許可するため、-i $LAN応答はフィルタリングされます。 -i $LAN`を削除すると機能しますか?

ただし、この場合、トラフィック全体(アップロード+ダウンロード)が計算されます。アップロードとダウンロードを別々に計算するには、次の2つのタグポリシーを作成する必要があります。

  • 一つはアップロード用です。ソースコードMacタグ付き
  • 一つはダウンロード用です。目的地Macタグ付き。

おすすめ記事