条件usernameまたはuserIDと、おそらく他の1つのモジュール基準を使用するfirewalldを使用してルールを作成したいと思います。
Iptablesでは、次のようなことができると思います
iptables -A OUTPUT -m owner --uid-owner <UID> -j ACCEPT
(そして、他の-mモジュールまたは-pプロトコルを同じコマンドに追加できます)
しかし、私は読んだ firewall-cmd
manpage と私は同じ種類のルールを作成する方法を見つけることができません。 「豊富なルール」でさえ、このサポートはないようです。 「直接」機能を使用する必要がありますか?その構文がよくわかりません。特に、これらが何も返さないのではないかと心配しています。
firewall-cmd --direct --get-chains ipv4 filter
firewall-cmd --direct --get-rules ipv4 filter OUTPUT
firewall-cmd --direct --get-rules ipv4 filter INPUT
もちろん iptables -L
は、これらのテーブル、チェーン、ルールが含まれていることを示しています。
では、どうすればpermanentルールを所有者とともに追加し、firewalldを使用してさらに1つの基準を追加できますか?
カスタムのダイレクトチェーンを追加する必要はありません(ただし、reallyを取得したい場合は可能です。既存のチェーンに直接追加するだけです).
IPバージョン、テーブル、チェーン、優先度の後で、関連するiptablesオプションを指定するだけです。
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 \
-m owner --uid-owner $UID -j ACCEPT
その下のiptablesで、これは実際にはOUTPUT_directという名前のファイアウォールで管理されたチェーンに追加され、OUTPUTチェーンから呼び出されます。