ルールを追加すると、ファイアウォールは内部的にパケット状態をどのように処理しますか?

ルールを追加すると、ファイアウォールは内部的にパケット状態をどのように処理しますか?

状況に応じて、新しいファイアウォールルールを定義するときにiptablesパケット接続状態(通常はおよびNEW/または)を指定できます。たとえば、次のルールペアは、自分のホストによって開始されたときにのみ接続が許可され、リモートホストによって起動された場合に接続が切断されることを保証しますESTABLISHEDhttp

iptables -A INPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

しかし、代替案を探し始めたとき、firewalldファイアウォールはステートフルファイアウォール管理サービスであり、何らかの方法で内部的にパケットの状態を処理しているように見える以外に、その状態に関するドキュメントはあまり見つかりませんでした。iptables上記の例のように、ファイアウォールルールの作成を使用するときにパケットの状態を定義できるかどうかを説明するのに役立つ人はいますかfirewalld?それ以外の場合、どのように使用すると同じ効果が得られますかfirewalld

ベストアンサー1

--directコマンドでルールを使用できますfirewall-cmd。あなたの場合、実行するコマンドは次のとおりです。

# Check for existing firewalld direct rules
$ sudo firewall-cmd --direct --get-all-rules
# Now add your direct rule
$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --dport=80 -j ACCEPT -m state --state NEW
# Return traffic (ESTABLISHED for example) is automatically allowed due to firewalld's stateful nature
# Reload firewalld
$ sudo firewall-cmd --reload
# Check if your direct rule was successfully added
$ sudo firewall-cmd --direct --get-all-rules
# From server side create a listening port (if there is no service listening on TCP 80)
$ nc -vlt 80
# From client side, initiate a connection to server on port 80
# Where X.X.X.X is server IP or hostname (with a 3 seconds timeout)
$ nc -v -w 3 X.X.X.X 80

引用:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/security_guide/using_the_direct_interface

おすすめ記事