Auteur Sujet: Filtrer les raw socket avec nftables ?  (Lu 272 fois)

0 Membres et 1 Invité sur ce sujet

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 263
Filtrer les raw socket avec nftables ?
« le: 02 juillet 2024 à 22:09:51 »
Peut-on filtrer les « raw packets » avec nftables ?

C'est juste pour savoir si on peut le faire avec le nouveau hook « egress » de nftables.

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 263
Filtrer les raw socket avec nftables ?
« Réponse #1 le: Hier à 06:29:32 »
C'est le Wiki Netfilter.org qui me fait penser cela.

Citer
Base chain hooks

ingress (only in netdev family since Linux kernel 4.2, and inet family since Linux kernel 5.10): sees packets immediately after they are passed up from the NIC driver, before even prerouting. So you have an alternative to tc.


Citer
Introduction

nftables can replace not even iptables, but it can be used to replace very poorly documented tc filter rules and allow user to classify packets into tc class / qdisc infrastructure.
[...]
* action used to classify packets into tc structure is meta set priority "1:0x2" - 0x can be omitted, but says clearly it is hex number - double quotes are required


Citer
Ingress hook

You can use nftables with the ingress hook to enforce very early filtering policies that take effect even before prerouting. Do note that at this very early stage, fragmented datagrams have not yet been reassembled. So, for example, matching ip saddr and daddr works for all ip packets, but matching L4 headers like udp dport works only for unfragmented packets, or the first fragment.


Personnellement, je préfère que le client DHCP soit modifié si nécessaire afin de définir un PCP (priority code point) adéquat sur le paquet DHCP (trame) « Discovery ».

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 382
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #2 le: Hier à 23:23:56 »
Bah d'après la doc il semble que oui, si ils parlent de remplacer TC

Je suis sur un kernel 6.1.0 et nft 1.0.6. Je dois donc pouvoir testé. Par contre j'ai la mega flemme de faire ça solo :D

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 382
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #3 le: Hier à 23:30:01 »
Personnellement, je préfère que le client DHCP soit modifié si nécessaire afin de définir un PCP (priority code point) adéquat sur le paquet DHCP (trame) « Discovery ».

De mon coté je préfère qu'un serveur DHCP n'ait pas à ce soucier de la prio des packets qu'il émet. Chaque couche devrait avoir sa responsabilité bien partagé.
Je préfère faire ça autrement. La solution via NFTable est pas mal du coup. A voir si fonctionnel cela dit.

Après j'ai un doute qu'avec NFTable tu puisses modifié un packet autre que l'accepter ou le refuser.

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 382
  • XGS-PON et G-PON
Filtrer les raw socket avec nftables ?
« Réponse #4 le: Hier à 23:43:58 »
Peut-être que si en faite, mais j'ai un gros doute.

Citer
Since nftables v0.7 you can match the packet priority, the tc classid:
nft add rule filter forward meta priority abcd:1234cf. https://wiki.nftables.org/wiki-nftables/index.php/Matching_packet_metainformation


nft add rule mangle postrouting tcp sport 80 meta priority set 1ou
tcp dport 25565 ip dscp set cs6

Potentiel recherche : nftables "802.1p" egress netdev
« Modifié: Aujourd'hui à 01:42:22 par Mastah »

basilix

  • Abonné Orange Fibre
  • *
  • Messages: 263
Filtrer les raw socket avec nftables ?
« Réponse #5 le: Aujourd'hui à 09:21:24 »
Mon objectif c'est de faire de l'auto-hébergement Web. Mais face à l'amplification des cyberattaques, je préfère me former. Il y a trop de choses que je ne connais pas
et ma technique d'apprentissage n'est pas forcément très efficace. Je pense que j'assimile les choses de manière trop séquentielle, cela me freine car je n'expérimente
pas de la bonne façon. Je lis le Wiki Netfilter.org alors que j'aurais pu essayer de réaliser des tests avec des machines virtuelles sur mon PC. Je ne sais pas pourquoi
mais cela ne me dit rien, ou je n'en ai pas vraiment envie. Je pense que c'est faire face à la complexité qui me fait peur. Bref !

J'ai également fait des recherches mais je n'ai pas trouvé tellement d'informations sur le sujet.

Citation de: Mastah
Après j'ai un doute qu'avec NFTable tu puisses modifier un packet autre que l'accepter ou le refuser.

Citation de: nftables.org
Rules take action on network packets (e.g. accepting or dropping them) based on whether they match specified criteria.

Each rule consists of zero or more expressions followed by one or more statements. Each expression tests whether a packet matches a specific payload field or packet/flow metadata. Multiple expressions are linearly evaluated from left to right: if the first expression matches, then the next expression is evaluated and so on. If we reach the final expression, then the packet matches all of the expressions in the rule, and the rule's statements are executed. Each statement takes an action, such as setting the netfilter mark, counting the packet, logging the packet, or rendering a verdict such as accepting or dropping the packet or jumping to another chain. As with expressions, multiple statements are linearly evaluated from left to right: a single rule can take multiple actions by using multiple statements. Do note that a verdict statement by its nature ends the rule.


Source : Nftables Wiki: Simple rule management

Les systèmes d'exploitation ont intégré des fonctionnalités au cours de leur histoire. Et donc cela peut être difficile de s'y retrouver.

Citation de: netfilter.Org
The netfilter project enables packet filtering, network address [and port] translation (NA[P]T), packet logging, userspace packet queueing and other packet mangling.

Source : Netfilter.org

Citation de: nftables.org
Netfilter enables filtering at multiple networking levels. With iptables there is a separate tool for each level: iptables, ip6tables, arptables, ebtables. With nftables the multiple networking levels are abstracted into families, all of which are served by the single tool nft.

Source : Nftables families

Le projet Netfilter qualifie nftables (netfilter tables) de « système de classification de paquets » et pas seulement comme un pare-feu logiciel.

Citation de: netfilter.org
iptables is a generic firewalling software that allows you to define rulesets. Each rule within an IP table consists of a number of classifiers (iptables matches) and one connected action (iptables target).

Citation de: netfilter.org
nftables is the successor of iptables, it allows for much more flexible, scalable and performance packet classification. [...]

Source : Netfilter.org