Aqui está um exemplo prático de como ct helper
o objeto é atualmente declarado de acordo com os documentos do 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;
}
}
O ct helper
objeto é então usado para ex. do seguinte modo:
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
O que eu quero alcançar é conhecer a sintaxe para declarar ct helper
objetos fora da tabela de maneira semelhante a como os conjuntos são declarados.
Um exemplo de como um conjunto é declarado fora do escopo da declaração da tabela
add set filter_4 multicast_proto { type inet_proto; comment "IPv4 multicast protocols"; }
add element ip filter_4 multicast_proto { udp, igmp }
De maneira semelhante, quero declarar ct helper
o objeto, por exemplo:
# Table declaration
add table filter_4
# Declare ct helper separately
add ct helper ftp-standard {
type "ftp" protocol tcp;
}
É claro que isso não funciona, qual é a sintaxe para adicionar\declarar ct helper
assim?
Parece ct helper
que deve estar vinculado a uma tabela (isso é verdade?), portanto, talvez o nome da tabela deva ser especificado no exemplo acima.
A sintaxe é descrita em
nft(8)
:Então, para o seu caso:
Do shell (incluindo o escape adequado do shell usando
'
quando apropriado,nft
ele não se importa: ele analisa os parâmetros da mesma forma, porém eles são fornecidos divididos):Ou se já estiver dentro do
nft
contexto, simplesmente: