Iptables サブネット

Iptables サブネット

IP のサブネットを許可する iptable ルールがあります。ルールは次のとおりです。

iptables -I 入力 2 -i eth0 -s xxxx/24 -d xxXx -j 受け入れる

たとえば、サブネット 172.16.0.0/24 を許可したいとします。このサブネットを許可するように構成したにもかかわらず、このサブネットの IP にアクセスできないなどの問題が発生する可能性はありますか?

私はこのような問題に対処しています。 172.16.0.0/24 を iptables から許可するように設定しましたが、IP 172.16.0.9 からアクセスしようとすると、アクセスできません。

答え1

TRACE ターゲットを有効にすると、netfilter ルールをデバッグできます。

まず、syslog に直接ログを記録するために、関連するカーネル モジュールをロードします。

modprobe -i ipt_LOG

次に、動作が不安定なシステムからのすべてのトラフィックをログに記録するルールを作成します。

iptables -t raw -A PREROUTING --source 172.16.0.9 -p tcp -j TRACE

パケットは文字列プレフィックスでログに記録されます。type TRACE: tablename:chain- name:type:rulenumは、プレーンルールの場合は「rule」、ユーザー定義チェーンの最後の暗黙のルールの場合は「return」、組み込みチェーンのポリシーの場合は「policy」です。rulenumは次のようになります。iptables -L --line-numbers

答え2

「-d xxxx」を削除してみてください。INPUT はマシン宛てのすべてのトラフィックを意味するため、宛先を指定する必要はありません。編集: また、「-s xxxx/24」の前に「-p tcp」を追加してみてください。一致のプロトコルを指定する必要があると思います。 – aseaudi 17 分前

答え3

考えられる問題は 2 つあります。

1 - トラフィックがマシンから外に出ないようにしている

iptables -I OUTPUT 1 -i eth0 -d x.x.x.x/24 -j ACCEPT

2 - ブロードキャストパケットがマシンに届かないようにしている

元の入力の代わりにこれを試してください:

iptables -I INPUT 1 -i eth0 -s x.x.x.x/24 -j ACCEPT

宛先 IP を使用せずに。

関連情報