web-dev-qa-db-ja.com

firewall-cmdで高度なルールを作成するにはどうすればよいですか?

条件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つの基準を追加できますか?

4
user109322

カスタムのダイレクトチェーンを追加する必要はありません(ただし、reallyを取得したい場合は可能です。既存のチェーンに直接追加するだけです).

IPバージョン、テーブル、チェーン、優先度の後で、関連するiptablesオプションを指定するだけです。

firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 \
        -m owner --uid-owner $UID -j ACCEPT

その下のiptablesで、これは実際にはOUTPUT_directという名前のファイアウォールで管理されたチェーンに追加され、OUTPUTチェーンから呼び出されます。

6
Michael Hampton