現在、OUTPUTチェーンはDROPに設定されています。アクセスしようとしているサービスに問題があるのではなく(タイムアウトではなくすぐに拒否)、ファイアウォールが私をブロックしていることがわかるようにREJECTに変更したいと思います。しかし、iptablesはこれを気にしないようです。保存したルールファイルを手動で編集して復元しようとすると、ルールのiptables-restore v1.4.15: Can't set policy 'REJECT' on 'OUTPUT' line 22: Bad policy name
ロードが拒否されます。手動で設定しようとすると(iptables -P OUTPUT REJECT
)iptables: Bad policy name. Run 'dmesg' for more information.
dmesgに出力が表示されません。
適切なルールがカーネルにコンパイルされたことを確認し、再起動してロードされたことを確認しました。
# CONFIG_IP_NF_MATCH_TTL is not set
CONFIG_IP_NF_FILTER=y
***
CONFIG_IP_NF_TARGET_REJECT=y
***
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
(該当するルールを強調するには、アスタリスクを追加してください)
私が見つけることができるすべては、REJECTが有効な戦略/目標(一般的に)であると言いますが、INPUT、FORWARD、またはOUTPUTチェーンには無効であることがわかりません。私のGoogle-fuは役に立ちませんでした。私はGentooを使用しています。違いがあれば。ここに洞察力のある人はいますか?
答え1
REJECT
は目標の延長、チェーンポリシーは次のとおりです。ターゲット。マニュアルページにはそのように記載されていますが(明確ではありませんが)、一部は明らかに間違っています。
戦略はオンチェーンでのみ可能またはACCEPT
組み込みDROP
可能です。前のルールと一致しないすべてのパケットを拒否する効果が必要な場合は、最後のルールがすべてのエントリと一致することを確認し、宛先REJECT
拡張を含むルールを追加するだけです。つまり、そのルールをすべて追加してから実行しますiptables -t filter -A OUTPUT -j REJECT
。
よりトピック「可能なチェーンポリシーは何ですか?」詳しくは、ネットフィルターのリストをご覧ください。
答え2
記録は見つかりませんでしたが、参考にしてくださいここ許可される唯一のポリシーはACCEPTまたはDROPであることを示します。これは以下を見ると確認できる。源泉of libiptc
(規則操作担当) は 2429 行付近にあり、ここでコードは次のとおりです。
2429 if (strcmp(policy, LABEL_ACCEPT) == 0)
2430 c->verdict = -NF_ACCEPT - 1;
2431 else if (strcmp(policy, LABEL_DROP) == 0)
2432 c->verdict = -NF_DROP - 1;
2433 else {
2434 errno = EINVAL;
2435 return 0;
2436 }
オリジナルワイヤー最善の方法はチェーンの末尾にREJECTを追加することですiptables -A OUTPUT -j REJECT
。
この以前のコードは次のとおりです。
2423 if (!iptcc_is_builtin(c)) {
2424 DEBUGP("cannot set policy of userdefinedchain `%s'\n", chain);
2425 errno = ENOENT;
2426 return 0;
2427 }
2428
したがって、カスタムチェーンのポリシーをまったく設定できません。
答え3
REJECT
OUTPUT
言うことができませんREJECT
。ICMPパケットこれを行うにはネットワークを通過する必要があります。
チェーンに何があるかを確認するには、新しいルールを-j LOG
最後のルール(ポリシーの前に)として追加します。DROP
OUTPUT