ct helper
以下は、現在のオブジェクトの宣言方法の実際の例です。nftables ドキュメント
#!/usr/sbin/nft -f
add table filter_4 {
# TODO: Can helper object be declared outside the scope of table declaration scope?
# ct helper stateful object
# "ftp-standard" is the name of this ct helper stateful object
# "ftp" is the in-kernel name of the ct helper for ftp
ct helper ftp-standard {
type "ftp" protocol tcp;
}
}
その後、オブジェクトがct helper
使用されます。次のように:
add chain filter_4 new_out_4 {
comment "New output IPv4 traffic"
}
# FTP (active and passive)
# Rule for initial ftp connection (control channel), setting ct helper stateful object to use
# "ftp-standard" is the name of the ct helper stateful object
add rule filter_4 new_out_4 tcp sport >1023 tcp dport 21 ct helper set "ftp-standard" accept
私が達成しようとする目的は、コレクションがct helper
宣言される方法と同様の方法でテーブル外のオブジェクトを宣言する構文を理解することです。
テーブル宣言の範囲外でコレクションを宣言する方法の例
add set filter_4 multicast_proto { type inet_proto; comment "IPv4 multicast protocols"; }
add element ip filter_4 multicast_proto { udp, igmp }
同様に、次のオブジェクトを宣言したいと思いますct helper
。
# Table declaration
add table filter_4
# Declare ct helper separately
add ct helper ftp-standard {
type "ftp" protocol tcp;
}
もちろんこれはうまくいきません。ct helper
このような\statementを追加する構文は何ですか?
ct helper
テーブルにバインドする必要があるようです(本当ですか?)上記の例では、テーブル名を指定する必要があるかもしれません。
答え1
構文は次のとおりです。nft(8)
:
add ct helper [family] table name { type type protocol protocol ; [l3proto family ;] }
delete ct helper [family] table name
list ct helpers
あなたの場合は次のとおりです。
シェルでは、(
'
適切な場合は正しいシェルエスケープの使用を含め、それ自体nft
は関係ありません:引数を同じに解析しますが、別々に提供されます):nft add ct helper filter_4 ftp-standard '{ type "ftp" protocol tcp; }'
または、すでに
nft
コンテキストにある場合は、次のようにします。add ct helper filter_4 ftp-standard { type "ftp" protocol tcp; }